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