|
|
|||
File indexing completed on 2026-08-06 09:38:23
0001 // -*- C++ -*- 0002 // 0003 // SSTVertex.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_SSTVertex_H 0010 #define ThePEG_SSTVertex_H 0011 // 0012 // This is the declaration of the SSTVertex class. 0013 // 0014 #include "ThePEG/Helicity/Vertex/AbstractSSTVertex.h" 0015 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h" 0016 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h" 0017 #include "SSTVertex.fh" 0018 0019 namespace ThePEG { 0020 namespace Helicity { 0021 0022 /** \ingroup Helicity 0023 * 0024 * The VVTVertexclass is the implementation of the 0025 * scalar-scalar-tensor vertex. 0026 * It inherits from the AbstractSSTVertex 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 form of the vertex is 0033 * \f[ 0034 * -\frac{i\kappa}2\left[m^2_Sg_{\mu\nu}-k_{1\mu}k_{2\nu}-k_{1\nu}k_{2\mu} 0035 * +g_{\mu\nu}k_1\cdot k_2\right]\epsilon^{\mu\nu}_3\phi_1\phi_2 0036 * 0037 * \f] 0038 * 0039 * @see AbstractSSTVertex 0040 */ 0041 class SSTVertex: public AbstractSSTVertex { 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 sca1 The wavefunction for the first scalar. 0061 * @param sca2 The wavefunction for the second scalar 0062 * @param ten3 The wavefunction for the tensor. 0063 */ 0064 Complex evaluate(Energy2 q2, const ScalarWaveFunction & sca1, 0065 const ScalarWaveFunction & sca2, const TensorWaveFunction & ten3); 0066 0067 /** 0068 * Evaluate the off-shell scalar 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 scalar. 0071 * @param out The ParticleData pointer for the off-shell scalar. 0072 * @param sca1 The wavefunction for the first scalar. 0073 * @param ten3 The wavefunction for the tensor. 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 ScalarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out, 0080 const ScalarWaveFunction & sca1, 0081 const TensorWaveFunction & ten3, 0082 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0083 0084 /** 0085 * Evaluate the off-shell tensor 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 tensor. 0088 * @param out The ParticleData pointer for the off-shell tensor. 0089 * @param sca1 The wavefunction for the first scalar. 0090 * @param sca2 The wavefunction for the second scalar. 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 TensorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out, 0097 const ScalarWaveFunction & sca1, 0098 const ScalarWaveFunction & sca2, 0099 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0100 //@} 0101 0102 /** 0103 * Set coupling methods 0104 */ 0105 //@{ 0106 /** 0107 * Calculate the couplings for a three point interaction. 0108 * This method is virtual and must be implemented in 0109 * classes inheriting from this. 0110 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0111 * @param part1 The ParticleData pointer for the first particle. 0112 * @param part2 The ParticleData pointer for the second particle. 0113 * @param part3 The ParticleData pointer for the third particle. 0114 */ 0115 virtual void setCoupling(Energy2 q2,tcPDPtr part1, 0116 tcPDPtr part2,tcPDPtr part3)=0; 0117 0118 /** 0119 * Dummy setCouplings for a four point interaction 0120 * This method is virtual and must be implemented in 0121 * classes inheriting from this. 0122 */ 0123 virtual void setCoupling(Energy2,tcPDPtr,tcPDPtr,tcPDPtr,tcPDPtr) { 0124 assert(false); 0125 } 0126 //@} 0127 0128 private: 0129 0130 /** 0131 * Private and non-existent assignment operator. 0132 */ 0133 SSTVertex & operator=(const SSTVertex &) = delete; 0134 0135 }; 0136 0137 } 0138 0139 } 0140 #endif /* ThePEG_SSTVertex_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|