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 */