00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_VSSVertex_H
00010 #define ThePEG_VSSVertex_H
00011
00012
00013
00014 #include "ThePEG/Helicity/Vertex/AbstractVSSVertex.h"
00015 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
00016 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
00017 #include "VSSVertex.fh"
00018
00019 namespace ThePEG {
00020 namespace Helicity {
00021
00036 class VSSVertex: public AbstractVSSVertex {
00037
00038 public:
00039
00043 static void Init();
00044
00045 public:
00046
00059 Complex evaluate(Energy2 q2,const VectorWaveFunction & vec1,
00060 const ScalarWaveFunction & sca2, const ScalarWaveFunction & sca3);
00061
00074 VectorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
00075 const ScalarWaveFunction & sca2,
00076 const ScalarWaveFunction & sca3,
00077 Energy mass=-GeV, Energy width=-GeV);
00078
00091 ScalarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00092 const VectorWaveFunction & vec1,
00093 const ScalarWaveFunction & sca2,
00094 Energy mass=-GeV, Energy width=-GeV);
00096
00105 virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3)=0;
00106
00107 private:
00108
00112 static AbstractNoPIOClassDescription<VSSVertex> initVSSVertex;
00113
00117 VSSVertex & operator=(const VSSVertex &);
00118
00119 };
00120
00121 }
00122
00129 template <>
00130 struct BaseClassTrait<ThePEG::Helicity::VSSVertex,1> {
00132 typedef ThePEG::Helicity::AbstractVSSVertex NthBase;
00133 };
00134
00139 template <>
00140 struct ClassTraits<ThePEG::Helicity::VSSVertex>
00141 : public ClassTraitsBase<ThePEG::Helicity::VSSVertex> {
00142
00146 static string className() { return "ThePEG::VSSVertex"; }
00147 };
00148
00151 }
00152
00153 #endif