ThePEG  1.8.0
AbstractFFVTVertex.h
1 // -*- C++ -*-
2 #ifndef HELICITY_AbstractFFVTVertex_H
3 #define HELICITY_AbstractFFVTVertex_H
4 //
5 // This is the declaration of the AbstractFFVTVertex class.
6 //
7 
8 #include "VertexBase.h"
9 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
10 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
11 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
12 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
13 #include "AbstractFFVTVertex.fh"
14 
15 namespace ThePEG {
16 namespace Helicity {
17 
23 
24 public:
25 
26 
30  AbstractFFVTVertex() : VertexBase(VertexType::FFVT) {}
31 
45  virtual Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1,
46  const SpinorBarWaveFunction & sbar2,
47  const VectorWaveFunction & vec3,
48  const TensorWaveFunction & ten4) = 0;
49 
63  virtual TensorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
64  const SpinorWaveFunction & sp1,
65  const SpinorBarWaveFunction & sbar2,
66  const VectorWaveFunction & vec3,
67  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
68 
82  virtual VectorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
83  const SpinorWaveFunction & sp1,
84  const SpinorBarWaveFunction & sbar2,
85  const TensorWaveFunction & ten4,
86  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
87 
101  virtual SpinorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
102  const SpinorWaveFunction & sp1,
103  const VectorWaveFunction & vec3,
104  const TensorWaveFunction & ten4,
105  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
106 
120  virtual SpinorBarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
121  const SpinorBarWaveFunction & sbar2,
122  const VectorWaveFunction & vec3,
123  const TensorWaveFunction & ten4,
124  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
126 
127 public:
128 
135  static void Init();
136 
137 private:
138 
144 
150 
151 };
152 
153 }
154 }
155 
156 #include "ThePEG/Utilities/ClassTraits.h"
157 
158 namespace ThePEG {
159 
164 template <>
165 struct BaseClassTrait<Helicity::AbstractFFVTVertex,1> {
167  typedef Helicity::VertexBase NthBase;
168 };
169 
172 template <>
173 struct ClassTraits<Helicity::AbstractFFVTVertex>
174  : public ClassTraitsBase<Helicity::AbstractFFVTVertex> {
176  static string className() { return "Helicity::AbstractFFVTVertex"; }
177 };
178 
181 }
182 
183 #endif /* HELICITY_AbstractFFVTVertex_H */
static AbstractNoPIOClassDescription< AbstractFFVTVertex > initAbstractFFVTVertex
The static object used to initialize the description of this class.
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23
AbstractFFVTVertex()
Default constructor.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:681
virtual Complex evaluate(Energy2 q2, const SpinorWaveFunction &sp1, const SpinorBarWaveFunction &sbar2, const VectorWaveFunction &vec3, const TensorWaveFunction &ten4)=0
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
AbstractFFVTVertex & operator=(const AbstractFFVTVertex &)
The assignment operator is private and must never be called.
The VertexBase class is the base class for all helicity amplitude vertices.
Definition: VertexBase.h:49
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
static void Init()
The standard Init function used to initialize the interfaces.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
The AbstractFFVTVertex class is the base class for all fermion-fermion-vector-tensor interactions in ...
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52