herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Matchbox
InsertionOperators
DipoleMPKOperator.h
1
// -*- C++ -*-
2
//
3
// DipoleMPKOperator.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_DipoleMPKOperator_H
10
#define HERWIG_DipoleMPKOperator_H
11
//
12
// This is the declaration of the DipoleMPKOperator class.
13
//
14
15
#include "Herwig/MatrixElement/Matchbox/InsertionOperators/MatchboxInsertionOperator.h"
16
#include "Herwig/MatrixElement/Matchbox/Base/MatchboxMEBase.h"
17
#include "ThePEG/PDF/PDF.h"
18
19
namespace
Herwig
{
20
21
using namespace
ThePEG
;
22
34
class
DipoleMPKOperator
:
public
MatchboxInsertionOperator
{
35
36
public
:
37
43
DipoleMPKOperator
();
44
48
virtual
~
DipoleMPKOperator
();
50
51
public
:
52
57
virtual
void
setXComb(tStdXCombPtr xc);
58
64
virtual
int
nDimAdditional
()
const
{
return
1; }
65
70
vector<int> NLightJetVec()
const
;
71
76
vector<int> NHeavyJetVec()
const
;
77
82
vector<int> NLightBornVec()
const
;
83
88
vector<int> NHeavyBornVec()
const
;
89
94
vector<int> NLightProtonVec()
const
;
95
101
virtual
double
me2()
const
;
102
108
virtual
CrossSection
dSigHatDR
()
const
{
109
return
sqr
(hbarc) * me2() * lastBorn()->lastXComb().jacobian() / (2.*lastSHat());
110
}
111
112
public
:
113
118
bool
apply(
tcPDPtr
)
const
;
119
124
bool
applyNotMassless(
tcPDPtr
)
const
;
125
130
virtual
bool
apply(
const
cPDVector
&)
const
;
131
136
double
gammaSoft()
const
;
137
141
double
softLogByz(
tcPDPtr
p)
const
;
142
146
double
softLog(
tcPDPtr
p)
const
;
147
151
double
KBarqq()
const
;
152
156
double
KTildeqq()
const
;
157
161
double
Pqq()
const
;
162
166
double
KBarqg()
const
;
167
171
double
KTildeqg()
const
;
172
176
double
Pqg()
const
;
177
181
double
KBargq()
const
;
182
186
double
KTildegq()
const
;
187
191
double
Pgq()
const
;
192
196
double
KBargg()
const
;
197
201
double
KTildegg()
const
;
202
206
double
Pgg()
const
;
207
209
220
double
Ja_gQplus(
double
muQ2)
const
;
221
227
double
gammaSoft2(
double
muQ2)
const
;
228
232
double
Kscriptqq_q(Energy2 sja, Energy2 mj2)
const
;
233
237
double
Kscriptqg_q(Energy2 sja, Energy2 mj2)
const
;
238
242
double
Kscriptgq_q()
const
;
243
247
double
Kscriptgg_q(Energy2 sja, Energy2 mj2)
const
;
248
252
double
Kscriptbarqq_q(Energy2 Qja2, Energy2 mj2)
const
;
253
257
double
Kscriptbarqg_q(Energy2 Qja2, Energy2 mj2)
const
;
258
262
double
Kscriptbargq_q()
const
;
263
267
double
Kscriptbargg_q(Energy2 Qja2, Energy2 mj2)
const
;
268
270
280
double
JaNS_QQ(
double
muQ2)
const
;
281
285
double
Ja_QQzplus(
double
muQ2,
int
F,
double
zplus)
const
;
286
290
// double Kscriptqq_g(Energy2 sja) const;
291
double
Kscriptqq_g(Energy2 sja,
double
lambda)
const
;
292
296
double
Kscriptqg_g()
const
;
297
301
double
Kscriptgq_g()
const
;
302
307
// double Kscriptgg_g(Energy2 sja) const;
308
double
Kscriptgg_g(Energy2 sja,
double
lambda)
const
;
309
313
// double Kscriptbarqq_g(Energy2 Qja2) const;
314
double
Kscriptbarqq_g(Energy2 Qja2,
double
lambda)
const
;
315
319
double
Kscriptbarqg_g()
const
;
320
324
double
Kscriptbargq_g()
const
;
325
329
// double Kscriptbargg_g(Energy2 Qja2) const;
330
double
Kscriptbargg_g(Energy2 Qja2,
double
lambda)
const
;
331
333
337
double
sumParton(
int
id
)
const
;
338
339
public
:
340
347
void
persistentOutput(
PersistentOStream
& os)
const
;
348
354
void
persistentInput(
PersistentIStream
& is,
int
version);
356
363
static
void
Init();
364
365
protected
:
366
373
virtual
IBPtr
clone()
const
;
374
379
virtual
IBPtr
fullclone()
const
;
381
382
private
:
383
387
double
CA
;
388
392
double
CF
;
393
397
double
gammaQuark
;
398
402
double
gammaGluon
;
403
407
double
KQuark
;
408
412
double
KGluon
;
413
417
mutable
Energy2
scale
;
418
422
mutable
tcPDFPtr
pdf
;
423
427
mutable
tcPDPtr
particle
;
428
432
mutable
double
x
;
433
437
mutable
double
z
;
438
445
mutable
map<pair<tcPDFPtr,tcPDPtr>,vector<double> >
pdfCache
;
446
450
mutable
tcPDPtr
parton
;
451
455
double
PDFx(
tcPDPtr
)
const
;
456
460
double
PDFxByz(
tcPDPtr
)
const
;
461
463
467
double
PDFxByzplus(
tcPDPtr
,
int
,
double
)
const
;
468
470
471
private
:
472
477
DipoleMPKOperator
& operator=(
const
DipoleMPKOperator
&) =
delete
;
478
479
};
480
481
}
482
483
#endif
/* HERWIG_DipoleMPKOperator_H */
Herwig::DipoleMPKOperator::particle
tcPDPtr particle
The incoming parton type considered.
Definition:
DipoleMPKOperator.h:427
ThePEG::PersistentIStream
Herwig::DipoleMPKOperator::parton
tcPDPtr parton
The currently considered incoming parton.
Definition:
DipoleMPKOperator.h:450
Herwig::DipoleMPKOperator::CA
double CA
C_A.
Definition:
DipoleMPKOperator.h:387
Herwig::DipoleMPKOperator::KGluon
double KGluon
K_g.
Definition:
DipoleMPKOperator.h:412
Herwig::DipoleMPKOperator::scale
Energy2 scale
The scale to be used.
Definition:
DipoleMPKOperator.h:417
ThePEG::PersistentOStream
ThePEG::tcPDFPtr
ThePEG::Ptr< PDFBase >::transient_const_pointer tcPDFPtr
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::DipoleMPKOperator::pdfCache
map< pair< tcPDFPtr, tcPDPtr >, vector< double > > pdfCache
Cache PDFs evaluated at x, x/z and x/z_+, z_+ depends hereby on the masses of the heavy flavours...
Definition:
DipoleMPKOperator.h:445
sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
Herwig::DipoleMPKOperator::z
double z
The convolution variable to be used.
Definition:
DipoleMPKOperator.h:437
ThePEG
Herwig::DipoleMPKOperator::dSigHatDR
virtual CrossSection dSigHatDR() const
Evaluate the finite virtual correction for the variables supplied through the Born XComb object and p...
Definition:
DipoleMPKOperator.h:108
Herwig::DipoleMPKOperator::KQuark
double KQuark
K_q.
Definition:
DipoleMPKOperator.h:407
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::cPDVector
vector< cPDPtr > cPDVector
Herwig::DipoleMPKOperator::nDimAdditional
virtual int nDimAdditional() const
Return the number of additional random variables needed to calculate this virtual correction...
Definition:
DipoleMPKOperator.h:64
Herwig::MatchboxInsertionOperator
MatchboxInsertionOperator is the base class for insertion operators.
Definition:
MatchboxInsertionOperator.h:36
Herwig::DipoleMPKOperator
DipoleMPKOperator implements the P+K insertion operator for the massive case. DipoleMPKOperator does ...
Definition:
DipoleMPKOperator.h:34
Herwig::DipoleMPKOperator::pdf
tcPDFPtr pdf
The PDF to be used.
Definition:
DipoleMPKOperator.h:422
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::DipoleMPKOperator::gammaGluon
double gammaGluon
Definition:
DipoleMPKOperator.h:402
Herwig::DipoleMPKOperator::x
double x
The x to be used.
Definition:
DipoleMPKOperator.h:432
Herwig::DipoleMPKOperator::CF
double CF
C_F.
Definition:
DipoleMPKOperator.h:392
Herwig::DipoleMPKOperator::gammaQuark
double gammaQuark
Definition:
DipoleMPKOperator.h:397
Generated on Sat Apr 11 2020 14:50:29 for Herwig by
1.8.13