Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // ZprimeModelZPQQVertex.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_ZprimeModelZPQQVertex_H
0010 #define HERWIG_ZprimeModelZPQQVertex_H
0011 //
0012 // This is the declaration of the ZprimeModelZPQQVertex class.
0013 
0014 #include "ThePEG/Helicity/Vertex/Vector/FFVVertex.h"
0015 #include "Herwig/Models/Zprime/ZprimeModel.h"
0016 #include "ThePEG/PDT/EnumParticles.h"
0017 
0018 namespace Herwig {
0019 using namespace ThePEG;
0020 
0021 /** \ingroup Helicity
0022  *
0023  *  This is the implementation of the vertex coupling the Standard Model Higgs
0024  *  to the Standard Model fermions for helicity amplitude calculations
0025  *
0026  *  @see FFVVertex
0027  *  @see VertexBase
0028  */
0029 class ZprimeModelZPQQVertex: public FFVVertex {
0030   
0031 public:
0032   
0033   /**
0034    * Default constructor.
0035    */
0036   ZprimeModelZPQQVertex();
0037   
0038   /**
0039    * Calculate the couplings. 
0040    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
0041    * @param part1 The ParticleData pointer for the first  particle.
0042    * @param part2 The ParticleData pointer for the second particle.
0043    * @param part3 The ParticleData pointer for the third  particle.
0044   */
0045   virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3);
0046 
0047 public:
0048   
0049   /** @name Functions used by the persistent I/O system. */
0050   //@{
0051   /**
0052    * Function used to write out object persistently.
0053    * @param os the persistent output stream written to.
0054    */
0055   void persistentOutput(PersistentOStream & os) const;
0056 
0057   /**
0058    * Function used to read in object persistently.
0059    * @param is the persistent input stream read from.
0060    * @param version the version number of the object when written.
0061    */
0062   void persistentInput(PersistentIStream & is, int version);
0063   //@}
0064   
0065   /**
0066    * Standard Init function used to initialize the interfaces.
0067    */
0068   static void Init();
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;
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;
0085   //@}
0086 
0087 protected:
0088   
0089   /**
0090    * Initialize this object after the setup phase before saving and
0091    * EventGenerator to disk.
0092    * @throws InitException if object could not be initialized properly.
0093    */
0094   virtual void doinit();
0095 
0096 private:
0097   
0098   /**
0099    * Private and non-existent assignment operator.
0100    */
0101   ZprimeModelZPQQVertex & operator=(const ZprimeModelZPQQVertex &) = delete;
0102 
0103    /**
0104    * Pointer to the model object.
0105    */
0106   tcSMPtr _theModel;
0107 
0108 
0109 private:
0110 
0111   /**
0112    * Storage of the couplings.
0113    */
0114   //@{
0115 
0116   /**
0117    *  Z prime coupling to top-up (left-handed)
0118    */
0119   double _cZPTU_L;
0120   
0121 
0122   /**
0123    *  Z prime coupling to top-up (right-handed)
0124    */
0125   double _cZPTU_R;
0126 
0127   /**
0128    *  Z prime coupling to top-anti-top (left-handed)
0129    */
0130   double _cZPTT_L;
0131   
0132 
0133   /**
0134    *  Z prime coupling to top-anti-top (right-handed)
0135    */
0136   double _cZPTT_R;
0137 
0138   /**
0139    *  Z prime coupling to u-ubar (left-handed)
0140    */
0141   double _cZPUU_L;
0142   
0143 
0144   /**
0145    *  Z prime coupling to u-ubar (right-handed)
0146    */
0147   double _cZPUU_R;
0148 
0149   /**
0150    *  Z prime coupling to c-cbar (left-handed)
0151    */
0152   double _cZPCC_L;
0153   
0154 
0155   /**
0156    *  Z prime coupling to c-cbar (right-handed)
0157    */
0158   double _cZPCC_R;
0159 
0160     /**
0161    *  Z prime coupling to s-sbar (left-handed)
0162    */
0163   double _cZPSS_L;
0164   
0165 
0166   /**
0167    *  Z prime coupling to s-sbar (right-handed)
0168    */
0169   double _cZPSS_R;
0170   
0171  /**
0172    *  Z prime coupling to d-dbar (left-handed)
0173    */
0174   double _cZPDD_L;
0175 
0176   /**
0177    *  Z prime coupling to d-dbar (right-handed)
0178    */
0179   double _cZPDD_R;
0180 
0181   /**
0182    *  Z prime coupling to d-dbar (left-handed)
0183    */
0184   double _cZPBB_L;
0185   
0186   /**
0187    *  Z prime coupling to d-dbar (right-handed)
0188    */
0189   double _cZPBB_R;
0190 
0191     /**
0192    *  Z prime coupling to e+e- (left-handed)
0193    */
0194   double _cZPee_L;
0195   
0196   /**
0197    *  Z prime coupling to e+e- (right-handed)
0198    */
0199   double _cZPee_R;
0200   
0201  /**
0202    *  Z prime coupling to mu+mu- (left-handed)
0203    */
0204   double _cZPmm_L;
0205 
0206   /**
0207    *  Z prime coupling to mu+mu- (right-handed)
0208    */
0209   double _cZPmm_R;
0210 
0211   /**
0212    *  Z prime coupling to tau+tau- (left-handed)
0213    */
0214   double _cZPtt_L;
0215   
0216   /**
0217    *  Z prime coupling to tau+tau- (right-handed)
0218    */
0219   double _cZPtt_R;
0220 
0221 
0222     /**
0223    *  Z prime coupling to nu_e nu_ebar (left-handed)
0224    */
0225   double _cZPnuenue_L;
0226   
0227   /**
0228    *  Z prime coupling to nu_e nu_ebar (right-handed)
0229    */
0230   double _cZPnuenue_R;
0231   
0232  /**
0233    *  Z prime coupling to nu_mu nu_mubar (left-handed)
0234    */
0235   double _cZPnumnum_L;
0236 
0237   /**
0238    *  Z prime coupling to nu_mu nu_mubar (right-handed)
0239    */
0240   double _cZPnumnum_R;
0241 
0242   /**
0243    *  Z prime coupling to nu_tau nu_taubar (left-handed)
0244    */
0245   double _cZPnutnut_L;
0246   
0247   /**
0248    *  Z prime coupling to nu_tau nu_taubar (right-handed)
0249    */
0250   double _cZPnutnut_R;
0251    
0252   /**
0253    *  Z prime overall coupling
0254    */
0255   double _cZP_o;
0256 
0257 
0258   //@}
0259 };  
0260 
0261 }
0262 
0263 #endif /* HERWIG_ZprimeModelZPQQVertex_H */