herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Powheg
MEPP2GammaGammaPowheg.h
1
// -*- C++ -*-
2
#ifndef HERWIG_MEPP2GammaGammaPowheg_H
3
#define HERWIG_MEPP2GammaGammaPowheg_H
4
//
5
// This is the declaration of the MEPP2GammaGammaPowheg class.
6
//
7
8
#include "Herwig/MatrixElement/HwMEBase.h"
9
#include "ThePEG/Helicity/Vertex/Vector/FFVVertex.h"
10
#include "Herwig/MatrixElement/ProductionMatrixElement.h"
11
#include "Herwig/Shower/ShowerAlpha.h"
12
13
namespace
Herwig
{
14
15
using namespace
ThePEG
;
16
23
class
MEPP2GammaGammaPowheg
:
public
HwMEBase
{
24
25
enum
DipoleType { IIQCD1=2, IIQCD2=4,
26
IFQED1=5, FIQED1=6, IFQED2=7, FIQED2=8 };
27
28
enum
RadiationType {Subtraction,Hard,Shower};
29
30
public
:
31
37
MEPP2GammaGammaPowheg
();
39
45
virtual
POWHEGType
hasPOWHEGCorrection
() {
return
ISR;}
46
50
virtual
RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr,
51
ShowerInteraction
);
53
54
public
:
55
62
virtual
unsigned
int
orderInAlphaS()
const
;
63
68
virtual
unsigned
int
orderInAlphaEW()
const
;
69
77
virtual
double
me2()
const
;
78
82
virtual
Energy2 scale()
const
;
83
88
virtual
int
nDim()
const
;
89
98
virtual
bool
generateKinematics(
const
double
* r);
99
104
virtual
CrossSection dSigHatDR()
const
;
105
109
virtual
void
getDiagrams()
const
;
110
119
virtual
Selector<DiagramIndex>
diagrams(
const
DiagramVector
& dv)
const
;
120
128
virtual
Selector<const ColourLines *>
129
colourGeometries(tcDiagPtr diag)
const
;
131
132
public
:
133
140
void
persistentOutput(
PersistentOStream
& os)
const
;
141
147
void
persistentInput(
PersistentIStream
& is,
int
version);
149
156
static
void
Init();
157
158
protected
:
159
163
virtual
double
NLOWeight()
const
;
164
168
double
loGammaGammaME(
const
cPDVector
& particles,
169
const
vector<Lorentz5Momentum> & momenta,
170
bool
first=
false
)
const
;
171
175
double
loGammaqME(
const
cPDVector
& particles,
176
const
vector<Lorentz5Momentum> & momenta,
177
bool
first=
false
)
const
;
178
182
double
loGammaqbarME(
const
cPDVector
& particles,
183
const
vector<Lorentz5Momentum> & momenta,
184
bool
first=
false
)
const
;
185
189
double
loGammagME(
const
cPDVector
& particles,
190
const
vector<Lorentz5Momentum> & momenta,
191
bool
first=
false
)
const
;
192
196
InvEnergy2 realGammaGammagME(
const
cPDVector
& particles,
197
const
vector<Lorentz5Momentum> & momenta,
198
DipoleType dipole, RadiationType rad,
199
bool
first=
false
)
const
;
200
204
InvEnergy2 realGammaGammaqME(
const
cPDVector
& particles,
205
const
vector<Lorentz5Momentum> & momenta,
206
DipoleType dipole, RadiationType rad,
207
bool
first=
false
)
const
;
208
212
InvEnergy2 realGammaGammaqbarME(
const
cPDVector
& particles,
213
const
vector<Lorentz5Momentum> & momenta,
214
DipoleType dipole, RadiationType rad,
215
bool
first=
false
)
const
;
216
220
double
subtractedVirtual()
const
;
221
225
double
subtractedReal(pair<double,double> x,
double
z,
226
double
zJac,
double
oldqPDF,
double
newqPDF,
227
double
newgPDF,
bool
order)
const
;
228
236
double
collinearQuark(
double
x, Energy2 mu2,
double
jac,
double
z,
237
double
oldPDF,
double
newPDF)
const
;
238
242
double
collinearGluon(Energy2 mu2,
double
jac,
double
z,
243
double
oldPDF,
double
newPDF)
const
;
245
252
double
realME(
const
cPDVector
& particles,
253
const
vector<Lorentz5Momentum> & momenta)
const
;
254
258
RealEmissionProcessPtr hardQCDEmission(RealEmissionProcessPtr,
259
ParticleVector
,
260
pair<double,double>);
261
265
RealEmissionProcessPtr hardQEDEmission(RealEmissionProcessPtr,
266
ParticleVector
,
267
pair<double,double>);
268
272
pair<double,double>
supressionFunction
(Energy pT,Energy scale)
const
{
273
if
(supressionScale_==0) scale = lambda_;
274
Energy2 scale2 =
sqr
(scale), pT2 =
sqr
(pT);
275
switch
( supressionFunction_ ) {
276
case
0:
277
return
make_pair(1.,0.);
278
case
1:
279
if
(pT < scale )
return
make_pair(1.,0.);
280
else
return
make_pair(0.,1.);
281
case
2:
282
return
make_pair(scale2/(pT2+scale2),pT2/(pT2+scale2));
283
default
:
284
assert(
false
);
285
return
make_pair(0.,0.);
286
}
287
}
288
289
290
protected
:
291
298
virtual
IBPtr
clone()
const
;
299
304
virtual
IBPtr
fullclone()
const
;
306
protected
:
307
315
virtual
void
doinit();
317
318
private
:
319
324
MEPP2GammaGammaPowheg
& operator=(
const
MEPP2GammaGammaPowheg
&) =
delete
;
325
326
private
:
327
335
AbstractFFVVertexPtr
FFPvertex_
;
336
340
AbstractFFVVertexPtr
FFGvertex_
;
342
350
mutable
double
zTilde_
;
351
355
mutable
double
vTilde_
;
356
360
mutable
double
phi_
;
362
366
unsigned
int
contrib_
;
367
371
double
power_
;
372
376
tcPDPtr
gluon_
;
377
381
unsigned
int
process_
;
382
386
unsigned
int
threeBodyProcess_
;
387
391
int
maxflavour_
;
392
396
mutable
double
CFfact_
;
397
401
mutable
double
TRfact_
;
402
406
mutable
double
alphaS_
;
407
411
bool
fixedAlphaS_
;
412
416
mutable
double
alphaEM_
;
417
421
mutable
double
loME_
;
422
426
mutable
ProductionMatrixElement
me_
;
427
431
mutable
DipoleType
dipole_
;
432
440
unsigned
int
supressionFunction_
;
441
445
unsigned
int
supressionScale_
;
446
450
Energy
lambda_
;
452
453
461
bool
quarkplus_
;
463
471
vector<tcBeamPtr>
beams_
;
472
476
vector<tcPDPtr>
partons_
;
478
487
double
preQCDqqbarq_
;
491
double
preQCDqqbarqbar_
;
492
496
double
preQCDqg_
;
497
501
double
preQCDgqbar_
;
502
503
double
preQEDqqbarq_;
504
double
preQEDqqbarqbar_;
505
double
preQEDqgq_;
506
double
preQEDgqbarqbar_;
507
511
vector<double>
prefactor_
;
513
517
Energy
minpT_
;
518
522
ShowerAlphaPtr
alphaQCD_
;
523
527
ShowerAlphaPtr
alphaQED_
;
528
532
unsigned
int
scaleChoice_
;
533
537
double
scalePreFactor_
;
538
539
};
540
541
}
542
543
#endif
/* HERWIG_MEPP2GammaGammaPowheg_H */
Herwig::MEPP2GammaGammaPowheg::quarkplus_
bool quarkplus_
Hard emission stuff.
Definition:
MEPP2GammaGammaPowheg.h:461
ThePEG::PersistentIStream
Herwig::MEPP2GammaGammaPowheg::alphaEM_
double alphaEM_
Electromagnetic coupling.
Definition:
MEPP2GammaGammaPowheg.h:416
Herwig::ShowerInteraction
ShowerInteraction
Handy header file to be included in all Shower classes.
Definition:
ShowerInteraction.h:23
Herwig::MEPP2GammaGammaPowheg::contrib_
unsigned int contrib_
Whether to generate the positive, negative or leading order contribution.
Definition:
MEPP2GammaGammaPowheg.h:366
ThePEG::PersistentOStream
Herwig::MEPP2GammaGammaPowheg::power_
double power_
Power for sampling .
Definition:
MEPP2GammaGammaPowheg.h:371
Herwig::MEPP2GammaGammaPowheg::me_
ProductionMatrixElement me_
The matrix element.
Definition:
MEPP2GammaGammaPowheg.h:426
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
Herwig::MEPP2GammaGammaPowheg::scalePreFactor_
double scalePreFactor_
Scale factor.
Definition:
MEPP2GammaGammaPowheg.h:537
ThePEG
Herwig::MEPP2GammaGammaPowheg::prefactor_
vector< double > prefactor_
The prefactors as a vector for easy use.
Definition:
MEPP2GammaGammaPowheg.h:511
Herwig::MEPP2GammaGammaPowheg::zTilde_
double zTilde_
Kinematic variables for the real radiation.
Definition:
MEPP2GammaGammaPowheg.h:350
Herwig::MEPP2GammaGammaPowheg::TRfact_
double TRfact_
Factor for dependent pieces.
Definition:
MEPP2GammaGammaPowheg.h:401
Herwig::MEPP2GammaGammaPowheg::beams_
vector< tcBeamPtr > beams_
Properties of the incoming particles.
Definition:
MEPP2GammaGammaPowheg.h:471
Herwig::MEPP2GammaGammaPowheg::FFPvertex_
AbstractFFVVertexPtr FFPvertex_
Vertices.
Definition:
MEPP2GammaGammaPowheg.h:335
Herwig::MEPP2GammaGammaPowheg::scaleChoice_
unsigned int scaleChoice_
Scale choice.
Definition:
MEPP2GammaGammaPowheg.h:532
Herwig::MEPP2GammaGammaPowheg::hasPOWHEGCorrection
virtual POWHEGType hasPOWHEGCorrection()
Has a POWHEG style correction.
Definition:
MEPP2GammaGammaPowheg.h:45
Herwig::MEPP2GammaGammaPowheg::gluon_
tcPDPtr gluon_
Pointer to the gluon ParticleData object.
Definition:
MEPP2GammaGammaPowheg.h:376
Herwig::ProductionMatrixElement
The storage of the helicity amplitude expression for the matrix element of a hard process...
Definition:
ProductionMatrixElement.h:34
Herwig::MEPP2GammaGammaPowheg::preQCDqqbarq_
double preQCDqqbarq_
Constants for the sampling.
Definition:
MEPP2GammaGammaPowheg.h:487
Herwig::MEPP2GammaGammaPowheg::partons_
vector< tcPDPtr > partons_
Pointers to the ParticleDataObjects for the partons.
Definition:
MEPP2GammaGammaPowheg.h:476
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Herwig::MEPP2GammaGammaPowheg::supressionFunction
pair< double, double > supressionFunction(Energy pT, Energy scale) const
The supression function.
Definition:
MEPP2GammaGammaPowheg.h:272
Herwig::MEPP2GammaGammaPowheg::preQCDqqbarqbar_
double preQCDqqbarqbar_
The prefactor, for the channel.
Definition:
MEPP2GammaGammaPowheg.h:491
Herwig::MEPP2GammaGammaPowheg::FFGvertex_
AbstractFFVVertexPtr FFGvertex_
FFGVertex.
Definition:
MEPP2GammaGammaPowheg.h:340
Herwig::MEPP2GammaGammaPowheg::preQCDgqbar_
double preQCDgqbar_
The prefactor, for the channel.
Definition:
MEPP2GammaGammaPowheg.h:501
Herwig::MEPP2GammaGammaPowheg::alphaQCD_
ShowerAlphaPtr alphaQCD_
Pointer to the object calculating the strong coupling.
Definition:
MEPP2GammaGammaPowheg.h:522
ThePEG::cPDVector
vector< cPDPtr > cPDVector
Herwig::HwMEBase::POWHEGType
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition:
HwMEBase.h:87
Herwig::MEPP2GammaGammaPowheg::lambda_
Energy lambda_
Scalar for the supression function.
Definition:
MEPP2GammaGammaPowheg.h:450
Herwig::MEPP2GammaGammaPowheg::supressionFunction_
unsigned int supressionFunction_
Supression Function.
Definition:
MEPP2GammaGammaPowheg.h:440
Herwig::MEPP2GammaGammaPowheg::threeBodyProcess_
unsigned int threeBodyProcess_
Processes.
Definition:
MEPP2GammaGammaPowheg.h:386
ThePEG::Selector
ThePEG::MEBase::DiagramVector
vector< DiagPtr > DiagramVector
Herwig::MEPP2GammaGammaPowheg::alphaS_
double alphaS_
Strong coupling.
Definition:
MEPP2GammaGammaPowheg.h:406
Herwig::MEPP2GammaGammaPowheg::maxflavour_
int maxflavour_
Allowed flavours of the incoming quarks.
Definition:
MEPP2GammaGammaPowheg.h:391
Herwig::MEPP2GammaGammaPowheg::process_
unsigned int process_
Processes.
Definition:
MEPP2GammaGammaPowheg.h:381
Herwig::MEPP2GammaGammaPowheg::phi_
double phi_
Azimuthal angle.
Definition:
MEPP2GammaGammaPowheg.h:360
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::MEPP2GammaGammaPowheg::vTilde_
double vTilde_
Second variable.
Definition:
MEPP2GammaGammaPowheg.h:355
Herwig::MEPP2GammaGammaPowheg::alphaQED_
ShowerAlphaPtr alphaQED_
Pointer to the object calculating the EM.
Definition:
MEPP2GammaGammaPowheg.h:527
Herwig::MEPP2GammaGammaPowheg::minpT_
Energy minpT_
The transverse momentum of the jet.
Definition:
MEPP2GammaGammaPowheg.h:517
Herwig::MEPP2GammaGammaPowheg
Here is the documentation of the MEPP2GammaGammaPowheg class.
Definition:
MEPP2GammaGammaPowheg.h:23
Herwig::MEPP2GammaGammaPowheg::loME_
double loME_
Leading-order matrix element.
Definition:
MEPP2GammaGammaPowheg.h:421
Herwig::HwMEBase
The HwMEBase class serves a number of purposes.
Definition:
HwMEBase.h:35
Herwig::MEPP2GammaGammaPowheg::preQCDqg_
double preQCDqg_
The prefactor, for the channel.
Definition:
MEPP2GammaGammaPowheg.h:496
Herwig::MEPP2GammaGammaPowheg::supressionScale_
unsigned int supressionScale_
Choice for the scale in the supression function.
Definition:
MEPP2GammaGammaPowheg.h:445
ThePEG::ParticleVector
vector< PPtr > ParticleVector
Herwig::MEPP2GammaGammaPowheg::dipole_
DipoleType dipole_
the selected dipole
Definition:
MEPP2GammaGammaPowheg.h:431
Herwig::MEPP2GammaGammaPowheg::CFfact_
double CFfact_
Factor for dependent pieces.
Definition:
MEPP2GammaGammaPowheg.h:396
Herwig::MEPP2GammaGammaPowheg::fixedAlphaS_
bool fixedAlphaS_
Use a fixed value of .
Definition:
MEPP2GammaGammaPowheg.h:411
Generated on Sat Apr 11 2020 14:50:30 for Herwig by
1.8.13