00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_VVSSVertex_H
00010 #define ThePEG_VVSSVertex_H
00011
00012
00013
00014 #include "ThePEG/Helicity/Vertex/AbstractVVSSVertex.h"
00015 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
00016 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
00017 #include "VVSSVertex.fh"
00018
00019 namespace ThePEG {
00020 namespace Helicity {
00021
00035 class VVSSVertex: public AbstractVVSSVertex {
00036
00037 public:
00038
00042 static void Init();
00043
00044 public:
00045
00059 Complex evaluate(Energy2 q2, const VectorWaveFunction & vec1,
00060 const VectorWaveFunction & vec2, const ScalarWaveFunction & sca3,
00061 const ScalarWaveFunction & sca4);
00062
00076 VectorWaveFunction evaluate(Energy2 q2, int iopt,tcPDPtr out,
00077 const VectorWaveFunction & vec2,
00078 const ScalarWaveFunction & sca3,
00079 const ScalarWaveFunction & sca4,
00080 Energy mass=-GeV, Energy width=-GeV);
00081
00095 ScalarWaveFunction evaluate(Energy2 q2, int iopt,tcPDPtr out,
00096 const VectorWaveFunction & vec1,
00097 const VectorWaveFunction & vec2,
00098 const ScalarWaveFunction & sca3,
00099 Energy mass=-GeV, Energy width=-GeV);
00101
00111 virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3,
00112 tcPDPtr part4)=0;
00113
00114 private:
00115
00119 static AbstractNoPIOClassDescription<VVSSVertex> initVVSSVertex;
00120
00124 VVSSVertex & operator=(const VVSSVertex &);
00125
00126 };
00127
00128 }
00129
00136 template <>
00137 struct BaseClassTrait<ThePEG::Helicity::VVSSVertex,1> {
00139 typedef ThePEG::Helicity::AbstractVVSSVertex NthBase;
00140 };
00141
00146 template <>
00147 struct ClassTraits<ThePEG::Helicity::VVSSVertex>
00148 : public ClassTraitsBase<ThePEG::Helicity::VVSSVertex> {
00149
00153 static string className() { return "ThePEG::VVSSVertex"; }
00154 };
00155
00158 }
00159
00160
00161 #endif