Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_LHTPWHHVertex_H
0003 #define HERWIG_LHTPWHHVertex_H
0004 //
0005 // This is the declaration of the LHTPWHHVertex class.
0006 //
0007 
0008 #include "ThePEG/Helicity/Vertex/Scalar/VSSVertex.h"
0009 
0010 namespace Herwig {
0011 
0012 using namespace ThePEG;
0013 
0014 /**
0015  * The LHTPWHHVertex class implements the coupling of an electroweak gauge
0016  * boson to a pair of Higgs bosons in the Little Higgs model with T-parity.
0017  */
0018 class LHTPWHHVertex: public Helicity::VSSVertex {
0019 
0020 public:
0021 
0022   /**
0023    * The default constructor.
0024    */
0025   LHTPWHHVertex();
0026 
0027   /** @name Functions used by the persistent I/O system. */
0028   //@{
0029   /**
0030    * Function used to write out object persistently.
0031    * @param os the persistent output stream written to.
0032    */
0033   void persistentOutput(PersistentOStream & os) const;
0034 
0035   /**
0036    * Function used to read in object persistently.
0037    * @param is the persistent input stream read from.
0038    * @param version the version number of the object when written.
0039    */
0040   void persistentInput(PersistentIStream & is, int version);
0041   //@}
0042 
0043   /**
0044    * The standard Init function used to initialize the interfaces.
0045    * Called exactly once for each class by the class description system
0046    * before the main function starts or
0047    * when this class is dynamically loaded.
0048    */
0049   static void Init();
0050 
0051   /**
0052    * Calculate the coupling for the vertex
0053    * @param q2 The scale to at which evaluate the coupling.
0054    * @param particle1 The first particle in the vertex.
0055    * @param particle2 The second particle in the vertex.
0056    * @param particle3 The third particle in the vertex.
0057    */
0058   virtual void setCoupling(Energy2 q2, tcPDPtr particle1, tcPDPtr particle2,
0059                tcPDPtr particle3);
0060 
0061 protected:
0062 
0063   /** @name Clone Methods. */
0064   //@{
0065   /**
0066    * Make a simple clone of this object.
0067    * @return a pointer to the new object.
0068    */
0069   virtual IBPtr clone() const;
0070 
0071   /** Make a clone of this object, possibly modifying the cloned object
0072    * to make it sane.
0073    * @return a pointer to the new object.
0074    */
0075   virtual IBPtr fullclone() const;
0076   //@}
0077 
0078 protected:
0079 
0080   /** @name Standard Interfaced functions. */
0081   //@{
0082   /**
0083    * Initialize this object after the setup phase before saving an
0084    * EventGenerator to disk.
0085    * @throws InitException if object could not be initialized properly.
0086    */
0087   virtual void doinit();
0088   //@}
0089 
0090 private:
0091 
0092   /**
0093    * The assignment operator is private and must never be called.
0094    * In fact, it should not even be implemented.
0095    */
0096   LHTPWHHVertex & operator=(const LHTPWHHVertex &) = delete;
0097 
0098 private:
0099 
0100   /**
0101    * The value of the coupling when last evaluated
0102    */
0103   Complex coupLast_;
0104   
0105   /**
0106    * The scale at which the coupling  was last evaluated.
0107    */
0108   Energy2 q2Last_;
0109 
0110   /**
0111    *  Couplings 
0112    */
0113   vector<Complex> coup_;
0114 };
0115 
0116 }
0117 
0118 #endif /* HERWIG_LHTPWHHVertex_H */