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