thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
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 
177  AbstractRFSVertex & operator=(const AbstractRFSVertex &) = delete;
178 
179 };
180 
181 }
182 }
183 
184 #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:696
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.
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...
AbstractRFSVertex & operator=(const AbstractRFSVertex &)=delete
The assignment operator is private and must never be called.
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...
AbstractRFSVertex()
Default constructor.