00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_VVTVertex_H
00010 #define ThePEG_VVTVertex_H
00011
00012
00013
00014 #include "ThePEG/Helicity/Vertex/AbstractVVTVertex.h"
00015 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
00016 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
00017 #include "VVTVertex.fh"
00018
00019 namespace ThePEG {
00020 namespace Helicity {
00021
00046 class VVTVertex: public AbstractVVTVertex {
00047
00048 public:
00049
00053 static void Init();
00054
00055 public:
00056
00069 Complex evaluate(Energy2 q2,const VectorWaveFunction & vec1,
00070 const VectorWaveFunction & vec2, const TensorWaveFunction & ten3);
00071
00084 TensorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00085 const VectorWaveFunction & vec1,
00086 const VectorWaveFunction & vec2,
00087 Energy mass=-GeV, Energy width=-GeV);
00088
00101 VectorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00102 const VectorWaveFunction & vec1,
00103 const TensorWaveFunction & ten3,
00104 Energy mass=-GeV, Energy width=-GeV);
00106
00115 virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3)=0;
00116
00117 private:
00118
00122 static AbstractNoPIOClassDescription<VVTVertex> initVVTVertex;
00123
00127 VVTVertex & operator=(const VVTVertex &);
00128
00129 };
00130
00131 }
00132
00139 template <>
00140 struct BaseClassTrait<ThePEG::Helicity::VVTVertex,1> {
00142 typedef ThePEG::Helicity::AbstractVVTVertex NthBase;
00143 };
00144
00149 template <>
00150 struct ClassTraits<ThePEG::Helicity::VVTVertex>
00151 : public ClassTraitsBase<ThePEG::Helicity::VVTVertex> {
00152
00156 static string className() { return "ThePEG::VVTVertex"; }
00157 };
00158
00161 }
00162
00163
00164 #endif