ThePEG  1.8.0
AbstractRFSVertex.h
1 // -*- C++ -*-
2 #ifndef HELICITY_AbstractRFSVertex_H
3 #define HELICITY_AbstractRFSVertex_H
4 //
5 // This is the declaration of the AbstractRFSVertex 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/ScalarWaveFunction.h"
14 #include "AbstractRFSVertex.fh"
15 
16 namespace ThePEG {
17 namespace Helicity {
18 
24 
25 public:
26 
30  AbstractRFSVertex() : VertexBase(VertexType::RFS) {}
31 
44  virtual Complex evaluate(Energy2 q2,const RSSpinorWaveFunction & sp1,
45  const SpinorBarWaveFunction & sbar2,
46  const ScalarWaveFunction & sca3) = 0;
54  virtual Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1,
55  const RSSpinorBarWaveFunction & sbar2,
56  const ScalarWaveFunction & sca3) = 0;
57 
70  virtual SpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
71  const RSSpinorWaveFunction & sp1,
72  const ScalarWaveFunction & sca3,
73  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
74 
87  virtual RSSpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
88  const SpinorWaveFunction & sp1,
89  const ScalarWaveFunction & sca3,
90  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
91 
104  virtual SpinorBarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
105  const RSSpinorBarWaveFunction & sbar2,
106  const ScalarWaveFunction & sca3,
107  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
108 
121  virtual RSSpinorBarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
122  const SpinorBarWaveFunction & sbar2,
123  const ScalarWaveFunction & sca3,
124  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
125 
138  virtual ScalarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
139  const RSSpinorWaveFunction & sp1,
140  const SpinorBarWaveFunction & sbar2,
141  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
142 
155  virtual ScalarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
156  const SpinorWaveFunction & sp1,
157  const RSSpinorBarWaveFunction & sbar2,
158  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
160 
161 public:
162 
169  static void Init();
170 
171 private:
172 
178 
184 
185 };
186 
187 }
188 }
189 
190 #include "ThePEG/Utilities/ClassTraits.h"
191 
192 namespace ThePEG {
193 
198 template <>
199 struct BaseClassTrait<Helicity::AbstractRFSVertex,1> {
201  typedef VertexBase NthBase;
202 };
203 
206 template <>
207 struct ClassTraits<Helicity::AbstractRFSVertex>
208  : public ClassTraitsBase<Helicity::AbstractRFSVertex> {
210  static string className() { return "Helicity::AbstractRFSVertex"; }
211 };
212 
215 }
216 
217 #endif /* HELICITY_AbstractRFSVertex_H */
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
static void Init()
The standard Init function used to initialize the interfaces.
AbstractRFSVertex & operator=(const AbstractRFSVertex &)
The assignment operator is private and must never be called.
The VertexBase class is the base class for all helicity amplitude vertices.
Definition: VertexBase.h:49
The RSSpinorWaveFunction class is designed to store the wavefunction of a spin-3/2 particle in a form...
static AbstractNoPIOClassDescription< AbstractRFSVertex > initAbstractRFSVertex
The static object used to initialize the description of this class.
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
The AbstractRFSVertex class provides a base class for all spin-3/2 fermion-fermion-scalar vertices in...
The RSSpinorBarWaveFunction class is designed to store the wavefunction of a spin- particle in a for...
virtual Complex evaluate(Energy2 q2, const RSSpinorWaveFunction &sp1, const SpinorBarWaveFunction &sbar2, const ScalarWaveFunction &sca3)=0
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
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
AbstractRFSVertex()
Default constructor.