00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_FFVTVertex_H
00010 #define ThePEG_FFVTVertex_H
00011
00012
00013
00014 #include "ThePEG/Helicity/Vertex/AbstractFFVTVertex.h"
00015 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
00016 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
00017 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
00018 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
00019 #include "FFVTVertex.fh"
00020
00021 namespace ThePEG {
00022 namespace Helicity {
00023
00043 class FFVTVertex: public AbstractFFVTVertex {
00044
00045 public:
00046
00050 static void Init();
00051
00052 public:
00053
00067 Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1,
00068 const SpinorBarWaveFunction & sbar2,
00069 const VectorWaveFunction & vec3, const TensorWaveFunction & ten4);
00070
00084 TensorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00085 const SpinorWaveFunction & sp1,
00086 const SpinorBarWaveFunction & sbar2,
00087 const VectorWaveFunction & vec3,
00088 Energy mass=-GeV, Energy width=-GeV);
00089
00103 VectorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00104 const SpinorWaveFunction & sp1,
00105 const SpinorBarWaveFunction & sbar2,
00106 const TensorWaveFunction & ten4,
00107 Energy mass=-GeV, Energy width=-GeV);
00108
00122 SpinorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00123 const SpinorWaveFunction & sp1,
00124 const VectorWaveFunction & vec3,
00125 const TensorWaveFunction & ten4,
00126 Energy mass=-GeV, Energy width=-GeV);
00127
00141 SpinorBarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00142 const SpinorBarWaveFunction & sbar2,
00143 const VectorWaveFunction & vec3,
00144 const TensorWaveFunction & ten4,
00145 Energy mass=-GeV, Energy width=-GeV);
00147
00157 virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,
00158 tcPDPtr part3, tcPDPtr part4)=0;
00159
00160 private:
00161
00165 static AbstractNoPIOClassDescription<FFVTVertex> initFFVTVertex;
00166
00170 FFVTVertex & operator=(const FFVTVertex &);
00171
00172 };
00173 }
00174
00181 template <>
00182 struct BaseClassTrait<ThePEG::Helicity::FFVTVertex,1> {
00184 typedef ThePEG::Helicity::AbstractFFVTVertex NthBase;
00185 };
00186
00191 template <>
00192 struct ClassTraits<ThePEG::Helicity::FFVTVertex>
00193 : public ClassTraitsBase<ThePEG::Helicity::FFVTVertex> {
00194
00198 static string className() { return "ThePEG::FFVTVertex"; }
00199 };
00200
00203 }
00204
00205
00206 #endif