herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
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 */
Herwig::DipolePKOperator
DipolePKOperator implements the P+K insertion operator.
Definition:
DipolePKOperator.h:31
Herwig::DipolePKOperator::NHeavyJetVec
vector< int > NHeavyJetVec() const
Return a vector of PDG codes of the heavy flavours, which are contained in the jet particle group.
Herwig::DipolePKOperator::gammaGluon
double gammaGluon
\gamma_g
Definition:
DipolePKOperator.h:271
Herwig::DipolePKOperator::setXComb
virtual void setXComb(tStdXCombPtr xc)
Set the XComb object steering the Born matrix element this class represents virtual corrections to.
Herwig::DipolePKOperator::pdfCache
map< pair< tcPDFPtr, tcPDPtr >, pair< double, double > > pdfCache
Cache PDFs evaluated at x and x/z.
Definition:
DipolePKOperator.h:311
Herwig::DipolePKOperator::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::DipolePKOperator::x
double x
The x to be used.
Definition:
DipolePKOperator.h:301
Herwig::DipolePKOperator::KTildeqg
double KTildeqg() const
The Ktilde^{qg} contribution.
Herwig::DipolePKOperator::KQuark
double KQuark
K_q.
Definition:
DipolePKOperator.h:276
Herwig::DipolePKOperator::setAlpha
virtual void setAlpha(double alpha) const
Set parameters for new alpha parameter.
Herwig::DipolePKOperator::apply
virtual bool apply(const cPDVector &) const
Return true, if this virtual correction applies to the given process.
Herwig::DipolePKOperator::softLogByz
double softLogByz(tcPDPtr p) const
[(1/(1-z))*ln((1-z)/z)]_+
Herwig::DipolePKOperator::gammaQuark
double gammaQuark
\gamma_q
Definition:
DipolePKOperator.h:266
Herwig::DipolePKOperator::pdf
tcPDFPtr pdf
The PDF to be used.
Definition:
DipolePKOperator.h:291
Herwig::DipolePKOperator::particle
tcPDPtr particle
The incoming parton type considered.
Definition:
DipolePKOperator.h:296
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::CF
double CF
C_F.
Definition:
DipolePKOperator.h:261
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
Herwig::DipolePKOperator::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::DipolePKOperator::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::DipolePKOperator::KBarqq
double KBarqq() const
The Kbar^{qq} contribution.
Herwig::DipolePKOperator::gammaSoft
double gammaSoft() const
The initial-final contribution.
Herwig::DipolePKOperator::scale
Energy2 scale
The scale to be used.
Definition:
DipolePKOperator.h:286
Herwig::DipolePKOperator::DipolePKOperator
DipolePKOperator()
The default constructor.
Herwig::DipolePKOperator::sumParton
double sumParton(int id) const
Get all contributions for the indicated incoming parton.
Herwig::DipolePKOperator::KBargq
double KBargq() const
The Kbar^{gq} contribution.
Herwig::DipolePKOperator::Pqq
double Pqq() const
The P^{qq} contribution.
Herwig::DipolePKOperator::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::DipolePKOperator::Pgq
double Pgq() const
The P^{gq} contribution.
Herwig::DipolePKOperator::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::DipolePKOperator::KBarqg
double KBarqg() const
The Kbar^{qg} contribution.
Herwig::DipolePKOperator::z
double z
The convolution variable to be used.
Definition:
DipolePKOperator.h:306
Herwig::DipolePKOperator::PDFx
double PDFx(tcPDPtr) const
Get a PDF value at x.
Herwig::DipolePKOperator::~DipolePKOperator
virtual ~DipolePKOperator()
The destructor.
Herwig::DipolePKOperator::me2
virtual double me2() const
Evaluate the finite virtual correction for the variables supplied through the Born XComb object and p...
Herwig::DipolePKOperator::KTildeqq
double KTildeqq() const
The Ktilde^{qq} contribution.
Herwig::DipolePKOperator::PDFxByz
double PDFxByz(tcPDPtr) const
Get a PDF value at x/z.
Herwig::DipolePKOperator::Pqg
double Pqg() const
The P^{qg} contribution.
Herwig::DipolePKOperator::apply
bool apply(tcPDPtr) const
Return true, if contributions exist to the given parton.
Herwig::DipolePKOperator::softLog
double softLog(tcPDPtr p) const
[(1/(1-z))*ln((1-z))]_+
Herwig::DipolePKOperator::KTildegg
double KTildegg() const
The Ktilde^{gg} contribution.
Herwig::DipolePKOperator::Pgg
double Pgg() const
The P^{gg} contribution.
Herwig::DipolePKOperator::KTildegq
double KTildegq() const
The Ktilde^{gq} contribution.
Herwig::DipolePKOperator::operator=
DipolePKOperator & operator=(const DipolePKOperator &)=delete
The assignment operator is private and must never be called.
Herwig::DipolePKOperator::KBargg
double KBargg() const
The Kbar^{gg} contribution.
Herwig::DipolePKOperator::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::DipolePKOperator::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::DipolePKOperator::NLightProtonVec
vector< int > NLightProtonVec() const
Return a vector of PDG codes of the light flavours, which are contained in the proton particle group.
Herwig::DipolePKOperator::NLightJetVec
vector< int > NLightJetVec() const
Return a vector of PDG codes of the light flavours, which are contained in the jet particle group.
Herwig::DipolePKOperator::KGluon
double KGluon
K_g.
Definition:
DipolePKOperator.h:281
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::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