Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_NMSSMGOGOHVertex_H
0003 #define HERWIG_NMSSMGOGOHVertex_H
0004 //
0005 // This is the declaration of the NMSSMGOGOHVertex class.
0006 //
0007 
0008 #include "ThePEG/Helicity/Vertex/Scalar/FFSVertex.h"
0009 #include "Herwig/Models/Susy/MixingMatrix.h"
0010 
0011 namespace Herwig {
0012 
0013 using namespace ThePEG;
0014 using namespace ThePEG::Helicity;
0015 
0016 /**
0017  * Here is the documentation of the NMSSMGOGOHVertex class.
0018  *
0019  * @see \ref NMSSMGOGOHVertexInterfaces "The interfaces"
0020  * defined for NMSSMGOGOHVertex.
0021  */
0022 class NMSSMGOGOHVertex: public FFSVertex {
0023 
0024 public:
0025 
0026   /**
0027    * The default constructor.
0028    */
0029   inline NMSSMGOGOHVertex();
0030 
0031   /** @name Functions used by the persistent I/O system. */
0032   //@{
0033   /**
0034    * Function used to write out object persistently.
0035    * @param os the persistent output stream written to.
0036    */
0037   void persistentOutput(PersistentOStream & os) const;
0038 
0039   /**
0040    * Function used to read in object persistently.
0041    * @param is the persistent input stream read from.
0042    * @param version the version number of the object when written.
0043    */
0044   void persistentInput(PersistentIStream & is, int version);
0045   //@}
0046 
0047   /**
0048    * The standard Init function used to initialize the interfaces.
0049    * Called exactly once for each class by the class description system
0050    * before the main function starts or
0051    * when this class is dynamically loaded.
0052    */
0053   static void Init();
0054 
0055   /**
0056    * Calculate the couplings. This method is virtual and must be implemented in 
0057    * classes inheriting from this.
0058    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
0059    * @param part1 The ParticleData pointer for the first  particle.
0060    * @param part2 The ParticleData pointer for the second particle.
0061    * @param part3 The ParticleData pointer for the third  particle.
0062    */
0063   virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,
0064                tcPDPtr part3);
0065 
0066 protected:
0067 
0068   /** @name Clone Methods. */
0069   //@{
0070   /**
0071    * Make a simple clone of this object.
0072    * @return a pointer to the new object.
0073    */
0074   virtual IBPtr clone() const {return new_ptr(*this);}
0075 
0076   /** Make a clone of this object, possibly modifying the cloned object
0077    * to make it sane.
0078    * @return a pointer to the new object.
0079    */
0080   virtual IBPtr fullclone() const {return new_ptr(*this);}
0081   //@}
0082 
0083 protected:
0084 
0085   /** @name Standard Interfaced functions. */
0086   //@{
0087   /**
0088    * Initialize this object after the setup phase before saving an
0089    * EventGenerator to disk.
0090    */
0091   virtual void doinit();
0092   //@}
0093 
0094 private:
0095 
0096   /**
0097    * The assignment operator is private and must never be called.
0098    * In fact, it should not even be implemented.
0099    */
0100   NMSSMGOGOHVertex & operator=(const NMSSMGOGOHVertex &) = delete;
0101 
0102 private:
0103 
0104   /**
0105    *  The various mixing matrices and couplings
0106    */
0107   //@{
0108   /**
0109    *  The V chargino mixing matrix
0110    */
0111   MixingMatrixPtr _mixV;
0112 
0113   /**
0114    *  The U chargino mixing matrix
0115    */
0116   MixingMatrixPtr _mixU;
0117 
0118   /**
0119    *  The neutralino mixing matrix 
0120    */
0121   MixingMatrixPtr _mixN;
0122 
0123   /**
0124    *  The CP-even neutral Higgs mixing matrix
0125    */
0126   MixingMatrixPtr _mixS;
0127 
0128   /**
0129    *  The CP-odd neutral Higgs mixing matrix
0130    */
0131   MixingMatrixPtr _mixP;
0132 
0133   /**
0134    *  The tri-linear \f$\lambda\f$ coupling
0135    */
0136   double _lambda;
0137 
0138   /**
0139    *  The tri-linear \f$\kappa\f$ coupling
0140    */
0141   double _kappa;
0142 
0143   /**
0144    *  \f$\sin\beta\f$
0145    */
0146   double _sinb;
0147 
0148   /**
0149    *  \f$\cos\beta\f$
0150    */
0151   double _cosb;
0152 
0153   /**
0154    *  \f$\sin\theta_W\f$
0155    */
0156   double _sw;
0157 
0158   /**
0159    *  \f$\cos\theta_W\f$
0160    */
0161   double _cw;
0162 
0163   /**
0164    *  The last \f$q^2\f$ the coupling was evaluated at.
0165    */
0166   Energy2 _q2last;
0167 
0168   /**
0169    *  The last value of the coupling
0170    */
0171   double _couplast;
0172   //@}
0173 
0174 };
0175 }
0176 
0177 
0178 #endif /* HERWIG_NMSSMGOGOHVertex_H */