00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_SSTVertex_H
00010 #define ThePEG_SSTVertex_H
00011
00012
00013
00014 #include "ThePEG/Helicity/Vertex/AbstractSSTVertex.h"
00015 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
00016 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
00017 #include "SSTVertex.fh"
00018
00019 namespace ThePEG {
00020 namespace Helicity {
00021
00041 class SSTVertex: public AbstractSSTVertex {
00042
00043 public:
00044
00048 static void Init();
00049
00050 public:
00051
00064 Complex evaluate(Energy2 q2, const ScalarWaveFunction & sca1,
00065 const ScalarWaveFunction & sca2, const TensorWaveFunction & ten3);
00066
00079 ScalarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
00080 const ScalarWaveFunction & sca1,
00081 const TensorWaveFunction & ten3,
00082 Energy mass=-GeV, Energy width=-GeV);
00083
00096 TensorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
00097 const ScalarWaveFunction & sca1,
00098 const ScalarWaveFunction & sca2,
00099 Energy mass=-GeV, Energy width=-GeV);
00101
00110 virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3)=0;
00111
00112 private:
00113
00117 static AbstractNoPIOClassDescription<SSTVertex> initSSTVertex;
00118
00122 SSTVertex & operator=(const SSTVertex &);
00123
00124 };
00125
00126 }
00127
00134 template <>
00135 struct BaseClassTrait<ThePEG::Helicity::SSTVertex,1> {
00137 typedef ThePEG::Helicity::AbstractSSTVertex NthBase;
00138 };
00139
00144 template <>
00145 struct ClassTraits<ThePEG::Helicity::SSTVertex>
00146 : public ClassTraitsBase<ThePEG::Helicity::SSTVertex> {
00147
00151 static string className() { return "ThePEG::SSTVertex"; }
00152 };
00153
00156 }
00157
00158
00159 #endif