00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_VVVTVertex_H
00010 #define ThePEG_VVVTVertex_H
00011
00012
00013
00014 #include "ThePEG/Helicity/Vertex/AbstractVVVTVertex.h"
00015 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
00016 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
00017 #include "VVVTVertex.fh"
00018
00019 namespace ThePEG {
00020 namespace Helicity {
00021
00051 class VVVTVertex: public AbstractVVVTVertex {
00052
00053 public:
00054
00058 static void Init();
00059
00060 public:
00061
00075 Complex evaluate(Energy2 q2,const VectorWaveFunction & vec1,
00076 const VectorWaveFunction & vec2,
00077 const VectorWaveFunction & vec3, const TensorWaveFunction & ten4);
00078
00092 TensorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00093 const VectorWaveFunction & vec1,
00094 const VectorWaveFunction & vec2,
00095 const VectorWaveFunction & vec3,
00096 Energy mass=-GeV, Energy width=-GeV);
00097
00111 VectorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00112 const VectorWaveFunction & vec1,
00113 const VectorWaveFunction & vec2,
00114 const TensorWaveFunction & ten4,
00115 Energy mass=-GeV, Energy width=-GeV);
00117
00127 virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,
00128 tcPDPtr part3, tcPDPtr part4)=0;
00129
00130 private:
00131
00135 static AbstractNoPIOClassDescription<VVVTVertex> initVVVTVertex;
00136
00140 VVVTVertex & operator=(const VVVTVertex &);
00141
00142 };
00143
00144 }
00145
00152 template <>
00153 struct BaseClassTrait<ThePEG::Helicity::VVVTVertex,1> {
00155 typedef ThePEG::Helicity::AbstractVVVTVertex NthBase;
00156 };
00157
00162 template <>
00163 struct ClassTraits<ThePEG::Helicity::VVVTVertex>
00164 : public ClassTraitsBase<ThePEG::Helicity::VVVTVertex> {
00165
00169 static string className() { return "ThePEG::VVVTVertex"; }
00170 };
00171
00174 }
00175
00176 #endif