Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_LHTPFFZVertex_H
0003 #define HERWIG_LHTPFFZVertex_H
0004 //
0005 // This is the declaration of the LHTPFFZVertex class.
0006 //
0007 
0008 #include "ThePEG/Helicity/Vertex/Vector/FFVVertex.h"
0009 
0010 namespace Herwig {
0011 
0012 using namespace ThePEG;
0013 
0014 /**
0015  * The LHTPFFZVertex class implements the couples of the \f$Z^0\f$
0016  * boson and its heavy partner to the fermions in the Little Higgs
0017  * model with T-parity.
0018  */
0019 class LHTPFFZVertex: public Helicity::FFVVertex {
0020 
0021 public:
0022 
0023   /**
0024    * The default constructor.
0025    */
0026   LHTPFFZVertex();
0027   
0028   /**
0029    * Calculate the couplings. 
0030    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
0031    * @param part1 The ParticleData pointer for the first  particle.
0032    * @param part2 The ParticleData pointer for the second particle.
0033    * @param part3 The ParticleData pointer for the third  particle.
0034    */
0035   virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3);
0036 
0037 public:
0038 
0039   /** @name Functions used by the persistent I/O system. */
0040   //@{
0041   /**
0042    * Function used to write out object persistently.
0043    * @param os the persistent output stream written to.
0044    */
0045   void persistentOutput(PersistentOStream & os) const;
0046 
0047   /**
0048    * Function used to read in object persistently.
0049    * @param is the persistent input stream read from.
0050    * @param version the version number of the object when written.
0051    */
0052   void persistentInput(PersistentIStream & is, int version);
0053   //@}
0054 
0055   /**
0056    * The standard Init function used to initialize the interfaces.
0057    * Called exactly once for each class by the class description system
0058    * before the main function starts or
0059    * when this class is dynamically loaded.
0060    */
0061   static void Init();
0062 
0063 protected:
0064 
0065   /** @name Clone Methods. */
0066   //@{
0067   /**
0068    * Make a simple clone of this object.
0069    * @return a pointer to the new object.
0070    */
0071   virtual IBPtr clone() const;
0072 
0073   /** Make a clone of this object, possibly modifying the cloned object
0074    * to make it sane.
0075    * @return a pointer to the new object.
0076    */
0077   virtual IBPtr fullclone() const;
0078   //@}
0079 
0080 protected:
0081 
0082   /** @name Standard Interfaced functions. */
0083   //@{
0084   /**
0085    * Initialize this object after the setup phase before saving an
0086    * EventGenerator to disk.
0087    * @throws InitException if object could not be initialized properly.
0088    */
0089   virtual void doinit();
0090   //@}
0091 
0092 private:
0093 
0094   /**
0095    * The assignment operator is private and must never be called.
0096    * In fact, it should not even be implemented.
0097    */
0098   LHTPFFZVertex & operator=(const LHTPFFZVertex &) = delete;
0099 
0100 private:
0101 
0102   /**
0103    * Storage of the couplings.
0104    */
0105   //@{
0106   /**
0107    *  The left couplings of the Standard Model fermions.
0108    */
0109   vector<double> gl_;
0110 
0111   /**
0112    *  The right couplings of the Standard Model fermions.
0113    */
0114   vector<double> gr_;
0115 
0116   /**
0117    *  The left couplings to the Z for the extended top sector
0118    */
0119   vector<double> tl_;
0120 
0121   /**
0122    *  The right couplings to the Z for the extended top sector
0123    */
0124   vector<double> tr_;
0125 
0126   /**
0127    *  Coupling of \f$dd_-Z_H\f$
0128    */
0129   double coupd_;
0130 
0131   /**
0132    *  Coupling of \f$uu_-Z_H\f$
0133    */
0134   double coupu_;
0135 
0136   /**
0137    *  Coupling of \f$ee_-Z_H\f$
0138    */
0139   double coupe_;
0140 
0141   /**
0142    *  Coupling of \f$\nu\nu_-Z_H\f$
0143    */
0144   double coupnu_;
0145 
0146   /**
0147    *  Left mixings
0148    */
0149   double sL_,cL_;
0150 
0151   /**
0152    *  Right mixings
0153    */
0154   double sR_,cR_;
0155 
0156   /**
0157    *  The last value of the electroweak coupling calculated.
0158    */
0159   Complex coupLast_;
0160 
0161   /**
0162    *  The scale \f$q^2\f$ at which the coupling was last evaluated.
0163    */
0164   Energy2 q2Last_;
0165   //@}
0166 
0167 };
0168 
0169 }
0170 
0171 #endif /* HERWIG_LHTPFFZVertex_H */