00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_FFSVertex_H
00010 #define ThePEG_FFSVertex_H
00011
00012
00013
00014 #include "ThePEG/Helicity/Vertex/AbstractFFSVertex.h"
00015 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
00016 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
00017 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
00018 #include "FFSVertex.fh"
00019
00020 namespace ThePEG {
00021
00022 namespace Helicity{
00023
00041 class FFSVertex: public AbstractFFSVertex {
00042
00043 public:
00044
00048 static void Init();
00049
00050 public:
00051
00064 Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1,
00065 const SpinorBarWaveFunction & sbar2,
00066 const ScalarWaveFunction & sca3);
00067
00080 SpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
00081 const SpinorWaveFunction & sp1,
00082 const ScalarWaveFunction & sca3,
00083 Energy mass=-GeV, Energy width=-GeV);
00084
00097 SpinorBarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
00098 const SpinorBarWaveFunction & sbar2,
00099 const ScalarWaveFunction & sca3,
00100 Energy mass=-GeV, Energy width=-GeV);
00101
00114 ScalarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
00115 const SpinorWaveFunction & sp1,
00116 const SpinorBarWaveFunction & sbar2,
00117 Energy mass=-GeV, Energy width=-GeV);
00119
00130 virtual void setCoupling(Energy2 q2,tcPDPtr part1,
00131 tcPDPtr part2,tcPDPtr part3)=0;
00132
00140 Complex left() { return _left; }
00141
00145 Complex right() { return _right; }
00147
00148 protected:
00149
00157 void left(Complex in) { _left = in; }
00158
00162 void right(Complex in) { _right = in; }
00164
00165 private:
00166
00170 static AbstractNoPIOClassDescription<FFSVertex> initFFSVertex;
00171
00175 FFSVertex & operator=(const FFSVertex &);
00176
00177 private:
00178
00182 Complex _left;
00183
00187 Complex _right;
00188
00189 };
00190 }
00191
00198 template <>
00199 struct BaseClassTrait<ThePEG::Helicity::FFSVertex,1> {
00201 typedef ThePEG::Helicity::AbstractFFSVertex NthBase;
00202 };
00203
00208 template <>
00209 struct ClassTraits<ThePEG::Helicity::FFSVertex>
00210 : public ClassTraitsBase<ThePEG::Helicity::FFSVertex> {
00211
00215 static string className() { return "ThePEG::FFSVertex"; }
00216 };
00217
00220 }
00221
00222
00223 #endif