Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_GeneralfftoVH_H
0003 #define HERWIG_GeneralfftoVH_H
0004 //
0005 // This is the declaration of the GeneralfftoVH class.
0006 //
0007 
0008 #include "Herwig/MatrixElement/MEfftoVH.h"
0009 #include "GeneralfftoVH.fh"
0010 
0011 namespace Herwig {
0012 
0013 using namespace ThePEG;
0014 
0015 /**
0016  * Here is the documentation of the GeneralfftoVH class.
0017  *
0018  * @see \ref GeneralfftoVHInterfaces "The interfaces"
0019  * defined for GeneralfftoVH.
0020  */
0021 class GeneralfftoVH: public MEfftoVH {
0022 
0023 public:
0024 
0025   /**
0026    *  Type of process
0027    */
0028   enum Process {Lepton,HadronWplus,HadronWminus,HadronZ};
0029 
0030 public:
0031 
0032   /**
0033    * The default constructor.
0034    */
0035   GeneralfftoVH();
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 
0052 public:
0053 
0054   /** @name Functions used by the persistent I/O system. */
0055   //@{
0056   /**
0057    * Function used to write out object persistently.
0058    * @param os the persistent output stream written to.
0059    */
0060   void persistentOutput(PersistentOStream & os) const;
0061 
0062   /**
0063    * Function used to read in object persistently.
0064    * @param is the persistent input stream read from.
0065    * @param version the version number of the object when written.
0066    */
0067   void persistentInput(PersistentIStream & is, int version);
0068   //@}
0069 
0070   /**
0071    * The standard Init function used to initialize the interfaces.
0072    * Called exactly once for each class by the class description system
0073    * before the main function starts or
0074    * when this class is dynamically loaded.
0075    */
0076   static void Init();
0077 
0078 protected:
0079 
0080   /** @name Clone Methods. */
0081   //@{
0082   /**
0083    * Make a simple clone of this object.
0084    * @return a pointer to the new object.
0085    */
0086   virtual IBPtr clone() const;
0087 
0088   /** Make a clone of this object, possibly modifying the cloned object
0089    * to make it sane.
0090    * @return a pointer to the new object.
0091    */
0092   virtual IBPtr fullclone() const;
0093   //@}
0094 
0095 private:
0096 
0097   /**
0098    * The assignment operator is private and must never be called.
0099    * In fact, it should not even be implemented.
0100    */
0101   GeneralfftoVH & operator=(const GeneralfftoVH &) = delete;
0102 
0103 private:
0104 
0105   /**
0106    *  The vector boson
0107    */
0108   Process process_;
0109 
0110 };
0111 
0112 }
0113 
0114 #endif /* HERWIG_GeneralfftoVH_H */