Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_HiggsVectorBosonProcessConstructor_H
0003 #define HERWIG_HiggsVectorBosonProcessConstructor_H
0004 //
0005 // This is the declaration of the HiggsVectorBosonProcessConstructor class.
0006 //
0007 
0008 #include "HardProcessConstructor.h"
0009 #include "Herwig/Shower/ShowerAlpha.h"
0010 
0011 namespace Herwig {
0012 
0013 using namespace ThePEG;
0014 
0015 /**
0016  * Here is the documentation of the HiggsVectorBosonProcessConstructor class.
0017  *
0018  * @see \ref HiggsVectorBosonProcessConstructorInterfaces "The interfaces"
0019  * defined for HiggsVectorBosonProcessConstructor.
0020  */
0021 class HiggsVectorBosonProcessConstructor: public HardProcessConstructor {
0022 
0023 public:
0024 
0025   /**
0026    * The default constructor.
0027    */
0028   HiggsVectorBosonProcessConstructor();
0029 
0030   /**
0031    * Main function called to start constructing the diagrams for 
0032    * the 2->2 process
0033    */
0034   void constructDiagrams();  
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 private:
0080 
0081   /**
0082    * The assignment operator is private and must never be called.
0083    * In fact, it should not even be implemented.
0084    */
0085   HiggsVectorBosonProcessConstructor & 
0086   operator=(const HiggsVectorBosonProcessConstructor &) = delete;
0087 
0088 private:
0089 
0090   /**
0091    *  The allowed outgoing vector bosons
0092    */
0093   PDVector _vector;
0094 
0095   /**
0096    *  The outgoing higgs bosons
0097    */
0098   PDVector _higgs;
0099 
0100   /**
0101    *  Collision Type
0102    */
0103   bool _type;
0104 
0105   /**
0106    *  Treatment of the Higgs width
0107    */
0108   unsigned int _shapeOpt;
0109 
0110   /**
0111    *  The shower coupling for the Matrix Element corrections
0112    */
0113   ShowerAlphaPtr _alpha;
0114 };
0115 
0116 }
0117 
0118 #endif /* HERWIG_HiggsVectorBosonProcessConstructor_H */