herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
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
DipoleMPKOperator implements the P+K insertion operator for the massive case. DipoleMPKOperator does ...
Definition:
DipoleMPKOperator.h:34
Herwig::DipoleMPKOperator::Kscriptbarqg_g
double Kscriptbarqg_g() const
The Kscriptbar^{qg}_g contribution (B.18)
Herwig::DipoleMPKOperator::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::DipoleMPKOperator::JaNS_QQ
double JaNS_QQ(double muQ2) const
Kscript^{a,a'}_j terms with j=gluon The ones for a!=a' will return zero.
Herwig::DipoleMPKOperator::KQuark
double KQuark
K_q.
Definition:
DipoleMPKOperator.h:407
Herwig::DipoleMPKOperator::gammaSoft2
double gammaSoft2(double muQ2) const
[1/(1-z)]_+ * log( (2-z)/(2-z+\mu_Q^2) ) a,a' = quark for later use of this function in Kscript^{qq}_...
Herwig::DipoleMPKOperator::apply
bool apply(tcPDPtr) const
Return true, if contributions exist to the given parton.
Herwig::DipoleMPKOperator::Ja_gQplus
double Ja_gQplus(double muQ2) const
Kscript^{a,a'}_j terms with j=quark.
Herwig::DipoleMPKOperator::KTildeqg
double KTildeqg() const
The Ktilde^{qg} contribution.
Herwig::DipoleMPKOperator::NHeavyJetVec
vector< int > NHeavyJetVec() const
Return a vector of PDG codes of the heavy flavours, which are contained in the jet particle group.
Herwig::DipoleMPKOperator::me2
virtual double me2() const
Evaluate the finite virtual correction for the variables supplied through the Born XComb object and p...
Herwig::DipoleMPKOperator::NLightProtonVec
vector< int > NLightProtonVec() const
Return a vector of PDG codes of the light flavours, which are contained in the proton particle group.
Herwig::DipoleMPKOperator::Kscriptbarqg_q
double Kscriptbarqg_q(Energy2 Qja2, Energy2 mj2) const
The Kscriptbar^{qg}_q contribution (B.17)
Herwig::DipoleMPKOperator::parton
tcPDPtr parton
The currently considered incoming parton.
Definition:
DipoleMPKOperator.h:450
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::gammaQuark
double gammaQuark
\gamma_q
Definition:
DipoleMPKOperator.h:397
Herwig::DipoleMPKOperator::PDFxByzplus
double PDFxByzplus(tcPDPtr, int, double) const
Get a PDF value at x/z_+.
Herwig::DipoleMPKOperator::Kscriptbargq_g
double Kscriptbargq_g() const
The Kscriptbar^{gq}_g contribution (B.18)
Herwig::DipoleMPKOperator::Kscriptbarqq_q
double Kscriptbarqq_q(Energy2 Qja2, Energy2 mj2) const
The Kscriptbar^{qq}_q contribution (B.17)
Herwig::DipoleMPKOperator::z
double z
The convolution variable to be used.
Definition:
DipoleMPKOperator.h:437
Herwig::DipoleMPKOperator::Kscriptqq_q
double Kscriptqq_q(Energy2 sja, Energy2 mj2) const
The Kscript^{qq}_q contribution.
Herwig::DipoleMPKOperator::Kscriptqg_q
double Kscriptqg_q(Energy2 sja, Energy2 mj2) const
The Kscript^{qg}_q contribution.
Herwig::DipoleMPKOperator::apply
virtual bool apply(const cPDVector &) const
Return true, if this virtual correction applies to the given process.
Herwig::DipoleMPKOperator::PDFx
double PDFx(tcPDPtr) const
Get a PDF value at x.
Herwig::DipoleMPKOperator::pdf
tcPDFPtr pdf
The PDF to be used.
Definition:
DipoleMPKOperator.h:422
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
Herwig::DipoleMPKOperator::Ja_QQzplus
double Ja_QQzplus(double muQ2, int F, double zplus) const
[J^a_{Q\bar{Q}}(z,\mu_Q^2)]_{z_+}
Herwig::DipoleMPKOperator::KTildegq
double KTildegq() const
The Ktilde^{gq} contribution.
Herwig::DipoleMPKOperator::Pgq
double Pgq() const
The P^{gq} contribution.
Herwig::DipoleMPKOperator::Kscriptqg_g
double Kscriptqg_g() const
The Kscript^{qg}_g contribution.
Herwig::DipoleMPKOperator::~DipoleMPKOperator
virtual ~DipoleMPKOperator()
The destructor.
Herwig::DipoleMPKOperator::Kscriptgg_q
double Kscriptgg_q(Energy2 sja, Energy2 mj2) const
The Kscript^{gg}_q contribution.
Herwig::DipoleMPKOperator::Kscriptbarqq_g
double Kscriptbarqq_g(Energy2 Qja2, double lambda) const
The Kscriptbar^{qq}_g contribution (B.18)
Herwig::DipoleMPKOperator::gammaSoft
double gammaSoft() const
The initial-final contribution [1/(1-z)]_+ + \delta(1-z)
Herwig::DipoleMPKOperator::KBarqg
double KBarqg() const
The Kbar^{qg} contribution.
Herwig::DipoleMPKOperator::particle
tcPDPtr particle
The incoming parton type considered.
Definition:
DipoleMPKOperator.h:427
Herwig::DipoleMPKOperator::Pgg
double Pgg() const
The P^{gg} contribution.
Herwig::DipoleMPKOperator::softLogByz
double softLogByz(tcPDPtr p) const
[(1/(1-z))*ln((1-z)/z)]_+
Herwig::DipoleMPKOperator::KBargq
double KBargq() const
The Kbar^{gq} contribution.
Herwig::DipoleMPKOperator::KGluon
double KGluon
K_g.
Definition:
DipoleMPKOperator.h:412
Herwig::DipoleMPKOperator::DipoleMPKOperator
DipoleMPKOperator()
The default constructor.
Herwig::DipoleMPKOperator::Pqg
double Pqg() const
The P^{qg} contribution.
Herwig::DipoleMPKOperator::KTildeqq
double KTildeqq() const
The Ktilde^{qq} contribution.
Herwig::DipoleMPKOperator::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::DipoleMPKOperator::Pqq
double Pqq() const
The P^{qq} contribution.
Herwig::DipoleMPKOperator::x
double x
The x to be used.
Definition:
DipoleMPKOperator.h:432
Herwig::DipoleMPKOperator::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::DipoleMPKOperator::operator=
DipoleMPKOperator & operator=(const DipoleMPKOperator &)=delete
The assignment operator is private and must never be called.
Herwig::DipoleMPKOperator::Kscriptgq_q
double Kscriptgq_q() const
The Kscript^{gq}_q contribution.
Herwig::DipoleMPKOperator::KTildegg
double KTildegg() const
The Ktilde^{gg} contribution.
Herwig::DipoleMPKOperator::NLightBornVec
vector< int > NLightBornVec() const
Return a vector of PDG codes of the light flavours, which are contained in the associated Born sub-pr...
Herwig::DipoleMPKOperator::NLightJetVec
vector< int > NLightJetVec() const
Return a vector of PDG codes of the light flavours, which are contained in the jet particle group.
Herwig::DipoleMPKOperator::setXComb
virtual void setXComb(tStdXCombPtr xc)
Set the XComb object steering the Born matrix element this class represents virtual corrections to.
Herwig::DipoleMPKOperator::gammaGluon
double gammaGluon
\gamma_g
Definition:
DipoleMPKOperator.h:402
Herwig::DipoleMPKOperator::Kscriptbargg_g
double Kscriptbargg_g(Energy2 Qja2, double lambda) const
The Kscriptbar^{gg}_g contribution (B.18)
Herwig::DipoleMPKOperator::PDFxByz
double PDFxByz(tcPDPtr) const
Get a PDF value at x/z.
Herwig::DipoleMPKOperator::KBarqq
double KBarqq() const
The Kbar^{qq} contribution.
Herwig::DipoleMPKOperator::sumParton
double sumParton(int id) const
Get all contributions for the indicated incoming parton.
Herwig::DipoleMPKOperator::applyNotMassless
bool applyNotMassless(tcPDPtr) const
Return true, if contributions exist to the given parton.
Herwig::DipoleMPKOperator::scale
Energy2 scale
The scale to be used.
Definition:
DipoleMPKOperator.h:417
Herwig::DipoleMPKOperator::Kscriptgq_g
double Kscriptgq_g() const
The Kscript^{gq}_g contribution.
Herwig::DipoleMPKOperator::softLog
double softLog(tcPDPtr p) const
[(1/(1-z))*ln((1-z))]_+
Herwig::DipoleMPKOperator::Kscriptbargg_q
double Kscriptbargg_q(Energy2 Qja2, Energy2 mj2) const
The Kscriptbar^{gg}_q contribution (B.17)
Herwig::DipoleMPKOperator::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::DipoleMPKOperator::Kscriptqq_g
double Kscriptqq_g(Energy2 sja, double lambda) const
The Kscript^{qq}_g contribution.
Herwig::DipoleMPKOperator::CF
double CF
C_F.
Definition:
DipoleMPKOperator.h:392
Herwig::DipoleMPKOperator::Kscriptgg_g
double Kscriptgg_g(Energy2 sja, double lambda) const
The Kscript^{gg}_g contribution equals the Kscript^{qq}_g contribution.
Herwig::DipoleMPKOperator::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::DipoleMPKOperator::KBargg
double KBargg() const
The Kbar^{gg} contribution.
Herwig::DipoleMPKOperator::CA
double CA
C_A.
Definition:
DipoleMPKOperator.h:387
Herwig::DipoleMPKOperator::NHeavyBornVec
vector< int > NHeavyBornVec() const
Return a vector of PDG codes of the heavy flavours, which are contained in the associated Born sub-pr...
Herwig::DipoleMPKOperator::Kscriptbargq_q
double Kscriptbargq_q() const
The Kscriptbar^{gq}_q contribution (B.17)
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:39
Herwig::MatchboxInsertionOperator::lastBorn
Ptr< MatchboxMEBase >::tptr lastBorn() const
Return the Born matrix element this class represents virtual corrections to.
ThePEG::LastXCombInfo< StandardXComb >::lastSHat
Energy2 lastSHat() const
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tcPDFPtr
ThePEG::Ptr< PDFBase >::transient_const_pointer tcPDFPtr
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
ThePEG::cPDVector
vector< cPDPtr > cPDVector
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6