thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
AbstractRFVVertex.h
1 // -*- C++ -*-
2 #ifndef HELICITY_AbstractRFVVertex_H
3 #define HELICITY_AbstractRFVVertex_H
4 //
5 // This is the declaration of the AbstractRFVVertex 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/RSSpinorWaveFunction.h"
12 #include "ThePEG/Helicity/WaveFunction/RSSpinorBarWaveFunction.h"
13 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
14 #include "AbstractRFVVertex.fh"
15 
16 namespace ThePEG {
17 namespace Helicity {
18 
24 
25 public:
26 
30  AbstractRFVVertex() : VertexBase(VertexType::RFV) {}
31 
44  virtual Complex evaluate(Energy2 q2,const RSSpinorWaveFunction & sp1,
45  const SpinorBarWaveFunction & sbar2,
46  const VectorWaveFunction & vec3) = 0;
47 
55  virtual Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1,
56  const RSSpinorBarWaveFunction & sbar2,
57  const VectorWaveFunction & vec3) = 0;
58 
71  virtual SpinorBarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
72  const RSSpinorBarWaveFunction & sbar2,
73  const VectorWaveFunction & vec3,
74  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
75 
88  virtual RSSpinorBarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
89  const SpinorBarWaveFunction & sbar2,
90  const VectorWaveFunction & vec3,
91  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
92 
105  virtual VectorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
106  const RSSpinorWaveFunction & sp1,
107  const SpinorBarWaveFunction & sbar2,
108  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
109 
122  virtual VectorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
123  const SpinorWaveFunction & sp1,
124  const RSSpinorBarWaveFunction & sbar2,
125  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
126 
139  virtual SpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
140  const RSSpinorWaveFunction & sp1,
141  const VectorWaveFunction & vec3,
142  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
143 
156  virtual RSSpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
157  const SpinorWaveFunction & sp1,
158  const VectorWaveFunction & vec3,
159  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
161 
162 public:
163 
170  static void Init();
171 
172 private:
173 
178  AbstractRFVVertex & operator=(const AbstractRFVVertex &) = delete;
179 
180 };
181 
182 }
183 }
184 
185 
186 namespace ThePEG {
187 
188 }
189 #endif /* HELICITY_AbstractRFVVertex_H */
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23
AbstractRFVVertex()
Default constructor.
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
The AbstractRFVVertex class provides a base class for all spin-3/2 fermion-fermion-vector vertices in...
The VertexBase class is the base class for all helicity amplitude vertices.
Definition: VertexBase.h:83
The RSSpinorWaveFunction class is designed to store the wavefunction of a spin-3/2 particle in a form...
static void Init()
The standard Init function used to initialize the interfaces.
virtual Complex evaluate(Energy2 q2, const RSSpinorWaveFunction &sp1, const SpinorBarWaveFunction &sbar2, const VectorWaveFunction &vec3)=0
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
The RSSpinorBarWaveFunction class is designed to store the wavefunction of a spin- particle in a for...
AbstractRFVVertex & operator=(const AbstractRFVVertex &)=delete
The assignment operator is private and must never be called.