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 <>
224 struct BaseClassTrait<ThePEG::Helicity::FFVTVertex,1> {
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 */