|
|
|||
File indexing completed on 2026-08-06 09:38:23
0001 // -*- C++ -*- 0002 // 0003 // FFVTVertex.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_FFVTVertex_H 0010 #define ThePEG_FFVTVertex_H 0011 // 0012 // This is the declaration of the FFVTVertex class. 0013 // 0014 #include "ThePEG/Helicity/Vertex/AbstractFFVTVertex.h" 0015 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h" 0016 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h" 0017 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h" 0018 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h" 0019 #include "FFVTVertex.fh" 0020 0021 namespace ThePEG { 0022 namespace Helicity { 0023 0024 /** \ingroup Helicity 0025 * 0026 * The FFVTVertex class is the implementation of the 0027 * fermion-fermion--vector-tensor vertex. 0028 * It inherits from the AbstractFFVTVertex class for the storage of the particles 0029 * interacting at the vertex and implements the helicity amplitude calculations. 0030 * 0031 * All implementations of this vertex should inherit from it and implement the 0032 * virtual setCoupling member. 0033 * 0034 * The form of the vertex is 0035 * \f[\frac{ig\kappa}4t^a_{nm}\bar{f_2}(C_{\mu\nu,\rho\sigma}-g_{\mu\nu}g_{\rho\sigma}) 0036 * \gamma^\sigma f_1\epsilon_{3\rho}\epsilon_4^{\mu\nu}\f] 0037 * where 0038 * -\f$C_{\mu\nu,\rho\sigma}=g_{\mu\rho}g_{\nu\sigma}+g_{\mu\sigma}g_{\nu\rho} 0039 * -g_{\mu\nu}g_{\rho\sigma}\f$. 0040 * 0041 * @see AbstractFFVTVertex 0042 */ 0043 class FFVTVertex: public AbstractFFVTVertex { 0044 0045 public: 0046 0047 /** 0048 * Default constructor 0049 */ 0050 FFVTVertex() : left_(1.), right_(1.) {} 0051 0052 /** 0053 * Standard Init function used to initialize the interfaces. 0054 */ 0055 static void Init(); 0056 0057 public: 0058 0059 /** 0060 * Members to calculate the helicity amplitude expressions for vertices 0061 * and off-shell particles. 0062 */ 0063 //@{ 0064 /** 0065 * Evalulate the vertex. 0066 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0067 * @param sp1 The wavefunction for the ferimon. 0068 * @param sbar2 The wavefunction for the antifermion. 0069 * @param vec3 The wavefunction for the vector. 0070 * @param ten4 The wavefunction for the tensor. 0071 */ 0072 Complex evaluate(Energy2 q2,const SpinorWaveFunction & sp1, 0073 const SpinorBarWaveFunction & sbar2, 0074 const VectorWaveFunction & vec3, const TensorWaveFunction & ten4); 0075 //@} 0076 0077 /** 0078 * Set coupling methods 0079 */ 0080 //@{ 0081 /** 0082 * Dummy for a three point interaction. 0083 */ 0084 virtual void setCoupling(Energy2,tcPDPtr,tcPDPtr,tcPDPtr) { 0085 assert(false); 0086 } 0087 0088 /** 0089 * Calculate the couplings for a four point interaction. 0090 * This method is virtual and must be implemented in 0091 * classes inheriting from this. 0092 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0093 * @param part1 The ParticleData pointer for the first particle. 0094 * @param part2 The ParticleData pointer for the second particle. 0095 * @param part3 The ParticleData pointer for the third particle. 0096 * @param part4 The ParticleData pointer for the fourth particle. 0097 */ 0098 virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3, 0099 tcPDPtr part4)=0; 0100 //@} 0101 0102 /** 0103 * Left and right couplings 0104 */ 0105 //@{ 0106 /** 0107 * Get left 0108 */ 0109 Complex left() const {return left_;} 0110 0111 /** 0112 * Set left 0113 */ 0114 void left(Complex in) {left_ = in;} 0115 0116 /** 0117 * Get right 0118 */ 0119 Complex right() const {return right_;} 0120 0121 /** 0122 * Set right 0123 */ 0124 void right(Complex in) {right_ = in;} 0125 //@} 0126 0127 private: 0128 0129 /** 0130 * Private and non-existent assignment operator. 0131 */ 0132 FFVTVertex & operator=(const FFVTVertex &) = delete; 0133 0134 private: 0135 0136 /** 0137 * Left coupling 0138 */ 0139 Complex left_; 0140 0141 /** 0142 * Right coupling 0143 */ 0144 Complex right_; 0145 0146 }; 0147 } 0148 0149 } 0150 #endif /* ThePEG_FFVTVertex_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|