herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEqq2W2ffPowheg.h
1 // -*- C++ -*-
2 //
3 // MEqq2W2ffPowheg.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef HERWIG_MEqq2W2ffPowheg_H
10 #define HERWIG_MEqq2W2ffPowheg_H
11 //
12 // This is the declaration of the MEqq2W2ffPowheg class.
13 //
14 
15 #include "Herwig/MatrixElement/Hadron/MEqq2W2ff.h"
16 #include "ThePEG/PDF/BeamParticleData.h"
17 
18 namespace Herwig {
19 using namespace ThePEG;
20 
28 class MEqq2W2ffPowheg: public MEqq2W2ff {
29 
30 public:
31 
36 
42  virtual Energy2 scale() const;
43 
48  virtual int nDim() const;
49 
57  virtual bool generateKinematics(const double * r);
58 
64  virtual CrossSection dSigHatDR() const;
66 
67 public:
68 
75  void persistentOutput(PersistentOStream & os) const;
76 
82  void persistentInput(PersistentIStream & is, int version);
84 
91  static void Init();
92 
93 protected:
94 
99  double NLOweight() const;
103  double x(double xt, double v) const;
107  double x_a(double x, double v) const;
111  double x_b(double x, double v) const;
115  double xbar(double v) const;
120  double Ltilde_qg(double x, double v) const;
125  double Ltilde_gq(double x, double v) const;
130  double Ltilde_qq(double x, double v) const;
134  double Vtilde_qq() const;
139  double Ccalbar_qg(double x) const;
144  double Fcal_qg(double x, double v) const;
149  double Fcal_gq(double x, double v) const;
154  double Fcal_qq(double x, double v) const;
159  double Ftilde_qg(double xt, double v) const;
164  double Ftilde_gq(double xt, double v) const;
169  double Ftilde_qq(double xt, double v) const;
174  double Ctilde_qg(double x, double v) const;
179  double Ctilde_gq(double x, double v) const;
184  double Ctilde_qq(double x, double v) const;
185 
186 protected:
187 
194  virtual IBPtr clone() const { return new_ptr(*this); }
195 
200  virtual IBPtr fullclone() const { return new_ptr(*this); }
202 
203 protected:
204 
212  virtual void doinit();
214 
215 private:
216 
221  MEqq2W2ffPowheg & operator=(const MEqq2W2ffPowheg &) = delete;
222 
223 private:
224 
228  mutable double _xb_a;
229 
233  mutable double _xb_b;
234 
239 
244 
248  mutable Ptr<BeamParticleData>::transient_const_pointer _hadron_A;
249 
253  mutable Ptr<BeamParticleData>::transient_const_pointer _hadron_B;
254 
259 
263  const double TR_;
264 
268  const double CF_;
269 
273  mutable double _alphaS2Pi;
274 
278  mutable Energy2 _mll2;
279 
283  mutable Energy2 _mu2;
284 
292  unsigned int _contrib;
293 
297  unsigned int _nlo_alphaS_opt;
298 
303 
307  double _a;
308 
312  double _p;
313 
317  double _eps;
319 
327  unsigned int _scaleopt;
328 
332  Energy _fixedScale;
333 
337  double _scaleFact;
339 
347  double _xt;
348 
352  double _v;
354 
362  mutable double _oldq;
363 
367  mutable double _oldqbar;
369 };
370 
371 }
372 
373 #endif /* HERWIG_MEqq2W2ffPowheg_H */
virtual IBPtr clone() const
Make a simple clone of this object.
double _xt
Radiation variables.
unsigned int _scaleopt
Choice of the scale.
double _xb_b
The momentum fraction of the second parton in the Born process.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
tcPDPtr _parton_b
The ParticleData object for the second parton in the Born process.
double _oldq
Values of the PDF&#39;s before radiation.
The MEqq2W2ffPowheg class implements the matrix element for including the decay of the to Standard ...
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
double _xb_a
The momentum fraction of the first parton in the Born process.
Energy2 _mu2
The renormalization/factorization scale.
Ptr< BeamParticleData >::transient_const_pointer _hadron_A
The BeamParticleData object for the first hadron.
double _alphaS2Pi
The value of used for the calculation.
unsigned int _contrib
Parameters for the NLO weight.
double _oldqbar
For the antiquark.
Energy _fixedScale
Fixed scale if used.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
double _p
The power of the correction term to reduce the negative contribution.
double _scaleFact
Prefactor if variable scale used.
Energy2 _mll2
The mass squared of the lepton pair.
Ptr< BeamParticleData >::transient_const_pointer _hadron_B
The BeamParticleData object for the second hadron.
const double TR_
The colour factor.
double _eps
Cut-off for the correction function.
double _v
The angular variable.
-*- C++ -*-
unsigned int _nlo_alphaS_opt
Whether to use a fixed or a running QCD coupling for the NLO weight.
The MEqq2W2ff class implements the matrix element for including the decay of the to Standard Model ...
Definition: MEqq2W2ff.h:33
tcPDPtr _parton_a
The ParticleData object for the first parton in the Born process.
double _a
The magnitude of the correction term to reduce the negative contribution.
const double CF_
The colour factor.
double _fixed_alphaS
The value of alphaS to use for the nlo weight if _nloalphaSopt=1.
tcPDPtr _gluon
the ParticleData object for the gluon