|
|
|||
File indexing completed on 2026-08-06 09:24:15
0001 // -*- C++ -*- 0002 #ifndef HERWIG_MEee2gZ2llPowheg_H 0003 #define HERWIG_MEee2gZ2llPowheg_H 0004 // 0005 // This is the declaration of the MEee2gZ2llPowheg class. 0006 // 0007 0008 #include "Herwig/MatrixElement/Lepton/MEee2gZ2ll.h" 0009 0010 namespace Herwig { 0011 0012 using namespace ThePEG; 0013 0014 /** 0015 * Here is the documentation of the MEee2gZ2llPowheg class. 0016 * 0017 * @see \ref MEee2gZ2llPowhegInterfaces "The interfaces" 0018 * defined for MEee2gZ2llPowheg. 0019 */ 0020 class MEee2gZ2llPowheg: public MEee2gZ2ll { 0021 0022 public: 0023 0024 /** 0025 * The default constructor. 0026 */ 0027 MEee2gZ2llPowheg() : contrib_(1), zPow_(0.5), yPow_(0.9) 0028 {} 0029 0030 public: 0031 0032 /** @name Virtual functions required by the MEBase class. */ 0033 //@{ 0034 /** 0035 * The matrix element for the kinematical configuration 0036 * previously provided by the last call to setKinematics(), suitably 0037 * scaled by sHat() to give a dimension-less number. 0038 * @return the matrix element scaled with sHat() to give a 0039 * dimensionless number. 0040 */ 0041 virtual double me2() const; 0042 0043 /** 0044 * Generate internal degrees of freedom given nDim() uniform 0045 * random numbers in the interval \f$ ]0,1[ \f$. To help the phase space 0046 * generator, the dSigHatDR should be a smooth function of these 0047 * numbers, although this is not strictly necessary. 0048 * @param r a pointer to the first of nDim() consecutive random numbers. 0049 * @return true if the generation succeeded, otherwise false. 0050 */ 0051 virtual bool generateKinematics(const double * r); 0052 0053 /** 0054 * The number of internal degrees of freedom used in the matrix 0055 * element. 0056 */ 0057 virtual int nDim() const; 0058 //@} 0059 0060 public: 0061 0062 /** @name Functions used by the persistent I/O system. */ 0063 //@{ 0064 /** 0065 * Function used to write out object persistently. 0066 * @param os the persistent output stream written to. 0067 */ 0068 void persistentOutput(PersistentOStream & os) const; 0069 0070 /** 0071 * Function used to read in object persistently. 0072 * @param is the persistent input stream read from. 0073 * @param version the version number of the object when written. 0074 */ 0075 void persistentInput(PersistentIStream & is, int version); 0076 //@} 0077 0078 /** 0079 * The standard Init function used to initialize the interfaces. 0080 * Called exactly once for each class by the class description system 0081 * before the main function starts or 0082 * when this class is dynamically loaded. 0083 */ 0084 static void Init(); 0085 0086 protected: 0087 0088 /** @name Clone Methods. */ 0089 //@{ 0090 /** 0091 * Make a simple clone of this object. 0092 * @return a pointer to the new object. 0093 */ 0094 virtual IBPtr clone() const; 0095 0096 /** Make a clone of this object, possibly modifying the cloned object 0097 * to make it sane. 0098 * @return a pointer to the new object. 0099 */ 0100 virtual IBPtr fullclone() const; 0101 //@} 0102 0103 private: 0104 0105 /** 0106 * The assignment operator is private and must never be called. 0107 * In fact, it should not even be implemented. 0108 */ 0109 MEee2gZ2llPowheg & operator=(const MEee2gZ2llPowheg &) = delete; 0110 0111 private: 0112 0113 /** 0114 * Whether to generate the positive, negative or leading order contribution 0115 */ 0116 unsigned int contrib_; 0117 0118 /** 0119 * Phase-space sampling for z 0120 */ 0121 double zPow_; 0122 0123 /** 0124 * Phase-space sampling for y 0125 */ 0126 double yPow_; 0127 0128 /** 0129 * Radiation variables 0130 */ 0131 //@{ 0132 /** 0133 * The \f$\tilde{x}\f$ variable 0134 */ 0135 double z_; 0136 0137 /** 0138 * The \f$y\f$ angular variable 0139 */ 0140 double y_; 0141 0142 /** 0143 * The azimuth 0144 */ 0145 double phi_; 0146 //@} 0147 }; 0148 0149 } 0150 0151 #endif /* HERWIG_MEee2gZ2llPowheg_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|