|
|
|||
File indexing completed on 2026-08-06 09:38:23
0001 // -*- C++ -*- 0002 #ifndef Helicity_GeneralVSSVertex_H 0003 #define Helicity_GeneralVSSVertex_H 0004 // 0005 // This is the declaration of the GeneralVSSVertex class. 0006 // 0007 0008 #include "ThePEG/Helicity/Vertex/AbstractVSSVertex.h" 0009 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h" 0010 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h" 0011 #include "GeneralVSSVertex.fh" 0012 0013 namespace ThePEG { 0014 namespace Helicity { 0015 0016 using namespace ThePEG; 0017 0018 /** 0019 * Here is the documentation of the GeneralVSSVertex class. 0020 * 0021 * @see \ref GeneralVSSVertexInterfaces "The interfaces" 0022 * defined for GeneralVSSVertex. 0023 */ 0024 class GeneralVSSVertex: public AbstractVSSVertex { 0025 0026 public: 0027 0028 /** 0029 * The default constructor. 0030 */ 0031 GeneralVSSVertex() : a_(1.), b_(-1.) 0032 {} 0033 0034 /** 0035 * The standard Init function used to initialize the interfaces. 0036 * Called exactly once for each class by the class description system 0037 * before the main function starts or 0038 * when this class is dynamically loaded. 0039 */ 0040 static void Init(); 0041 0042 /** 0043 * Members to calculate the helicity amplitude expressions for vertices 0044 * and off-shell particles. 0045 */ 0046 //@{ 0047 /** 0048 * Evaluate the vertex. 0049 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0050 * @param vec1 The wavefunction for the vector. 0051 * @param sca2 The wavefunction for the first scalar. 0052 * @param sca3 The wavefunction for the second scalar. 0053 */ 0054 Complex evaluate(Energy2 q2,const VectorWaveFunction & vec1, 0055 const ScalarWaveFunction & sca2, const ScalarWaveFunction & sca3); 0056 0057 /** 0058 * Evaluate the off-shell vector coming from the vertex. 0059 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0060 * @param iopt Option of the shape of the Breit-Wigner for the off-shell vector. 0061 * @param out The ParticleData pointer for the off-shell vector. 0062 * @param sca2 The wavefunction for the first scalar. 0063 * @param sca3 The wavefunction for the second scalar. 0064 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0065 * object 0066 * @param width The width of the off-shell particle if not taken from the ParticleData 0067 * object 0068 */ 0069 VectorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out, 0070 const ScalarWaveFunction & sca2, 0071 const ScalarWaveFunction & sca3, 0072 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0073 0074 /** 0075 * Evaluate the off-shell scalar coming from the vertex. 0076 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0077 * @param iopt Option of the shape of the Breit-Wigner for the off-shell scalar. 0078 * @param out The ParticleData pointer for the off-shell scalar. 0079 * @param vec1 The wavefunction for the vector. 0080 * @param sca2 The wavefunction for the scalar. 0081 * @param mass The mass of the off-shell particle if not taken from the ParticleData 0082 * object 0083 * @param width The width of the off-shell particle if not taken from the ParticleData 0084 * object 0085 */ 0086 ScalarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out, 0087 const VectorWaveFunction & vec1, 0088 const ScalarWaveFunction & sca2, 0089 complex<Energy> mass=-GeV, complex<Energy> width=-GeV); 0090 0091 /** 0092 * Set coupling methods 0093 */ 0094 //@{ 0095 /** 0096 * Calculate the couplings for a three point interaction. 0097 * This method is virtual and must be implemented in 0098 * classes inheriting from this. 0099 * @param q2 The scale \f$q^2\f$ for the coupling at the vertex. 0100 * @param part1 The ParticleData pointer for the first particle. 0101 * @param part2 The ParticleData pointer for the second particle. 0102 * @param part3 The ParticleData pointer for the third particle. 0103 */ 0104 virtual void setCoupling(Energy2 q2,tcPDPtr part1, 0105 tcPDPtr part2,tcPDPtr part3)=0; 0106 0107 /** 0108 * Dummy setCouplings for a four point interaction 0109 * This method is virtual and must be implemented in 0110 * classes inheriting from this. 0111 */ 0112 virtual void setCoupling(Energy2,tcPDPtr,tcPDPtr,tcPDPtr,tcPDPtr) { 0113 assert(false); 0114 } 0115 //@} 0116 0117 protected: 0118 0119 /** 0120 * Member functions top set/get the coefficents 0121 */ 0122 //@{ 0123 /** 0124 * Access coefficient of \f$p_2\f$ 0125 */ 0126 Complex a() const {return a_;} 0127 0128 /** 0129 * Access coefficient of \f$p_3\f$ 0130 */ 0131 Complex b() const {return b_;} 0132 0133 /** 0134 * Set coefficient of \f$p_2\f$ 0135 */ 0136 void a(Complex in) {a_=in;} 0137 0138 /** 0139 * Set coefficient of \f$p_3\f$ 0140 */ 0141 void b(Complex in) {b_=in;} 0142 //@} 0143 0144 private: 0145 0146 /** 0147 * The assignment operator is private and must never be called. 0148 * In fact, it should not even be implemented. 0149 */ 0150 GeneralVSSVertex & operator=(const GeneralVSSVertex &) = delete; 0151 0152 private: 0153 0154 /** 0155 * The coefficent of \f$p_2\f$ 0156 */ 0157 Complex a_; 0158 0159 /** 0160 * The coefficent of \f$p_3\f$ 0161 */ 0162 Complex b_; 0163 0164 }; 0165 0166 } 0167 } 0168 0169 #endif /* Helicity_GeneralVSSVertex_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|