herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEPP2WHPowheg.h
1 // -*- C++ -*-
2 #ifndef HERWIG_MEPP2WHPowheg_H
3 #define HERWIG_MEPP2WHPowheg_H
4 //
5 // This is the declaration of the MEPP2WHPowheg class.
6 //
7 
8 #include "Herwig/MatrixElement/Hadron/MEPP2WH.h"
9 #include "ThePEG/PDF/BeamParticleData.h"
10 
11 namespace Herwig {
12 
13 using namespace ThePEG;
14 
23 class MEPP2WHPowheg: public MEPP2WH {
24 
25 public:
26 
30  MEPP2WHPowheg();
31 
37  virtual Energy2 scale() const;
38 
43  virtual int nDim() const;
44 
52  virtual bool generateKinematics(const double * r);
53 
59  virtual CrossSection dSigHatDR() const;
61 
62 public:
63 
70  void persistentOutput(PersistentOStream & os) const;
71 
77  void persistentInput(PersistentIStream & is, int version);
79 
86  static void Init();
87 
88 protected:
89 
94  double NLOweight() const;
95 
99  double x(double xt, double v) const;
100 
104  double x_a(double x, double v) const;
105 
109  double x_b(double x, double v) const;
110 
114  double xbar(double v) const;
115 
120  double Ltilde_qg(double x, double v) const;
121 
126  double Ltilde_gq(double x, double v) const;
127 
132  double Ltilde_qq(double x, double v) const;
133 
137  double Vtilde_qq() const;
138 
143  double Ccalbar_qg(double x) const;
144 
149  double Fcal_qg(double x, double v) const;
150 
155  double Fcal_gq(double x, double v) const;
156 
161  double Fcal_qq(double x, double v) const;
162 
167  double Ftilde_qg(double xt, double v) const;
168 
173  double Ftilde_gq(double xt, double v) const;
174 
179  double Ftilde_qq(double xt, double v) const;
180 
185  double Ctilde_qg(double x, double v) const;
186 
191  double Ctilde_gq(double x, double v) const;
192 
197  double Ctilde_qq(double x, double v) const;
198 
199 protected:
200 
207  virtual IBPtr clone() const { return new_ptr(*this); }
208 
213  virtual IBPtr fullclone() const { return new_ptr(*this); }
215 
216 protected:
217 
225  virtual void doinit();
227 
228 private:
229 
234  MEPP2WHPowheg & operator=(const MEPP2WHPowheg &) = delete;
235 
236 private:
237 
241  mutable double _xb_a;
242 
246  mutable double _xb_b;
247 
252 
257 
261  mutable Ptr<BeamParticleData>::transient_const_pointer _hadron_A;
262 
266  mutable Ptr<BeamParticleData>::transient_const_pointer _hadron_B;
267 
272 
276  const double TR_;
277 
281  const double CF_;
282 
286  mutable double _alphaS2Pi;
287 
291  mutable Energy2 _mll2;
292 
296  mutable Energy2 _mu2;
297 
305  unsigned int _contrib;
306 
310  unsigned int _nlo_alphaS_opt;
311 
316 
320  double _a;
321 
325  double _p;
326 
328 
336  unsigned int _scaleopt;
337 
341  Energy _fixedScale;
342 
346  double _scaleFact;
348 
356  double _xt;
357 
361  double _v;
363 
371  mutable double _oldq;
372 
376  mutable double _oldqbar;
378 };
379 
380 }
381 
382 #endif /* HERWIG_MEPP2WHPowheg_H */
Energy2 _mll2
The mass squared of the lepton pair.
double _xb_a
The momentum fraction of the first parton in the Born process.
double _xb_b
The momentum fraction of the second parton in the Born process.
double _scaleFact
Prefactor if variable scale used.
The MEPP2WHPowheg class provides the next-to-leading order matrix elements for in assoication with a...
Definition: MEPP2WHPowheg.h:23
double _a
The magnitude of the correction term to reduce the negative contribution.
double _p
The power of the correction term to reduce the negative contribution.
virtual IBPtr clone() const
Make a simple clone of this object.
unsigned int _contrib
Parameters for the NLO weight.
The MEPP2WH class provides the matrix elements for the production of the boson in association with t...
Definition: MEPP2WH.h:21
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Ptr< BeamParticleData >::transient_const_pointer _hadron_A
The BeamParticleData object for the first hadron.
Energy _fixedScale
Fixed scale if used.
unsigned int _scaleopt
Choice of the scale.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
double _fixed_alphaS
The value of alphaS to use for the nlo weight if _nloalphaSopt=1.
tcPDPtr _parton_b
The ParticleData object for the second parton in the Born process.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
unsigned int _nlo_alphaS_opt
Whether to use a fixed or a running QCD coupling for the NLO weight.
double _xt
Radiation variables.
tcPDPtr _parton_a
The ParticleData object for the first parton in the Born process.
double _oldq
Values of the PDF&#39;s before radiation.
const double CF_
The colour factor.
Energy2 _mu2
The renormalization/factorization scale.
-*- C++ -*-
const double TR_
The colour factor.
double _oldqbar
For the antiquark.
double _alphaS2Pi
The value of used for the calculation.
tcPDPtr _gluon
the ParticleData object for the gluon
Ptr< BeamParticleData >::transient_const_pointer _hadron_B
The BeamParticleData object for the second hadron.
double _v
The angular variable.