herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
DISBase.h
1// -*- C++ -*-
2#ifndef HERWIG_DISBase_H
3#define HERWIG_DISBase_H
4//
5// This is the declaration of the DISBase class.
6//
7
8#include "Herwig/MatrixElement/HwMEBase.h"
9#include "Herwig/Shower/ShowerAlpha.h"
10
11namespace Herwig {
12
13using namespace ThePEG;
14
23class DISBase: public HwMEBase {
24
25public:
26
31
35 virtual ~DISBase();
36
44 virtual bool hasMECorrection() {return true;}
45
49 virtual void initializeMECorrection(RealEmissionProcessPtr, double &,
50 double & );
51
55 virtual RealEmissionProcessPtr applyHardMatrixElementCorrection(RealEmissionProcessPtr);
56
69 virtual bool softMatrixElementVeto(PPtr parent,
70 PPtr progenitor,
71 const bool & fs,
72 const Energy & highestpT,
73 const vector<tcPDPtr> & ids,
74 const double & z,
75 const Energy & scale,
76 const Energy & pT);
78
86 virtual POWHEGType hasPOWHEGCorrection() {return Both;}
87
91 virtual RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr,
94
95public:
96
102 virtual Energy2 scale() const;
103
108 virtual int nDim() const;
109
118 virtual bool generateKinematics(const double * r);
119
124 virtual CrossSection dSigHatDR() const;
126
127
128public:
129
137
143 void persistentInput(PersistentIStream & is, int version);
145
152 static void Init();
153
154protected:
155
163 virtual void doinit();
165
166private:
167
172 DISBase & operator=(const DISBase &) = delete;
173
174protected:
175
179 double NLOWeight() const;
180
184 virtual double A(tcPDPtr lin, tcPDPtr lout, tcPDPtr qin, tcPDPtr qout,
185 Energy2 scale) const =0;
186
196 double generateComptonPoint(double &xp, double & zp);
197
203 double generateBGFPoint(double &xp, double & zp);
204
215 vector<double> ComptonME(double xp, double x2, double xperp,
216 bool norm);
217
229 vector<double> BGFME(double xp, double x2, double x3, double xperp,
230 bool norm);
232
241
247
248private:
249
257 double initial_;
258
262 double final_;
263
267 double procProb_;
268
273
277 double bgfInt_;
279
288
293
297 Energy pTmin_;
299
307 Energy2 q2_;
308
312 double l_;
313
317 double xB_;
318
323
328
333
342
346 Lorentz5Momentum pl_[2];
347
351 Lorentz5Momentum pq_[2];
352
356 Lorentz5Momentum q_;
357
362 bool ComptonISFS_;
363 vector<Lorentz5Momentum> ComptonMomenta_;
364
368 Energy pTBGF_;
369 vector<Lorentz5Momentum> BGFMomenta_;
371
375 double acoeff_;
376
380 ShowerAlphaPtr alpha_;
381
386
387private:
388
396 double xp_;
398
403
407 unsigned int scaleOpt_;
408
412 Energy muF_;
413
418
422 unsigned int contrib_;
423
427 double power_;
428
432 double jac_;
433
434};
435
436}
437
438#endif /* HERWIG_DISBase_H */
The DISBase class is the base class for the implementation of DIS type processes including correction...
Definition: DISBase.h:23
virtual RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr, ShowerInteraction)
Apply the POWHEG style correction.
Energy2 q2_
Parameters for the point being generated.
Definition: DISBase.h:307
double xB_
Borm momentum fraction.
Definition: DISBase.h:317
double comptonWeight_
Parameters for the POWHEG correction.
Definition: DISBase.h:287
DISBase & operator=(const DISBase &)=delete
The assignment operator is private and must never be called.
double power_
Power for sampling .
Definition: DISBase.h:427
Lorentz5Momentum pq_[2]
Quark momenta.
Definition: DISBase.h:351
PDPtr gluon_
Gluon particle data object.
Definition: DISBase.h:385
Lorentz5Momentum q_
q
Definition: DISBase.h:356
unsigned int contrib_
Whether to generate the positive, negative or leading order contribution.
Definition: DISBase.h:422
double acoeff_
The coefficient for the correlations.
Definition: DISBase.h:375
double final_
Enchancement factor for FSR.
Definition: DISBase.h:262
double BGFWeight_
Weight for the BGF channel.
Definition: DISBase.h:292
ShowerAlphaPtr alpha_
Coupling.
Definition: DISBase.h:380
vector< double > ComptonME(double xp, double x2, double xperp, bool norm)
Return the coefficients for the matrix element piece for the QCD compton case.
void generateCompton()
Members for the POWHEG correction.
double initial_
Parameters for the matrix element correction.
Definition: DISBase.h:257
virtual void initializeMECorrection(RealEmissionProcessPtr, double &, double &)
Initialize the ME correction.
double xp_
The radiative variables.
Definition: DISBase.h:396
Energy pTCompton_
Compton parameters.
Definition: DISBase.h:361
void generateBGF()
Generate a BGF process.
double comptonInt_
Integral for compton process.
Definition: DISBase.h:272
double jac_
Jacobian for integral.
Definition: DISBase.h:432
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
unsigned int scaleOpt_
Selects a dynamic or fixed factorization scale.
Definition: DISBase.h:407
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
virtual CrossSection dSigHatDR() const
Return the matrix element squared differential in the variables given by the last call to generateKin...
Energy pTBGF_
BGF parameters.
Definition: DISBase.h:368
virtual bool hasMECorrection()
Members for the old-fashioned matrix element correction.
Definition: DISBase.h:44
DISBase()
The default constructor.
Energy pTmin_
Minimum value of .
Definition: DISBase.h:297
double NLOWeight() const
The NLO weight.
double generateBGFPoint(double &xp, double &zp)
Generate the values of and .
double scaleFact_
Prefactor if variable scale used.
Definition: DISBase.h:417
tcPDPtr partons_[2]
Partons.
Definition: DISBase.h:327
virtual ~DISBase()
The default constructor.
tcPDFPtr pdf_
PDF object.
Definition: DISBase.h:337
virtual int nDim() const
The number of internal degrees of freedom used in the matrix element.
double procProb_
Relative fraction of compton and BGF processes to generate.
Definition: DISBase.h:267
Lorentz5Momentum pl_[2]
Lepton momenta.
Definition: DISBase.h:346
LorentzRotation rot_
Rotation to the Breit frame.
Definition: DISBase.h:341
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual double A(tcPDPtr lin, tcPDPtr lout, tcPDPtr qin, tcPDPtr qout, Energy2 scale) const =0
Calculate the coefficient A for the correlations.
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval .
virtual POWHEGType hasPOWHEGCorrection()
Members for the POWHEG stype correction.
Definition: DISBase.h:86
static void Init()
The standard Init function used to initialize the interfaces.
tcBeamPtr hadron_
The hadron.
Definition: DISBase.h:402
tcPDPtr leptons_[2]
Leptons.
Definition: DISBase.h:332
Energy muF_
The factorization scale.
Definition: DISBase.h:412
vector< double > BGFME(double xp, double x2, double x3, double xperp, bool norm)
Return the coefficients for the matrix element piece for the QCD compton case.
double generateComptonPoint(double &xp, double &zp)
Members for the matrix element correction.
virtual bool softMatrixElementVeto(PPtr parent, PPtr progenitor, const bool &fs, const Energy &highestpT, const vector< tcPDPtr > &ids, const double &z, const Energy &scale, const Energy &pT)
Apply the soft matrix element correction.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual RealEmissionProcessPtr applyHardMatrixElementCorrection(RealEmissionProcessPtr)
Apply the hard matrix element correction to a given hard process or decay.
tcBeamPtr beam_
Beam particle.
Definition: DISBase.h:322
double bgfInt_
Integral for BGF process.
Definition: DISBase.h:277
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition: HwMEBase.h:87
ShowerInteraction
Handy header file to be included in all Shower classes.
-*- C++ -*-
Ptr< BeamParticleData >::transient_const_pointer tcBeamPtr
A typedef for the BeamParticleData.
Definition: HwMEBase.h:20
ThePEG::Ptr< PDFBase >::transient_const_pointer tcPDFPtr
ThePEG::Ptr< Particle >::pointer PPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr