Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // SSHPPVertex.h is a part of Herwig - A multi-purpose Monte Carlo event generator
0004 // Copyright (C) 2002-2019 The Herwig Collaboration
0005 //
0006 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
0008 //
0009 #ifndef HERWIG_SSHPPVertex_H
0010 #define HERWIG_SSHPPVertex_H
0011 //
0012 // This is the declaration of the SSHPPVertex class.
0013 //
0014 
0015 #include "Herwig/Models/General/VVSLoopVertex.h"
0016 #include "MSSM.h"
0017 
0018 namespace Herwig {
0019 
0020   /**
0021    * This class implements the effective vertex coupling a higgs
0022    * to a pair of photons in the MSSM. The loops include third generation
0023    * sfermions and fermions, \f$W^\pm\f$ and \f$H^\pm\f$
0024    *
0025    * @see \ref SSHPPVertexInterfaces "The interfaces"
0026    * defined for SSHPPVertex.
0027 
0028    */
0029 class SSHPPVertex: public VVSLoopVertex {
0030   
0031 public:
0032   
0033   /**
0034    * The default constructor.
0035    */
0036   SSHPPVertex();
0037   
0038   /** @name Functions used by the persistent I/O system. */
0039   //@{
0040   /**
0041    * Function used to write out object persistently.
0042    * @param os the persistent output stream written to.
0043    */
0044   void persistentOutput(PersistentOStream & os) const;
0045   
0046   /**
0047    * Function used to read in object persistently.
0048    * @param is the persistent input stream read from.
0049    * @param version the version number of the object when written.
0050    */
0051   void persistentInput(PersistentIStream & is, int version);
0052   //@}
0053   
0054   /**
0055    * The standard Init function used to initialize the interfaces.
0056    * Called exactly once for each class by the class description system
0057    * before the main function starts or
0058    * when this class is dynamically loaded.
0059    */
0060   static void Init();
0061   
0062   /** 
0063    * Calculate couplings
0064    *@param q2 Scale at which to evaluate coupling
0065    *@param particle1 ParticleData pointer to first particle
0066    *@param particle2 ParticleData pointer to second particle
0067    *@param particle3 ParticleData pointer to third particle
0068    */
0069   virtual void setCoupling(Energy2 q2, tcPDPtr particle1, tcPDPtr particle2,
0070                tcPDPtr particle3);
0071   
0072 protected:
0073   
0074   /** @name Clone Methods. */
0075   //@{
0076   /**
0077    * Make a simple clone of this object.
0078    * @return a pointer to the new object.
0079    */
0080   virtual IBPtr clone() const {return new_ptr(*this);}
0081   
0082   /** Make a clone of this object, possibly modifying the cloned object
0083    * to make it sane.
0084    * @return a pointer to the new object.
0085    */
0086   virtual IBPtr fullclone() const {return new_ptr(*this);}
0087   //@}
0088   
0089 protected:
0090   
0091   /**
0092    * Initialize this object after the setup phase before saving and
0093    * EventGenerator to disk.
0094    * @throws InitException if object could not be initialized properly.
0095    */
0096   virtual void doinit();
0097   
0098 private:
0099   
0100   /**
0101    * The assignment operator is private and must never be called.
0102    * In fact, it should not even be implemented.
0103    */
0104   SSHPPVertex & operator=(const SSHPPVertex &) = delete;
0105   
0106 private:
0107 
0108   /**
0109    * Switch to turn off squark trilinear couplings via A terms for testing
0110    */
0111   bool theIncludeTriLinear;
0112 
0113   /**
0114    *  Treat the pseudoscalar as scalar for comparison with ISAJET
0115    */
0116   bool thePseudoScalarTreatment;
0117 
0118   /**
0119    * A pointer to the MSSM object
0120    */
0121   tMSSMPtr theMSSM;
0122 
0123   /**
0124    * Value of \f$\sin\theta_W\f$
0125    */
0126   double theSw;
0127   
0128   /**
0129    * The mass of the \f$W\f$ boson.
0130    */
0131   Energy theMw;
0132 
0133   /**
0134    * The factor \f$\frac{M_Z}{\cos\theta_W}\f$ 
0135    */
0136   Energy theZfact;  
0137   
0138   /**
0139    * The mixing matrix factor \f$Q^{2i}_{11}Q^{2i}_{11}\f$ 
0140    * for the \f$\tilde{t}\f$
0141    */
0142   Complex theQt1L;
0143   
0144   /**
0145    * The mixing matrix factor \f$Q^{2i}_{12}Q^{2i}_{12}\f$ 
0146    * for the \f$\tilde{t}\f$
0147    */
0148   Complex theQt1R;
0149   
0150   /**
0151    * The mixing matrix factor \f$Q^{2i}_{12}Q^{2i}_{12}\f$ 
0152    * for the \f$\tilde{t}\f$
0153    */
0154   Complex theQt1LR;
0155 
0156   /**
0157    * The mixing matrix factor \f$Q^{2i}_{21}Q^{2i}_{21}\f$ 
0158    * for the \f$\tilde{t}\f$
0159    */
0160   Complex theQt2L;
0161 
0162   /**
0163    * The mixing matrix factor \f$Q^{2i}_{22}Q^{2i}_{22}\f$ 
0164    * for the \f$\tilde{t}\f$
0165    */
0166   Complex theQt2R;
0167 
0168   /**
0169    * The mixing matrix factor \f$Q^{2i}_{22}Q^{2i}_{22}\f$ 
0170    * for the \f$\tilde{t}\f$
0171    */
0172   Complex theQt2LR;
0173 
0174  /**
0175    * The mixing matrix factor \f$Q^{2i-1}_{11}Q^{2i-1}_{11}\f$ 
0176    * for the \f$\tilde{b}\f$
0177    */
0178   Complex theQb1L;
0179 
0180  /**
0181    * The mixing matrix factor \f$Q^{2i-1}_{12}Q^{2i-1}_{12}\f$ 
0182    * for the \f$\tilde{b}\f$
0183    */
0184   Complex theQb1R;
0185 
0186  /**
0187    * The mixing matrix factor \f$Q^{2i-1}_{12}Q^{2i-1}_{12}\f$ 
0188    * for the \f$\tilde{b}\f$
0189    */
0190   Complex theQb1LR;
0191 
0192   /**
0193    * The mixing matrix factor \f$Q^{2i-1}_{21}Q^{2i-1}_{21}\f$ 
0194    * for the \f$\tilde{b}\f$
0195    */
0196   Complex theQb2L;
0197 
0198   /**
0199    * The mixing matrix factor \f$Q^{2i-1}_{22}Q^{2i-1}_{22}\f$ 
0200    * for the \f$\tilde{b}\f$
0201    */
0202   Complex theQb2R; 
0203 
0204   /**
0205    * The mixing matrix factor \f$Q^{2i-1}_{22}Q^{2i-1}_{22}\f$ 
0206    * for the \f$\tilde{b}\f$
0207    */
0208   Complex theQb2LR; 
0209   
0210   /**
0211    * The mixing matrix factor \f$L^{2i}_{11}L^{2i}_{11}\f$ 
0212    * for the \f$\tilde{\tau}\f$
0213    */
0214   Complex theLt1L;
0215   
0216   /**
0217    * The mixing matrix factor \f$L^{2i}_{12}L^{2i}_{12}\f$ 
0218    * for the \f$\tilde{\tau}\f$
0219    */
0220   Complex theLt1R;
0221   
0222   /**
0223    * The mixing matrix factor \f$L^{2i}_{12}L^{2i}_{12}\f$ 
0224    * for the \f$\tilde{\tau}\f$
0225    */
0226   Complex theLt1LR;
0227 
0228   /**
0229    * The mixing matrix factor \f$L^{2i}_{21}L^{2i}_{21}\f$ 
0230    * for the \f$\tilde{\tau}\f$
0231    */
0232   Complex theLt2L;
0233 
0234   /**
0235    * The mixing matrix factor \f$L^{2i}_{22}L^{2i}_{22}\f$ 
0236    * for the \f$\tilde{\tau}\f$
0237    */
0238   Complex theLt2R;
0239 
0240   /**
0241    * The mixing matrix factor \f$L^{2i}_{22}L^{2i}_{22}\f$ 
0242    * for the \f$\tilde{\tau}\f$
0243    */
0244   Complex theLt2LR;
0245   
0246   /**
0247    * A pointer to the top quark ParticleData object 
0248    */
0249   tPDPtr thetop;
0250 
0251   /**
0252    * A pointer to the bottom quark ParticleData object 
0253    */
0254   tPDPtr thebot;
0255 
0256   /**
0257    * A pointer to the tau lepton ParticleData object 
0258    */
0259   tPDPtr thetau;
0260 
0261   /**
0262    * The sfermion masses 
0263    */
0264   vector<Energy> theSfmass;
0265   
0266   /**
0267    * The value of \f$ \tan\beta \f$ 
0268    */
0269   double theTanB;
0270 
0271   /**
0272    * The value of \f$ \sin\alpha \f$ 
0273    */
0274   double theSinA;
0275 
0276   /**
0277    * The value of \f$ \cos\alpha \f$ 
0278    */
0279   double theCosA;
0280 
0281   /**
0282    * The value of \f$ \sin\beta \f$ 
0283    */
0284   double theSinB;
0285 
0286   /**
0287    * The value of \f$ \cos\beta \f$ 
0288    */
0289   double theCosB;
0290 
0291   /**
0292    * The value of \f$ \sin(\alpha + \beta) \f$ 
0293    */
0294   double theSinApB;
0295 
0296   /**
0297    * The value of \f$ \cos(\alpha + \beta) \f$ 
0298    */
0299   double theCosApB;
0300 
0301   /**
0302    * The value of \f$ \sin(\beta-\alpha) \f$ 
0303    */
0304   double theSinBmA;
0305 
0306   /**
0307    * The value of \f$ \cos(\beta-\alpha) \f$ 
0308    */
0309   double theCosBmA;
0310 
0311   /**
0312    * The U mixing matrix
0313    */
0314   tMixingMatrixPtr theU;
0315 
0316   /**
0317    * The V mixing matrix
0318    */
0319   tMixingMatrixPtr theV;  
0320 
0321   /**
0322    * Last value of the coupling calculated
0323    */
0324   Complex theCouplast;
0325   
0326   /**
0327    * The scale \f$q^2\f$ at which coupling was last evaluated
0328    */
0329   Energy2 theq2last;
0330   
0331   /**
0332    * Whether we have calculated the tensor coefficents yet 
0333    */
0334   bool theHaveCoeff;
0335 
0336   /**
0337    *  ID of the higgs
0338    */
0339   long theLastID;
0340 };
0341 
0342 }
0343 
0344 
0345 #endif /* HERWIG_SSHPPVertex_H */