#include <PDFBase.h>
Standard Interfaced functions. | |
enum | RangeException { rangeFreeze, rangeZero, rangeThrow } |
Indicate how to deal with x and Q2 which are out of range. More... | |
RemHPtr | theRemnantHandler |
A remnant handler which can generate remnants for the parton extracted withfor this PDF. | |
RangeException | rangeException |
Indicate to subclasses how to deal with x and Q2 which are out of range. | |
static AbstractClassDescription < PDFBase > | initPDFBase |
The static object used to initialize the description of this class. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
PDFBase & | operator= (const PDFBase &) |
Private and non-existent assignment operator. | |
Public Member Functions | |
tcRemHPtr | remnantHandler () const |
Pointer to the remnant handler to handle remnant when extracting partons according to these densities. | |
Standard constructors and destructors. | |
PDFBase () | |
Default constructor. | |
PDFBase (const PDFBase &) | |
Copy-constructor. | |
virtual | ~PDFBase () |
Destructor. | |
Virtual functions to be overridden by sub-classes. | |
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 for the given particle. | |
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 cPDVector | partons (tcPDPtr particle) const =0 |
Return the partons which this PDF may extract from the given particle. | |
virtual double | xfl (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const |
The density. | |
virtual double | xfx (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const |
The density. | |
virtual double | xfvl (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const |
The valence density. | |
virtual double | xfvx (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const |
The valence density. | |
virtual double | xfsl (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const |
The sea density. | |
virtual double | xfsx (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const |
The sea density. | |
virtual double | flattenL (tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut, double z, double &jacobian) const |
Generate a momentum fraction. | |
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). | |
Functions used by the persistent I/O system. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
Static Public Member Functions | |
static void | Init () |
Standard Init function used to initialize the interface. |
A number of of virtual methods are defined which should be overridden by sub-classes.
It is essential that either xfx or xfl is overidden to avoid infinite recursive function calls.
A PDFBase object can be assigned to a BeamParticleData object and/or to a PartonExtractor object. A PDFBase has a pointer to a RemnantHandler object which should be capable of generating remnants for all partons which may be extracted by the PDF.
Definition at line 40 of file PDFBase.h.
enum ThePEG::PDFBase::RangeException [protected] |
Return true if this PDF has a pole at $x=1$ for the given particle and parton.
This default version of the function returns false.
Reimplemented in ThePEG::LeptonLeptonPDF, and ThePEG::NoPDF.
virtual double ThePEG::PDFBase::xfl | ( | tcPDPtr | particle, | |
tcPDPtr | parton, | |||
Energy2 | partonScale, | |||
double | l, | |||
Energy2 | particleScale = ZERO | |||
) | const [virtual] |
The density.
Return the pdf for the given parton inside the given particle for the virtuality partonScale and logarithmic momentum fraction l . The particle is assumed to have a virtuality particleScale.
Reimplemented in ThePEG::GRVBase, ThePEG::LeptonLeptonPDF, ThePEG::NoPDF, and ThePEG::WeizsackerWilliamsPDF.
virtual double ThePEG::PDFBase::xfx | ( | tcPDPtr | particle, | |
tcPDPtr | parton, | |||
Energy2 | partonScale, | |||
double | x, | |||
double | eps = 0.0 , |
|||
Energy2 | particleScale = ZERO | |||
) | const [virtual] |
The density.
Return the pdf for the given parton inside the given particle for the virtuality partonScale and momentum fraction x. The particle is assumed to have a virtuality particleScale.
Reimplemented in ThePEG::LHAPDF.
virtual double ThePEG::PDFBase::xfvl | ( | tcPDPtr | particle, | |
tcPDPtr | parton, | |||
Energy2 | partonScale, | |||
double | l, | |||
Energy2 | particleScale = ZERO | |||
) | const [virtual] |
The valence density.
Return the pdf for the given cvalence parton inside the given particle for the virtuality partonScale and logarithmic momentum fraction l . The particle is assumed to have a virtuality particleScale. If not overidden by a sub class this implementation will assume that the difference between a quark and anti-quark distribution is due do valense quarks, but return zero for anything else.
Reimplemented in ThePEG::GRVBase, ThePEG::LeptonLeptonPDF, ThePEG::LHAPDF, and ThePEG::WeizsackerWilliamsPDF.
virtual double ThePEG::PDFBase::xfvx | ( | tcPDPtr | particle, | |
tcPDPtr | parton, | |||
Energy2 | partonScale, | |||
double | x, | |||
double | eps = 0.0 , |
|||
Energy2 | particleScale = ZERO | |||
) | const [virtual] |
The valence density.
Return the pdf for the given cvalence parton inside the given particle for the virtuality partonScale and momentum fraction x. The particle is assumed to have a virtuality particleScale. If not overidden by a sub class this implementation will assume that the difference between a quark and anti-quark distribution is due do valense quarks, but return zero for anything else.
Reimplemented in ThePEG::LeptonLeptonPDF, and ThePEG::LHAPDF.
virtual double ThePEG::PDFBase::xfsl | ( | tcPDPtr | particle, | |
tcPDPtr | parton, | |||
Energy2 | partonScale, | |||
double | l, | |||
Energy2 | particleScale = ZERO | |||
) | const [virtual] |
The sea density.
Return the pdf for the given cvalence parton inside the given particle for the virtuality partonScale and logarithmic momentum fraction l . The particle is assumed to have a virtuality particleScale. If not overidden by a sub class this implementation will assume that the difference between a quark and anti-quark distribution is due do valense quarks.
virtual double ThePEG::PDFBase::xfsx | ( | tcPDPtr | particle, | |
tcPDPtr | parton, | |||
Energy2 | partonScale, | |||
double | x, | |||
double | eps = 0.0 , |
|||
Energy2 | particleScale = ZERO | |||
) | const [virtual] |
The sea density.
Return the pdf for the given cvalence parton inside the given particle for the virtuality partonScale and momentum fraction x. The particle is assumed to have a virtuality particleScale. If not overidden by a sub class this implementation will assume that the difference between a quark and anti-quark distribution is due do valense quarks.
Reimplemented in ThePEG::LHAPDF.
virtual double ThePEG::PDFBase::flattenL | ( | tcPDPtr | particle, | |
tcPDPtr | parton, | |||
const PDFCuts & | cut, | |||
double | z, | |||
double & | jacobian | |||
) | const [virtual] |
Generate a momentum fraction.
If the PDF contains strange peaks which can be difficult to handle, this function may be overwritten to return an appropriate for a z uniformly distributed in ]0,1[. Also the jacobobian of the variable transformation must in the function multiply the jacobian argument. The default version will simply use the function (where the limits are set by cut).
Reimplemented in ThePEG::LeptonLeptonPDF, and ThePEG::WeizsackerWilliamsPDF.
virtual double ThePEG::PDFBase::flattenScale | ( | tcPDPtr | particle, | |
tcPDPtr | parton, | |||
const PDFCuts & | cut, | |||
double | l, | |||
double | z, | |||
double & | jacobian | |||
) | const [virtual] |
Generate scale (as a fraction of the maximum scale).
If the PDF contains strange peaks which can be difficult to handle, this function may be overwritten to return an appropriate scale for a z uniformly distributed in ]0,1[. Also the jacobobian of the variable transformation must multiply the jacobian argument. The default version will simply use the function or, if is zero, (where the limits are set by cut).
Reimplemented in ThePEG::WeizsackerWilliamsPDF.
void ThePEG::PDFBase::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
Reimplemented from ThePEG::Interfaced.
Reimplemented in ThePEG::LHAPDF, and ThePEG::WeizsackerWilliamsPDF.
void ThePEG::PDFBase::persistentInput | ( | PersistentIStream & | is, | |
int | version | |||
) |
Function used to read in object persistently.
is | the persistent input stream read from. | |
version | the version number of the object when written. |
Reimplemented from ThePEG::Interfaced.
Reimplemented in ThePEG::LHAPDF, and ThePEG::WeizsackerWilliamsPDF.
virtual void ThePEG::PDFBase::doinit | ( | ) | [protected, virtual] |
Initialize this object after the setup phase before saving an EventGenerator to disk.
InitException | if object could not be initialized properly. |
Reimplemented from ThePEG::InterfacedBase.
Reimplemented in ThePEG::LHAPDF.
AbstractClassDescription<PDFBase> ThePEG::PDFBase::initPDFBase [static, private] |