herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEqq2gZ2ffPowheg.h
1 // -*- C++ -*-
2 //
3 // MEqq2gZ2ffPowheg.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_MEqq2gZ2ffPowheg_H
10 #define HERWIG_MEqq2gZ2ffPowheg_H
11 //
12 // This is the declaration of the MEqq2gZ2ffPowheg class.
13 //
14 
15 #include "Herwig/MatrixElement/Hadron/MEqq2gZ2ff.h"
16 #include "ThePEG/PDF/BeamParticleData.h"
17 
18 namespace Herwig {
19 using namespace ThePEG;
20 
30 
31 public:
32 
37 
43  virtual Energy2 scale() const;
44 
49  virtual int nDim() const;
50 
58  virtual bool generateKinematics(const double * r);
59 
65  virtual CrossSection dSigHatDR() const;
67 
68 
69 public:
70 
77  void persistentOutput(PersistentOStream & os) const;
78 
84  void persistentInput(PersistentIStream & is, int version);
86 
93  static void Init();
94 
95 protected:
96 
101  double NLOweight() const;
102 
106  double x(double xt, double v) const;
110  double x_a(double x, double v) const;
114  double x_b(double x, double v) const;
118  double xbar(double v) const;
123  double Ltilde_qg(double x, double v) const;
128  double Ltilde_gq(double x, double v) const;
133  double Ltilde_qq(double x, double v) const;
137  double Vtilde_qq() const;
142  double Ccalbar_qg(double x) const;
147  double Fcal_qg(double x, double v) const;
152  double Fcal_gq(double x, double v) const;
157  double Fcal_qq(double x, double v) const;
162  double Ftilde_qg(double xt, double v) const;
167  double Ftilde_gq(double xt, double v) const;
172  double Ftilde_qq(double xt, double v) const;
177  double Ctilde_qg(double x, double v) const;
182  double Ctilde_gq(double x, double v) const;
187  double Ctilde_qq(double x, double v) const;
188 
189 protected:
190 
197  virtual IBPtr clone() const { return new_ptr(*this); }
198 
203  virtual IBPtr fullclone() const { return new_ptr(*this); }
205 
206 protected:
207 
215  virtual void doinit();
217 
218 private:
219 
224  MEqq2gZ2ffPowheg & operator=(const MEqq2gZ2ffPowheg &) = delete;
225 
226 private:
227 
231  mutable double _xb_a;
232 
236  mutable double _xb_b;
237 
242 
247 
251  mutable Ptr<BeamParticleData>::transient_const_pointer _hadron_A;
252 
256  mutable Ptr<BeamParticleData>::transient_const_pointer _hadron_B;
257 
262 
266  const double TR_;
267 
271  const double CF_;
272 
276  mutable double _alphaS2Pi;
277 
281  mutable Energy2 _mll2;
282 
286  mutable Energy2 _mu2;
287 
295  unsigned int _contrib;
296 
300  unsigned int _nlo_alphaS_opt;
301 
306 
310  double _a;
311 
315  double _p;
316 
320  double _eps;
322 
330  unsigned int _scaleopt;
331 
335  Energy _fixedScale;
336 
340  double _scaleFact;
342 
350  double _xt;
351 
355  double _v;
357 
365  mutable double _oldq;
366 
370  mutable double _oldqbar;
372 };
373 
374 }
375 
376 #endif /* HERWIG_MEqq2gZ2ffPowheg_H */
double _fixed_alphaS
The value of alphaS to use for the nlo weight if _nloalphaSopt=1.
unsigned int _contrib
Parameters for the NLO weight.
Ptr< BeamParticleData >::transient_const_pointer _hadron_A
The BeamParticleData object for the first hadron.
double _a
The magnitude of the correction term to reduce the negative contribution.
double _scaleFact
Prefactor if variable scale used.
unsigned int _scaleopt
Choice of the scale.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Ptr< BeamParticleData >::transient_const_pointer _hadron_B
The BeamParticleData object for the second hadron.
double _xb_a
The momentum fraction of the first parton in the Born process.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
The MEqq2gZ2ffPowheg class implements the products of Standard Model fermion antifermion pairs via th...
double _v
The angular variable.
Energy2 _mu2
The renormalization/factorization scale.
Energy _fixedScale
Fixed scale if used.
double _oldq
Values of the PDF&#39;s before radiation.
The MEqq2gZ2ff class implements the products of Standard Model fermion antifermion pairs via the res...
Definition: MEqq2gZ2ff.h:34
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Energy2 _mll2
The mass squared of the lepton pair.
tcPDPtr _gluon
the ParticleData object for the gluon
double _alphaS2Pi
The value of used for the calculation.
-*- C++ -*-
tcPDPtr _parton_a
The ParticleData object for the first parton in the Born process.
const double TR_
The colour factor.
const double CF_
The colour factor.
unsigned int _nlo_alphaS_opt
Whether to use a fixed or a running QCD coupling for the NLO weight.
double _eps
Cut-off for the correction function.
double _oldqbar
For the antiquark.
double _xb_b
The momentum fraction of the second parton in the Born process.
double _p
The power of the correction term to reduce the negative contribution.
double _xt
Radiation variables.
tcPDPtr _parton_b
The ParticleData object for the second parton in the Born process.