Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:24:17

0001 // -*- C++ -*-
0002 #ifndef HERWIG_LHModel_H
0003 #define HERWIG_LHModel_H
0004 //
0005 // This is the declaration of the LHModel class.
0006 //
0007 
0008 #include "Herwig/Models/General/BSMModel.h"
0009 #include "ThePEG/Helicity/Vertex/AbstractVSSVertex.h"
0010 #include "ThePEG/Helicity/Vertex/AbstractVVSSVertex.h"
0011 #include "LHModel.fh"
0012 
0013 namespace Herwig {
0014 
0015 using namespace ThePEG;
0016 
0017 /**
0018  * The LHModel class is the main class for the implementation of the Little Higgs model in Herwig.
0019  * In inherits from the StandardModel class and implements the calcuation of the couplings 
0020  * and masses in the Little Higgs model and storage of the additional couplings.
0021  *
0022  * @see \ref LHModelInterfaces "The interfaces"
0023  * defined for LHModel.
0024  */
0025 class LHModel: public BSMModel {
0026 
0027 public:
0028 
0029   /**
0030    * The default constructor.
0031    */
0032   LHModel();
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 public:
0061 
0062   /**
0063    *  Access to the parameters of the model
0064    */
0065   //@{
0066   /**
0067    *  The \f$\lambda_1\f$ top Yukawa coupling
0068    */
0069   double lambda1() const {return _lambda1;}
0070 
0071   /**
0072    *  The \f$\lambda_2\f$ top Yukawa coupling
0073    */
0074   double lambda2() const {return _lambda2;}
0075 
0076   /**
0077    *  The sine of the \f$\theta\f$ mixing angle
0078    */
0079   double sinTheta() const {return _s;}
0080 
0081   /**
0082    *  The cosine of the \f$\theta\f$ mixing angle
0083    */
0084   double cosTheta() const {return _c;}
0085 
0086   /**
0087    *  The sine of the \f$\theta'\f$ mixing angle
0088    */
0089   double sinThetaPrime() const {return _sp;}
0090 
0091   /**
0092    *  The cosine of the \f$\theta'\f$ mixing angle
0093    */
0094   double cosThetaPrime() const {return _cp;}
0095 
0096   /**
0097    *  The sine of the Higgs mixing angle
0098    */
0099   double sinTheta0() const {return _s0;}
0100 
0101   /**
0102    *  The cosine of the Higgs mixing angle
0103    */
0104   double cosTheta0() const {return _c0;}
0105 
0106   /**
0107    *  The sine of the pseudoscalar Higgs mixing angle
0108    */
0109   double sinThetaP() const {return _sP;}
0110 
0111   /**
0112    *  The cosine of the pseudoscalar Higgs mixing angle
0113    */
0114   double cosThetaP() const {return _cP;}
0115 
0116   /**
0117    *  The sine of the charged Higgs mixing angle
0118    */
0119   double sinThetaPlus() const {return _sPlus;}
0120 
0121   /**
0122    *  The cosine of the charged Higgs mixing angle
0123    */
0124   double cosThetaPlus() const {return _cPlus;}
0125 
0126   /**
0127    *  The vacuum expection value
0128    */
0129   Energy vev() const {return _v;}
0130 
0131   /**
0132    *  The vacuum expection value
0133    */
0134   Energy vevPrime() const {return _v*_vacratio;}
0135 
0136   /**
0137    *  The \f$f\f$ scale of the non-linear \f$\sigma\f$-model
0138    */
0139   Energy f() const {return _f;}
0140   //@}
0141 
0142 protected:
0143 
0144   /** @name Clone Methods. */
0145   //@{
0146   /**
0147    * Make a simple clone of this object.
0148    * @return a pointer to the new object.
0149    */
0150   virtual IBPtr clone() const {return new_ptr(*this);}
0151 
0152   /** Make a clone of this object, possibly modifying the cloned object
0153    * to make it sane.
0154    * @return a pointer to the new object.
0155    */
0156   virtual IBPtr fullclone() const {return new_ptr(*this);}
0157   //@}
0158 
0159 protected:
0160 
0161   /** @name Standard Interfaced functions. */
0162   //@{
0163   /**
0164    * Initialize this object after the setup phase before saving an
0165    * EventGenerator to disk.
0166    * @throws InitException if object could not be initialized properly.
0167    */
0168   virtual void doinit();
0169   //@}
0170 
0171 private:
0172 
0173   /**
0174    * The assignment operator is private and must never be called.
0175    * In fact, it should not even be implemented.
0176    */
0177   LHModel & operator=(const LHModel &) = delete;
0178 
0179 private:
0180 
0181   /**
0182    *  Parameters for the model
0183    */
0184   //@{
0185   /**
0186    *  The value of \f$\cot\theta\f$ for the mixing with the \f$g\f$ coupling 
0187    */
0188   double _cott;
0189 
0190   /**
0191    *  The value of \f$\tan\theta'\f$ for the mixing with the \f$g'\f$ coupling
0192    */
0193   double _tantp;
0194 
0195   /**
0196    *  The vacuum expection valve
0197    */
0198   Energy _v;
0199 
0200   /**
0201    *  The ratio \f$\lambda_2/\lambda_1\f$
0202    */
0203   double _lamratio;
0204 
0205   /**
0206    *  The mass of the lightest Higgs boson
0207    */
0208   Energy _mH;
0209 
0210   /**
0211    *  The ratio of the vacuum exception values \f$v'/v\f$
0212    */
0213   double _vacratio;
0214 
0215   /**
0216    *  The scale for the non-linear \f$\sigma\f$-model
0217    */
0218   Energy _f;
0219 
0220   /**
0221    *  The top Yukawa couplings
0222    */
0223   double _lambda1,_lambda2;
0224 
0225   /**
0226    *  The sine of the \f$\theta\f$ mixing angle
0227    */
0228   double _s;
0229 
0230   /**
0231    *  The cosine of the \f$\theta\f$ mixing angle
0232    */
0233   double _c;
0234 
0235   /**
0236    *  The sine of the \f$\theta'\f$ mixing angle
0237    */
0238   double _sp;
0239 
0240   /**
0241    *  The cosine of the \f$\theta'\f$ mixing angle
0242    */
0243   double _cp;
0244 
0245   /**
0246    *  The sine of the Higgs mixing angle
0247    */
0248   double _s0;
0249 
0250   /**
0251    *  The cosine of the Higgs mixing angle
0252    */
0253   double _c0;
0254 
0255   /**
0256    *  The sine of the pseudoscalar Higgs mixing angle
0257    */
0258   double _sP;
0259 
0260   /**
0261    *  The cosine of the pseudoscalar Higgs mixing angle
0262    */
0263   double _cP;
0264 
0265   /**
0266    *  The sine of the charged Higgs mixing angle
0267    */
0268   double _sPlus;
0269 
0270   /**
0271    *  The cosine of the charged Higgs mixing angle
0272    */
0273   double _cPlus;
0274   //@}
0275 
0276   /**
0277    *  Additional vertices
0278    */
0279   //@{
0280   /**
0281    *  WHH Vertex
0282    */
0283   AbstractVSSVertexPtr WHHVertex_;
0284   //@}
0285 };
0286 
0287 }
0288 
0289 #endif /* HERWIG_LHModel_H */