ThePEG
1.8.0
|
The LHAPDF class inherits from PDFBase and implements an interface to the LHAPDF library of parton density function parameterizations. More...
#include <LHAPDF.h>
Public Types | |
enum | PType { nucleonType = 1, pionType = 2, photonType = 3 } |
Enumerate the allowed particle types. More... | |
![]() | |
enum | InitState { initializing = -1, uninitialized = 0, initialized = 1, runready = 2 } |
Enumeration reflecting the state of an InterfacedBase object. More... | |
![]() | |
typedef unsigned int | CounterType |
The integer type used for counting. | |
Public Member Functions | |
Standard constructors and destructors. | |
LHAPDF () | |
The default constructor. | |
LHAPDF (const LHAPDF &) | |
The copy constructor. | |
Virtual functions to be overridden by sub-classes. | |
virtual bool | canHandleParticle (tcPDPtr particle) const |
Return true if this PDF can handle the extraction of partons from the given particle. | |
virtual cPDVector | partons (tcPDPtr particle) const |
Return the partons which this PDF may extract from the given particle. | |
virtual double | xfx (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const |
The density. More... | |
virtual double | xfvl (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const |
The valence density. More... | |
virtual double | xfvx (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const |
The valence density. More... | |
virtual double | xfsx (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const |
The sea density. More... | |
Simple access function. | |
PType | ptype () const |
The particle type. More... | |
const string & | PDFName () const |
The name if the PDF set to be used. More... | |
int | member () const |
The chosen member of the selected PDF set. | |
int | maxFlav () const |
The maximum number of flavours for which non-zero densities are reported. More... | |
Functions used by the persistent I/O system. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. More... | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. More... | |
![]() | |
tcRemHPtr | remnantHandler () const |
Pointer to the remnant handler to handle remnant when extracting partons according to these densities. | |
PDFBase () | |
Default constructor. | |
PDFBase (const PDFBase &) | |
Copy-constructor. | |
virtual | ~PDFBase () |
Destructor. | |
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. More... | |
virtual double | xfl (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const |
The density. More... | |
virtual double | xfsl (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const |
The sea density. More... | |
virtual double | flattenL (tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut, double z, double &jacobian) const |
Generate a momentum fraction. More... | |
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). More... | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. More... | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. More... | |
![]() | |
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 ![]() ![]() | |
int | rnd3 (double p0, double p1, double p2) const |
Return an integer ![]() ![]() | |
int | rnd4 (double p0, double p1, double p2, double p3) const |
Return an integer/ ![]() ![]() | |
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. | |
virtual | ~HandlerBaseT () |
Destructor. | |
![]() | |
virtual | ~Interfaced () |
Empty virtual destructor. | |
virtual bool | defaultInit () |
Functions which are to be used during the actual event generation, after the setup is complete. More... | |
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. More... | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. More... | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. More... | |
![]() | |
virtual | ~InterfacedBase () |
The virtual (empty) destructor;. | |
string | fullName () const |
Returns the full name of this object including its path, e.g. More... | |
string | name () const |
Returns the name of this object, without the path. | |
string | path () const |
Returns the path to this object including the trailing '/'. More... | |
string | comment () const |
Returns a comment assigned to this object. | |
void | setup (istream &is) |
Read setup info from a standard istream is. More... | |
virtual void | debugme () const |
Print out debugging information for this object on std::cerr. More... | |
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). More... | |
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(). | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. More... | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. More... | |
![]() | |
virtual | ~Base () |
The virtual destructor. | |
void | debug () const |
Print out debugging information for this object on std::cerr. More... | |
![]() | |
CounterType | referenceCount () const |
Return the reference count. | |
![]() | |
Named (const string &newName=string()) | |
Constructor with name. | |
const string & | name () const |
Return name. | |
bool | operator== (const Named &other) const |
Test for equality. | |
bool | operator< (const Named &other) const |
Lexicographical comparison. | |
Static Public Member Functions | |
static void | Init () |
The standard Init function used to initialize the interfaces. More... | |
![]() | |
static void | Init () |
Standard Init function used to initialize the interface. | |
![]() | |
static void | Init () |
Standard Init function used to initialize the interface. | |
![]() | |
static void | Init () |
Standard Init function. | |
![]() | |
static void | Init () |
Standard Init function. | |
![]() | |
static void | Init () |
The standard Init function used to initialize the interfaces. More... | |
Protected Member Functions | |
Clone Methods. | |
virtual IBPtr | clone () const |
Make a simple clone of this object. More... | |
virtual IBPtr | fullclone () const |
Make a clone of this object, possibly modifying the cloned object to make it sane. More... | |
Standard Interfaced functions. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. More... | |
virtual void | doinitrun () |
Initialize this object. More... | |
virtual void | dofinish () |
Finalize this object. More... | |
![]() | |
![]() | |
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. More... | |
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. | |
![]() | |
InterfacedBase () | |
Protected default constructor. | |
InterfacedBase (string newName) | |
Protected constructor with the name given as argument. | |
InterfacedBase (const InterfacedBase &i) | |
Protected copy-constructor. | |
virtual void | readSetup (istream &is) |
Read setup info from a standard istream is. More... | |
virtual void | doupdate () |
Check sanity of the object during the setup phase. More... | |
virtual IVector | getReferences () |
Return a vector of all pointers to Interfaced objects used in this object. More... | |
virtual void | rebind (const TranslationMap &) |
Rebind pointer to other Interfaced objects. More... | |
![]() | |
ReferenceCounted () | |
Default constructor. | |
ReferenceCounted (const ReferenceCounted &) | |
Copy-constructor. | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Assignment. | |
![]() | |
const Named & | operator= (const Named &other) |
Assignment. | |
const string & | name (const string &newName) |
Set new name. | |
Private Member Functions | |
LHAPDF & | operator= (const LHAPDF &) |
The assignment operator is private and must never be called. More... | |
Private Attributes | |
PType | thePType |
The particle type. More... | |
string | thePDFName |
The name if the PDF set to be used. More... | |
int | theMember |
The chosen member of the selected PDF set. | |
int | thePhotonOption |
If this is a photon PDF, this describes the option for how to treat the anomalous component. | |
bool | enablePartonicGamma |
If this PDF allows partonic photons inside a hadron, enable this. | |
int | theVerboseLevel |
The verbosity of the output from the LHAPDF library. | |
int | theMaxFlav |
The maximum number of flavours for which non-zero densities are reported. More... | |
int | nset |
The LHAPDF nset number (minus one) to be used by this object. More... | |
Energy2 | lastQ2 |
Save the last ![]() | |
double | lastX |
Save the last ![]() | |
Energy2 | lastP2 |
Save the last ![]() | |
vector< double > | lastXF |
Save the last function values returned from the LHAPDF library. | |
double | xMin |
The minimum ![]() | |
double | xMax |
The maximum ![]() | |
Energy2 | Q2Min |
The minimum ![]() | |
Energy2 | Q2Max |
The maximum ![]() | |
Static Private Attributes | |
static int | MaxNSet |
The maximum number of simultaneous pdfs that can be used in LHAPDF. More... | |
static int | lastNSet |
The last nset number used by an LHAPDF object. | |
static vector< string > | lastNames |
The last names used in the initialization of a given nset number. | |
static vector< int > | lastMem |
The last mem used in the initialization of a given nset number. | |
static ClassDescription< LHAPDF > | initLHAPDF |
The static object used to initialize the description of this class. More... | |
Internal helper functions. | |
bool | indexLine (istream &is, int &set, int &mem, string &file, int &pdftyp, int &pdfgup, int &pdfsup, double &xmin, double &xmax, double &q2min, double &q2max) const |
Read a line from the index file. | |
void | initpdfsetm () const |
Call the Fortran InitPDFSetM function. | |
void | initpdfm () const |
Call the Fortran InitPDFSetM function. | |
void | lastReset () const |
Reset the saved values from the last call to xfx(), etc. | |
void | setnset () const |
Acquire a new nset number. | |
int | getMaxMember () const |
Retrieve the number of members in the chosen PDF. | |
int | getMaxFlav () const |
Get the maximum number of flavours available in the chosen PDF. | |
void | checkInit () const |
Initialize the LHAPDF library for the chosen PDF set if it has not been done before. | |
void | checkUpdate (double x, Energy2 Q2, Energy2 P2) const |
Retrieve new PDF values for the given parameters if they were changed since the last call. | |
void | setMaxNSet (int) |
Set the maximum number of simultaneous pdfs that can be used in LHAPDF. More... | |
int | getMaxNSet () const |
Get the maximum number of simultaneous pdfs that can be used in LHAPDF. | |
void | setMinMax () |
Deduce the min/max values of ![]() ![]() | |
void | setPDFNumber (int n) |
Used by the interface to select a set and member according to a number. | |
int | getPDFNumber () const |
Used by the interface to select a get the index number of the currently chosen set and member. | |
void | setPDFLIBNumbers (int group, int num) |
Used by the interface to select a set and member according to the old PDFLIB numbers. | |
string | setPDFLIBNumbers (string) |
Used by the interface to select a set and member according to the old PDFLIB numbers. | |
pair< int, int > | getPDFLIBNumbers () const |
Used by the interface to select a get the old PDFLIB numbers of the currently chosen set and member. | |
void | setPDFName (string name) |
Used by the interface to select a set according to a file name. | |
void | setPDFMember (int n) |
Used by the interface to select a member in the current set. | |
string | doTest (string input) |
Interface for simple tests. | |
static std::string | getIndexPath () |
Try to determine the path to where the LHAPDF index file is located. | |
static bool | openLHAIndex (ifstream &is) |
Try to find a LHAPDF index file, open it in the given file stream. | |
Additional Inherited Members | |
![]() | |
const unsigned long | uniqueId |
The unique ID. More... | |
![]() | |
enum | RangeException { rangeFreeze, rangeZero, rangeThrow } |
Indicate how to deal with x and Q2 which are out of range. More... | |
![]() | |
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. | |
![]() | |
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. | |
The LHAPDF class inherits from PDFBase and implements an interface to the LHAPDF library of parton density function parameterizations.
This class is available even if LHAPDF was not properly installed when ThePEG was installed, but will then produce an error in the initialization.
Note that the valence densities from the xfvx() and xfvl() function will only work properly for nucleons. All other particles will have zero valence densities.
|
protectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
Referenced by maxFlav().
|
protectedvirtual |
Finalize this object.
Called in the run phase just after a run has ended. Used eg. to write out statistics.
Reimplemented from ThePEG::InterfacedBase.
Referenced by maxFlav().
|
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::PDFBase.
Referenced by maxFlav().
|
protectedvirtual |
Initialize this object.
Called in the run phase just before a run begins.
Reimplemented from ThePEG::InterfacedBase.
Referenced by maxFlav().
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
Referenced by maxFlav().
|
static |
The standard Init function used to initialize the interfaces.
Called exactly once for each class by the class description system before the main function starts or when this class is dynamically loaded.
Referenced by maxFlav().
|
inline |
The maximum number of flavours for which non-zero densities are reported.
The actual number of flavours may be less depending on the chosen PDF set.
Definition at line 147 of file LHAPDF.h.
References checkInit(), checkUpdate(), clone(), dofinish(), doinit(), doinitrun(), doTest(), fullclone(), getIndexPath(), getMaxFlav(), getMaxMember(), getMaxNSet(), getPDFLIBNumbers(), getPDFNumber(), indexLine(), Init(), initpdfm(), initpdfsetm(), lastReset(), ThePEG::InterfacedBase::name(), openLHAIndex(), persistentInput(), persistentOutput(), setMaxNSet(), setMinMax(), setnset(), setPDFLIBNumbers(), setPDFMember(), setPDFName(), setPDFNumber(), and theMaxFlav.
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
|
inline |
The name if the PDF set to be used.
The full name including the .LHpdf
or .LHgrid
suffix.
Definition at line 135 of file LHAPDF.h.
References thePDFName.
void ThePEG::LHAPDF::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. |
Referenced by maxFlav().
void ThePEG::LHAPDF::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
Referenced by maxFlav().
|
inline |
|
protected |
|
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 from ThePEG::PDFBase.
|
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. This will only work properly for nucleons. All other particles will have zero valence densities
Reimplemented from ThePEG::PDFBase.
|
virtual |
The valence density.
Return the pdf for the given cvalence parton inside the given particle for the virtuality partonScale and momentum fraction x (with x = 1-eps). The particle is assumed to have a virtuality particleScale. This will only work properly for nucleons. All other particles will have zero valence densities
Reimplemented from ThePEG::PDFBase.
|
virtual |
The density.
Return the pdf for the given parton inside the given particle for the virtuality partonScale and momentum fraction x (with x = 1-eps). The particle is assumed to have a virtuality particleScale.
Reimplemented from ThePEG::PDFBase.
|
staticprivate |
|
staticprivate |
|
mutableprivate |
|
private |
|
private |
|
private |