|
|
|||
File indexing completed on 2026-08-06 09:24:19
0001 // -*- C++ -*- 0002 #ifndef HERWIG_NMSSMGGHVertex_H 0003 #define HERWIG_NMSSMGGHVertex_H 0004 // 0005 // This is the declaration of the NMSSMGGHVertex class. 0006 // 0007 0008 #include "Herwig/Models/General/VVSLoopVertex.h" 0009 #include "Herwig/Models/StandardModel/StandardModel.fh" 0010 #include "Herwig/Models/Susy/MixingMatrix.h" 0011 0012 namespace Herwig { 0013 using namespace ThePEG; 0014 0015 /** 0016 * This class implements the effective vertex for a higgs coupling 0017 * to a pair of gluons in the NMSSM. 0018 * 0019 * @see \ref NMSSMGGHVertexInterfaces "The interfaces" 0020 * defined for NMSSMGGHVertex. 0021 */ 0022 class NMSSMGGHVertex: public VVSLoopVertex { 0023 0024 public: 0025 0026 /** @name Standard constructors and destructors. */ 0027 //@{ 0028 /** 0029 * The default constructor. 0030 */ 0031 NMSSMGGHVertex(); 0032 //@} 0033 0034 public: 0035 0036 /** @name Functions used by the persistent I/O system. */ 0037 //@{ 0038 /** 0039 * Function used to write out object persistently. 0040 * @param os the persistent output stream written to. 0041 */ 0042 void persistentOutput(PersistentOStream & os) const; 0043 0044 /** 0045 * Function used to read in object persistently. 0046 * @param is the persistent input stream read from. 0047 * @param version the version number of the object when written. 0048 */ 0049 void persistentInput(PersistentIStream & is, int version); 0050 //@} 0051 0052 /** 0053 * The standard Init function used to initialize the interfaces. 0054 * Called exactly once for each class by the class description system 0055 * before the main function starts or 0056 * when this class is dynamically loaded. 0057 */ 0058 static void Init(); 0059 0060 /** 0061 * Calculate couplings 0062 *@param q2 Scale at which to evaluate coupling 0063 *@param p1 ParticleData pointer to first particle 0064 *@param p2 ParticleData pointer to second particle 0065 *@param p3 ParticleData pointer to third particle 0066 */ 0067 virtual void setCoupling(Energy2 q2, tcPDPtr p1, tcPDPtr p2, 0068 tcPDPtr p3); 0069 0070 protected: 0071 0072 /** @name Clone Methods. */ 0073 //@{ 0074 /** 0075 * Make a simple clone of this object. 0076 * @return a pointer to the new object. 0077 */ 0078 virtual IBPtr clone() const {return new_ptr(*this);} 0079 0080 /** Make a clone of this object, possibly modifying the cloned object 0081 * to make it sane. 0082 * @return a pointer to the new object. 0083 */ 0084 virtual IBPtr fullclone() const {return new_ptr(*this);} 0085 //@} 0086 0087 protected: 0088 0089 /** @name Standard Interfaced functions. */ 0090 //@{ 0091 /** 0092 * Initialize this object after the setup phase before saving an 0093 * EventGenerator to disk. 0094 * @throws InitException if object could not be initialized properly. 0095 */ 0096 virtual void doinit(); 0097 //@} 0098 0099 private: 0100 0101 /** 0102 * The assignment operator is private and must never be called. 0103 * In fact, it should not even be implemented. 0104 */ 0105 NMSSMGGHVertex & operator=(const NMSSMGGHVertex &) = delete; 0106 0107 private: 0108 0109 /** @name Stored parameters. */ 0110 //@{ 0111 /** 0112 * The SM pointer 0113 */ 0114 tcHwSMPtr _theSM; 0115 0116 /** 0117 * \f$ \sin\theta_W\f$ 0118 */ 0119 double _sw; 0120 0121 /** 0122 * \f$ \cos\theta_W\f$ 0123 */ 0124 double _cw; 0125 0126 /** 0127 * \f$ M_W\f$ 0128 */ 0129 Energy _mw; 0130 0131 /** 0132 * \f$ M_Z \f$ 0133 */ 0134 Energy _mz; 0135 0136 /** 0137 * The product \f$\lambda \langle S\rangle \f$. 0138 */ 0139 0140 Energy _lambdaVEV; 0141 0142 /** 0143 * The coefficient of the trilinear \f$SH_2 H_1\f$ term in the superpotential 0144 */ 0145 0146 double _lambda; 0147 0148 /** 0149 * The value of the VEV of the higgs that couples to the up-type sector 0150 * \f$ g*sqrt(2)M_W\cos\beta \f$ 0151 */ 0152 0153 Energy _v1; 0154 0155 /** 0156 * The value of the VEV of the higgs that couples to the down-type sector 0157 * \f$ g*sqrt(2)M_W\cos\beta \f$ 0158 */ 0159 Energy _v2; 0160 0161 /** 0162 * The top quark trilinear coupling 0163 */ 0164 complex<Energy> _triTp; 0165 0166 /** 0167 * The bottom quark trilinear coupling 0168 */ 0169 complex<Energy> _triBt; 0170 0171 /** 0172 * A pointer to the top quark 0173 */ 0174 tcPDPtr _top; 0175 0176 /** 0177 * A pointer to the bottom quark 0178 */ 0179 tcPDPtr _bt; 0180 0181 /** 0182 * CP-even Higgs mixing matrix 0183 */ 0184 MixingMatrixPtr _mixS; 0185 0186 /** 0187 * CP-even Higgs mixing matrix 0188 */ 0189 MixingMatrixPtr _mixP; 0190 0191 /** 0192 * \f$\tilde{t}\f$ mixing matrix 0193 */ 0194 MixingMatrixPtr _mixQt; 0195 0196 /** 0197 * \f$\tilde{b}\f$ mixing matrix 0198 */ 0199 MixingMatrixPtr _mixQb; 0200 0201 /** 0202 * \f$ \sin\beta\f$ 0203 */ 0204 double _sb; 0205 0206 /** 0207 * \f$ \cos\beta\f$ 0208 */ 0209 double _cb; 0210 0211 /** 0212 * The top and bottom quark masses calculated at the last value 0213 * of \f$q^2\f$ 0214 */ 0215 pair<Energy, Energy> _masslast; 0216 0217 /** 0218 * The scale at which the coupling was last evaluated 0219 */ 0220 Energy2 _q2last; 0221 0222 /** 0223 * The value of the overall normalisation when the coupling was last 0224 * evaluated. 0225 */ 0226 double _couplast; 0227 0228 /** 0229 * The value of the weak coupling was last 0230 * evaluated. 0231 */ 0232 double _coup; 0233 0234 /** 0235 * The PDG code of the Higgs particle when the vertex was last evaluated 0236 */ 0237 long _hlast; 0238 0239 /** 0240 * Whether the tensor coefficient need recalculating or not 0241 */ 0242 bool _recalc; 0243 //@} 0244 }; 0245 0246 } 0247 0248 #endif /* HERWIG_NMSSMGGHVertex_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|