Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_LHFFWVertex_H
0003 #define HERWIG_LHFFWVertex_H
0004 //
0005 // This is the declaration of the LHFFWVertex class.
0006 //
0007 
0008 #include "LHModel.h"
0009 #include "ThePEG/Helicity/Vertex/Vector/FFVVertex.h"
0010 
0011 namespace Herwig {
0012 
0013 using namespace ThePEG;
0014 
0015 /**
0016  * The LHFFWVertex class implements the couplings of the fermions, both of 
0017  * the Standard Model and the additional heavy top, to the \f$W^\pm\f$ and
0018  * \f$W_H^\pm\f$ bosons in the Little Higgs model.
0019  */
0020 class LHFFWVertex: public ThePEG::Helicity::FFVVertex {
0021 
0022 public:
0023 
0024   /**
0025    * The default constructor.
0026    */
0027   LHFFWVertex();
0028   
0029   /**
0030    * Calculate the couplings. 
0031    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
0032    * @param part1 The ParticleData pointer for the first  particle.
0033    * @param part2 The ParticleData pointer for the second particle.
0034    * @param part3 The ParticleData pointer for the third  particle.
0035    */
0036   virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3);
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 protected:
0063 
0064   /** @name Clone Methods. */
0065   //@{
0066   /**
0067    * Make a simple clone of this object.
0068    * @return a pointer to the new object.
0069    */
0070   virtual IBPtr clone() const {return new_ptr(*this);}
0071 
0072   /** Make a clone of this object, possibly modifying the cloned object
0073    * to make it sane.
0074    * @return a pointer to the new object.
0075    */
0076   virtual IBPtr fullclone() const {return new_ptr(*this);}
0077   //@}
0078 
0079 protected:
0080 
0081   /** @name Standard Interfaced functions. */
0082   //@{
0083   /**
0084    * Initialize this object after the setup phase before saving an
0085    * EventGenerator to disk.
0086    * @throws InitException if object could not be initialized properly.
0087    */
0088   virtual void doinit();
0089   //@}
0090 
0091 private:
0092 
0093   /**
0094    * The assignment operator is private and must never be called.
0095    * In fact, it should not even be implemented.
0096    */
0097   LHFFWVertex & operator=(const LHFFWVertex &) = delete;
0098 
0099 private:
0100 
0101   /**
0102    * Storage of the couplings.
0103    */
0104   //@{
0105   /**
0106    *  The elements of the CKM matrix.
0107    */
0108   vector<vector<Complex> > _ckm;
0109 
0110   /**
0111    *  The last value of the electroweak coupling calculated.
0112    */
0113   Complex _couplast;
0114 
0115   /**
0116    *  The scale \f$q^2\f$ at which the coupling was last evaluated.
0117    */
0118   Energy2 _q2last;
0119 
0120   /**
0121    *  The correction factor for the Standard Model pieces
0122    */
0123   double _corrL;
0124 
0125   /**
0126    *  The correction factor for the heavy W
0127    */
0128   double _corrH;
0129 
0130   /**
0131    *  The correction factor for the top quark pieces for the SM W
0132    */
0133   double _tcorrL;
0134 
0135   /**
0136    *  The correction factor for the top quark pieces for the heavy W
0137    */
0138   double _tcorrH;
0139 
0140   /**
0141    *  The correction factor for the coupling of the heavy top and SM W
0142    */
0143   double _tHcorrL;
0144 
0145   /**
0146    *  The correction factor for the coupling of the heavy top and the heavy W
0147    */
0148   double _tHcorrH;
0149   //@}
0150 
0151 };
0152 
0153 }
0154 
0155 #endif /* HERWIG_LHFFWVertex_H */