Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef THEPEG_LHTPModel_H
0003 #define THEPEG_LHTPModel_H
0004 //
0005 // This is the declaration of the LHTPModel class.
0006 //
0007 
0008 #include "Herwig/Models/General/BSMModel.h"
0009 #include "ThePEG/Helicity/Vertex/AbstractVSSVertex.h"
0010 #include "LHTPModel.fh"
0011 
0012 namespace Herwig {
0013 
0014 /**
0015  * The LHTPModel class is the main class for the
0016  * implementation of the Little Higgs model with T-parity
0017  *
0018  * @see \ref LHTPModelInterfaces "The interfaces"
0019  * defined for LHTPModel.
0020  */
0021 class LHTPModel: public BSMModel {
0022 
0023 public:
0024 
0025   /**
0026    * The default constructor.
0027    */
0028   LHTPModel();
0029 
0030   /**
0031    *  Access to the parameters of the model
0032    */
0033   //@{
0034   /**
0035    *  The vacuum expection value
0036    */
0037   Energy vev() const { return v_; }
0038 
0039   /**
0040    *  The \f$f\f$ scale of the non-linear \f$\sigma\f$-model
0041    */
0042   Energy f() const { return f_; }
0043 
0044   /**
0045    *  \f$\sin\alpha\f$
0046    */
0047   double sinAlpha() const { return salpha_; }
0048 
0049   /**
0050    *  \f$\cos\alpha\f$
0051    */
0052   double cosAlpha() const { return calpha_; }
0053 
0054   /**
0055    *  \f$\sin\beta\f$
0056    */
0057   double sinBeta() const { return sbeta_; }
0058 
0059   /**
0060    *  \f$\cos\beta\f$
0061    */
0062   double cosBeta() const { return cbeta_; }
0063 
0064   /**
0065    *  \f$\sin\theta_H\f$
0066    */
0067   double sinThetaH() const { return sthetaH_; }
0068 
0069   /**
0070    *  \f$\cos\theta_H\f$
0071    */
0072   double cosThetaH() const { return cthetaH_; }
0073 
0074   /**
0075    *  \f$\sin\theta_L\f$
0076    */
0077   double sinThetaL() const { return sL_;}
0078 
0079   /**
0080    *  \f$\cos\theta_L\f$
0081    */
0082   double cosThetaL() const { return cL_;}
0083 
0084   /**
0085    *  \f$\sin\theta_R\f$
0086    */
0087   double sinThetaR() const { return sR_;}
0088 
0089   /**
0090    *  \f$\cos\theta_R\f$
0091    */
0092   double cosThetaR() const { return cR_;}
0093   //@}
0094 
0095   /**
0096    *  Yukwawa for T-odd fermions
0097    */
0098   //@{
0099   /**
0100    *  The \f$\kappa_q\f$ parameter which controls the properties of the
0101    *  T-odd quarks
0102    */
0103   double kappaQuark() const { return kappaQuark_;}
0104 
0105   /**
0106    *  The \f$\kappa_\ell\f$ parameter which controls the properties of the
0107    *  T-odd leptons
0108    */
0109   double kappaLepton() const { return kappaLepton_;}
0110   //@}
0111 public:
0112 
0113   /** @name Functions used by the persistent I/O system. */
0114   //@{
0115   /**
0116    * Function used to write out object persistently.
0117    * @param os the persistent output stream written to.
0118    */
0119   void persistentOutput(PersistentOStream & os) const;
0120 
0121   /**
0122    * Function used to read in object persistently.
0123    * @param is the persistent input stream read from.
0124    * @param version the version number of the object when written.
0125    */
0126   void persistentInput(PersistentIStream & is, int version);
0127   //@}
0128 
0129   /**
0130    * The standard Init function used to initialize the interfaces.
0131    * Called exactly once for each class by the class description system
0132    * before the main function starts or
0133    * when this class is dynamically loaded.
0134    */
0135   static void Init();
0136 
0137 protected:
0138 
0139   /** @name Clone Methods. */
0140   //@{
0141   /**
0142    * Make a simple clone of this object.
0143    * @return a pointer to the new object.
0144    */
0145   virtual IBPtr clone() const;
0146 
0147   /** Make a clone of this object, possibly modifying the cloned object
0148    * to make it sane.
0149    * @return a pointer to the new object.
0150    */
0151   virtual IBPtr fullclone() const;
0152   //@}
0153 
0154 protected:
0155 
0156   /**
0157    *  Calculate the mixing in the top sector of the model
0158    *  and the masses of the T-odd and T-even heavy tops
0159    *  The mixings are calculated by solving Eqns 2.22 and 2.24 of hep-ph/0506042
0160    *  for \f$\lambda_1$ and \f$\lambda_2\f$ given the input value of \f$\sin\alpha\f$
0161    *  and the top mass.
0162    */
0163   void topMixing(Energy & MTp, Energy & MTm);
0164 
0165 protected:
0166 
0167   /** @name Standard Interfaced functions. */
0168   //@{
0169   /**
0170    * Initialize this object after the setup phase before saving an
0171    * EventGenerator to disk.
0172    * @throws InitException if object could not be initialized properly.
0173    */
0174   virtual void doinit();
0175   //@}
0176 
0177 private:
0178 
0179   /**
0180    * The assignment operator is private and must never be called.
0181    * In fact, it should not even be implemented.
0182    */
0183   LHTPModel & operator=(const LHTPModel &) = delete;
0184 
0185 private:
0186 
0187   /**
0188    *  The constant for the non-linear \f$\sigma\f$ model
0189    */
0190   Energy f_;
0191 
0192   /**
0193    *  @name The mixing in the top quark sector
0194    */
0195   //@{
0196   /**
0197    *  \f$\sin\alpha\f$, taken as an input
0198    */
0199   double salpha_;
0200 
0201   /**
0202    *  \f$\cos\alpha\f$
0203    */
0204   double calpha_;
0205 
0206   /**
0207    *  \f$\sin\beta\f$
0208    */
0209   double sbeta_;
0210 
0211   /**
0212    *  \f$\cos\beta\f$
0213    */
0214   double cbeta_;
0215   //@}
0216 
0217   /**
0218    *  @name Mixing of the heavy photon and Z
0219    */
0220   //@{
0221   /**
0222    *  \f$\sin\theta_H\f$
0223    */
0224   double sthetaH_;
0225 
0226   /**
0227    *  \f$\cos\theta_H\f$
0228    */
0229   double cthetaH_;
0230   //@}
0231 
0232   /**
0233    *  @name Mixings in the top sector
0234    */
0235   //@{
0236   /**
0237    *  \f$\sin\theta_L\f$
0238    */
0239   double sL_;
0240 
0241   /**
0242    *  \f$\cos\theta_L\f$
0243    */
0244   double cL_;
0245 
0246   /**
0247    *  \f$\sin\theta_R\f$
0248    */
0249   double sR_;
0250 
0251   /**
0252    *  \f$\cos\theta_R\f$
0253    */
0254   double cR_;
0255   //@}
0256 
0257   /**
0258    *  The \f$\kappa_q\f$ parameter which controls the properties of the
0259    *  T-odd quarks
0260    */
0261   double kappaQuark_;
0262 
0263   /**
0264    *  The \f$\kappa_\ell\f$ parameter which controls the properties of the
0265    *  T-odd leptons
0266    */
0267   double kappaLepton_;
0268 
0269   /**
0270    *  The mass of the Standard Model higgs
0271    */
0272   Energy mh_;
0273 
0274   /**
0275    *  The vacuum expection valve
0276    */
0277   Energy v_;
0278 
0279   /**
0280    *  The \f$g\f$ coupling
0281    */
0282   double g_;
0283 
0284   /**
0285    *  the \f$g'\f$ coupling
0286    */
0287   double gp_;
0288 
0289   /**
0290    *  Method for evaluating the masses
0291    */
0292   bool approximate_;
0293 
0294   /**
0295    *  WHH Vertex
0296    */
0297   AbstractVSSVertexPtr WHHVertex_;
0298 };
0299 
0300 }
0301 
0302 #endif /* THEPEG_LHTPModel_H */