Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_NMSSM_H
0003 #define HERWIG_NMSSM_H
0004 //
0005 // This is the declaration of the NMSSM class.
0006 //
0007 
0008 #include "Herwig/Models/Susy/MSSM.h"
0009 #include "NMSSM.fh"
0010 
0011 namespace Herwig {
0012 using namespace ThePEG;
0013 
0014 /**
0015  * Here is the documentation of the NMSSM class.
0016  *
0017  * @see \ref NMSSMInterfaces "The interfaces"
0018  * defined for NMSSM.
0019  */
0020 class NMSSM: public MSSM {
0021 
0022 public:
0023 
0024   /**
0025    * The default constructor.
0026    */
0027   NMSSM() : _lambda(0.), _kappa(0.), _theAlambda(0.*MeV), 
0028         _theAkappa(0.*MeV), _lambdaVEV(0.*MeV),
0029         _MQ3(0.*MeV), _MU2(0.*MeV) 
0030   {}
0031 
0032 public:
0033 
0034   /**
0035    *  The NMSSM couplings
0036    */
0037   //@{
0038   /**
0039    *  Superpotential \f$\lambda\f$ term
0040    */
0041   double lambda() const {
0042     return _lambda;
0043   }
0044 
0045   /**
0046    *  Superpotential \f$\kappa\f$ coupling
0047    */
0048   double kappa() const {
0049     return _kappa;
0050   }
0051 
0052   /**
0053    *  The V.E.V of the extra singlet field scaled
0054    * by \f$ lambda\f$, 
0055    */
0056   Energy lambdaVEV() const {
0057     return _lambdaVEV;
0058   }
0059   
0060   /**
0061    * Soft trilinear \f$SH_2 H_1\f$ coupling
0062    */
0063   Energy trilinearLambda() const {
0064     return _theAlambda;
0065   }
0066 
0067   /**
0068    * Soft cubic \f$S\f$ coupling
0069    */
0070   Energy trilinearKappa() const {
0071     return _theAkappa;
0072   }
0073       /**
0074    *  left 3rd generation scalar quark mass
0075    */
0076   Energy MQ3() const {
0077     return _MQ3;
0078   }
0079 
0080   /**
0081    * right scalar top mass
0082    */
0083   Energy MU2() const {
0084     return _MU2;
0085   }
0086   //@}
0087 
0088 public:
0089 
0090   /** @name Functions used by the persistent I/O system. */
0091   //@{
0092   /**
0093    * Function used to write out object persistently.
0094    * @param os the persistent output stream written to.
0095    */
0096   void persistentOutput(PersistentOStream & os) const;
0097 
0098   /**
0099    * Function used to read in object persistently.
0100    * @param is the persistent input stream read from.
0101    * @param version the version number of the object when written.
0102    */
0103   void persistentInput(PersistentIStream & is, int version);
0104   //@}
0105 
0106   /**
0107    * The standard Init function used to initialize the interfaces.
0108    * Called exactly once for each class by the class description system
0109    * before the main function starts or
0110    * when this class is dynamically loaded.
0111    */
0112   static void Init();
0113   
0114 protected:
0115 
0116   /**
0117    *  Extract the parameters from the input blocks
0118    */
0119   virtual void extractParameters(bool checkModel=true);
0120 
0121   /**
0122    *  Create the mixing matrices for the model
0123    */
0124   virtual void createMixingMatrices();
0125 
0126 protected:
0127 
0128   /** @name Clone Methods. */
0129   //@{
0130   /**
0131    * Make a simple clone of this object.
0132    * @return a pointer to the new object.
0133    */
0134   virtual IBPtr clone() const {return new_ptr(*this);}
0135 
0136   /** Make a clone of this object, possibly modifying the cloned object
0137    * to make it sane.
0138    * @return a pointer to the new object.
0139    */
0140   virtual IBPtr fullclone() const {return new_ptr(*this);}
0141   //@}
0142 
0143 private:
0144 
0145   /**
0146    * The assignment operator is private and must never be called.
0147    * In fact, it should not even be implemented.
0148    */
0149   NMSSM & operator=(const NMSSM &) = delete;
0150 
0151 private:
0152 
0153   /**
0154    *  The NMSSM couplings
0155    */
0156   //@{
0157   /**
0158    *  Superpotential \f$\lambda\f$ term
0159    */
0160   double _lambda;
0161 
0162   /**
0163    *  Superpotential \f$\kappa\f$ coupling
0164    */
0165   double _kappa;
0166 
0167   /**
0168    * Soft trilinear \f$SH_2 H_1\f$ coupling
0169    */
0170   Energy _theAlambda;
0171 
0172   /**
0173    * Soft cubic \f$S\f$ coupling
0174    */
0175   Energy _theAkappa;
0176 
0177   /**
0178    *  The V.E.V of the extra singlet field scaled
0179    * by \f$ lambda\f$
0180    */
0181   Energy _lambdaVEV;
0182       /**
0183    * left 3rd generation scalar quark mass
0184    */
0185   Energy _MQ3;
0186 
0187   /**
0188    *  right scalar top mass
0189    */
0190   Energy _MU2;
0191   //@}
0192 };
0193 
0194 }
0195 
0196 #endif /* HERWIG_NMSSM_H */