herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEPP2ZHPowheg.h
1 // -*- C++ -*-
2 #ifndef HERWIG_MEPP2ZHPowheg_H
3 #define HERWIG_MEPP2ZHPowheg_H
4 //
5 // This is the declaration of the MEPP2ZHPowheg class.
6 //
7 
8 #include "Herwig/MatrixElement/Hadron/MEPP2ZH.h"
9 #include "ThePEG/PDF/BeamParticleData.h"
10 
11 namespace Herwig {
12 
13 using namespace ThePEG;
14 
22 class MEPP2ZHPowheg: public MEPP2ZH {
23 
24 public:
25 
29  MEPP2ZHPowheg();
30 
36  virtual Energy2 scale() const;
37 
42  virtual int nDim() const;
43 
51  virtual bool generateKinematics(const double * r);
52 
58  virtual CrossSection dSigHatDR() const;
60 
61 public:
62 
69  void persistentOutput(PersistentOStream & os) const;
70 
76  void persistentInput(PersistentIStream & is, int version);
78 
85  static void Init();
86 
87 protected:
92  double NLOweight() const;
93 
97  double x(double xt, double v) const;
98 
102  double x_a(double x, double v) const;
103 
107  double x_b(double x, double v) const;
108 
112  double xbar(double v) const;
113 
118  double Ltilde_qg(double x, double v) const;
119 
124  double Ltilde_gq(double x, double v) const;
125 
130  double Ltilde_qq(double x, double v) const;
131 
135  double Vtilde_qq() const;
136 
141  double Ccalbar_qg(double x) const;
142 
147  double Fcal_qg(double x, double v) const;
148 
153  double Fcal_gq(double x, double v) const;
154 
159  double Fcal_qq(double x, double v) const;
160 
165  double Ftilde_qg(double xt, double v) const;
166 
171  double Ftilde_gq(double xt, double v) const;
172 
177  double Ftilde_qq(double xt, double v) const;
178 
183  double Ctilde_qg(double x, double v) const;
184 
189  double Ctilde_gq(double x, double v) const;
190 
195  double Ctilde_qq(double x, double v) const;
196 
197 protected:
198 
205  virtual IBPtr clone() const { return new_ptr(*this); }
206 
211  virtual IBPtr fullclone() const { return new_ptr(*this); }
213 
214 protected:
215 
223  virtual void doinit();
225 
226 private:
227 
232  MEPP2ZHPowheg & operator=(const MEPP2ZHPowheg &) = delete;
233 
234 private:
235 
239  mutable double _xb_a;
240 
244  mutable double _xb_b;
245 
250 
255 
259  mutable Ptr<BeamParticleData>::transient_const_pointer _hadron_A;
260 
264  mutable Ptr<BeamParticleData>::transient_const_pointer _hadron_B;
265 
270 
274  const double TR_;
275 
279  const double CF_;
280 
284  mutable double _alphaS2Pi;
285 
289  mutable Energy2 _mll2;
290 
294  mutable Energy2 _mu2;
295 
303  unsigned int _contrib;
304 
308  unsigned int _nlo_alphaS_opt;
309 
314 
318  double _a;
319 
323  double _p;
324 
326 
334  unsigned int _scaleopt;
335 
339  Energy _fixedScale;
340 
344  double _scaleFact;
346 
354  double _xt;
355 
359  double _v;
361 
369  mutable double _oldq;
370 
374  mutable double _oldqbar;
376 };
377 
378 }
379 
380 #endif /* HERWIG_MEPP2ZHPowheg_H */
const double TR_
The colour factor.
Ptr< BeamParticleData >::transient_const_pointer _hadron_B
The BeamParticleData object for the second hadron.
tcPDPtr _parton_b
The ParticleData object for the second parton in the Born process.
tcPDPtr _gluon
the ParticleData object for the gluon
tcPDPtr _parton_a
The ParticleData object for 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.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Energy _fixedScale
Fixed scale if used.
const double CF_
The colour factor.
double _fixed_alphaS
The value of alphaS to use for the nlo weight if _nloalphaSopt=1.
double _v
The angular variable.
double _scaleFact
Prefactor if variable scale used.
double _a
The magnitude of the correction term to reduce the negative contribution.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
double _oldqbar
For the antiquark.
unsigned int _nlo_alphaS_opt
Whether to use a fixed or a running QCD coupling for the NLO weight.
Energy2 _mu2
The renormalization/factorization scale.
unsigned int _contrib
Parameters for the NLO weight.
The MEPP2ZHPowheg class implements the matrix element for .
Definition: MEPP2ZHPowheg.h:22
double _alphaS2Pi
The value of used for the calculation.
double _xb_b
The momentum fraction of the second parton in the Born process.
Energy2 _mll2
The mass squared of the lepton pair.
-*- C++ -*-
double _xt
Radiation variables.
Ptr< BeamParticleData >::transient_const_pointer _hadron_A
The BeamParticleData object for the first hadron.
double _xb_a
The momentum fraction of the first parton in the Born process.
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 _scaleopt
Choice of the scale.
The MEPP2ZH class implements the matrix element for .
Definition: MEPP2ZH.h:21
double _oldq
Values of the PDF&#39;s before radiation.