herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
18namespace Herwig {
19using namespace ThePEG;
20
30
31public:
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
69public:
70
78
84 void persistentInput(PersistentIStream & is, int version);
86
93 static void Init();
94
95protected:
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
189protected:
190
197 virtual IBPtr clone() const { return new_ptr(*this); }
198
203 virtual IBPtr fullclone() const { return new_ptr(*this); }
205
206protected:
207
215 virtual void doinit();
217
218private:
219
225
226private:
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
336
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 */
The MEqq2gZ2ffPowheg class implements the products of Standard Model fermion antifermion pairs via th...
double Ftilde_qq(double xt, double v) const
Function for calculation of the initiated real contribution.
tcPDPtr _parton_a
The ParticleData object for the first parton in the Born process.
Ptr< BeamParticleData >::transient_const_pointer _hadron_B
The BeamParticleData object for the second hadron.
double Ctilde_gq(double x, double v) const
Function for calculation of the initiated real contribution.
tcPDPtr _parton_b
The ParticleData object for the second parton in the Born process.
unsigned int _nlo_alphaS_opt
Whether to use a fixed or a running QCD coupling for the NLO weight.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given 'nDim()' uniform random numbers in the interval ]0,...
double Fcal_qg(double x, double v) const
Function for calculation of the initiated real contribution.
virtual IBPtr clone() const
Make a simple clone of this object.
unsigned int _scaleopt
Choice of the scale.
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
double xbar(double v) const
Calculate the minimum of .
double Ftilde_qg(double xt, double v) const
Function for calculation of the initiated real contribution.
double Fcal_gq(double x, double v) const
Function for calculation of the initiated real contribution.
double _a
The magnitude of the correction term to reduce the negative contribution.
double Ftilde_gq(double xt, double v) const
Function for calculation of the initiated real contribution.
const double CF_
The colour factor.
double _fixed_alphaS
The value of alphaS to use for the nlo weight if _nloalphaSopt=1.
double _alphaS2Pi
The value of used for the calculation.
double x_a(double x, double v) const
Calculate the momentum fraction of the first parton.
double Ltilde_gq(double x, double v) const
Calculate the ratio of the radiative luminosity funcion to the Born luminosity function for the init...
double _xb_a
The momentum fraction of the first parton in the Born process.
virtual int nDim() const
The number of internal degreed of freedom used in the matrix element.
double _v
The angular variable.
double _xb_b
The momentum fraction of the second parton in the Born process.
virtual CrossSection dSigHatDR() const
Return the matrix element for the kinematical configuation previously provided by the last call to se...
double _scaleFact
Prefactor if variable scale used.
double Ccalbar_qg(double x) const
Function for calculation of the and initiated real contributions.
double Ctilde_qg(double x, double v) const
Function for calculation of the initiated real contribution.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
double _p
The power of the correction term to reduce the negative contribution.
double _oldq
Values of the PDF's before radiation.
MEqq2gZ2ffPowheg()
The default constructor.
double Fcal_qq(double x, double v) const
Function for calculation of the initiated real contribution.
double Ctilde_qq(double x, double v) const
Function for calculation of the initiated real contribution.
Energy _fixedScale
Fixed scale if used.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
double _xt
Radiation variables.
static void Init()
The standard Init function used to initialize the interfaces.
tcPDPtr _gluon
the ParticleData object for the gluon
double _oldqbar
For the antiquark.
double _eps
Cut-off for the correction function.
unsigned int _contrib
Parameters for the NLO weight.
Energy2 _mu2
The renormalization/factorization scale.
Ptr< BeamParticleData >::transient_const_pointer _hadron_A
The BeamParticleData object for the first hadron.
Energy2 _mll2
The mass squared of the lepton pair.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
double x_b(double x, double v) const
Calculate the momentum fraction of the second parton.
double Ltilde_qg(double x, double v) const
Calculate the ratio of the radiative luminosity funcion to the Born luminosity function for the init...
double x(double xt, double v) const
Calculate the variable from the integration variables.
double NLOweight() const
Calculate the correction weight with which leading-order configurations are re-weighted.
const double TR_
The colour factor.
MEqq2gZ2ffPowheg & operator=(const MEqq2gZ2ffPowheg &)=delete
The assignment operator is private and must never be called.
double Vtilde_qq() const
Calculate the soft-virtual contribution to the NLO weight.
double Ltilde_qq(double x, double v) const
Calculate the ratio of the radiative luminosity funcion to the Born luminosity function for the init...
The MEqq2gZ2ff class implements the products of Standard Model fermion antifermion pairs via the res...
Definition: MEqq2gZ2ff.h:34
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr