herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Matchbox
InsertionOperators
DipolePKOperator.h
1
// -*- C++ -*-
2
//
3
// DipolePKOperator.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_DipolePKOperator_H
10
#define HERWIG_DipolePKOperator_H
11
//
12
// This is the declaration of the DipolePKOperator 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
31
class
DipolePKOperator
:
public
MatchboxInsertionOperator
{
32
33
public
:
34
40
DipolePKOperator
();
41
45
virtual
~
DipolePKOperator
();
47
48
public
:
49
54
virtual
void
setXComb(tStdXCombPtr xc);
55
59
virtual
void
setAlpha (
double
alpha)
const
;
60
66
virtual
int
nDimAdditional
()
const
{
return
1; }
67
72
vector<int> NLightJetVec()
const
;
73
78
vector<int> NHeavyJetVec()
const
;
79
84
vector<int> NLightBornVec()
const
;
85
90
vector<int> NHeavyBornVec()
const
;
91
96
vector<int> NLightProtonVec()
const
;
97
103
virtual
double
me2()
const
;
104
110
virtual
CrossSection
dSigHatDR
()
const
{
111
return
sqr
(hbarc) * me2() * lastBorn()->lastXComb().jacobian() / (2.*lastSHat());
112
}
113
114
public
:
115
120
bool
apply(
tcPDPtr
)
const
;
121
126
virtual
bool
apply(
const
cPDVector
&)
const
;
127
131
double
gammaSoft()
const
;
132
136
double
softLogByz(
tcPDPtr
p)
const
;
137
141
double
softLog(
tcPDPtr
p)
const
;
142
146
double
KBarqq()
const
;
147
151
double
KTildeqq()
const
;
152
156
double
Pqq()
const
;
157
161
double
KBarqg()
const
;
162
166
double
KTildeqg()
const
;
167
171
double
Pqg()
const
;
172
176
double
KBargq()
const
;
177
181
double
KTildegq()
const
;
182
186
double
Pgq()
const
;
187
191
double
KBargg()
const
;
192
196
double
KTildegg()
const
;
197
201
double
Pgg()
const
;
202
206
double
sumParton(
int
id
)
const
;
207
208
public
:
209
216
void
persistentOutput(
PersistentOStream
& os)
const
;
217
223
void
persistentInput(
PersistentIStream
& is,
int
version);
225
232
static
void
Init();
233
234
protected
:
235
242
virtual
IBPtr
clone()
const
;
243
248
virtual
IBPtr
fullclone()
const
;
250
251
private
:
252
256
double
CA
;
257
261
double
CF
;
262
266
double
gammaQuark
;
267
271
double
gammaGluon
;
272
276
mutable
double
KQuark
;
277
281
mutable
double
KGluon
;
282
286
mutable
Energy2
scale
;
287
291
mutable
tcPDFPtr
pdf
;
292
296
mutable
tcPDPtr
particle
;
297
301
mutable
double
x
;
302
306
mutable
double
z
;
307
311
mutable
map<pair<tcPDFPtr,tcPDPtr>,pair<double,double> >
pdfCache
;
312
316
mutable
tcPDPtr
parton
;
317
321
double
PDFx(
tcPDPtr
)
const
;
322
326
double
PDFxByz(
tcPDPtr
)
const
;
327
328
private
:
329
334
DipolePKOperator
& operator=(
const
DipolePKOperator
&) =
delete
;
335
336
};
337
338
}
339
340
#endif
/* HERWIG_DipolePKOperator_H */
ThePEG::PersistentIStream
Herwig::DipolePKOperator::particle
tcPDPtr particle
The incoming parton type considered.
Definition:
DipolePKOperator.h:296
Herwig::DipolePKOperator::KGluon
double KGluon
K_g.
Definition:
DipolePKOperator.h:281
Herwig::DipolePKOperator::z
double z
The convolution variable to be used.
Definition:
DipolePKOperator.h:306
Herwig::DipolePKOperator::gammaGluon
double gammaGluon
Definition:
DipolePKOperator.h:271
ThePEG::PersistentOStream
ThePEG::tcPDFPtr
ThePEG::Ptr< PDFBase >::transient_const_pointer tcPDFPtr
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
Herwig::DipolePKOperator
DipolePKOperator implements the P+K insertion operator.
Definition:
DipolePKOperator.h:31
ThePEG
Herwig::DipolePKOperator::dSigHatDR
virtual CrossSection dSigHatDR() const
Evaluate the finite virtual correction for the variables supplied through the Born XComb object and p...
Definition:
DipolePKOperator.h:110
Herwig::DipolePKOperator::pdf
tcPDFPtr pdf
The PDF to be used.
Definition:
DipolePKOperator.h:291
Herwig::DipolePKOperator::parton
tcPDPtr parton
The currently considered incoming parton.
Definition:
DipolePKOperator.h:316
Herwig::DipolePKOperator::CA
double CA
C_A.
Definition:
DipolePKOperator.h:256
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Herwig::DipolePKOperator::nDimAdditional
virtual int nDimAdditional() const
Return the number of additional random variables needed to calculate this virtual correction...
Definition:
DipolePKOperator.h:66
Herwig::DipolePKOperator::gammaQuark
double gammaQuark
Definition:
DipolePKOperator.h:266
ThePEG::cPDVector
vector< cPDPtr > cPDVector
Herwig::DipolePKOperator::scale
Energy2 scale
The scale to be used.
Definition:
DipolePKOperator.h:286
Herwig::MatchboxInsertionOperator
MatchboxInsertionOperator is the base class for insertion operators.
Definition:
MatchboxInsertionOperator.h:36
Herwig::DipolePKOperator::KQuark
double KQuark
K_q.
Definition:
DipolePKOperator.h:276
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::DipolePKOperator::CF
double CF
C_F.
Definition:
DipolePKOperator.h:261
Herwig::DipolePKOperator::x
double x
The x to be used.
Definition:
DipolePKOperator.h:301
Herwig::DipolePKOperator::pdfCache
map< pair< tcPDFPtr, tcPDPtr >, pair< double, double > > pdfCache
Cache PDFs evaluated at x and x/z.
Definition:
DipolePKOperator.h:311
Generated on Sat Apr 11 2020 14:50:29 for Herwig by
1.8.13