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