Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_NMSSMPPHVertex_H
0003 #define HERWIG_NMSSMPPHVertex_H
0004 //
0005 // This is the declaration of the NMSSMPPHVertex class.
0006 //
0007 
0008 #include "Herwig/Models/General/VVSLoopVertex.h"
0009 #include "Herwig/Models/StandardModel/StandardModel.fh"
0010 #include "Herwig/Models/Susy/MixingMatrix.h"
0011 
0012 namespace Herwig {
0013 using namespace ThePEG;
0014 
0015 /**
0016  * This class implements the effective vertex for a higgs coupling
0017  * to a pair of photons in the NMSSM.
0018  *
0019  * @see \ref NMSSMPPHVertexInterfaces "The interfaces"
0020  * defined for NMSSMPPHVertex.
0021  */
0022 class NMSSMPPHVertex: public VVSLoopVertex {
0023 
0024 public:
0025 
0026   /** @name Standard constructors and destructors. */
0027   //@{
0028   /**
0029    * The default constructor.
0030    */
0031   NMSSMPPHVertex();
0032   //@}
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   /** 
0061    * Calculate couplings
0062    *@param q2 Scale at which to evaluate coupling
0063    *@param p1 ParticleData pointer to first particle
0064    *@param p2 ParticleData pointer to second particle
0065    *@param p3 ParticleData pointer to third particle
0066    */
0067   virtual void setCoupling(Energy2 q2, tcPDPtr p1, tcPDPtr p2,
0068                tcPDPtr p3);
0069 
0070 protected:
0071 
0072   /** @name Clone Methods. */
0073   //@{
0074   /**
0075    * Make a simple clone of this object.
0076    * @return a pointer to the new object.
0077    */
0078   virtual IBPtr clone() const {return new_ptr(*this);}
0079 
0080   /** Make a clone of this object, possibly modifying the cloned object
0081    * to make it sane.
0082    * @return a pointer to the new object.
0083    */
0084   virtual IBPtr fullclone() const {return new_ptr(*this);}
0085   //@}
0086 
0087 protected:
0088 
0089   /** @name Standard Interfaced functions. */
0090   //@{
0091   /**
0092    * Initialize this object after the setup phase before saving an
0093    * EventGenerator to disk.
0094    * @throws InitException if object could not be initialized properly.
0095    */
0096   virtual void doinit();
0097   //@}
0098 
0099 private:
0100 
0101   /**
0102    * The assignment operator is private and must never be called.
0103    * In fact, it should not even be implemented.
0104    */
0105   NMSSMPPHVertex & operator=(const NMSSMPPHVertex &) = delete;
0106 
0107 private:
0108 
0109   /** @name Stored parameters. */
0110   //@{
0111   /**
0112    * The SM pointer 
0113    */
0114   tcHwSMPtr _theSM;
0115   
0116   /**
0117    * \f$ \sin\theta_W\f$ 
0118    */
0119   double _sw;
0120 
0121   /**
0122    * \f$ \cos\theta_W\f$ 
0123    */
0124   double _cw;
0125 
0126   /**
0127    * \f$ M_W\f$
0128    */
0129   Energy _mw;
0130 
0131   /**
0132    * \f$ M_Z \f$
0133    */
0134   Energy _mz;
0135   
0136    /**
0137    * The product \f$\lambda \langle S\rangle \f$.
0138    */
0139   
0140   Energy _lambdaVEV;
0141   
0142   /**
0143    *  The coefficient of the trilinear \f$SH_2 H_1\f$ term in the superpotential
0144    */
0145   
0146   double _lambda;
0147   
0148   /**
0149    * The value of the VEV of the higgs that couples to the up-type sector
0150    *  \f$ g*sqrt(2)M_W\cos\beta \f$
0151    */
0152   
0153   Energy _v1;
0154 
0155   /**
0156    * The value of the VEV of the higgs that couples to the down-type sector
0157    *  \f$ g*sqrt(2)M_W\cos\beta \f$
0158    */ 
0159   Energy _v2;
0160   
0161   /**
0162    * The top quark trilinear coupling
0163    */
0164   complex<Energy> _triTp;
0165 
0166   /**
0167    * The bottom quark trilinear coupling
0168    */
0169   complex<Energy> _triBt;
0170 
0171   /**
0172    * The tau quark trilinear coupling
0173    */
0174   complex<Energy> _triTa;
0175   
0176   /**
0177    * A pointer to the top quark
0178    */
0179   tcPDPtr _top;
0180 
0181   /**
0182    * A pointer to the bottom quark
0183    */
0184   tcPDPtr _bt;
0185 
0186   /**
0187    * A pointer to the tau lepton
0188    */
0189   tcPDPtr _tau;
0190   
0191   /**
0192    * CP-even Higgs mixing matrix 
0193    */
0194   MixingMatrixPtr _mixS;
0195   
0196   /**
0197    * CP-even Higgs mixing matrix 
0198    */
0199   MixingMatrixPtr _mixP;
0200   
0201   /**
0202    * \f$\tilde{t}\f$ mixing matrix  
0203    */
0204   MixingMatrixPtr _mixQt;
0205   
0206   /**
0207    * \f$\tilde{b}\f$ mixing matrix  
0208    */
0209   MixingMatrixPtr _mixQb;
0210   
0211   /**
0212    * \f$\tilde{\tau}\f$ mixing matrix  
0213    */
0214   MixingMatrixPtr _mixLt;
0215 
0216   /**
0217    * \f$ \sin\beta\f$ 
0218    */
0219   double _sb;
0220 
0221   /**
0222    * \f$ \cos\beta\f$ 
0223    */
0224   double _cb;
0225 
0226   /**
0227    *  The coefficient of the cubic singlet term in the superpotential
0228    */
0229   double _kappa;
0230 
0231   /**
0232    * The value of the VEV of the higgs that couples to the down-type sector
0233    *  \f$ g*sqrt(2)M_W\cos\beta \f$
0234    */
0235   Energy _vu;
0236 
0237   /**
0238    * The value of the VEV of the higgs that couples to the up-type sector
0239    * i.e. \f$ g*sqrt(2)M_W\sin\beta \f$
0240    */
0241   Energy _vd;
0242   
0243     /**
0244    * The value of the VEV of the singlet higgs
0245    */
0246   Energy _s;
0247   
0248   /**
0249    * The soft trilinear \f$SH_2 H_1\f$ coupling
0250    */
0251   Energy _theAl;
0252 
0253   /**
0254    * The U mixing matrix
0255    */
0256   tMixingMatrixPtr _mixU;
0257 
0258   /**
0259    * The V mixing matrix
0260    */
0261   tMixingMatrixPtr _mixV;
0262   
0263   /**
0264    * The top and bottom quark masses calculated at the last value
0265    * of \f$q^2\f$ 
0266    */
0267   pair<Energy, Energy> _masslast;
0268 
0269   /**
0270    * The scale at which the coupling was last evaluated 
0271    */
0272   Energy2 _q2last;
0273 
0274   /**
0275    * The value of the overall normalisation when the coupling was last 
0276    * evaluated.
0277    */
0278   double _couplast;
0279 
0280   /**
0281    * The value of the weak coupling was last 
0282    * evaluated.
0283    */
0284   double _coup;
0285   
0286   /**
0287    * The PDG code of the Higgs particle when the vertex was last evaluated 
0288    */
0289   long _hlast;
0290 
0291   /**
0292    * Whether the tensor coefficient need recalculating or not 
0293    */
0294   bool _recalc;
0295   //@}
0296 };
0297   
0298 }
0299 
0300 #endif /* HERWIG_NMSSMPPHVertex_H */