ThePEG  1.8.0
RFSVertex.h
1 // -*- C++ -*-
2 //
3 // RFSVertex.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 2003-2011 Peter Richardson, Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef ThePEG_RFSVertex_H
10 #define ThePEG_RFSVertex_H
11 //
12 // This is the declaration of the RFSVertex class.
13 
14 #include "ThePEG/Helicity/Vertex/AbstractRFSVertex.h"
15 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
16 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
17 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
18 #include "RFSVertex.fh"
19 
20 namespace ThePEG {
21 
22 namespace Helicity{
23 
42 
43 public:
44 
48  static void Init();
49 
50 public:
51 
64  Complex evaluate(Energy2 q2,const RSSpinorWaveFunction & sp1,
65  const SpinorBarWaveFunction & sbar2,
66  const ScalarWaveFunction & sca3);
67 
75  Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1,
76  const RSSpinorBarWaveFunction & sbar2,
77  const ScalarWaveFunction & sca3);
78 
91  SpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
92  const RSSpinorWaveFunction & sp1,
93  const ScalarWaveFunction & sca3,
94  complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
95 
108  RSSpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
109  const SpinorWaveFunction & sp1,
110  const ScalarWaveFunction & sca3,
111  complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
112 
125  SpinorBarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
126  const RSSpinorBarWaveFunction & sbar2,
127  const ScalarWaveFunction & sca3,
128  complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
129 
142  RSSpinorBarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
143  const SpinorBarWaveFunction & sbar2,
144  const ScalarWaveFunction & sca3,
145  complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
146 
159  ScalarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
160  const RSSpinorWaveFunction & sp1,
161  const SpinorBarWaveFunction & sbar2,
162  complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
163 
176  ScalarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
177  const SpinorWaveFunction & sp1,
178  const RSSpinorBarWaveFunction & sbar2,
179  complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
181 
190  virtual void setCoupling(Energy2 q2,tcPDPtr part1,
191  tcPDPtr part2,tcPDPtr part3)=0;
192 
200  Complex left() { return _left; }
201 
205  Complex right() { return _right; }
207 
208 protected:
209 
217  void left(Complex in) { _left = in; }
218 
222  void right(Complex in) { _right = in; }
224 
225 private:
226 
231 
235  RFSVertex & operator=(const RFSVertex &);
236 
237 private:
238 
243 
248 
249 };
250 }
251 
258 template <>
261  typedef ThePEG::Helicity::AbstractRFSVertex NthBase;
262 };
263 
268 template <>
269 struct ClassTraits<ThePEG::Helicity::RFSVertex>
270  : public ClassTraitsBase<ThePEG::Helicity::RFSVertex> {
271 
275  static string className() { return "ThePEG::RFSVertex"; }
276 };
277 
280 }
281 
282 
283 #endif /* ThePEG_RFSVertex_H */
Complex left()
Get the couplings.
Definition: RFSVertex.h:200
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
Complex evaluate(Energy2 q2, const RSSpinorWaveFunction &sp1, const SpinorBarWaveFunction &sbar2, const ScalarWaveFunction &sca3)
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
virtual void setCoupling(Energy2 q2, tcPDPtr part1, tcPDPtr part2, tcPDPtr part3)=0
Calculate the couplings.
void right(Complex in)
Set the right coupling.
Definition: RFSVertex.h:222
void left(Complex in)
Set the couplings.
Definition: RFSVertex.h:217
The RSSpinorWaveFunction class is designed to store the wavefunction of a spin-3/2 particle in a form...
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
static void Init()
Standard Init function used to initialize the interfaces.
The RFSVertex class is the implementation of the interact of a scalar boson and a spin-3/2 fermion-an...
Definition: RFSVertex.h:41
static AbstractNoPIOClassDescription< RFSVertex > initRFSVertex
Describe an abstract base class with persistent data.
Definition: RFSVertex.h:230
Complex _right
Storage of the right coupling.
Definition: RFSVertex.h:247
The AbstractRFSVertex class provides a base class for all spin-3/2 fermion-fermion-scalar vertices in...
RFSVertex & operator=(const RFSVertex &)
Private and non-existent assignment operator.
The RSSpinorBarWaveFunction class is designed to store the wavefunction of a spin- particle in a for...
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
Complex _left
Storage of the left coupling.
Definition: RFSVertex.h:242
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
Complex right()
Get the right coupling.
Definition: RFSVertex.h:205
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52