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