|
|
|||
File indexing completed on 2026-08-06 09:24:19
0001 // -*- C++ -*- 0002 // 0003 // SSGOGOHVertex.h is a part of Herwig - A multi-purpose Monte Carlo event generator 0004 // Copyright (C) 2002-2019 The Herwig Collaboration 0005 // 0006 // Herwig 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 HERWIG_SSGOGOHVertex_H 0010 #define HERWIG_SSGOGOHVertex_H 0011 // 0012 // This is the declaration of the SSGOGOHVertex class. 0013 // 0014 0015 #include "ThePEG/Helicity/Vertex/Scalar/FFSVertex.h" 0016 #include "MSSM.h" 0017 0018 namespace Herwig { 0019 0020 /** 0021 * The is the coupling of higgs bosons in the MSSM to a pair 0022 * of SM fermions. 0023 * 0024 * @see \ref SSGOGOHVertexInterfaces "The interfaces" 0025 * defined for SSGOGOHVertex. 0026 */ 0027 class SSGOGOHVertex: public FFSVertex { 0028 0029 public: 0030 0031 /** 0032 * The default constructor. 0033 */ 0034 SSGOGOHVertex(); 0035 0036 public: 0037 0038 /** @name Functions used by the persistent I/O system. */ 0039 //@{ 0040 /** 0041 * Function used to write out object persistently. 0042 * @param os the persistent output stream written to. 0043 */ 0044 void persistentOutput(PersistentOStream & os) const; 0045 0046 /** 0047 * Function used to read in object persistently. 0048 * @param is the persistent input stream read from. 0049 * @param version the version number of the object when written. 0050 */ 0051 void persistentInput(PersistentIStream & is, int version); 0052 //@} 0053 0054 /** 0055 * The standard Init function used to initialize the interfaces. 0056 * Called exactly once for each class by the class description system 0057 * before the main function starts or 0058 * when this class is dynamically loaded. 0059 */ 0060 static void Init(); 0061 0062 /** 0063 * Calculate the coupling for the vertex 0064 * @param q2 The scale to at which evaluate the coupling. 0065 * @param particle1 The first particle in the vertex. 0066 * @param particle2 The second particle in the vertex. 0067 * @param particle3 The third particle in the vertex. 0068 */ 0069 virtual void setCoupling(Energy2 q2, tcPDPtr particle1, tcPDPtr particle2, 0070 tcPDPtr particle3); 0071 0072 protected: 0073 0074 /** @name Clone Methods. */ 0075 //@{ 0076 /** 0077 * Make a simple clone of this object. 0078 * @return a pointer to the new object. 0079 */ 0080 virtual IBPtr clone() const {return new_ptr(*this);} 0081 0082 /** Make a clone of this object, possibly modifying the cloned object 0083 * to make it sane. 0084 * @return a pointer to the new object. 0085 */ 0086 virtual IBPtr fullclone() const {return new_ptr(*this);} 0087 //@} 0088 0089 0090 protected: 0091 0092 /** @name Standard Interfaced functions. */ 0093 //@{ 0094 /** 0095 * Initialize this object after the setup phase before saving an 0096 * EventGenerator to disk. 0097 * @throws InitException if object could not be initialized properly. 0098 */ 0099 virtual void doinit(); 0100 //@} 0101 0102 private: 0103 0104 /** 0105 * The assignment operator is private and must never be called. 0106 * In fact, it should not even be implemented. 0107 */ 0108 SSGOGOHVertex & operator=(const SSGOGOHVertex &) = delete; 0109 0110 private: 0111 0112 /** 0113 * The mass of the \f$W\f$. 0114 */ 0115 Energy theMw; 0116 0117 /** 0118 * The matrix \f$S_{ij}\f$ 0119 */ 0120 vector<vector<Complex> > theSij; 0121 0122 /** 0123 * The matrix \f$Q_{ij}\f$ 0124 */ 0125 vector<vector<Complex> > theQij; 0126 0127 /** 0128 * The matrix \f$Q_{ij}^{L'}\f$ 0129 */ 0130 vector<vector<Complex> > theQijLp; 0131 0132 /** 0133 * The matrix \f$Q_{ij}^{R'}\f$ 0134 */ 0135 vector<vector<Complex> > theQijRp; 0136 0137 /** 0138 * The matrix \f$S_{ij}^{''}\f$ 0139 */ 0140 vector<vector<Complex> > theSijdp; 0141 0142 /** 0143 * The matrix \f$Q_{ij}^{''}\f$ 0144 */ 0145 vector<vector<Complex> > theQijdp; 0146 0147 /** 0148 * The value of \f$\sin\alpha\f$ 0149 */ 0150 double theSa; 0151 0152 /** 0153 * The value of \f$\sin\beta\f$ 0154 */ 0155 double theSb; 0156 0157 /** 0158 * The value of \f$\cos\alpha\f$ 0159 */ 0160 double theCa; 0161 0162 /** 0163 * The value of \f$\cos\beta\f$ 0164 */ 0165 double theCb; 0166 0167 /** 0168 * The value of the coupling when it was last evaluated. 0169 */ 0170 Complex theCoupLast; 0171 0172 /** 0173 * The value of the left-coupling when it was last evaluated. 0174 */ 0175 Complex theLLast; 0176 0177 /** 0178 * The value of the right-coupling when it was last evaluated. 0179 */ 0180 Complex theRLast; 0181 0182 /** 0183 * The ID of the last higgs for which the vertex was evaluated 0184 */ 0185 long theHLast; 0186 0187 /** 0188 * The ID of the first gaugino when the coupling was las evaluated 0189 */ 0190 long theID1Last; 0191 0192 /** 0193 * The ID of the first gaugino when the coupling was las evaluated 0194 */ 0195 long theID2Last; 0196 0197 /** 0198 * The scale at which the coupling was last evaluated 0199 */ 0200 Energy2 theq2last; 0201 }; 0202 } 0203 0204 #endif /* HERWIG_SSGOGOHVertex_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|