Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // LeptoquarkModelSLQFFVertex.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_LeptoquarkModelSLQFFVertex_H
0010 #define HERWIG_LeptoquarkModelSLQFFVertex_H
0011 //
0012 // This is the declaration of the LeptoquarkModelSLQFFVertex class.
0013 
0014 #include "ThePEG/Helicity/Vertex/Scalar/FFSVertex.h"
0015 #include "Herwig/Models/Leptoquarks/LeptoquarkModel.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 FFSVertex
0027  *  @see VertexBase
0028  */
0029 class LeptoquarkModelSLQFFVertex: public FFSVertex {
0030   
0031 public:
0032   
0033   /**
0034    * Default constructor.
0035    */
0036   LeptoquarkModelSLQFFVertex();
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   LeptoquarkModelSLQFFVertex & operator=(const LeptoquarkModelSLQFFVertex &) = 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    *  Overall coupling to fermions
0118    */
0119   double _CFF;
0120   
0121   
0122   /**
0123    *  Overall coupling to left-handed leptons 
0124    */
0125   //double _cL;
0126   Complex _cL;
0127 
0128   /**
0129    *  Overall coupling to right-handed leptons 
0130    */
0131   //  double _cR;
0132   Complex _cR;
0133 
0134   /**
0135    *  Overall coupling to left-handed leptons for S0
0136    */
0137   // double _cL0;
0138   Complex _cL0;
0139   
0140 
0141   /**
0142    *  Overall coupling to right-handed leptons for S0
0143    */
0144   //  double _cR0;
0145   Complex _cR0;
0146 
0147   /**
0148    *  Overall coupling to right-handed leptons for ~S0
0149    */
0150   // double _cR0t;
0151   Complex _cR0t;
0152   
0153   /**
0154    *  Overall coupling to left-handed leptons for ~S1 triplet
0155    */
0156   // double _cL1;
0157   Complex _cL1;
0158 
0159   /**
0160    *  Overall coupling to left-handed leptons for S1/2 triplet
0161    */
0162   // double _cL12;
0163   Complex _cL12;
0164   
0165 
0166   /**
0167    *  Overall coupling to right-handed leptons for S1/2 triplet
0168    */
0169   // double _cR12;
0170   Complex _cR12;
0171 
0172   /**
0173    *  Overall coupling to left-handed leptons for ~S1/2 triplet
0174    */
0175   //  double _cL12t;
0176   Complex _cL12t;
0177   
0178   /**
0179    *  Overall coupling to left-handed leptons 
0180    */
0181   //double _dcL;
0182   Complex _dcL;
0183 
0184   /**
0185    *  Overall coupling to right-handed leptons 
0186    */
0187   // double _dcR;
0188   Complex _dcR;
0189 
0190 
0191   /**
0192    *  Overall coupling to left-handed leptons for dS0
0193    */
0194   //  double _dcL0;
0195   Complex _dcL0;
0196 
0197   /**
0198    *  Overall coupling to right-handed leptons for dS0
0199    */
0200   //  double _dcR0;
0201   Complex _dcR0;
0202 
0203   /**
0204    *  Overall coupling to right-handed leptons for ~dS0
0205    */
0206   double _dcR0t;
0207 
0208   /**
0209    *  Overall coupling to left-handed leptons for ~dS1 triplet
0210    */
0211   double _dcL1;
0212 
0213   /**
0214    *  Overall coupling to left-handed leptons for dS1/2 triplet
0215    */
0216   //double _dcL12;
0217   Complex _dcL12;
0218 
0219   /**
0220    *  Overall coupling to right-handed leptons for dS1/2 triplet
0221    */
0222   //double _dcR12;
0223   Complex _dcR12;
0224 
0225 
0226   /**
0227    *  Overall coupling to left-handed leptons for ~dS1/2 triplet
0228    */
0229   //  double _dcL12t;
0230   Complex _dcL12t;
0231   
0232   /**
0233    *  Suppression scale for derivatively coupled scalar leptoquarks
0234    */
0235   Energy _derivscale;
0236 
0237 
0238 
0239 
0240 
0241   //@}
0242 };  
0243 
0244 }
0245 
0246 #endif /* HERWIG_LeptoquarkModelSLQFFVertex_H */