PDFBase is the base class for implementing parton density functions for particles with sub-structure. More...
#include <PDFBase.h>
Public Member Functions | |
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). | |
tcRemHPtr | remnantHandler () const |
Pointer to the remnant handler to handle remnant when extracting partons according to these densities. | |
Public Member Functions inherited from ThePEG::HandlerBaseT< UseRandom > | |
virtual | ~HandlerBaseT () |
Destructor. | |
double | rnd () const |
Return a simple flat random number in the range ]0,1[. | |
double | rnd (double xu) const |
Return a simple flat random number in the range ]0,xu[. | |
double | rnd (double xl, double xu) const |
Return a simple flat random number in the range ]xl,xu[. | |
bool | rndbool () const |
Return true with 50% probability. | |
bool | rndbool (double p) const |
Return a true with probability p. | |
bool | rndbool (double p1, double p2) const |
Return a true with probability p1/(p1+p2). | |
int | rndsign (double p1, double p2, double p3) const |
Return -1, 0, or 1 with relative probabilities p1, p2, p3. | |
int | rnd2 (double p0, double p1) const |
Return an integer \(i\) with probability p \(i\)/(p0+p1). | |
int | rnd3 (double p0, double p1, double p2) const |
Return an integer \(i\) with probability p \(i\)/(p0+p1+p2). | |
int | rnd4 (double p0, double p1, double p2, double p3) const |
Return an integer/ \(i\) with probability p \(i\)(p0+p1+p2+p3). | |
long | irnd (long xu=2) const |
Return a simple flat random integrer number in the range [0,xu[. | |
long | irnd (long xl, long xu) const |
Return a simple flat random integrer number in the range [xl,xu[. | |
const StandardModelBase & | SM () const |
Return a reference to the object containing the standard model parameters for this run. | |
tSMPtr | standardModel () const |
Return a pointer to the object containing the standard model parameters for this run. | |
Public Member Functions inherited from ThePEG::Interfaced | |
virtual | ~Interfaced () |
Empty virtual destructor. | |
virtual bool | defaultInit () |
Functions which are to be used during the actual event generation, after the setup is complete. | |
PPtr | getParticle (PID) const |
Create a new Particle instance given a id number. | |
PDPtr | getParticleData (PID) const |
Return a pointer to the ParticleData object corresponding to the given id number. | |
bool | used () const |
Returns true if this object has actally been used. | |
void | useMe () const |
Should be called to indicate that this object has actually been used. | |
tEGPtr | generator () const |
Return a pointer to the EventGenerator controlling the run. | |
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. | |
Public Member Functions inherited from ThePEG::InterfacedBase | |
virtual | ~InterfacedBase () |
The virtual (empty) destructor;. | |
string | fullName () const |
Returns the full name of this object including its path, e.g. | |
string | name () const |
Returns the name of this object, without the path. | |
string | path () const |
Returns the path to this object including the trailing '/'. | |
string | comment () const |
Returns a comment assigned to this object. | |
void | setup (istream &is) |
Read setup info from a standard istream is. | |
void | update () |
Calls the doupdate() function with recursion prevention. | |
void | init () |
Calls the doinit() function with recursion prevention. | |
virtual bool | preInitialize () const |
Return true if this object needs to be initialized before all other objects (except those for which this function also returns true). | |
void | initrun () |
Calls the doinitrun() function with recursion prevention. | |
void | finish () |
Calls the dofinish() function with recursion prevention. | |
void | touch () |
This function should be called every time something in this object has changed in a way that a sanity check with update() is needed. | |
void | reset () |
Set the state of this object to uninitialized. | |
void | clear () |
Calls reset() and unTouch(). | |
InitState | state () const |
Return the state of initialization of this object. | |
bool | locked () const |
Return true if the BaseRepository is not allowed to change the state of this object. | |
bool | touched () const |
Return true if the state of this object has been changed since the last call to update(). | |
virtual IBPtr | fullclone () const |
Return a full clone of this object possibly doing things to the clone to make it sane. | |
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. | |
virtual void | debugme () const |
Print out debugging information for this object on std::cerr. | |
Public Member Functions inherited from ThePEG::Base | |
virtual | ~Base () |
The virtual destructor. | |
void | debug () const |
Print out debugging information for this object on std::cerr. | |
virtual void | debugme () const |
Print out debugging information for this object on std::cerr. | |
Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
CounterType | referenceCount () const |
Return the reference count. | |
Public Member Functions inherited from ThePEG::Named | |
Named (const string &newName=string()) | |
Constructor with name. | |
Named (const Named &)=default | |
Explicit default copy-constructor (too avoid compiler warnings) | |
const string & | name () const |
Return name. | |
bool | operator== (const Named &other) const |
Test for equality. | |
bool | operator< (const Named &other) const |
Lexicographical comparison. | |
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 &)=delete |
Private and non-existent assignment operator. | |
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 void | Init () |
Standard Init function used to initialize the interface. | |
Additional Inherited Members | |
Public Types inherited from ThePEG::InterfacedBase | |
enum | InitState { initializing = -1 , uninitialized = 0 , initialized = 1 , runready = 2 } |
Enumeration reflecting the state of an InterfacedBase object. More... | |
Public Types inherited from ThePEG::Pointer::ReferenceCounted | |
typedef unsigned int | CounterType |
The integer type used for counting. | |
Static Public Member Functions inherited from ThePEG::HandlerBase | |
static void | Init () |
Standard Init function used to initialize the interface. | |
Static Public Member Functions inherited from ThePEG::Interfaced | |
static void | Init () |
Standard Init function. | |
Static Public Member Functions inherited from ThePEG::InterfacedBase | |
static void | Init () |
Standard Init function. | |
Static Public Member Functions inherited from ThePEG::Base | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
Public Attributes inherited from ThePEG::Pointer::ReferenceCounted | |
const unsigned long | uniqueId |
The unique ID. | |
Protected Member Functions inherited from ThePEG::Interfaced | |
void | reporeg (IBPtr object, string name) const |
Register the given object in the Repository with the given name in a subdirectory with the same name as this object. | |
template<typename PtrT > | |
bool | setDefaultReference (PtrT &ptr, string classname, string objectname) |
If the pointer, ptr, to an object is not set, create an object of class classname and register it with the Repository with the given objectname in a sib-directory with the same name as this object. | |
Interfaced () | |
Protected default constructor. | |
Interfaced (const string &newName) | |
Protected constructor taking a name as argument. | |
Interfaced (const Interfaced &i) | |
Protected copy-constructor. | |
void | setGenerator (tEGPtr generator) |
Protected function to reset the generator pointer, required for automatic decayer generation in Herwig++ BSM models. | |
Protected Member Functions inherited from ThePEG::InterfacedBase | |
virtual void | readSetup (istream &is) |
Read setup info from a standard istream is. | |
virtual void | doupdate () |
Check sanity of the object during the setup phase. | |
virtual void | doinitrun () |
Initialize this object. | |
virtual void | dofinish () |
Finalize this object. | |
virtual IVector | getReferences () |
Return a vector of all pointers to Interfaced objects used in this object. | |
virtual void | rebind (const TranslationMap &) |
Rebind pointer to other Interfaced objects. | |
virtual IBPtr | clone () const =0 |
Return a simple clone of this object. | |
InterfacedBase () | |
Protected default constructor. | |
InterfacedBase (string newName) | |
Protected constructor with the name given as argument. | |
InterfacedBase (const InterfacedBase &i) | |
Protected copy-constructor. | |
Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
ReferenceCounted () | |
Default constructor. | |
ReferenceCounted (const ReferenceCounted &) | |
Copy-constructor. | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Assignment. | |
Protected Member Functions inherited from ThePEG::Named | |
const Named & | operator= (const Named &other) |
Assignment. | |
const string & | name (const string &newName) |
Set new name. | |
Static Protected Member Functions inherited from ThePEG::Interfaced | |
static void | registerRepository (IBPtr) |
Register an Interfaced object with the Repository. | |
static void | registerRepository (IBPtr, string newName) |
Register an Interfaced object with the Repository, giving it a name. | |
PDFBase is the base class for implementing parton density functions for particles with sub-structure.
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.
|
protected |
|
virtual |
Return true if canHandleParticle() and if the corresponding method for remnantHandler() returns true for the given particle.
Reimplemented in ThePEG::NoPDF.
|
pure virtual |
Return true if this PDF can handle the extraction of partons from the given particle.
Implemented in ThePEG::BudnevPDF, ThePEG::GRVBase, ThePEG::LeptonLeptonPDF, ThePEG::LHAPDF, ThePEG::NoPDF, ThePEG::NuclearPhotonPDF, and ThePEG::WeizsackerWilliamsPDF.
|
protectedvirtual |
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.
|
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 \(l=\log(1/x)\) for a z uniformly distributed in ]0,1[. Also the jacobobian of the \(l\rightarrow z\) variable transformation must in the function multiply the jacobian argument. The default version will simply use the function \(l(z) = l_{\min} + z*(l_{\max}-l_{\min})\) (where the limits are set by cut).
Reimplemented in ThePEG::LeptonLeptonPDF, ThePEG::BudnevPDF, ThePEG::NuclearPhotonPDF, and ThePEG::WeizsackerWilliamsPDF.
|
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 \(Q^2/Q^2_{\max}\) for a z uniformly distributed in ]0,1[. Also the jacobobian of the \(Q^2/Q^2_{\max}\rightarrow z\) variable transformation must multiply the jacobian argument. The default version will simply use the function \(Q^2/Q^2_{\max} = (Q^2_{\max}/Q^2_{\min})^(z-1)\) or, if \(Q^2_{\min}\) is zero, \(Q^2/Q^2_{\max} = z\) (where the limits are set by cut).
Reimplemented in ThePEG::BudnevPDF, ThePEG::NuclearPhotonPDF, and ThePEG::WeizsackerWilliamsPDF.
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.
Return the partons which this PDF may extract from the given particle.
Implemented in ThePEG::GRVBase, ThePEG::LeptonLeptonPDF, ThePEG::NoPDF, ThePEG::BudnevPDF, ThePEG::LHAPDF, ThePEG::NuclearPhotonPDF, 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. |
void ThePEG::PDFBase::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
inline |
Pointer to the remnant handler to handle remnant when extracting partons according to these densities.
Definition at line 196 of file PDFBase.h.
References theRemnantHandler.
|
virtual |
The density.
Return the pdf for the given parton inside the given particle for the virtuality partonScale and logarithmic momentum fraction l \((l=\log(1/x)\). The particle is assumed to have a virtuality particleScale.
Reimplemented in ThePEG::GRVBase, ThePEG::NuclearPhotonPDF, ThePEG::BudnevPDF, ThePEG::LeptonLeptonPDF, ThePEG::NoPDF, and ThePEG::WeizsackerWilliamsPDF.
|
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 \((l=\log(1/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.
|
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 |
The valence density.
Return the pdf for the given cvalence parton inside the given particle for the virtuality partonScale and logarithmic momentum fraction l \((l=\log(1/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::GRVBase, ThePEG::NuclearPhotonPDF, ThePEG::BudnevPDF, ThePEG::LeptonLeptonPDF, ThePEG::LHAPDF, and ThePEG::WeizsackerWilliamsPDF.
|
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 |
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.
|
staticprivate |
|
protected |
|
protected |
A remnant handler which can generate remnants for the parton extracted withfor this PDF.
Definition at line 239 of file PDFBase.h.
Referenced by remnantHandler().