00001
00002 #ifndef HELICITY_AbstractFFSVertex_H
00003 #define HELICITY_AbstractFFSVertex_H
00004
00005
00006
00007
00008 #include "VertexBase.h"
00009 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
00010 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
00011 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
00012 #include "AbstractFFSVertex.fh"
00013
00014 namespace ThePEG {
00015 namespace Helicity {
00016
00021 class AbstractFFSVertex: public VertexBase {
00022
00023 public:
00024
00028 AbstractFFSVertex() : VertexBase(VertexType::FFS) {}
00029
00042 virtual Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1,
00043 const SpinorBarWaveFunction & sbar2,
00044 const ScalarWaveFunction & sca3) = 0;
00045
00058 virtual SpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
00059 const SpinorWaveFunction & sp1,
00060 const ScalarWaveFunction & sca3,
00061 Energy mass=-GeV, Energy width=-GeV) = 0;
00062
00075 virtual SpinorBarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
00076 const SpinorBarWaveFunction & sbar2,
00077 const ScalarWaveFunction & sca3,
00078 Energy mass=-GeV, Energy width=-GeV) = 0;
00079
00092 virtual ScalarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
00093 const SpinorWaveFunction & sp1,
00094 const SpinorBarWaveFunction & sbar2,
00095 Energy mass=-GeV, Energy width=-GeV) = 0;
00097
00098 public:
00099
00106 static void Init();
00107
00108 private:
00109
00114 static AbstractNoPIOClassDescription<AbstractFFSVertex> initAbstractFFSVertex;
00115
00120 AbstractFFSVertex & operator=(const AbstractFFSVertex &);
00121
00122 };
00123
00124 }
00125 }
00126
00127 #include "ThePEG/Utilities/ClassTraits.h"
00128
00129 namespace ThePEG {
00130
00135 template <>
00136 struct BaseClassTrait<Helicity::AbstractFFSVertex,1> {
00138 typedef VertexBase NthBase;
00139 };
00140
00143 template <>
00144 struct ClassTraits<Helicity::AbstractFFSVertex>
00145 : public ClassTraitsBase<Helicity::AbstractFFSVertex> {
00147 static string className() { return "Helicity::AbstractFFSVertex"; }
00148 };
00149
00152 }
00153
00154 #endif