LHAPDF is hosted by Hepforge, IPPP Durham
LHAPDF  6.1.6
LHAPDF::CompositePDF Class Reference

A PDF defined by multiplicative combination of several constituent PDFs. More...

#include <CompositePDF.h>

Inheritance diagram for LHAPDF::CompositePDF:
LHAPDF::PDF

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...
 
- Public Member Functions inherited from LHAPDF::PDF
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.
 
PDFInfoinfo ()
 Get the info class that actually stores and handles the metadata.
 
const PDFInfoinfo () const
 Get the info class that actually stores and handles the metadata (const version)
 
PDFSetset () 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.
 
AlphaSalphaS ()
 Retrieve the AlphaS object for this PDF.
 
const AlphaSalphaS () 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)
 
- Protected Member Functions inherited from LHAPDF::PDF
 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.
 
- Protected Attributes inherited from LHAPDF::PDF
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

- Protected Types inherited from LHAPDF::PDF
typedef unique_ptr< AlphaSAlphaSPtr
 Internal convenience typedef for the AlphaS object handle.
 

Detailed Description

A PDF defined by multiplicative combination of several constituent PDFs.

Todo:
Add division? And other operators? Becomes a can of worms quite fast...

Constructor & Destructor Documentation

◆ CompositePDF()

template<typename PDFPTR >
LHAPDF::CompositePDF::CompositePDF ( std::vector< PDFPTR > &  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.

Member Function Documentation

◆ flavors()

const std::vector<int>& LHAPDF::CompositePDF::flavors ( ) const
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.

Todo:
Make virtual for AnalyticPDF? Or allow manual setting of the Info?

Reimplemented from LHAPDF::PDF.

◆ inRangeQ2()

bool LHAPDF::CompositePDF::inRangeQ2 ( double  q2) const
inlinevirtual

Grid range check for Q2.

Return true when given Q2 is in the coverage range of this PDF.

Parameters
q2Squared energy scale
Returns
Whether q2 is in range

Implements LHAPDF::PDF.

◆ inRangeX()

bool LHAPDF::CompositePDF::inRangeX ( double  x) const
inlinevirtual

Grid range check for x.

Return true when given x is in the coverage range of this PDF.

Parameters
xMomentum fraction
Returns
Whether x is in range

Implements LHAPDF::PDF.


The documentation for this class was generated from the following file: