9 #ifndef ThePEG_PDFBase_H
10 #define ThePEG_PDFBase_H
13 #include "ThePEG/Config/ThePEG.h"
14 #include "ThePEG/Handlers/HandlerBase.h"
15 #include "ThePEG/PDF/PDFCuts.h"
99 double l, Energy2 particleScale =
ZERO)
const;
108 double x,
double eps = 0.0,
109 Energy2 particleScale =
ZERO)
const;
122 double l, Energy2 particleScale =
ZERO)
const;
134 double x,
double eps = 0.0,
135 Energy2 particleScale =
ZERO)
const;
147 double l, Energy2 particleScale =
ZERO)
const;
159 double x,
double eps = 0.0,
160 Energy2 particleScale =
ZERO)
const;
173 double z,
double & jacobian)
const;
188 const PDFCuts & cut,
double l,
double z,
189 double & jacobian)
const;
virtual cPDVector partons(tcPDPtr particle) const =0
Return the partons which this PDF may extract from the given particle.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PDFBase()
Default constructor.
static AbstractClassDescription< PDFBase > initPDFBase
The static object used to initialize the description of this class.
virtual double flattenScale(tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut, double l, double z, double &jacobian) const
Generate scale (as a fraction of the maximum scale).
The PDFCuts class is used to specify cuts on scale and momentum fractions for which a PDFBase object ...
virtual double xfsl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The sea density.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
A concreate implementation of ClassDescriptionBase describing an abstract class with persistent data...
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
RangeException
Indicate how to deal with x and Q2 which are out of range.
virtual bool canHandle(tcPDPtr particle) const
Return true if canHandleParticle() and if the corresponding method for remnantHandler() returns true ...
virtual double xfx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const
The density.
This is the main namespace within which all identifiers in ThePEG are declared.
virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut, double z, double &jacobian) const
Generate a momentum fraction.
static void Init()
Standard Init function used to initialize the interface.
virtual double xfsx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const
The sea density.
tcRemHPtr remnantHandler() const
Pointer to the remnant handler to handle remnant when extracting partons according to these densities...
RemHPtr theRemnantHandler
A remnant handler which can generate remnants for the parton extracted withfor this PDF...
PDFBase is the base class for implementing parton density functions for particles with sub-structure...
RangeException rangeException
Indicate to subclasses how to deal with x and Q2 which are out of range.
virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The density.
RCPtr is a reference counted (smart) pointer.
vector< cPDPtr > cPDVector
A vector of pointers to const ParticleData objects.
const ZeroUnit ZERO
ZERO can be used as zero for any unitful quantity.
HandlerBase is an abstract base class derived from the Interfaced class via the HandlerBaseT class ad...
virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The valence density.
PDFBase & operator=(const PDFBase &)
Private and non-existent assignment operator.
virtual double xfvx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const
The valence density.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual ~PDFBase()
Destructor.
virtual bool canHandleParticle(tcPDPtr particle) const =0
Return true if this PDF can handle the extraction of partons from the given particle.
Freeze the value of the PDF outside the limits.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual bool hasPoleIn1(tcPDPtr particle, tcPDPtr parton) const
Return true if this PDF has a pole at $x=1$ for the given particle and parton.
Set the PDF to zero outside the limits.