Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_GeneralfftoffH_H
0003 #define HERWIG_GeneralfftoffH_H
0004 //
0005 // This is the declaration of the GeneralfftoffH class.
0006 //
0007 
0008 #include "Herwig/MatrixElement/MEfftoffH.h"
0009 #include "GeneralfftoffH.fh"
0010 
0011 namespace Herwig {
0012 
0013 using namespace ThePEG;
0014 
0015 /**
0016  * Here is the documentation of the GeneralfftoffH class.
0017  *
0018  * @see \ref GeneralfftoffHInterfaces "The interfaces"
0019  * defined for GeneralfftoffH.
0020  */
0021 class GeneralfftoffH: public MEfftoffH {
0022 
0023 public:
0024 
0025   /**
0026    *  Type of process
0027    */
0028   enum Process {Lepton,Hadron};
0029 
0030 public:
0031 
0032   /**
0033    * The default constructor.
0034    */
0035   GeneralfftoffH();
0036 
0037   /** @name Virtual functions required by the MEBase class. */
0038   //@{
0039   /**
0040    * Add all possible diagrams with the add() function.
0041    */
0042   virtual void getDiagrams() const;
0043   //@}
0044 
0045   /**
0046    *  Set up the matrix element
0047    */
0048   void setProcessInfo(Process proc, PDPtr higgs,
0049               AbstractVVSVertexPtr vertex,
0050               unsigned int shapeOpt,
0051               unsigned int process);
0052 
0053 public:
0054 
0055   /** @name Functions used by the persistent I/O system. */
0056   //@{
0057   /**
0058    * Function used to write out object persistently.
0059    * @param os the persistent output stream written to.
0060    */
0061   void persistentOutput(PersistentOStream & os) const;
0062 
0063   /**
0064    * Function used to read in object persistently.
0065    * @param is the persistent input stream read from.
0066    * @param version the version number of the object when written.
0067    */
0068   void persistentInput(PersistentIStream & is, int version);
0069   //@}
0070 
0071   /**
0072    * The standard Init function used to initialize the interfaces.
0073    * Called exactly once for each class by the class description system
0074    * before the main function starts or
0075    * when this class is dynamically loaded.
0076    */
0077   static void Init();
0078 
0079 protected:
0080 
0081   /** @name Clone Methods. */
0082   //@{
0083   /**
0084    * Make a simple clone of this object.
0085    * @return a pointer to the new object.
0086    */
0087   virtual IBPtr clone() const;
0088 
0089   /** Make a clone of this object, possibly modifying the cloned object
0090    * to make it sane.
0091    * @return a pointer to the new object.
0092    */
0093   virtual IBPtr fullclone() const;
0094   //@}
0095 
0096 private:
0097 
0098   /**
0099    * The assignment operator is private and must never be called.
0100    * In fact, it should not even be implemented.
0101    */
0102   GeneralfftoffH & operator=(const GeneralfftoffH &) = delete;
0103 
0104 private:
0105 
0106   /**
0107    *  The type of process
0108    */
0109   Process _proc;
0110 
0111 };
0112 
0113 }
0114 
0115 #endif /* HERWIG_GeneralfftoffH_H */