ThePEG  1.8.0
AbstractFFVVertex.h
1 // -*- C++ -*-
2 #ifndef HELICITY_AbstractFFVVertex_H
3 #define HELICITY_AbstractFFVVertex_H
4 //
5 // This is the declaration of the AbstractFFVVertex class.
6 //
7 
8 #include "VertexBase.h"
9 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
10 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
11 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
12 #include "AbstractFFVVertex.fh"
13 
14 namespace ThePEG {
15 namespace Helicity {
16 
22 
23 public:
24 
31  };
32 
33 public:
34 
35 
39  AbstractFFVVertex() : VertexBase(VertexType::FFV) {}
40 
53  virtual Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1,
54  const SpinorBarWaveFunction & sbar2,
55  const VectorWaveFunction & vec3) = 0;
56 
69  virtual SpinorBarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
70  const SpinorBarWaveFunction & sbar2,
71  const VectorWaveFunction & vec3,
72  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
73 
86  virtual VectorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
87  const SpinorWaveFunction & sp1,
88  const SpinorBarWaveFunction & sbar2,
89  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
90 
103  virtual SpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
104  const SpinorWaveFunction & sp1,
105  const VectorWaveFunction & vec3,
106  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
108 
141  virtual SpinorWaveFunction evaluateSmall(Energy2 q2,int iopt, tcPDPtr out,
142  const SpinorWaveFunction & sp1,
143  const VectorWaveFunction & vec3,
144  unsigned int fhel, unsigned int vhel,
145  double ctheta, double phi, double stheta,
146  bool includeEikonal = true,
148  Energy mass=-GeV, Energy width=-GeV);
149 
170  virtual SpinorBarWaveFunction evaluateSmall(Energy2 q2,int iopt, tcPDPtr out,
171  const SpinorBarWaveFunction & sbar2,
172  const VectorWaveFunction & vec3,
173  unsigned int fhel, unsigned int vhel,
174  double ctheta, double phi, double stheta,
175  bool includeEikonal = true,
177  Energy mass=-GeV, Energy width=-GeV);
179 
180 public:
181 
188  static void Init();
189 
190 private:
191 
197 
203 
204 };
205 
206 }
207 }
208 
209 #include "ThePEG/Utilities/ClassTraits.h"
210 
211 namespace ThePEG {
212 
217 template <>
218 struct BaseClassTrait<Helicity::AbstractFFVVertex,1> {
220  typedef Helicity::VertexBase NthBase;
221 };
222 
225 template <>
226 struct ClassTraits<Helicity::AbstractFFVVertex>
227  : public ClassTraitsBase<Helicity::AbstractFFVVertex> {
229  static string className() { return "Helicity::AbstractFFVVertex"; }
230 };
231 
234 }
235 
236 #endif /* HELICITY_AbstractFFVVertex_H */
static void Init()
The standard Init function used to initialize the interfaces.
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:681
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
The AbstractFFVVertex class provides a base class for all fermion-fermion-vector vertices in ThePEG...
AbstractFFVVertex & operator=(const AbstractFFVVertex &)
The assignment operator is private and must never be called.
QTY< 0, 1, 0 >::Type Energy
Energy.
Definition: Unitsystem.h:34
virtual Complex evaluate(Energy2 q2, const SpinorWaveFunction &sp1, const SpinorBarWaveFunction &sbar2, const VectorWaveFunction &vec3)=0
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
The VertexBase class is the base class for all helicity amplitude vertices.
Definition: VertexBase.h:49
static AbstractNoPIOClassDescription< AbstractFFVVertex > initAbstractFFVVertex
The static object used to initialize the description of this class.
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
SmallAngleDirection
Enum for the direction in the small angle limit.
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
AbstractFFVVertex()
Default constructor.
virtual SpinorWaveFunction evaluateSmall(Energy2 q2, int iopt, tcPDPtr out, const SpinorWaveFunction &sp1, const VectorWaveFunction &vec3, unsigned int fhel, unsigned int vhel, double ctheta, double phi, double stheta, bool includeEikonal=true, SmallAngleDirection direction=PostiveZDirection, Energy mass=-GeV, Energy width=-GeV)
Special members for off-shell fermion wavefunctions with massless gauge bosons at small angles in the...