Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_HiggsVBFProcessConstructor_H
0003 #define HERWIG_HiggsVBFProcessConstructor_H
0004 //
0005 // This is the declaration of the HiggsVBFProcessConstructor class.
0006 //
0007 
0008 #include "HardProcessConstructor.h"
0009 
0010 namespace Herwig {
0011 
0012 using namespace ThePEG;
0013 
0014 /**
0015  * Here is the documentation of the HiggsVBFProcessConstructor class.
0016  *
0017  * @see \ref HiggsVBFProcessConstructorInterfaces "The interfaces"
0018  * defined for HiggsVBFProcessConstructor.
0019  */
0020 class HiggsVBFProcessConstructor: public HardProcessConstructor {
0021 
0022 public:
0023 
0024   /**
0025    * The default constructor.
0026    */
0027   HiggsVBFProcessConstructor();
0028 
0029   /**
0030    * Main function called to start constructing the diagrams for 
0031    * the 2->2 process
0032    */
0033   void constructDiagrams();
0034 
0035 public:
0036 
0037   /** @name Functions used by the persistent I/O system. */
0038   //@{
0039   /**
0040    * Function used to write out object persistently.
0041    * @param os the persistent output stream written to.
0042    */
0043   void persistentOutput(PersistentOStream & os) const;
0044 
0045   /**
0046    * Function used to read in object persistently.
0047    * @param is the persistent input stream read from.
0048    * @param version the version number of the object when written.
0049    */
0050   void persistentInput(PersistentIStream & is, int version);
0051   //@}
0052 
0053   /**
0054    * The standard Init function used to initialize the interfaces.
0055    * Called exactly once for each class by the class description system
0056    * before the main function starts or
0057    * when this class is dynamically loaded.
0058    */
0059   static void Init();
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 private:
0079 
0080   /**
0081    * The assignment operator is private and must never be called.
0082    * In fact, it should not even be implemented.
0083    */
0084   HiggsVBFProcessConstructor & 
0085   operator=(const HiggsVBFProcessConstructor &) = delete;
0086 
0087 private:
0088 
0089   /**
0090    *  The outgoing higgs bosons
0091    */
0092   PDVector _higgs;
0093 
0094   /**
0095    *  Collision Type
0096    */
0097   bool _type;
0098 
0099   /**
0100    *  Treatment of the Higgs width
0101    */
0102   unsigned int _shapeOpt;
0103 
0104   /**
0105    *  which intermediates to include
0106    */
0107   unsigned int _intermediates;
0108 };
0109 
0110 }
0111 
0112 #endif /* HERWIG_HiggsVBFProcessConstructor_H */