|
|
|||
File indexing completed on 2026-08-06 09:24:19
0001 // -*- C++ -*- 0002 // 0003 // MSSM.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_MSSM_H 0010 #define HERWIG_MSSM_H 0011 // 0012 // This is the declaration of the MSSM class. 0013 // 0014 0015 #include "SusyBase.h" 0016 #include "MSSM.fh" 0017 0018 namespace Herwig { 0019 0020 using namespace ThePEG; 0021 0022 /** 0023 * The MSSM class provides the main model class to replace the Standard Model 0024 * when using the Minimal Supersymmetric Standard Model. 0025 * 0026 * @see \ref MSSMInterfaces "The interfaces" 0027 * defined for MSSM. 0028 */ 0029 class MSSM: public SusyBase { 0030 0031 public: 0032 0033 /** 0034 * Default constructor 0035 */ 0036 MSSM() : createDiagonalMixing_(false) {} 0037 0038 public: 0039 0040 /** 0041 * Value of Higgs mixing angle \f$\alpha\f$. 0042 */ 0043 double higgsMixingAngle() const {return theAlpha;} 0044 0045 /** 0046 * Value of up-type trilinear couplings 0047 */ 0048 const complex<Energy> & topTrilinear() const {return theAtop;} 0049 0050 /** 0051 * Value of down-type trilinear couplings 0052 */ 0053 const complex<Energy> & bottomTrilinear() const {return theAbottom;} 0054 0055 /** 0056 * Value of lepton trilinear couplings 0057 */ 0058 const complex<Energy> & tauTrilinear() const {return theAtau;} 0059 0060 /** 0061 * The stop mixing matrix 0062 */ 0063 const MixingMatrixPtr & stopMix() const {return theStopMix;} 0064 0065 /** 0066 * The sbottom chargino mixing matrix 0067 */ 0068 const MixingMatrixPtr & sbottomMix() const {return theSbotMix;} 0069 0070 /** 0071 * The stau mixing matrix 0072 */ 0073 const MixingMatrixPtr & stauMix() const {return theStauMix;} 0074 0075 /** 0076 * Mixing matrix for the neutral CP-even Higgs bosons 0077 */ 0078 const MixingMatrixPtr & CPevenHiggsMix() const {return theHiggsMix;} 0079 0080 /** 0081 * Mixing matrix for the neutral CP-odd Higgs bosons 0082 */ 0083 const MixingMatrixPtr & CPoddHiggsMix() const { 0084 return HiggsAMix_; 0085 } 0086 0087 /** 0088 * Mixing matrix for the charged Higgs bosons 0089 */ 0090 const MixingMatrixPtr & ChargedHiggsMix() const { 0091 return HiggsPMix_; 0092 } 0093 0094 public: 0095 0096 /** @name Functions used by the persistent I/O system. */ 0097 //@{ 0098 /** 0099 * Function used to write out object persistently. 0100 * @param os the persistent output stream written to. 0101 */ 0102 void persistentOutput(PersistentOStream & os) const; 0103 0104 /** 0105 * Function used to read in object persistently. 0106 * @param is the persistent input stream read from. 0107 * @param version the version number of the object when written. 0108 */ 0109 void persistentInput(PersistentIStream & is, int version); 0110 //@} 0111 0112 /** 0113 * The standard Init function used to initialize the interfaces. 0114 * Called exactly once for each class by the class description system 0115 * before the main function starts or 0116 * when this class is dynamically loaded. 0117 */ 0118 static void Init(); 0119 0120 protected: 0121 0122 /** @name Clone Methods. */ 0123 //@{ 0124 /** 0125 * Make a simple clone of this object. 0126 * @return a pointer to the new object. 0127 */ 0128 virtual IBPtr clone() const {return new_ptr(*this);} 0129 0130 /** Make a clone of this object, possibly modifying the cloned object 0131 * to make it sane. 0132 * @return a pointer to the new object. 0133 */ 0134 virtual IBPtr fullclone() const {return new_ptr(*this);} 0135 //@} 0136 0137 protected: 0138 0139 /** 0140 * Create the mixing matrices for the model 0141 */ 0142 virtual void createMixingMatrices(); 0143 0144 /** 0145 * Extract the parameters from the input blocks 0146 */ 0147 virtual void extractParameters(bool checkModel=true); 0148 0149 /** 0150 * Adjust row of Mixing Matrix if a negative mass occurs in LHA file 0151 * @param id The PDG code of the particle with a negative mass 0152 */ 0153 virtual void adjustMixingMatrix(long id); 0154 0155 /** 0156 * Mixing matrix for the neutral CP-even Higgs bosons 0157 */ 0158 void CPevenHiggsMix(MixingMatrixPtr in) {theHiggsMix = in;} 0159 0160 /** 0161 * Mixing matrix for the neutral CP-odd Higgs bosons 0162 */ 0163 void CPoddHiggsMix(MixingMatrixPtr in) {HiggsAMix_ = in;} 0164 0165 /** 0166 * Mixing matrix for the charged Higgs bosons 0167 */ 0168 void ChargedHiggsMix(MixingMatrixPtr in) {HiggsPMix_ = in;} 0169 0170 /** 0171 * Set the stop mixing matrix 0172 */ 0173 void stopMix(MixingMatrixPtr in) {theStopMix =in;} 0174 0175 /** 0176 * The sbottom chargino mixing matrix 0177 */ 0178 void sbottomMix(MixingMatrixPtr in) {theSbotMix = in;} 0179 0180 /** 0181 * The stau mixing matrix 0182 */ 0183 void stauMix(MixingMatrixPtr in) {theStauMix = in;} 0184 0185 /** 0186 * Value of Higgs mixing angle \f$\alpha\f$. 0187 */ 0188 void higgsMixingAngle(double in) {theAlpha = in;} 0189 0190 private: 0191 0192 /** 0193 * The assignment operator is private and must never be called. 0194 * In fact, it should not even be implemented. 0195 */ 0196 MSSM & operator=(const MSSM &) = delete; 0197 0198 private: 0199 0200 /** 0201 * Third generation squark and slepton mixing matrices 0202 */ 0203 //@{ 0204 /** 0205 * The \f$\tilde{t}\f$ mixing matrix 0206 */ 0207 MixingMatrixPtr theStopMix; 0208 0209 /** 0210 * The \f$\tilde{b}\f$ mixing matrix 0211 */ 0212 MixingMatrixPtr theSbotMix; 0213 0214 /** 0215 * The \f$\tilde{\tau}\f$ mixing matrix 0216 */ 0217 MixingMatrixPtr theStauMix; 0218 //@} 0219 0220 /** 0221 * Trilinear couplings stored as vector of complex numbers to make use 0222 * of routine already available to read complex matrices 0223 */ 0224 //@{ 0225 /** 0226 * For the up type squarks 0227 */ 0228 complex<Energy> theAtop; 0229 0230 /** 0231 * For the down type squarks 0232 */ 0233 complex<Energy> theAbottom; 0234 0235 /** 0236 * For the charged sleptons 0237 */ 0238 complex<Energy> theAtau; 0239 //@} 0240 0241 /** 0242 * Value of higgs mixing angle. 0243 */ 0244 double theAlpha; 0245 0246 /** 0247 * Higgs boson mixing matrices 0248 */ 0249 //@{ 0250 /** 0251 * Scalar Higgs mixing matrix 0252 */ 0253 MixingMatrixPtr theHiggsMix; 0254 /** 0255 * Pseudoscalar Higgs mixing 0256 */ 0257 MixingMatrixPtr HiggsAMix_; 0258 0259 /** 0260 * Charged Higgs mixing 0261 */ 0262 MixingMatrixPtr HiggsPMix_; 0263 //@} 0264 0265 /** 0266 * Create diagonal the stop, bottom and stau mixing matrices if needed 0267 */ 0268 bool createDiagonalMixing_; 0269 0270 }; 0271 0272 } 0273 0274 #endif /* HERWIG_MSSM_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|