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 double xfsl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The sea density.
virtual cPDVector partons(tcPDPtr particle) const =0
Return the partons which this PDF may extract from the given particle.
tcRemHPtr remnantHandler() const
Pointer to the remnant handler to handle remnant when extracting partons according to these densities...
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The density.
PDFBase()
Default constructor.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The valence density.
static AbstractClassDescription< PDFBase > initPDFBase
The static object used to initialize the description of this class.
The PDFCuts class is used to specify cuts on scale and momentum fractions for which a PDFBase object ...
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.
virtual double xfvx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const
The valence 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 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).
This is the main namespace within which all identifiers in ThePEG are declared.
static void Init()
Standard Init function used to initialize the interface.
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.
RCPtr is a reference counted (smart) pointer.
vector< cPDPtr > cPDVector
A vector of pointers to const ParticleData objects.
virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut, double z, double &jacobian) const
Generate a momentum fraction.
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 xfx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const
The density.
PDFBase & operator=(const PDFBase &)
Private and non-existent assignment operator.
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.
virtual bool canHandle(tcPDPtr particle) const
Return true if canHandleParticle() and if the corresponding method for remnantHandler() returns true ...
virtual double xfsx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const
The sea density.
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.
Set the PDF to zero outside the limits.