|
|
|||
File indexing completed on 2026-08-06 09:38:23
0001 // -*- C++ -*- 0002 #ifndef HELICITY_AbstractFFTVertex_H 0003 #define HELICITY_AbstractFFTVertex_H 0004 // 0005 // This is the declaration of the AbstractFFTVertex class. 0006 // 0007 0008 #include "VertexBase.h" 0009 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h" 0010 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h" 0011 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h" 0012 #include "AbstractFFTVertex.fh" 0013 0014 namespace ThePEG { 0015 namespace Helicity { 0016 0017 /** 0018 * The AbstractFFTVertex class is the base class for all fermion-fermion-tensor 0019 * interactions in ThePEG 0020 */ 0021 class AbstractFFTVertex: public VertexBase { 0022 0023 public: 0024 0025 0026 /** 0027 * Default constructor 0028 */ 0029 AbstractFFTVertex() : VertexBase(VertexType::FFT) {} 0030 0031 /** 0032 * Members to calculate the helicity amplitude expressions for vertices 0033 * and off-shell particles. 0034 */ 0035 //@{ 0036 /** 0037 * Evalulate the vertex. 0038 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0039 * @param sp1 The wavefunction for the ferimon. 0040 * @param sbar2 The wavefunction for the antifermion. 0041 * @param ten3 The wavefunction for the tensor. 0042 */ 0043 virtual Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1, 0044 const SpinorBarWaveFunction & sbar2, 0045 const TensorWaveFunction & ten3) = 0; 0046 0047 /** 0048 * Evaluate the off-shell tensor coming from the vertex. 0049 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0050 * @param iopt Option of the shape of the Breit-Wigner for the off-shell tensor. 0051 * @param out The ParticleData pointer for the off-shell tensor. 0052 * @param sp1 The wavefunction for the ferimon. 0053 * @param sbar2 The wavefunction for the antifermion. 0054 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0055 * object 0056 * @param width The width of the off-shell particle if not taken from the ParticleData 0057 * object 0058 */ 0059 virtual TensorWaveFunction evaluate(Energy2 q2, int iopt,tcPDPtr out, 0060 const SpinorWaveFunction & sp1, 0061 const SpinorBarWaveFunction & sbar2, 0062 complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0; 0063 0064 /** 0065 * Evaluate the off-shell spinor coming from the vertex. 0066 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0067 * @param iopt Option of the shape of the Breit-Wigner for the off-shell spinor. 0068 * @param out The ParticleData pointer for the off-shell spinor. 0069 * @param sp1 The wavefunction for the ferimon. 0070 * @param ten3 The wavefunction for the tensor. 0071 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0072 * object 0073 * @param width The width of the off-shell particle if not taken from the ParticleData 0074 * object 0075 */ 0076 virtual SpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out, 0077 const SpinorWaveFunction & sp1, 0078 const TensorWaveFunction & ten3, 0079 complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0; 0080 0081 /** 0082 * Evaluate the off-shell barred spinor coming from the vertex. 0083 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0084 * @param iopt Option of the shape of the Breit-Wigner for the off-shell barred spinor. 0085 * @param out The ParticleData pointer for the off-shell barred spinor. 0086 * @param sbar2 The wavefunction for the antifermion. 0087 * @param ten3 The wavefunction for the tensor. 0088 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0089 * object 0090 * @param width The width of the off-shell particle if not taken from the ParticleData 0091 * object 0092 */ 0093 virtual SpinorBarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out, 0094 const SpinorBarWaveFunction & sbar2, 0095 const TensorWaveFunction& ten3, 0096 complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0; 0097 //@} 0098 0099 public: 0100 0101 /** 0102 * The standard Init function used to initialize the interfaces. 0103 * Called exactly once for each class by the class description system 0104 * before the main function starts or 0105 * when this class is dynamically loaded. 0106 */ 0107 static void Init(); 0108 0109 private: 0110 0111 /** 0112 * The assignment operator is private and must never be called. 0113 * In fact, it should not even be implemented. 0114 */ 0115 AbstractFFTVertex & operator=(const AbstractFFTVertex &) = delete; 0116 0117 }; 0118 0119 } 0120 } 0121 0122 0123 namespace ThePEG { 0124 0125 } 0126 #endif /* HELICITY_AbstractFFTVertex_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|