thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
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 
196  AbstractFFVVertex & operator=(const AbstractFFVVertex &) = delete;
197 
198 };
199 
200 }
201 }
202 
203 
204 namespace ThePEG {
205 
206 }
207 #endif /* HELICITY_AbstractFFVVertex_H */
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23
static void Init()
The standard Init function used to initialize the interfaces.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
AbstractFFVVertex & operator=(const AbstractFFVVertex &)=delete
The assignment operator is private and must never be called.
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...
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:83
SmallAngleDirection
Enum for the direction in the small angle limit.
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...