thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
PartonBin.h
1// -*- C++ -*-
2//
3// PartonBin.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_PartonBin_H
10#define ThePEG_PartonBin_H
11// This is the declaration of the PartonBin class.
12
14#include "ThePEG/Utilities/ClassDescription.h"
15#include "ThePEG/Utilities/Maths.h"
16#include "ThePEG/PDF/PDFBase.h"
17#include "ThePEG/PDF/PDFCuts.h"
18#include "ThePEG/Vectors/Transverse.h"
19#include "ThePEG/EventRecord/Particle.h"
20#include "PartonBin.fh"
21
22namespace ThePEG {
23
38class PartonBin: public Base {
39
40public:
41
43typedef vector<PBPtr> PBVector;
44
45public:
46
61 PartonBin(tcPDPtr p, tPBPtr prev, tcPDPtr pi, tcPDFPtr pdf,
62 const PDFCuts & newCuts);
63
68
72 virtual ~PartonBin();
74
75public:
76
82 tcPDPtr particle() const { return theParticle; }
83
88 tPBPtr incoming() const { return theIncomingBin; }
89
94 const PBVector & outgoing() const { return theOutgoing; }
95
100 void addOutgoing(tPBPtr pb) { theOutgoing.push_back(pb); }
101
105 tcPDPtr parton() const { return theParton; }
106
111 tcPDFPtr pdf() const { return thePDF; }
112
117
124 int nDim(bool doscale);
125
130 int pdfDim() const { return thePDFDim; }
131
136 int remDim() const { return theRemDim; }
138
144 const PDFCuts & cuts() const { return theCuts; }
145
149 tPBPtr getFirst();
151
152public:
153
161
167 void persistentInput(PersistentIStream & is, int version);
169
173 static void Init();
174
175private:
176
181
187
193
198
204
209
215
221
226
227private:
228
233
237 PartonBin & operator=(const PartonBin &) = delete;
238
239};
240
245template <>
246struct BaseClassTrait<PartonBin,1>: public ClassTraitsType {
248 typedef Base NthBase;
249};
250
253template <>
254struct ClassTraits<PartonBin>: public ClassTraitsBase<PartonBin> {
256 static string className() { return "ThePEG::PartonBin"; }
257};
258
261}
262
263#endif /* ThePEG_PartonBin_H */
This is the main config header file for ThePEG.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
The PDFCuts class is used to specify cuts on scale and momentum fractions for which a PDFBase object ...
Definition: PDFCuts.h:27
The PartonBin class is used by the PartonExtractor class to store information about the extraction of...
Definition: PartonBin.h:38
int pdfDim() const
Return the number of degrees of freedom used by the parton density and remnant handler.
Definition: PartonBin.h:130
cPDFPtr thePDF
The PDFBase object describing the momentum distribution of the parton within the particle in this Par...
Definition: PartonBin.h:203
int theRemDim
The number of degrees of freedom needed to generate the phase space for this parton for the remnant h...
Definition: PartonBin.h:220
int remDim() const
Return the number of degrees of freedom used by the parton density and remnant handler.
Definition: PartonBin.h:136
vector< PBPtr > PBVector
A vector of pointers to PartonBin objects.
Definition: PartonBin.h:43
PDFCuts theCuts
The cuts specified for this bin.
Definition: PartonBin.h:225
tcPDFPtr pdf() const
The PDFBase object describing the momentum distribution of the parton within the particle in this Par...
Definition: PartonBin.h:111
cPDPtr theParton
The extracted parton type.
Definition: PartonBin.h:197
tPBPtr getFirst()
Return the parton bin corresponding to the first incoming particle.
static ClassDescription< PartonBin > initPartonBin
Describe a concrete class with persistent data.
Definition: PartonBin.h:232
tcRemHPtr remnantHandler() const
The remnant handler associated with the pdf().
Definition: PartonBin.h:116
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
PartonBin & operator=(const PartonBin &)=delete
Private and non-existent assignment operator.
tcPDPtr particle() const
The incoming particle type.
Definition: PartonBin.h:82
int thePDFDim
The number of degrees of freedom needed to generate the phase space for this parton for the parton de...
Definition: PartonBin.h:214
cPDPtr theParticle
The incoming particle type.
Definition: PartonBin.h:180
const PBVector & outgoing() const
The parton bins corresponding to the extracted parton if it in turn can be extracted from.
Definition: PartonBin.h:94
PBVector theOutgoing
The parton bins corresponding to the extracted parton if it itself can be extracted from.
Definition: PartonBin.h:192
tPBPtr theIncomingBin
In the case the incoming particle in turn is extracted from another particle, return the PartonBin fo...
Definition: PartonBin.h:186
const PDFCuts & cuts() const
Return the cuts specified for this bin.
Definition: PartonBin.h:144
virtual ~PartonBin()
Destructor.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
PartonBin()
Default constructor.
PartonBin(tcPDPtr p, tPBPtr prev, tcPDPtr pi, tcPDFPtr pdf, const PDFCuts &newCuts)
Standard constructor.
cRemHPtr theRemnantHandler
The remnant handler associated with the pdf().
Definition: PartonBin.h:208
tPBPtr incoming() const
In the case the incoming particle in turn is extracted from another particle, return the PartonBin fo...
Definition: PartonBin.h:88
tcPDPtr parton() const
The extracted parton type.
Definition: PartonBin.h:105
static void Init()
Standard Init function used to initialize the interface.
void addOutgoing(tPBPtr pb)
Add a parton bin corresponding to the extracted parton if it in turn can be extracted from.
Definition: PartonBin.h:100
int nDim(bool doscale)
Detemine the number of degrees of freedom needed to generate the phase space of this and parent parto...
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
ConstRCPtr is a reference counted (smart) const pointer.
Definition: RCPtr.h:320
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
Define the base class from which all (polymorphic) classes in ThePEG are derived.
Definition: ThePEG.h:54
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30