Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_LHFFZVertex_H
0003 #define HERWIG_LHFFZVertex_H
0004 //
0005 // This is the declaration of the LHFFZVertex class.
0006 //
0007 
0008 #include "LHModel.h"
0009 #include "ThePEG/Helicity/Vertex/Vector/FFVVertex.h"
0010 
0011 namespace Herwig {
0012 
0013 /**
0014  * The LHFFZVertex class implements the couplings of the fermion,
0015  *  both of the Standard Model and the additional heavy top to the 
0016  *  \f$Z^0\f$ and \f$Z_H\f$ bosons in the Little Higgs model.
0017  */
0018 class LHFFZVertex: public Helicity::FFVVertex {
0019 
0020 public:
0021 
0022   /**
0023    * The default constructor.
0024    */
0025   LHFFZVertex();
0026   
0027   /**
0028    * Calculate the couplings. 
0029    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
0030    * @param part1 The ParticleData pointer for the first  particle.
0031    * @param part2 The ParticleData pointer for the second particle.
0032    * @param part3 The ParticleData pointer for the third  particle.
0033    */
0034   virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3);
0035 
0036   /** @name Functions used by the persistent I/O system. */
0037   //@{
0038   /**
0039    * Function used to write out object persistently.
0040    * @param os the persistent output stream written to.
0041    */
0042   void persistentOutput(PersistentOStream & os) const;
0043 
0044   /**
0045    * Function used to read in object persistently.
0046    * @param is the persistent input stream read from.
0047    * @param version the version number of the object when written.
0048    */
0049   void persistentInput(PersistentIStream & is, int version);
0050   //@}
0051 
0052   /**
0053    * The standard Init function used to initialize the interfaces.
0054    * Called exactly once for each class by the class description system
0055    * before the main function starts or
0056    * when this class is dynamically loaded.
0057    */
0058   static void Init();
0059 
0060 protected:
0061 
0062   /** @name Clone Methods. */
0063   //@{
0064   /**
0065    * Make a simple clone of this object.
0066    * @return a pointer to the new object.
0067    */
0068   virtual IBPtr clone() const {return new_ptr(*this);}
0069 
0070   /** Make a clone of this object, possibly modifying the cloned object
0071    * to make it sane.
0072    * @return a pointer to the new object.
0073    */
0074   virtual IBPtr fullclone() const {return new_ptr(*this);}
0075   //@}
0076 
0077 protected:
0078 
0079   /** @name Standard Interfaced functions. */
0080   //@{
0081   /**
0082    * Initialize this object after the setup phase before saving an
0083    * EventGenerator to disk.
0084    * @throws InitException if object could not be initialized properly.
0085    */
0086   virtual void doinit();
0087   //@}
0088 
0089 private:
0090 
0091   /**
0092    * The assignment operator is private and must never be called.
0093    * In fact, it should not even be implemented.
0094    */
0095   LHFFZVertex & operator=(const LHFFZVertex &) = delete;
0096 
0097 private:
0098 
0099   /**
0100    * Storage of the couplings.
0101    */
0102   //@{
0103   /**
0104    *  The left couplings of the Standard Model fermions to the Z.
0105    */
0106   vector<double> _gl;
0107 
0108   /**
0109    *  The right couplings of the Standard Model fermions to the Z.
0110    */
0111   vector<double> _gr;
0112 
0113   /**
0114    *  The left couplings of the Standard Model fermions to the heavy Z.
0115    */
0116   vector<double> _glH;
0117 
0118   /**
0119    *  The right couplings of the Standard Model fermions to the heavy Z.
0120    */
0121   vector<double> _grH;
0122 
0123   /**
0124    *  The last value of the electroweak coupling calculated.
0125    */
0126   Complex _couplast;
0127 
0128   /**
0129    *  The scale \f$q^2\f$ at which the coupling was last evaluated.
0130    */
0131   Energy2 _q2last;
0132   //@}
0133 };
0134 
0135 }
0136 
0137 #endif /* HERWIG_LHFFZVertex_H */