Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_QQHiggsProcessConstructor_H
0003 #define HERWIG_QQHiggsProcessConstructor_H
0004 //
0005 // This is the declaration of the QQHiggsProcessConstructor 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 QQHiggsProcessConstructor class.
0016  *
0017  * @see \ref QQHiggsProcessConstructorInterfaces "The interfaces"
0018  * defined for QQHiggsProcessConstructor.
0019  */
0020 class QQHiggsProcessConstructor: public HardProcessConstructor {
0021 
0022 public:
0023 
0024   /**
0025    * The default constructor.
0026    */
0027   QQHiggsProcessConstructor();
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   QQHiggsProcessConstructor & operator=(const QQHiggsProcessConstructor &) = delete;
0085 
0086 private:
0087 
0088   /**
0089    * Which partonic processes to include 
0090    */
0091   unsigned int _process;
0092 
0093   /**
0094    *  Which outgoing quark flavours to include
0095    */
0096   unsigned int _quarkFlavour;
0097 
0098   /**
0099    *  The outgoing higgs bosons
0100    */
0101   PDVector _higgs;
0102 
0103   /**
0104    *  Treatment of the Higgs width
0105    */
0106   unsigned int _shapeOpt;
0107 };
0108 
0109 }
0110 
0111 #endif /* HERWIG_QQHiggsProcessConstructor_H */