|
|
|||
File indexing completed on 2026-08-06 09:38:23
0001 // -*- C++ -*- 0002 // 0003 // FFTVertex.h is a part of ThePEG - Toolkit for HEP Event Generation 0004 // Copyright (C) 2003-2019 Peter Richardson, Leif Lonnblad 0005 // 0006 // ThePEG is licenced under version 3 of the GPL, see COPYING for details. 0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 0008 // 0009 #ifndef ThePEG_FFTVertex_H 0010 #define ThePEG_FFTVertex_H 0011 // 0012 // This is the declaration of the FFTVertex class. 0013 // 0014 #include "ThePEG/Helicity/Vertex/AbstractFFTVertex.h" 0015 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h" 0016 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h" 0017 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h" 0018 #include "FFTVertex.fh" 0019 0020 namespace ThePEG { 0021 namespace Helicity { 0022 0023 /** \ingroup Helicity 0024 * 0025 * The FFTVertex class is the implementation of the fermion-fermion-tensor 0026 * vertex. It inherits from the AbstractFFTVertex class for the storage of the particles 0027 * interacting at the vertex and implements the helicity amplitude calculations. 0028 * 0029 * All implementations of this vertex should inherit from it and implement the 0030 * virtual setCoupling member. 0031 * 0032 * The vertex has the form 0033 * \f[-\frac{i\kappa}8\bar{f_2}\left[ 0034 * \gamma_\mu(k_1-k_2)_\nu+\gamma_\nu(k_1-k_2)_\mu 0035 * -2g_{\mu\nu}(k\!\!\!\!\!\not\,\,\,_1-k\!\!\!\!\!\not\,\,\,_2)+4g_{\mu\nu}m_{f} 0036 * \right]f_1\epsilon^{\mu\nu}_3\f] 0037 * 0038 * @see AbstractFFTVertex 0039 */ 0040 class FFTVertex: public AbstractFFTVertex { 0041 0042 public: 0043 0044 /** 0045 * Standard Init function used to initialize the interfaces. 0046 */ 0047 static void Init(); 0048 0049 public: 0050 0051 /** 0052 * Members to calculate the helicity amplitude expressions for vertices 0053 * and off-shell particles. 0054 */ 0055 //@{ 0056 /** 0057 * Evalulate the vertex. 0058 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0059 * @param sp1 The wavefunction for the ferimon. 0060 * @param sbar2 The wavefunction for the antifermion. 0061 * @param ten3 The wavefunction for the tensor. 0062 */ 0063 Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1, 0064 const SpinorBarWaveFunction & sbar2, 0065 const TensorWaveFunction & ten3); 0066 0067 /** 0068 * Evaluate the off-shell tensor coming from the vertex. 0069 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0070 * @param iopt Option of the shape of the Breit-Wigner for the off-shell tensor. 0071 * @param out The ParticleData pointer for the off-shell tensor. 0072 * @param sp1 The wavefunction for the ferimon. 0073 * @param sbar2 The wavefunction for the antifermion. 0074 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0075 * object 0076 * @param width The width of the off-shell particle if not taken from the ParticleData 0077 * object 0078 */ 0079 TensorWaveFunction evaluate(Energy2 q2, int iopt,tcPDPtr out, 0080 const SpinorWaveFunction & sp1, 0081 const SpinorBarWaveFunction & sbar2, 0082 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0083 0084 /** 0085 * Evaluate the off-shell spinor coming from the vertex. 0086 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0087 * @param iopt Option of the shape of the Breit-Wigner for the off-shell spinor. 0088 * @param out The ParticleData pointer for the off-shell spinor. 0089 * @param sp1 The wavefunction for the ferimon. 0090 * @param ten3 The wavefunction for the tensor. 0091 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0092 * object 0093 * @param width The width of the off-shell particle if not taken from the ParticleData 0094 * object 0095 */ 0096 SpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out, 0097 const SpinorWaveFunction & sp1, 0098 const TensorWaveFunction & ten3, 0099 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0100 0101 /** 0102 * Evaluate the off-shell barred spinor coming from the vertex. 0103 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0104 * @param iopt Option of the shape of the Breit-Wigner for the off-shell barred spinor. 0105 * @param out The ParticleData pointer for the off-shell barred spinor. 0106 * @param sbar2 The wavefunction for the antifermion. 0107 * @param ten3 The wavefunction for the tensor. 0108 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0109 * object 0110 * @param width The width of the off-shell particle if not taken from the ParticleData 0111 * object 0112 */ 0113 SpinorBarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out, 0114 const SpinorBarWaveFunction & sbar2, 0115 const TensorWaveFunction& ten3, 0116 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0117 //@} 0118 0119 /** 0120 * Set coupling methods 0121 */ 0122 //@{ 0123 /** 0124 * Calculate the couplings for a three point interaction. 0125 * This method is virtual and must be implemented in 0126 * classes inheriting from this. 0127 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0128 * @param part1 The ParticleData pointer for the first particle. 0129 * @param part2 The ParticleData pointer for the second particle. 0130 * @param part3 The ParticleData pointer for the third particle. 0131 */ 0132 virtual void setCoupling(Energy2 q2,tcPDPtr part1, 0133 tcPDPtr part2,tcPDPtr part3)=0; 0134 0135 /** 0136 * Dummy setCouplings for a four point interaction 0137 * This method is virtual and must be implemented in 0138 * classes inheriting from this. 0139 */ 0140 virtual void setCoupling(Energy2,tcPDPtr,tcPDPtr,tcPDPtr,tcPDPtr) { 0141 assert(false); 0142 } 0143 //@} 0144 0145 private: 0146 0147 /** 0148 * Private and non-existent assignment operator. 0149 */ 0150 FFTVertex & operator=(const FFTVertex &) = delete; 0151 0152 }; 0153 0154 } 0155 0156 } 0157 #endif /* ThePEG_FFTVertex_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|