thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.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
14namespace ThePEG {
15namespace Helicity {
16
22
23public:
24
31 };
32
33public:
34
35
39 AbstractFFVVertex() : VertexBase(VertexType::FFV) {}
40
54 const SpinorBarWaveFunction & sbar2,
55 const VectorWaveFunction & vec3) = 0;
56
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
104 const SpinorWaveFunction & sp1,
105 const VectorWaveFunction & vec3,
106 complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
108
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
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
180public:
181
188 static void Init();
189
190private:
191
197
198};
199
200}
201}
202
203
204namespace ThePEG {
205
206}
207#endif /* HELICITY_AbstractFFVVertex_H */
The AbstractFFVVertex class provides a base class for all fermion-fermion-vector vertices in ThePEG.
SmallAngleDirection
Enum for the direction in the small angle limit.
AbstractFFVVertex & operator=(const AbstractFFVVertex &)=delete
The assignment operator is private and must never be called.
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...
virtual SpinorBarWaveFunction evaluate(Energy2 q2, int iopt, tcPDPtr out, const SpinorBarWaveFunction &sbar2, const VectorWaveFunction &vec3, complex< Energy > mass=-GeV, complex< Energy > width=-GeV)=0
Evaluate the off-shell barred spinor coming from the vertex.
static void Init()
The standard Init function used to initialize the interfaces.
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.
virtual SpinorWaveFunction evaluate(Energy2 q2, int iopt, tcPDPtr out, const SpinorWaveFunction &sp1, const VectorWaveFunction &vec3, complex< Energy > mass=-GeV, complex< Energy > width=-GeV)=0
Evaluate the off-shell spinor coming from the vertex.
virtual SpinorBarWaveFunction evaluateSmall(Energy2 q2, int iopt, tcPDPtr out, const SpinorBarWaveFunction &sbar2, 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)
Small angle approx for an off-shell spinor.
virtual VectorWaveFunction evaluate(Energy2 q2, int iopt, tcPDPtr out, const SpinorWaveFunction &sp1, const SpinorBarWaveFunction &sbar2, complex< Energy > mass=-GeV, complex< Energy > width=-GeV)=0
Evaluate the off-shell vector coming from the vertex.
The VertexBase class is the base class for all helicity amplitude vertices.
Definition: VertexBase.h:83
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23