Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_LHTPFFPVertex_H
0003 #define HERWIG_LHTPFFPVertex_H
0004 //
0005 // This is the declaration of the LHTPFFPVertex class.
0006 //
0007 
0008 #include "ThePEG/Helicity/Vertex/Vector/FFVVertex.h"
0009 
0010 namespace Herwig {
0011 
0012 using namespace ThePEG;
0013 
0014 /**
0015  * The LHTPFFPVertex class implements the couplings of the photon
0016  * and its heavy partner \f$A_H\f$ in the Little Higgs model with T-parity.
0017  */
0018 class LHTPFFPVertex: public Helicity::FFVVertex {
0019 
0020 public:
0021 
0022   /**
0023    * The default constructor.
0024    */
0025   LHTPFFPVertex();
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 public:
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;
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;
0077   //@}
0078 
0079 protected:
0080 
0081   /**
0082    * Initialize this object after the setup phase before saving and
0083    * EventGenerator to disk.
0084    * @throws InitException if object could not be initialized properly.
0085    */
0086   virtual void doinit();
0087 
0088 private:
0089 
0090   /**
0091    * The assignment operator is private and must never be called.
0092    * In fact, it should not even be implemented.
0093    */
0094   LHTPFFPVertex & operator=(const LHTPFFPVertex &) = delete;
0095 
0096 private:
0097 
0098   /**
0099    * Storage of the couplings.
0100    */
0101   //@{
0102   /**
0103    *  The charge of the Standard Model fermions.
0104    */
0105   vector<double> charge_;
0106 
0107   /**
0108    *  The last value of the coupling calculated.
0109    */
0110   Complex coupLast_;
0111 
0112   /**
0113    *  The scale \f$q^2\f$ at which the coupling was last evaluated.
0114    */
0115   Energy2 q2Last_;
0116   //@}
0117 
0118   /**
0119    *  Couplings of the fermion and T-fermions to the \f$A_H\f$
0120    */
0121   //@{
0122   /**
0123    *  Coupling of \f$dd_-A_H\f$
0124    */
0125   double coupd_;
0126 
0127   /**
0128    *  Coupling of \f$uu_-A_H\f$
0129    */
0130   double coupu_;
0131 
0132   /**
0133    *  Coupling of \f$ee_-A_H\f$
0134    */
0135   double coupe_;
0136 
0137   /**
0138    *  Coupling of \f$\nu\nu_-A_H\f$
0139    */
0140   double coupnu_;
0141 
0142   /**
0143    *  Coupling of heavy top
0144    */
0145   double TPreFactor_;
0146 
0147   /**
0148    *  Left mixings
0149    */
0150   double sL_,cL_;
0151 
0152   /**
0153    *  Right mixings
0154    */
0155   double sR_,cR_;
0156   //@}
0157 };
0158 
0159 }
0160 
0161 #endif /* HERWIG_LHTPFFPVertex_H */