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