|
|
|||
File indexing completed on 2026-08-06 09:24:15
0001 // -*- C++ -*- 0002 #ifndef HERWIG_MEPP2HiggsVBFPowheg_H 0003 #define HERWIG_MEPP2HiggsVBFPowheg_H 0004 // 0005 // This is the declaration of the MEPP2HiggsVBFPowheg class. 0006 // 0007 0008 #include "Herwig/MatrixElement/Hadron/MEPP2HiggsVBF.h" 0009 0010 namespace Herwig { 0011 0012 using namespace ThePEG; 0013 0014 /** 0015 * Here is the documentation of the MEPP2HiggsVBFPowheg class. 0016 * 0017 * @see \ref MEPP2HiggsVBFPowhegInterfaces "The interfaces" 0018 * defined for MEPP2HiggsVBFPowheg. 0019 */ 0020 class MEPP2HiggsVBFPowheg: public Herwig::MEPP2HiggsVBF { 0021 0022 public: 0023 0024 /** 0025 * The default constructor. 0026 */ 0027 MEPP2HiggsVBFPowheg(); 0028 0029 /** @name Virtual functions required by the MEBase class. */ 0030 //@{ 0031 0032 /** 0033 * Return the scale associated with the last set phase space point. 0034 */ 0035 virtual Energy2 scale() const; 0036 0037 /** 0038 * The number of internal degrees of freedom used in the matrix 0039 * element. 0040 */ 0041 virtual int nDim() 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 * Return the matrix element squared differential in the variables 0055 * given by the last call to generateKinematics(). 0056 */ 0057 virtual CrossSection dSigHatDR() 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 /** 0089 * The NLO weight 0090 */ 0091 double NLOWeight() const; 0092 0093 /** 0094 * Leading order matrix element 0095 */ 0096 Energy4 loMatrixElement(const Lorentz5Momentum &p1, 0097 const Lorentz5Momentum &p2, 0098 const Lorentz5Momentum &q1, 0099 const Lorentz5Momentum &q2, 0100 double G1, double G2) const; 0101 0102 protected: 0103 0104 /** @name Standard Interfaced functions. */ 0105 //@{ 0106 /** 0107 * Initialize this object after the setup phase before saving an 0108 * EventGenerator to disk. 0109 * @throws InitException if object could not be initialized properly. 0110 */ 0111 virtual void doinit(); 0112 //@} 0113 0114 protected: 0115 0116 /** @name Clone Methods. */ 0117 //@{ 0118 /** 0119 * Make a simple clone of this object. 0120 * @return a pointer to the new object. 0121 */ 0122 virtual IBPtr clone() const; 0123 0124 /** Make a clone of this object, possibly modifying the cloned object 0125 * to make it sane. 0126 * @return a pointer to the new object. 0127 */ 0128 virtual IBPtr fullclone() const; 0129 //@} 0130 0131 private: 0132 0133 /** 0134 * The assignment operator is private and must never be called. 0135 * In fact, it should not even be implemented. 0136 */ 0137 MEPP2HiggsVBFPowheg & operator=(const MEPP2HiggsVBFPowheg &) = delete; 0138 0139 private: 0140 0141 /** 0142 * The Born variables 0143 */ 0144 //@{ 0145 /** 0146 * \f$x_B\f$ 0147 */ 0148 double _xB; 0149 0150 /** 0151 * Partons 0152 */ 0153 tcPDPtr _partons[5]; 0154 0155 mutable Energy2 _q2; 0156 //@} 0157 0158 /** 0159 * The radiative variables 0160 */ 0161 //@{ 0162 /** 0163 * The \f$x_p\f$ or \f$z\f$ real integration variable 0164 */ 0165 double _xp; 0166 0167 /** 0168 * The \f$z_p\f$ real integration variable 0169 */ 0170 double _zp; 0171 0172 /** 0173 * The \f$fi\f$ real integration variable 0174 */ 0175 double _phi; 0176 //@} 0177 0178 /** 0179 * The variables to get the right boost 0180 */ 0181 //@{ 0182 /** 0183 * LO momenta 0184 */ 0185 Lorentz5Momentum _loMomenta[4]; 0186 /** 0187 * The transfered (virtual boson) momentum 0188 */ 0189 mutable Lorentz5Momentum _pa; 0190 0191 /** 0192 * The incoming quark momentum 0193 */ 0194 mutable Lorentz5Momentum _pb; 0195 0196 /** 0197 * The outgoing quark momentum 0198 */ 0199 Lorentz5Momentum _pc; 0200 0201 /** 0202 * The incoming quark momentum 0203 */ 0204 Lorentz5Momentum _pbother; 0205 0206 /** 0207 * The outgoing quark momentum 0208 */ 0209 Lorentz5Momentum _pcother; 0210 //@} 0211 0212 /** 0213 * Electroweak parameters 0214 */ 0215 //@{ 0216 /** 0217 * The square of the Z mass 0218 */ 0219 Energy2 _mz2; 0220 0221 /** 0222 * The square of the W mass 0223 */ 0224 Energy2 _mw2; 0225 //@} 0226 0227 /** 0228 * The first hadron 0229 */ 0230 tcBeamPtr _hadron; 0231 0232 /** 0233 * Selects a dynamic or fixed factorization scale 0234 */ 0235 unsigned int scaleOpt_; 0236 0237 /** 0238 * The factorization scale 0239 */ 0240 Energy muF_; 0241 0242 /** 0243 * Prefactor if variable scale used 0244 */ 0245 double scaleFact_; 0246 0247 /** 0248 * Whether to generate the positive, negative or leading order contribution 0249 */ 0250 unsigned int contrib_; 0251 0252 /** 0253 * Power for sampling \f$x_p\f$ 0254 */ 0255 double power_; 0256 0257 /** 0258 * Jacobian for \f$x_p\f$ integral 0259 */ 0260 double jac_; 0261 0262 0263 }; 0264 0265 } 0266 0267 #endif /* HERWIG_MEPP2HiggsVBFPowheg_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|