|
|
|||
File indexing completed on 2026-08-06 09:38:23
0001 // -*- C++ -*- 0002 // 0003 // VVVVertex.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_VVVVertex_H 0010 #define ThePEG_VVVVertex_H 0011 // 0012 // This is the declaration of the VVVVertex class. 0013 0014 #include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h" 0015 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h" 0016 #include "VVVVertex.fh" 0017 0018 namespace ThePEG { 0019 namespace Helicity{ 0020 0021 /** \ingroup Helicity 0022 * 0023 * The VVVVertex class is the base class for triple vector vertices 0024 * using the perturbative form. 0025 * It inherits from the AbstractVVVVertex class for the storage of the 0026 * particles allowed at the vertex. 0027 * 0028 * Classes which implement a specific vertex should inherit from this and 0029 * implement the virtual setCoupling member. 0030 * 0031 * The form of the vertex is 0032 * \f[ig\left[ (p_1-p_2)^\gamma g^{\alpha\beta } 0033 * +(p_2-p_3)^\alpha g^{\beta \gamma} 0034 * +(p_3-p_1)^\beta g^{\alpha\gamma} 0035 * \right]\epsilon_{1\alpha}\epsilon_{2\beta}\epsilon_{3\gamma}\f] 0036 * 0037 * @see AbstractVVVVertex 0038 */ 0039 class VVVVertex: public AbstractVVVVertex { 0040 0041 public: 0042 0043 /** 0044 * Standard Init function used to initialize the interfaces. 0045 */ 0046 static void Init(); 0047 0048 public: 0049 0050 /** 0051 * Members to calculate the helicity amplitude expressions for vertices 0052 * and off-shell particles. 0053 */ 0054 //@{ 0055 /** 0056 * Evaluate the vertex. 0057 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0058 * @param vec1 The wavefunction for the first vector. 0059 * @param vec2 The wavefunction for the second vector. 0060 * @param vec3 The wavefunction for the third vector. 0061 */ 0062 Complex evaluate(Energy2 q2, const VectorWaveFunction & vec1, 0063 const VectorWaveFunction & vec2, const VectorWaveFunction & vec3); 0064 0065 /** 0066 * Evaluate the off-shell vector coming from the vertex. 0067 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0068 * @param iopt Option of the shape of the Breit-Wigner for the off-shell vector. 0069 * @param out The ParticleData pointer for the off-shell vector. 0070 * @param vec2 The wavefunction for the second vector. 0071 * @param vec3 The wavefunction for the third vector. 0072 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0073 * object 0074 * @param width The width of the off-shell particle if not taken from the ParticleData 0075 * object 0076 */ 0077 VectorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out, 0078 const VectorWaveFunction & vec2, 0079 const VectorWaveFunction & vec3, 0080 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0081 //@} 0082 0083 /** 0084 * Set coupling methods 0085 */ 0086 //@{ 0087 /** 0088 * Calculate the couplings for a three point interaction. 0089 * This method is virtual and must be implemented in 0090 * classes inheriting from this. 0091 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0092 * @param part1 The ParticleData pointer for the first particle. 0093 * @param part2 The ParticleData pointer for the second particle. 0094 * @param part3 The ParticleData pointer for the third particle. 0095 */ 0096 virtual void setCoupling(Energy2 q2,tcPDPtr part1, 0097 tcPDPtr part2,tcPDPtr part3)=0; 0098 0099 /** 0100 * Dummy setCouplings for a four point interaction 0101 * This method is virtual and must be implemented in 0102 * classes inheriting from this. 0103 */ 0104 virtual void setCoupling(Energy2,tcPDPtr,tcPDPtr,tcPDPtr,tcPDPtr) { 0105 assert(false); 0106 } 0107 //@} 0108 0109 private: 0110 0111 /** 0112 * Private and non-existent assignment operator. 0113 */ 0114 VVVVertex & operator=(const VVVVertex &) = delete; 0115 0116 }; 0117 0118 } 0119 0120 } 0121 #endif /* ThePEG_VVVVertex_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|