A PDF defined by multiplicative combination of several constituent PDFs. More...
#include <CompositePDF.h>
Public Member Functions | |
Creation and deletion | |
CompositePDF () | |
Default (empty) constructor. | |
template<typename PDFPTR > | |
CompositePDF (std::vector< PDFPTR > &pdfs) | |
Constructor from a list of PDF pointers. More... | |
CompositePDF (const std::vector< std::pair< std::string, int > > &setnames_members) | |
Constructor from a list of set names and member IDs. | |
CompositePDF (const std::vector< int > &lhaids) | |
Constructor from a list of LHAPDF IDs. | |
virtual | ~CompositePDF () |
Virtual destructor to allow inheritance. | |
Handling the constituent PDFs | |
const std::vector< PDF * > | constituentPDFs () const |
Get the list of constituent PDFs (const version) | |
std::vector< PDF * > | constituentPDFs () |
Get the list of constituent PDFs (non-const version) | |
template<typename PDFPTR > | |
void | setConstituentPDFs (std::vector< PDFPTR > &pdfs) |
Set the list of constituent PDFs. | |
void | addConstituentPDF (PDF *pdf) |
Append a PDF to the list of constituents. | |
template<typename PDFPTR > | |
void | addConstituentPDFs (std::vector< PDFPTR > &pdfs) |
Append several PDFs to the list of constituents. | |
void | reset () |
Clear the list of constituent PDFs, deleting the objects. | |
Representative info for combination of constituent PDFs | |
const std::vector< int > & | flavors () const |
List of flavours defined by this PDF set. More... | |
bool | inRangeQ2 (double q2) const |
Grid range check for Q2. More... | |
bool | inRangeX (double x) const |
Grid range check for x. More... | |
![]() | |
virtual | ~PDF () |
Virtual destructor, to allow unfettered inheritance. | |
void | print (std::ostream &os=std::cout, int verbosity=1) const |
Summary printout. | |
virtual double | xMin () |
Minimum valid x value for this PDF. | |
virtual double | xMax () |
Maximum valid x value for this PDF. | |
virtual double | qMin () |
virtual double | qMax () |
Maximum valid Q value for this PDF (in GeV). More... | |
virtual double | q2Min () |
Minimum valid Q2 value for this PDF (in GeV2). | |
virtual double | q2Max () |
Maximum valid Q2 value for this PDF (in GeV2). | |
int | forcePositive () const |
Check whether PDF is set to only return positive (definite) values or not. More... | |
bool | inPhysicalRangeX (double x) const |
Check whether the given x is physically valid. More... | |
bool | inPhysicalRangeQ2 (double q2) const |
Check whether the given Q2 is physically valid. More... | |
bool | inPhysicalRangeQ (double q) const |
Check whether the given Q is physically valid. More... | |
bool | inPhysicalRangeXQ2 (double x, double q2) const |
Check whether the given (x,Q2) is physically valid. | |
bool | inPhysicalRangeXQ (double x, double q) const |
Check whether the given (x,Q) is physically valid. | |
virtual bool | inRangeQ (double q) const |
Grid range check for Q. More... | |
virtual bool | inRangeXQ (double x, double q) const |
Combined range check for x and Q. | |
bool | inRangeXQ2 (double x, double q2) const |
Combined range check for x and Q2. | |
PDFInfo & | info () |
Get the info class that actually stores and handles the metadata. | |
const PDFInfo & | info () const |
Get the info class that actually stores and handles the metadata (const version) | |
PDFSet & | set () const |
Get the PDF set of which this is a member. More... | |
int | memberID () const |
PDF member local ID number. More... | |
int | lhapdfID () const |
PDF member global LHAPDF ID number. More... | |
std::string | description () const |
Description of this PDF member. | |
int | dataversion () const |
Version of this PDF's data file. | |
std::string | type () const |
Get the type of PDF member that this object represents (central, error) | |
bool | hasFlavor (int id) const |
Checks whether id is a valid parton for this PDF. | |
int | orderQCD () const |
Order of QCD at which this PDF has been constructed. More... | |
int | qcdOrder () const |
double | quarkMass (int id) const |
Get a quark mass in GeV by PDG code (|PID| = 1-6 only) More... | |
double | quarkThreshold (int id) const |
Get a flavor scale threshold in GeV by PDG code (|PID| = 1-6 only) Convenience interface to the Mass* and Threshold* info keywords. Returns -1 for an undefined PID. | |
void | setAlphaS (AlphaS *alphas) |
Set the AlphaS calculator by pointer. More... | |
bool | hasAlphaS () const |
Check if an AlphaS calculator is set. | |
AlphaS & | alphaS () |
Retrieve the AlphaS object for this PDF. | |
const AlphaS & | alphaS () const |
Retrieve the AlphaS object for this PDF (const) | |
double | alphasQ (double q) const |
Value of alpha_s(Q2) used by this PDF. More... | |
double | alphasQ2 (double q2) const |
Value of alpha_s(Q2) used by this PDF. More... | |
double | xfxQ2 (int id, double x, double q2) const |
Get the PDF xf(x) value at (x,q2) for the given PID. More... | |
double | xfxQ (int id, double x, double q) const |
Get the PDF xf(x) value at (x,q) for the given PID. More... | |
void | xfxQ2 (double x, double q2, std::map< int, double > &rtn) const |
Get the PDF xf(x) value at (x,q2) for all supported PIDs. More... | |
void | xfxQ (double x, double q, std::map< int, double > &rtn) const |
Get the PDF xf(x) value at (x,q) for all supported PIDs. More... | |
void | xfxQ2 (double x, double q2, std::vector< double > &rtn) const |
Get the PDF xf(x) value at (x,q2) for "standard" PIDs. More... | |
void | xfxQ (double x, double q, std::vector< double > &rtn) const |
Get the PDF xf(x) value at (x,q) for "standard" PIDs. More... | |
std::map< int, double > | xfxQ2 (double x, double q2) const |
Get the PDF xf(x) value at (x,q2) for all supported PIDs. More... | |
std::map< int, double > | xfxQ (double x, double q) const |
Get the PDF xf(x) value at (x,q) for all supported PIDs. More... | |
Protected Member Functions | |
double | _xfxQ2 (int id, double x, double q2) const |
Get PDF xf(x,Q2) value (via multiplicative PDF combination) | |
![]() | |
PDF () | |
Force initialization of the only non-class member. | |
std::string | _setname () const |
Get the set name from the member data file path (for internal use only) | |
void | _loadInfo (const std::string &mempath) |
void | _loadInfo (const std::string &setname, int member) |
void | _loadInfo (int lhaid) |
Protected Attributes | |
std::vector< PDF * > | _pdfs |
Collection of owned PDF pointers. | |
![]() | |
std::string | _mempath |
Member data file path. | |
PDFInfo | _info |
Metadata container. | |
vector< int > | _flavors |
Locally cached list of supported PIDs. | |
AlphaSPtr | _alphas |
Optionally loaded AlphaS object. | |
int | _forcePos |
Cached flag for whether to return only positive (or postive definite) PDF values. More... | |
Additional Inherited Members | |
![]() | |
typedef unique_ptr< AlphaS > | AlphaSPtr |
Internal convenience typedef for the AlphaS object handle. | |
A PDF defined by multiplicative combination of several constituent PDFs.
|
inline |
Constructor from a list of PDF pointers.
Pointers must be heap-allocated (new'd), and ownership will be taken by the new object.
|
inlinevirtual |
List of flavours defined by this PDF set.
This list is stored locally after its initial read from the Info object to avoid unnecessary lookups and string decoding, since e.g. it is looked at by every call to the GridPDF's Interpolator and Extrapolator classes.
Reimplemented from LHAPDF::PDF.
|
inlinevirtual |
Grid range check for Q2.
Return true when given Q2 is in the coverage range of this PDF.
q2 | Squared energy scale |
Implements LHAPDF::PDF.
|
inlinevirtual |
Grid range check for x.
Return true when given x is in the coverage range of this PDF.
x | Momentum fraction |
Implements LHAPDF::PDF.