00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_SSSVertex_H
00010 #define ThePEG_SSSVertex_H
00011
00012
00013
00014 #include "ThePEG/Helicity/Vertex/AbstractSSSVertex.h"
00015 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
00016 #include "SSSVertex.fh"
00017
00018 namespace ThePEG {
00019 namespace Helicity {
00020
00035 class SSSVertex: public AbstractSSSVertex {
00036
00037 public:
00038
00042 static void Init();
00043
00044 public:
00045
00058 Complex evaluate(Energy2 q2,const ScalarWaveFunction & sca1,
00059 const ScalarWaveFunction & sca2,const ScalarWaveFunction & sca3);
00060
00073 ScalarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00074 const ScalarWaveFunction & sca1,
00075 const ScalarWaveFunction & sca2,
00076 Energy mass=-GeV, Energy width=-GeV);
00078
00087 virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3)=0;
00088
00089 private:
00090
00094 static AbstractNoPIOClassDescription<SSSVertex> initSSSVertex;
00095
00099 SSSVertex & operator=(const SSSVertex &);
00100
00101 };
00102
00103 }
00104
00111 template <>
00112 struct BaseClassTrait<ThePEG::Helicity::SSSVertex,1> {
00114 typedef ThePEG::Helicity::AbstractSSSVertex NthBase;
00115 };
00116
00121 template <>
00122 struct ClassTraits<ThePEG::Helicity::SSSVertex>
00123 : public ClassTraitsBase<ThePEG::Helicity::SSSVertex> {
00124
00128 static string className() { return "ThePEG::SSSVertex"; }
00129 };
00130
00133 }
00134
00135
00136 #endif