thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
PDF
PartonBinInstance.h
1
// -*- C++ -*-
2
//
3
// PartonBinInstance.h is a part of ThePEG - Toolkit for HEP Event Generation
4
// Copyright (C) 1999-2019 Leif Lonnblad
5
//
6
// ThePEG 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 THEPEG_PartonBinInstance_H
10
#define THEPEG_PartonBinInstance_H
11
// This is the declaration of the PartonBinInstance class.
12
13
#include "
ThePEG/Config/ThePEG.h
"
14
#include "ThePEG/PDF/PartonBin.h"
15
16
namespace
ThePEG
{
17
18
ThePEG_DECLARE_CLASS_POINTERS
(
PartonBinInstance
,
PBIPtr
);
20
typedef
pair<PBIPtr,PBIPtr>
PBIPair
;
21
22
ThePEG_DECLARE_CLASS_POINTERS
(
RemInfoBase
,
RemIPtr
);
23
28
class
PartonBinInstance
:
public
PersistentBase
{
29
30
public
:
31
37
PartonBinInstance
();
38
42
PartonBinInstance
(
const
PartonBinInstance
&);
43
47
virtual
~PartonBinInstance
();
48
53
PartonBinInstance
(tcPBPtr,
tPBIPtr
=
tPBIPtr
());
54
72
PartonBinInstance
(
tPPtr
parton
, tcPBPtr pb,
Energy2
scale
=
ZERO
);
73
81
PartonBinInstance
(
tPPtr
particle
,
tPPtr
parton
, tcPBPtr pb,
82
Energy2
scale
=
ZERO
);
83
85
86
public
:
87
93
tcPBPtr
bin
()
const
{
return
theBin
; }
94
99
const
PartonVector &
bins
()
const
{
return
theBins
; }
100
104
tcPDPtr
particleData
()
const
{
return
bin
()->particle(); }
105
109
tcPDPtr
partonData
()
const
{
return
bin
()->parton(); }
110
116
tPBIPtr
incoming
()
const
{
return
theIncoming
; }
117
122
tPBIPtr
getFirst
();
123
128
tcPDFPtr
pdf
()
const
{
return
bin
()->pdf(); }
129
133
tcRemHPtr
remnantHandler
()
const
{
return
bin
()->remnantHandler(); }
134
139
bool
hasPoleIn1
()
const
;
141
147
void
reset
(
double
lx = 0,
Energy2
Q2 =
ZERO
);
148
152
void
prepare
();
153
157
void
generate
(
const
double
* r);
158
162
double
jacobian
()
const
{
return
theJacobian
; }
163
167
void
jacobian
(
double
j) {
theJacobian
= j; }
169
175
tPPtr
particle
()
const
{
return
theParticle
; }
176
180
void
particle
(
tPPtr
p) {
theParticle
= p; }
181
185
tPPtr
parton
()
const
{
return
theParton
; }
186
190
void
parton
(
tPPtr
p) {
theParton
= p; }
191
196
const
PVector
&
partons
()
const
{
return
thePartons
; }
197
202
double
xi
()
const
{
203
if
(
theXi
< 0.0 )
theXi
= exp(-
li
());
204
return
theXi
;
205
}
206
207
212
double
eps
()
const
{
213
if
(
theEps
< 0.0 )
theEps
=
Math::exp1m
(-
li
());
214
return
theEps
;
215
}
216
221
double
li
()
const
{
return
theLi
; }
222
227
void
li
(
double
lx) {
228
theLi
= lx;
229
theXi
=
theEps
= -1.0;
230
}
231
232
237
double
x
()
const
{
238
if
(
theX
< 0.0 )
theX
= exp(-
l
());
239
return
theX
;
240
}
241
242
247
double
l
()
const
{
return
theL
; }
248
253
void
l
(
double
lx) {
254
theL
= lx;
255
theX
= -1.0;
256
}
257
258
262
Energy2
scale
()
const
{
return
theScale
; }
263
264
268
void
scale
(
Energy2
s) {
theScale
= s; }
269
273
const
TransverseMomentum
&
kT
()
const
{
return
theKT
; }
274
278
double
remnantWeight
()
const
{
return
theRemnantWeight
; }
279
283
void
remnantWeight
(
double
w) {
theRemnantWeight
= w; }
284
288
const
PVector
&
remnants
()
const
{
return
theRemnants
; }
289
293
void
remnants
(
const
PVector
& rems) {
theRemnants
= rems; }
294
300
tRemIPtr
remnantInfo
()
const
{
return
theRemInfo
; }
301
307
void
remnantInfo
(
tRemIPtr
ri) {
theRemInfo
= ri; }
309
310
public
:
311
318
void
persistentOutput
(
PersistentOStream
& os)
const
;
319
325
void
persistentInput
(
PersistentIStream
& is,
int
version);
327
331
static
void
Init
();
332
333
private
:
334
338
cPBPtr
theBin
;
339
344
PartonVector
theBins
;
345
351
PBIPtr
theIncoming
;
352
356
double
theJacobian
;
357
361
PPtr
theParticle
;
362
366
PPtr
theParton
;
367
372
PVector
thePartons
;
373
379
mutable
double
theXi
;
385
mutable
double
theEps
;
391
double
theLi
;
392
397
mutable
double
theX
;
402
double
theL
;
403
407
Energy2
theScale
;
408
412
TransverseMomentum
theKT
;
413
417
double
theRemnantWeight
;
418
422
PVector
theRemnants
;
423
429
RemIPtr
theRemInfo
;
430
431
private
:
432
436
static
ClassDescription<PartonBinInstance>
initPartonBinInstance
;
437
441
PartonBinInstance
&
operator=
(
const
PartonBinInstance
&) =
delete
;
442
443
};
444
447
class
RemInfoBase
:
public
Base
{
448
public
:
450
virtual
~RemInfoBase
() {}
451
};
452
453
}
454
455
456
namespace
ThePEG
{
457
462
template
<>
463
struct
BaseClassTrait<PartonBinInstance,1>:
public
ClassTraitsType {
465
typedef
Base
NthBase
;
466
};
467
470
template
<>
471
struct
ClassTraits<PartonBinInstance>:
472
public
ClassTraitsBase<PartonBinInstance> {
474
static
string
className
() {
return
"ThePEG::PartonBinInstance"
; }
475
};
476
479
}
480
481
#endif
/* THEPEG_PartonBinInstance_H */
ThePEG_DECLARE_CLASS_POINTERS
#define ThePEG_DECLARE_CLASS_POINTERS(full, abbrev)
This macro helps us to declare pointers and stuff to standard classes.
Definition:
Pointers.h:58
ThePEG.h
This is the main config header file for ThePEG.
ThePEG::ClassDescription
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
Definition:
ClassDescription.h:333
ThePEG::PartonBinInstance
PartonBinInstance is used to store information about the generation of a given parton extraction for ...
Definition:
PartonBinInstance.h:28
ThePEG::PartonBinInstance::remnantInfo
void remnantInfo(tRemIPtr ri)
Set information saved by the remnant handler from the generation, to be used in the construction of t...
Definition:
PartonBinInstance.h:307
ThePEG::PartonBinInstance::reset
void reset(double lx=0, Energy2 Q2=ZERO)
Reset the current PartonBin, making room for a new event.
ThePEG::PartonBinInstance::theBins
PartonVector theBins
Pointer to the main bin (and secondary in case several partons have been extracted this instance refe...
Definition:
PartonBinInstance.h:344
ThePEG::PartonBinInstance::Init
static void Init()
Standard Init function used to initialize the interfaces.
ThePEG::PartonBinInstance::xi
double xi() const
Get the momentum fraction of this parton w.r.t.
Definition:
PartonBinInstance.h:202
ThePEG::PartonBinInstance::theEps
double theEps
The momentum fraction (xi, li=log(xi), eps=1-xi), of this parton w.r.t.
Definition:
PartonBinInstance.h:385
ThePEG::PartonBinInstance::jacobian
double jacobian() const
Get the jacobian associated with the phase space point generated.
Definition:
PartonBinInstance.h:162
ThePEG::PartonBinInstance::~PartonBinInstance
virtual ~PartonBinInstance()
Destructor.
ThePEG::PartonBinInstance::theBin
cPBPtr theBin
Pointer to the main bin this instance refer to.
Definition:
PartonBinInstance.h:338
ThePEG::PartonBinInstance::incoming
tPBIPtr incoming() const
In the case the incoming particle in turn is extracted from another particle, return the PartonBinIns...
Definition:
PartonBinInstance.h:116
ThePEG::PartonBinInstance::hasPoleIn1
bool hasPoleIn1() const
Return true if the corresponding PDFs has a pole at $x=1$ for the current particle/parton combination...
ThePEG::PartonBinInstance::theJacobian
double theJacobian
The jacobian associated with the phase space point generated.
Definition:
PartonBinInstance.h:356
ThePEG::PartonBinInstance::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::PartonBinInstance::remnantWeight
void remnantWeight(double w)
Set the weight associated with the remnant generation.
Definition:
PartonBinInstance.h:283
ThePEG::PartonBinInstance::PartonBinInstance
PartonBinInstance(tcPBPtr, tPBIPtr=tPBIPtr())
Constructor taking a PartonBin as argument.
ThePEG::PartonBinInstance::theIncoming
PBIPtr theIncoming
In the case the incoming particle in turn is extracted from another particle, this is the PartonBinIn...
Definition:
PartonBinInstance.h:351
ThePEG::PartonBinInstance::partons
const PVector & partons() const
The currently extracted partons (in case of multiple interactions.
Definition:
PartonBinInstance.h:196
ThePEG::PartonBinInstance::initPartonBinInstance
static ClassDescription< PartonBinInstance > initPartonBinInstance
Describe a concrete class with persistent data.
Definition:
PartonBinInstance.h:436
ThePEG::PartonBinInstance::theParton
PPtr theParton
The current parton instance.
Definition:
PartonBinInstance.h:366
ThePEG::PartonBinInstance::pdf
tcPDFPtr pdf() const
The PDFBase object describing the momentum distribution of the parton within the particle in this Par...
Definition:
PartonBinInstance.h:128
ThePEG::PartonBinInstance::remnants
const PVector & remnants() const
Get the current remnants.
Definition:
PartonBinInstance.h:288
ThePEG::PartonBinInstance::theScale
Energy2 theScale
The scale at which the current parton was extracted.
Definition:
PartonBinInstance.h:407
ThePEG::PartonBinInstance::l
double l() const
Get the logarithmic momentum fraction of this parton w.r.t.
Definition:
PartonBinInstance.h:247
ThePEG::PartonBinInstance::scale
void scale(Energy2 s)
Set the scale at which the current parton was extracted.
Definition:
PartonBinInstance.h:268
ThePEG::PartonBinInstance::theL
double theL
The momentum fraction (x, l=log(x)) of this parton w.r.t.
Definition:
PartonBinInstance.h:402
ThePEG::PartonBinInstance::bin
tcPBPtr bin() const
Return a pointer to the PartonBin this instance refer to.
Definition:
PartonBinInstance.h:93
ThePEG::PartonBinInstance::theKT
TransverseMomentum theKT
The transverse momentum of the extracted parton.
Definition:
PartonBinInstance.h:412
ThePEG::PartonBinInstance::prepare
void prepare()
Reset last generated l and Q2 values of this and parent bins.
ThePEG::PartonBinInstance::theXi
double theXi
The momentum fraction (xi, li=log(xi), eps=1-xi), of this parton w.r.t.
Definition:
PartonBinInstance.h:379
ThePEG::PartonBinInstance::remnantWeight
double remnantWeight() const
Get the weight associated with the remnant generation.
Definition:
PartonBinInstance.h:278
ThePEG::PartonBinInstance::parton
tPPtr parton() const
Get the current parton instance.
Definition:
PartonBinInstance.h:185
ThePEG::PartonBinInstance::remnantInfo
tRemIPtr remnantInfo() const
Get information saved by the remnant handler from the generation, to be used in the construction of t...
Definition:
PartonBinInstance.h:300
ThePEG::PartonBinInstance::l
void l(double lx)
Set the logarithmic momentum fraction of this parton w.r.t.
Definition:
PartonBinInstance.h:253
ThePEG::PartonBinInstance::partonData
tcPDPtr partonData() const
Return a pointer to the data object of the extracted parton.
Definition:
PartonBinInstance.h:109
ThePEG::PartonBinInstance::remnantHandler
tcRemHPtr remnantHandler() const
The remnant handler associated with the pdf().
Definition:
PartonBinInstance.h:133
ThePEG::PartonBinInstance::theRemInfo
RemIPtr theRemInfo
The information saved by the remnant handler from the generation, to be used in the construction of t...
Definition:
PartonBinInstance.h:429
ThePEG::PartonBinInstance::jacobian
void jacobian(double j)
Set the jacobian associated with the phase space point generated.
Definition:
PartonBinInstance.h:167
ThePEG::PartonBinInstance::generate
void generate(const double *r)
Generate l and Q2 of this and parent bins.
ThePEG::PartonBinInstance::parton
void parton(tPPtr p)
Set the current parton instance.
Definition:
PartonBinInstance.h:190
ThePEG::PartonBinInstance::particle
void particle(tPPtr p)
Set the current particle instance.
Definition:
PartonBinInstance.h:180
ThePEG::PartonBinInstance::particleData
tcPDPtr particleData() const
Return a pointer to the data object of the incoming particle.
Definition:
PartonBinInstance.h:104
ThePEG::PartonBinInstance::particle
tPPtr particle() const
Get the current particle instance.
Definition:
PartonBinInstance.h:175
ThePEG::PartonBinInstance::theParticle
PPtr theParticle
The current particle instance.
Definition:
PartonBinInstance.h:361
ThePEG::PartonBinInstance::theLi
double theLi
The momentum fraction (xi, li=log(xi), eps=1-xi), of this parton w.r.t.
Definition:
PartonBinInstance.h:391
ThePEG::PartonBinInstance::theRemnantWeight
double theRemnantWeight
The weight associated with the remnant generation.
Definition:
PartonBinInstance.h:417
ThePEG::PartonBinInstance::eps
double eps() const
Get one minus the momentum fraction of this parton w.r.t.
Definition:
PartonBinInstance.h:212
ThePEG::PartonBinInstance::thePartons
PVector thePartons
The currently extracted partons (in case of multiple interactions.
Definition:
PartonBinInstance.h:372
ThePEG::PartonBinInstance::theRemnants
PVector theRemnants
The current remnants.
Definition:
PartonBinInstance.h:422
ThePEG::PartonBinInstance::li
void li(double lx)
Set the logarithmic momentum fraction of this parton w.r.t.
Definition:
PartonBinInstance.h:227
ThePEG::PartonBinInstance::kT
const TransverseMomentum & kT() const
Return the transverse momentum of the extracted parton.
Definition:
PartonBinInstance.h:273
ThePEG::PartonBinInstance::theX
double theX
The momentum fraction (x, l=log(x)) of this parton w.r.t.
Definition:
PartonBinInstance.h:397
ThePEG::PartonBinInstance::scale
Energy2 scale() const
Get the scale at which the current parton was extracted.
Definition:
PartonBinInstance.h:262
ThePEG::PartonBinInstance::bins
const PartonVector & bins() const
Return pointers to the bins this instance refer to in case more than one parton has been extracted.
Definition:
PartonBinInstance.h:99
ThePEG::PartonBinInstance::li
double li() const
Get the logarithmic momentum fraction of this parton w.r.t.
Definition:
PartonBinInstance.h:221
ThePEG::PartonBinInstance::PartonBinInstance
PartonBinInstance(tPPtr parton, tcPBPtr pb, Energy2 scale=ZERO)
Constructor using an already prepared extracted parton.
ThePEG::PartonBinInstance::PartonBinInstance
PartonBinInstance(const PartonBinInstance &)
Copy-constructor.
ThePEG::PartonBinInstance::PartonBinInstance
PartonBinInstance(tPPtr particle, tPPtr parton, tcPBPtr pb, Energy2 scale=ZERO)
Constructor using a parton which is to be extracted from the given particle, but no mother-child rela...
ThePEG::PartonBinInstance::PartonBinInstance
PartonBinInstance()
Default constructor.
ThePEG::PartonBinInstance::getFirst
tPBIPtr getFirst()
Return the parton bin instance corresponding to the first incoming particle for this bin.
ThePEG::PartonBinInstance::operator=
PartonBinInstance & operator=(const PartonBinInstance &)=delete
Private and non-existent assignment operator.
ThePEG::PartonBinInstance::remnants
void remnants(const PVector &rems)
Set the current remnants.
Definition:
PartonBinInstance.h:293
ThePEG::PartonBinInstance::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::PartonBinInstance::x
double x() const
Get the momentum fraction of this parton w.r.t.
Definition:
PartonBinInstance.h:237
ThePEG::PersistentIStream
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Definition:
PersistentIStream.h:48
ThePEG::PersistentOStream
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
Definition:
PersistentOStream.h:51
ThePEG::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
ThePEG::Pointer::TransientConstRCPtr
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition:
RCPtr.h:696
ThePEG::Pointer::TransientRCPtr
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition:
RCPtr.h:519
ThePEG::Qty< 0, 2, 0 >
ThePEG::RemInfoBase
Empty base class.
Definition:
PartonBinInstance.h:447
ThePEG::RemInfoBase::~RemInfoBase
virtual ~RemInfoBase()
The descructor.
Definition:
PartonBinInstance.h:450
ThePEG::Transverse< Energy >
ThePEG::Math::exp1m
double exp1m(double x)
Return , with highest possible precision for .
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::tPBIPtr
ThePEG::Ptr< PartonBinInstance >::transient_pointer tPBIPtr
Alias for a transient pointer to PartonBinInstance .
Definition:
PartonBinInstance.h:18
ThePEG::PBIPair
pair< PBIPtr, PBIPtr > PBIPair
A pair of pointers to PartonBinInstance objects.
Definition:
PartonBinInstance.h:20
ThePEG::ZERO
constexpr ZeroUnit ZERO
ZERO can be used as zero for any unitful quantity.
Definition:
PhysicalQty.h:35
ThePEG::PVector
vector< PPtr > PVector
A vector of pointers to Particle objects.
Definition:
Containers.h:76
ThePEG::BaseClassTrait::NthBase
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition:
ClassTraits.h:161
ThePEG::Base
Define the base class from which all (polymorphic) classes in ThePEG are derived.
Definition:
ThePEG.h:54
ThePEG::ClassTraitsBase::className
static string className()
Return the name of class T.
Definition:
ClassTraits.h:66
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6