|
|
|||
File indexing completed on 2026-08-06 09:38:23
0001 // -*- C++ -*- 0002 // 0003 // RFSVertex.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_RFSVertex_H 0010 #define ThePEG_RFSVertex_H 0011 // 0012 // This is the declaration of the RFSVertex class. 0013 0014 #include "ThePEG/Helicity/Vertex/AbstractRFSVertex.h" 0015 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h" 0016 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h" 0017 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h" 0018 #include "RFSVertex.fh" 0019 0020 namespace ThePEG { 0021 0022 namespace Helicity{ 0023 0024 /** \ingroup Helicity 0025 * 0026 * The RFSVertex class is the implementation of the interact of a 0027 * scalar boson and a spin-3/2 fermion-antifermion pair. It inherits from the AbstractRFSVertex 0028 * class for storage of the particles interacting at the vertex and implements 0029 * the helicity calculations. 0030 * 0031 * Implementations of specific interactions should inherit from this and implement 0032 * the virtual setCoupling member. 0033 * 0034 * The form of the vertex is 0035 * \f[ic\bar{f_2}_\mu p_{1}^\mu a^\lambda P_\lambda f_1\phi_3\f] 0036 * where \f$a^\pm\f$ are the right and left couplings and \f$P_\pm=(1\pm\gamma_5)\f$ 0037 * are the chirality projection operators. 0038 * 0039 * @see AbstractRFSVertex 0040 */ 0041 class RFSVertex: public AbstractRFSVertex { 0042 0043 public: 0044 0045 /** 0046 * Standard Init function used to initialize the interfaces. 0047 */ 0048 static void Init(); 0049 0050 public: 0051 0052 /** 0053 * Members to calculate the helicity amplitude expressions for vertices 0054 * and off-shell particles. 0055 */ 0056 //@{ 0057 /** 0058 * Evalulate the vertex. 0059 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0060 * @param sp1 The wavefunction for the RS ferimon. 0061 * @param sbar2 The wavefunction for the antifermion. 0062 * @param sca3 The wavefunction for the scalar. 0063 */ 0064 Complex evaluate(Energy2 q2,const RSSpinorWaveFunction & sp1, 0065 const SpinorBarWaveFunction & sbar2, 0066 const ScalarWaveFunction & sca3); 0067 0068 /** 0069 * Evalulate the vertex. 0070 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0071 * @param sp1 The wavefunction for the ferimon. 0072 * @param sbar2 The wavefunction for the RS antifermion. 0073 * @param sca3 The wavefunction for the scalar. 0074 */ 0075 Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1, 0076 const RSSpinorBarWaveFunction & sbar2, 0077 const ScalarWaveFunction & sca3); 0078 0079 /** 0080 * Evaluate the off-shell spinor coming from the vertex. 0081 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0082 * @param iopt Option of the shape of the Breit-Wigner for the off-shell spinor. 0083 * @param out The ParticleData pointer for the off-shell spinor. 0084 * @param sp1 The wavefunction for the ferimon. 0085 * @param sca3 The wavefunction for the scalar. 0086 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0087 * object 0088 * @param width The width of the off-shell particle if not taken from the ParticleData 0089 * object 0090 */ 0091 SpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out, 0092 const RSSpinorWaveFunction & sp1, 0093 const ScalarWaveFunction & sca3, 0094 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0095 0096 /** 0097 * Evaluate the off-shell spinor coming from the vertex. 0098 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0099 * @param iopt Option of the shape of the Breit-Wigner for the off-shell spinor. 0100 * @param out The ParticleData pointer for the off-shell spinor. 0101 * @param sp1 The wavefunction for the ferimon. 0102 * @param sca3 The wavefunction for the scalar. 0103 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0104 * object 0105 * @param width The width of the off-shell particle if not taken from the ParticleData 0106 * object 0107 */ 0108 RSSpinorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out, 0109 const SpinorWaveFunction & sp1, 0110 const ScalarWaveFunction & sca3, 0111 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0112 0113 /** 0114 * Evaluate the off-shell barred spinor coming from the vertex. 0115 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0116 * @param iopt Option of the shape of the Breit-Wigner for the off-shell barred spinor. 0117 * @param out The ParticleData pointer for the off-shell barred spinor. 0118 * @param sbar2 The wavefunction for the antifermion. 0119 * @param sca3 The wavefunction for the scalar. 0120 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0121 * object 0122 * @param width The width of the off-shell particle if not taken from the ParticleData 0123 * object 0124 */ 0125 SpinorBarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out, 0126 const RSSpinorBarWaveFunction & sbar2, 0127 const ScalarWaveFunction & sca3, 0128 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0129 0130 /** 0131 * Evaluate the off-shell barred spinor coming from the vertex. 0132 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0133 * @param iopt Option of the shape of the Breit-Wigner for the off-shell barred spinor. 0134 * @param out The ParticleData pointer for the off-shell barred spinor. 0135 * @param sbar2 The wavefunction for the antifermion. 0136 * @param sca3 The wavefunction for the scalar. 0137 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0138 * object 0139 * @param width The width of the off-shell particle if not taken from the ParticleData 0140 * object 0141 */ 0142 RSSpinorBarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out, 0143 const SpinorBarWaveFunction & sbar2, 0144 const ScalarWaveFunction & sca3, 0145 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0146 0147 /** 0148 * Evaluate the off-shell scalar coming from the vertex. 0149 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0150 * @param iopt Option of the shape of the Breit-Wigner for the off-shell scalar. 0151 * @param out The ParticleData pointer for the off-shell scalar. 0152 * @param sp1 The wavefunction for the RS ferimon. 0153 * @param sbar2 The wavefunction for the antifermion. 0154 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0155 * object 0156 * @param width The width of the off-shell particle if not taken from the ParticleData 0157 * object 0158 */ 0159 ScalarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out, 0160 const RSSpinorWaveFunction & sp1, 0161 const SpinorBarWaveFunction & sbar2, 0162 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0163 0164 /** 0165 * Evaluate the off-shell scalar coming from the vertex. 0166 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0167 * @param iopt Option of the shape of the Breit-Wigner for the off-shell scalar. 0168 * @param out The ParticleData pointer for the off-shell scalar. 0169 * @param sp1 The wavefunction for the ferimon. 0170 * @param sbar2 The wavefunction for the RS antifermion. 0171 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0172 * object 0173 * @param width The width of the off-shell particle if not taken from the ParticleData 0174 * object 0175 */ 0176 ScalarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out, 0177 const SpinorWaveFunction & sp1, 0178 const RSSpinorBarWaveFunction & sbar2, 0179 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0180 //@} 0181 0182 /** 0183 * Set coupling methods 0184 */ 0185 //@{ 0186 /** 0187 * Calculate the couplings for a three point interaction. 0188 * This method is virtual and must be implemented in 0189 * classes inheriting from this. 0190 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0191 * @param part1 The ParticleData pointer for the first particle. 0192 * @param part2 The ParticleData pointer for the second particle. 0193 * @param part3 The ParticleData pointer for the third particle. 0194 */ 0195 virtual void setCoupling(Energy2 q2,tcPDPtr part1, 0196 tcPDPtr part2,tcPDPtr part3)=0; 0197 0198 /** 0199 * Dummy setCouplings for a four point interaction 0200 * This method is virtual and must be implemented in 0201 * classes inheriting from this. 0202 */ 0203 virtual void setCoupling(Energy2,tcPDPtr,tcPDPtr,tcPDPtr,tcPDPtr) { 0204 assert(false); 0205 } 0206 //@} 0207 0208 /** 0209 * Get the couplings 0210 */ 0211 //@{ 0212 /** 0213 * Get the left coupling. 0214 */ 0215 Complex left() { return _left; } 0216 0217 /** 0218 * Get the right coupling. 0219 */ 0220 Complex right() { return _right; } 0221 //@} 0222 0223 protected: 0224 0225 /** 0226 * Set the couplings 0227 */ 0228 //@{ 0229 /** 0230 * Set the left coupling. 0231 */ 0232 void left(Complex in) { _left = in; } 0233 0234 /** 0235 * Set the right coupling. 0236 */ 0237 void right(Complex in) { _right = in; } 0238 //@} 0239 0240 private: 0241 0242 /** 0243 * Private and non-existent assignment operator. 0244 */ 0245 RFSVertex & operator=(const RFSVertex &) = delete; 0246 0247 private: 0248 0249 /** 0250 * Storage of the left coupling. 0251 */ 0252 Complex _left; 0253 0254 /** 0255 * Storage of the right coupling. 0256 */ 0257 Complex _right; 0258 0259 }; 0260 } 0261 0262 } 0263 #endif /* ThePEG_RFSVertex_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|