00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_FFTVertex_H
00010 #define ThePEG_FFTVertex_H
00011
00012
00013
00014 #include "ThePEG/Helicity/Vertex/AbstractFFTVertex.h"
00015 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
00016 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
00017 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
00018 #include "FFTVertex.fh"
00019
00020 namespace ThePEG {
00021 namespace Helicity {
00022
00040 class FFTVertex: public AbstractFFTVertex {
00041
00042 public:
00043
00047 static void Init();
00048
00049 public:
00050
00063 Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1,
00064 const SpinorBarWaveFunction & sbar2,
00065 const TensorWaveFunction & ten3);
00066
00079 TensorWaveFunction evaluate(Energy2 q2, int iopt,tcPDPtr out,
00080 const SpinorWaveFunction & sp1,
00081 const SpinorBarWaveFunction & sbar2,
00082 Energy mass=-GeV, Energy width=-GeV);
00083
00096 SpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
00097 const SpinorWaveFunction & sp1,
00098 const TensorWaveFunction & ten3,
00099 Energy mass=-GeV, Energy width=-GeV);
00100
00113 SpinorBarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00114 const SpinorBarWaveFunction & sbar2,
00115 const TensorWaveFunction& ten3,
00116 Energy mass=-GeV, Energy width=-GeV);
00118
00127 virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3)=0;
00128
00129 private:
00130
00134 static AbstractNoPIOClassDescription<FFTVertex> initFFTVertex;
00135
00139 FFTVertex & operator=(const FFTVertex &);
00140
00141 };
00142
00143 }
00144
00151 template <>
00152 struct BaseClassTrait<ThePEG::Helicity::FFTVertex,1> {
00154 typedef ThePEG::Helicity::AbstractFFTVertex NthBase;
00155 };
00156
00161 template <>
00162 struct ClassTraits<ThePEG::Helicity::FFTVertex>
00163 : public ClassTraitsBase<ThePEG::Helicity::FFTVertex> {
00164
00168 static string className() { return "ThePEG::FFTVertex"; }
00169
00170 };
00171
00174 }
00175
00176 #endif