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...
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
SmallAngleDirection
Enum for the direction in the small angle limit.
AbstractFFVVertex()
Default constructor.
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
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...
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52