|
|
|||
File indexing completed on 2026-08-06 09:38:23
0001 // -*- C++ -*- 0002 // 0003 // VVTVertex.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_VVTVertex_H 0010 #define ThePEG_VVTVertex_H 0011 // 0012 // This is the declaration of the VVTVertex class. 0013 0014 #include "ThePEG/Helicity/Vertex/AbstractVVTVertex.h" 0015 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h" 0016 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h" 0017 #include "VVTVertex.fh" 0018 0019 namespace ThePEG { 0020 namespace Helicity { 0021 0022 /** \ingroup Helicity 0023 * 0024 * The VVTVertex class is the implementation of the 0025 * vector-vector-tensor vertex. 0026 * It inherits from the AbstractVVTVertex 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[ 0034 * \left[m^2_v+k_1\cdot k_2)C_{\mu\nu,\rho\sigma}+D_{\mu\nu,\rho\sigma}\right] 0035 * \epsilon_1^\rho\epsilon_2^\sigma \epsilon_3^{\mu\nu} 0036 * \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 * - \f$D_{\mu\nu,\rho\sigma}= 0041 * g_{\mu\nu}k_{1\sigma}k_{2\rho}-\left[g_{\mu\sigma}k_{1\nu}k_{2\rho}+g_{\mu\rho}k_{1\sigma}k_{2\nu}-g_{\rho\sigma}k_{1\mu}k_{2\nu}+(\mu\leftrightarrow\nu)\right] 0042 * \f$ 0043 * 0044 * @see AbstractVVTVertex 0045 */ 0046 class VVTVertex: public AbstractVVTVertex { 0047 0048 public: 0049 0050 /** 0051 * Standard Init function used to initialize the interfaces. 0052 */ 0053 static void Init(); 0054 0055 public: 0056 0057 /** 0058 * Members to calculate the helicity amplitude expressions for vertices 0059 * and off-shell particles. 0060 */ 0061 //@{ 0062 /** 0063 * Evalulate the vertex. 0064 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0065 * @param vec1 The wavefunction for the first vector. 0066 * @param vec2 The wavefunction for the second vector. 0067 * @param ten3 The wavefunction for the tensor. 0068 * @param vmass The mass of the vector boson. 0069 */ 0070 Complex evaluate(Energy2 q2,const VectorWaveFunction & vec1, 0071 const VectorWaveFunction & vec2, 0072 const TensorWaveFunction & ten3, 0073 Energy vmass=-GeV); 0074 0075 /** 0076 * Evaluate the off-shell tensor coming from the vertex. 0077 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0078 * @param iopt Option of the shape of the Breit-Wigner for the off-shell tensor. 0079 * @param out The ParticleData pointer for the off-shell tensor. 0080 * @param vec1 The wavefunction for the first vector. 0081 * @param vec2 The wavefunction for the second vector. 0082 * @param vmass The mass of the vector boson. 0083 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0084 * object 0085 * @param width The width of the off-shell particle if not taken from the ParticleData 0086 * object 0087 */ 0088 TensorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out, 0089 const VectorWaveFunction & vec1, 0090 const VectorWaveFunction & vec2, 0091 Energy vmass=-GeV, 0092 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0093 0094 /** 0095 * Evaluate the off-shell vector coming from the vertex. 0096 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0097 * @param iopt Option of the shape of the Breit-Wigner for the off-shell vector. 0098 * @param out The ParticleData pointer for the off-shell vector. 0099 * @param vec1 The wavefunction for the first vector. 0100 * @param ten3 The wavefunction for the tensor. 0101 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0102 * object 0103 * @param width The width of the off-shell particle if not taken from the ParticleData 0104 * object 0105 */ 0106 VectorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out, 0107 const VectorWaveFunction & vec1, 0108 const TensorWaveFunction & ten3, 0109 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0110 //@} 0111 0112 /** 0113 * Set coupling methods 0114 */ 0115 //@{ 0116 /** 0117 * Calculate the couplings for a three point interaction. 0118 * This method is virtual and must be implemented in 0119 * classes inheriting from this. 0120 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0121 * @param part1 The ParticleData pointer for the first particle. 0122 * @param part2 The ParticleData pointer for the second particle. 0123 * @param part3 The ParticleData pointer for the third particle. 0124 */ 0125 virtual void setCoupling(Energy2 q2,tcPDPtr part1, 0126 tcPDPtr part2,tcPDPtr part3)=0; 0127 0128 /** 0129 * Dummy setCouplings for a four point interaction 0130 * This method is virtual and must be implemented in 0131 * classes inheriting from this. 0132 */ 0133 virtual void setCoupling(Energy2,tcPDPtr,tcPDPtr,tcPDPtr,tcPDPtr) { 0134 assert(false); 0135 } 0136 0137 private: 0138 0139 /** 0140 * Private and non-existent assignment operator. 0141 */ 0142 VVTVertex & operator=(const VVTVertex &) = delete; 0143 0144 }; 0145 0146 } 0147 0148 } 0149 #endif /* ThePEG_VVTVertex_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|