ThePEG  1.8.0
FFVTVertex.h
1 // -*- C++ -*-
2 //
3 // FFVTVertex.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_FFVTVertex_H
10 #define ThePEG_FFVTVertex_H
11 //
12 // This is the declaration of the FFVTVertex class.
13 //
14 #include "ThePEG/Helicity/Vertex/AbstractFFVTVertex.h"
15 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
16 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
17 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
18 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
19 #include "FFVTVertex.fh"
20 
21 namespace ThePEG {
22 namespace Helicity {
23 
44 
45 public:
46 
50  FFVTVertex() : left_(1.), right_(1.) {}
51 
55  static void Init();
56 
57 public:
58 
72  Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1,
73  const SpinorBarWaveFunction & sbar2,
74  const VectorWaveFunction & vec3, const TensorWaveFunction & ten4);
75 
89  TensorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
90  const SpinorWaveFunction & sp1,
91  const SpinorBarWaveFunction & sbar2,
92  const VectorWaveFunction & vec3,
93  complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
94 
108  VectorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
109  const SpinorWaveFunction & sp1,
110  const SpinorBarWaveFunction & sbar2,
111  const TensorWaveFunction & ten4,
112  complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
113 
127  SpinorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
128  const SpinorWaveFunction & sp1,
129  const VectorWaveFunction & vec3,
130  const TensorWaveFunction & ten4,
131  complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
132 
146  SpinorBarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
147  const SpinorBarWaveFunction & sbar2,
148  const VectorWaveFunction & vec3,
149  const TensorWaveFunction & ten4,
150  complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
152 
162  virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,
163  tcPDPtr part3, tcPDPtr part4)=0;
164 
172  Complex left() const {return left_;}
173 
177  void left(Complex in) {left_ = in;}
178 
182  Complex right() const {return right_;}
183 
187  void right(Complex in) {right_ = in;}
189 
190 private:
191 
196 
200  FFVTVertex & operator=(const FFVTVertex &);
201 
202 private:
203 
208 
213 
214 };
215 }
216 
223 template <>
227 };
228 
233 template <>
234 struct ClassTraits<ThePEG::Helicity::FFVTVertex>
235  : public ClassTraitsBase<ThePEG::Helicity::FFVTVertex> {
236 
240  static string className() { return "ThePEG::FFVTVertex"; }
241 };
242 
245 }
246 
247 
248 #endif /* ThePEG_FFVTVertex_H */
FFVTVertex()
Default constructor.
Definition: FFVTVertex.h:50
Complex left() const
Left and right couplings.
Definition: FFVTVertex.h:172
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23
virtual void setCoupling(Energy2 q2, tcPDPtr part1, tcPDPtr part2, tcPDPtr part3, tcPDPtr part4)=0
Calculate the couplings.
void left(Complex in)
Set left.
Definition: FFVTVertex.h:177
FFVTVertex & operator=(const FFVTVertex &)
Private and non-existent assignment operator.
Complex right_
Right coupling.
Definition: FFVTVertex.h:212
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:681
The FFVTVertex class is the implementation of the fermion-fermion–vector-tensor vertex.
Definition: FFVTVertex.h:43
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
Complex right() const
Get right.
Definition: FFVTVertex.h:182
static AbstractNoPIOClassDescription< FFVTVertex > initFFVTVertex
Describe an abstract base class with persistent data.
Definition: FFVTVertex.h:195
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
Complex evaluate(Energy2 q2, const SpinorWaveFunction &sp1, const SpinorBarWaveFunction &sbar2, const VectorWaveFunction &vec3, const TensorWaveFunction &ten4)
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
void right(Complex in)
Set right.
Definition: FFVTVertex.h:187
static void Init()
Standard Init function used to initialize the interfaces.
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
Complex left_
Left coupling.
Definition: FFVTVertex.h:207
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
The AbstractFFVTVertex class is the base class for all fermion-fermion-vector-tensor interactions in ...