00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_SSSSVertex_H
00010 #define ThePEG_SSSSVertex_H
00011
00012
00013
00014 #include "ThePEG/Helicity/Vertex/AbstractSSSVertex.h"
00015 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
00016 #include "SSSSVertex.fh"
00017
00018 namespace ThePEG {
00019 namespace Helicity {
00020
00036 class SSSSVertex: public AbstractSSSVertex {
00037
00038 public:
00039
00043 static void Init();
00044
00045 public:
00046
00060 Complex evaluate(Energy2 q2, const ScalarWaveFunction & sca1,
00061 const ScalarWaveFunction & sca2, const ScalarWaveFunction & sca3,
00062 const ScalarWaveFunction & sca4);
00063
00073 ScalarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00074 const ScalarWaveFunction & sca1,
00075 const ScalarWaveFunction & sca2,
00076 const ScalarWaveFunction & sca3);
00078
00088 virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,
00089 tcPDPtr part3,tcPDPtr part4)=0;
00090
00091 private:
00092
00096 static AbstractNoPIOClassDescription<SSSSVertex> initSSSSVertex;
00097
00101 SSSSVertex & operator=(const SSSSVertex &);
00102
00103 };
00104 }
00105
00112 template <>
00113 struct BaseClassTrait<ThePEG::Helicity::SSSSVertex,1> {
00115 typedef ThePEG::Helicity::AbstractSSSVertex NthBase;
00116 };
00117
00122 template <>
00123 struct ClassTraits<ThePEG::Helicity::SSSSVertex>
00124 : public ClassTraitsBase<ThePEG::Helicity::SSSSVertex> {
00125
00129 static string className() { return "ThePEG::SSSSVertex"; }
00130 };
00131
00134 }
00135
00136
00137 #endif