Back to home page

EIC code displayed by LXR

 
 

    


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

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