LHAPDF  6.2.1
Classes | Functions
LHAPDF Namespace Reference

Namespace for all LHAPDF functions and classes. More...

Classes

class  AlphaS
 Calculator interface for computing alpha_s(Q2) in various ways. More...
 
class  AlphaS_Analytic
 Calculate alpha_s(Q2) by an analytic approximation. More...
 
class  AlphaS_Ipol
 
class  AlphaS_ODE
 Solve the differential equation in alphaS using an implementation of RK4. More...
 
class  AlphaSArray
 Internal storage class for alpha_s interpolation grids. More...
 
class  AlphaSError
 Error for general AlphaS computation problems. More...
 
struct  bad_lexical_cast
 When lexical_cast goes bad. More...
 
class  BicubicInterpolator
 Implementation of bicubic interpolation. More...
 
class  BilinearInterpolator
 Implementation of bilinear interpolation. More...
 
class  Config
 Class for PDF set metadata and manipulation. More...
 
class  ContinuationExtrapolator
 
class  ErrExtrapolator
 Extrapolates using the closest point on the Grid. More...
 
class  Exception
 Generic unspecialised LHAPDF runtime error. More...
 
class  Extrapolator
 The general interface for extrapolating beyond grid boundaries. More...
 
class  FactoryError
 Error to be raised by object factories given invalid requests. More...
 
class  FlavorError
 Error for requests for unsupported/invalid flavour PIDs. More...
 
class  GridError
 Error for general PDF grid problems. More...
 
class  GridPDF
 A PDF defined via an interpolation grid. More...
 
class  IndexError
 Error to be raised when a LHAPDF ID indexing fails. More...
 
class  Info
 Metadata base class for PDFs, PDF sets, or global configuration. More...
 
class  Interpolator
 The general interface for interpolating between grid points. More...
 
class  KnotArray1F
 Internal storage class for PDF data point grids. More...
 
class  KnotArrayNF
 A collection of {KnotArray1F}s accessed by PID code. More...
 
class  LogBicubicInterpolator
 Implementation of bicubic interpolation. More...
 
class  LogBilinearInterpolator
 Implementation of bilinear interpolation. More...
 
class  LogicError
 Error for places where it should not have been possible to get to! More...
 
class  MetadataError
 Error for unfound or broken metadata entries. More...
 
class  NearestPointExtrapolator
 Extrapolates using the closest point on the Grid. More...
 
class  NotImplementedError
 This feature doesn't exist yet. More...
 
class  PDF
 PDF is the general interface for access to parton density information. More...
 
class  PDFInfo
 Metadata class for PDF members. More...
 
class  PDFSet
 Class for PDF set metadata and manipulation. More...
 
struct  PDFUncertainty
 Structure for storage of uncertainty info calculated over a PDF error set. More...
 
class  RangeError
 Error to be thrown when out of the valid range of a PDF. More...
 
class  ReadError
 Error for file reading errors. More...
 
class  UserError
 Problem exists between keyboard and chair. More...
 
class  VersionError
 Error to be raised when a newer LHAPDF version is needed. More...
 

Functions

std::string version ()
 Get the LHAPDF library version code (as a string)
 

Detailed Description

Namespace for all LHAPDF functions and classes.

Function Documentation

◆ availablePDFSets()

const std::vector<std::string>& LHAPDF::availablePDFSets ( )

Get the names of all available PDF sets in the search path.

Note
Taken from scanning the directories in the search path (i.e. LHAPDF_DATA_PATH) for viable PDF sets.
The result is cached when first called, to avoid repeated filesystem walking. It's assumed that new PDFs will not appear on the filesystem during a run: please let the authors know if that's not a good assumption!

◆ findFile()

std::string LHAPDF::findFile ( const std::string &  target)

Return the first location in which a file is found

If no matching file is found, return an empty path.

◆ findpdfsetinfopath()

std::string LHAPDF::findpdfsetinfopath ( const std::string &  setname)
inline
Todo:
Check that set info and mem=0 file are in same dir?

◆ getConfig()

Info& LHAPDF::getConfig ( )

Get the global configuration object

The global config is populated by reading from lhapdf.conf if it is found in the search paths. It is a singleton, hence the 'get' rather than 'mk' function name.

Note
The LHAPDF system is responsible for deletion of the returned object. Do NOT delete it yourself! Hence the return by reference rather than pointer.

◆ getPDFSet()

PDFSet& LHAPDF::getPDFSet ( const std::string &  setname)

Get the PDFSet with the given set name.

Returns a PDFSet by reference. When this function is used for access, only one PDFSet object is made per set name... hence the 'get' rather than 'mk' function name.

This function is intended particularly for use where it would be inefficient to have to repeatedly construct a PDFSet by name. The canonical use case is internal: the Info system uses this to ensure that cascading of config settings is efficient, and also allows the automatic application of set-level changes to all PDF member objects in that set.

Note
The LHAPDF system is responsible for deletion of the returned object. Do NOT delete it yourself! Hence the return by reference rather than pointer.

◆ lookupLHAPDFID()

int LHAPDF::lookupLHAPDFID ( const std::string &  setname,
int  nmem 
)

Look up the member's LHAPDF index from the set name and member ID.

If lookup fails, -1 is returned, otherwise the LHAPDF ID code. NB. This function is relatively slow, since it requires std::map reverse lookup.

◆ lookupPDF() [1/2]

std::pair<std::string,int> LHAPDF::lookupPDF ( const std::string &  pdfstr)

Decode a single PDF member ID string into a setname,memid pair.

Note
A trivial <SET,MEM> decoding rather than a "rea; lookup", for convenience & uniformity.

◆ lookupPDF() [2/2]

std::pair<std::string, int> LHAPDF::lookupPDF ( int  lhaid)

Look up a PDF set name and member ID by the LHAPDF ID code

The set name and member ID are returned as an std::pair. If lookup fails, a pair ("", -1) is returned.

◆ mkAlphaS() [1/4]

AlphaS* LHAPDF::mkAlphaS ( const Info info)

Make an AlphaS object from an Info object.

The type and configuration of the returned AlphaS is chosen based on the PDF metadata Info object given as the argument.

Returns a 'new'ed AlphaS by pointer. Unless attached to a PDF, the caller is responsible for deletion of the created object.

◆ mkAlphaS() [2/4]

AlphaS* LHAPDF::mkAlphaS ( const std::string &  setname)

Make an AlphaS object for the named PDF set.

The type and configuration of the returned AlphaS is chosen based on the named PDFSet's metadata.

Returns a 'new'ed AlphaS by pointer. Unless attached to a PDF, the caller is responsible for deletion of the created object.

◆ mkAlphaS() [3/4]

AlphaS* LHAPDF::mkAlphaS ( const std::string &  setname,
int  member 
)

Make an AlphaS object for the specified PDF.

The type and configuration of the returned AlphaS is chosen based on the named PDFSet's nth member's metadata.

Returns a 'new'ed AlphaS by pointer. Unless attached to a PDF, the caller is responsible for deletion of the created object.

◆ mkAlphaS() [4/4]

AlphaS* LHAPDF::mkAlphaS ( int  lhaid)

Make an AlphaS object for the specified PDF.

The type and configuration of the returned AlphaS is chosen based on the numbered PDF's metadata.

Returns a 'new'ed AlphaS by pointer. Unless attached to a PDF, the caller is responsible for deletion of the created object.

◆ mkBareAlphaS()

AlphaS* LHAPDF::mkBareAlphaS ( const std::string &  type)

Make an AlphaS object of the requested type without a PDF reference.

No values are initialised and have to be configured by the caller.

The caller is responsible for deletion of the created object.

Todo:
Actually, should we just make this mkAlphaS(0)?

◆ mkExtrapolator()

Extrapolator* LHAPDF::mkExtrapolator ( const std::string &  name)

Extrapolator factory

Returns a 'new'ed Extrapolator by pointer. Unless passed to a GridPDF, the caller is responsible for deletion of the created object.

◆ mkInterpolator()

Interpolator* LHAPDF::mkInterpolator ( const std::string &  name)

Interpolator factory

Returns a 'new'ed Interpolator by pointer. Unless passed to a GridPDF, the caller is responsible for deletion of the created object.

◆ mkPDF() [1/3]

PDF* LHAPDF::mkPDF ( const std::string &  setname,
int  member 
)

Create a new PDF with the given PDF set name and member ID.

Returns a 'new'ed PDF by pointer. The caller is responsible for deletion of the created object.

◆ mkPDF() [2/3]

PDF* LHAPDF::mkPDF ( const std::string &  setname_nmem)

Create a new PDF with the given PDF set name and member ID as a single string.

The format of the setname_nmem string is <setname>/<nmem> where <nmem> must be parseable as a positive integer. The / character is not permitted in set names due to clashes with Unix filesystem path syntax.

If no /<nmem> is given, member number 0 will be used.

Returns a 'new'ed PDF by pointer. The caller is responsible for deletion of the created object.

◆ mkPDF() [3/3]

PDF* LHAPDF::mkPDF ( int  lhaid)

Create a new PDF with the given LHAPDF ID code.

Returns a 'new'ed PDF by pointer. The caller is responsible for deletion of the created object.

◆ mkPDFInfo() [1/2]

PDFInfo* LHAPDF::mkPDFInfo ( const std::string &  setname,
int  member 
)

Create a new Info object for the given set name and member number.

Returns a 'new'ed Info by pointer. The caller is responsible for deletion of the created object.

◆ mkPDFInfo() [2/2]

PDFInfo* LHAPDF::mkPDFInfo ( int  lhaid)

Create a new Info object with the given LHAPDF ID code.

Returns a 'new'ed Info by pointer. The caller is responsible for deletion of the created object.

◆ mkPDFs()

template<typename PTR >
void LHAPDF::mkPDFs ( const std::string &  setname,
std::vector< PTR > &  pdfs 
)

Get all PDFs in a named set (return by filling the supplied vector).

This is a templated version for returning a vector of smart ptrs

◆ norm_quantile()

double LHAPDF::norm_quantile ( double  p)

Quantiles of the standard normal probability distribution function.

Todo:
Add iszero() & equals(,) functions?

◆ paths()

std::vector<std::string> LHAPDF::paths ( )

Get the ordered list of search paths, from $LHAPDF_DATA_PATH and the install location.

Note
The install prefix will be appended unless $LHAPDF_DATA_PATH ends with a double colon, i.e. '::'

◆ setVerbosity()

void LHAPDF::setVerbosity ( int  v)
inline

Convenient way to set the verbosity level

Note
Verbosity, like any other flag, can also be set at lower levels. But who does that, really?!?

◆ verbosity()

int LHAPDF::verbosity ( )
inline

Convenient way to get the current verbosity level

Note
Verbosity, like any other flag, can also be set at lower levels. But who does that, really?!?

◆ weightxQ() [1/2]

double LHAPDF::weightxQ ( int  id,
double  x,
double  Q,
const PDF basepdf,
const PDF newpdf,
double  aschk = 5e-2 
)
inline

Get the PDF reweighting factor for a beam with id,x,Q parameters, from basepdf to newpdf

Note
For NLO calculations, in general different PDF values enter for each counterterm: be careful.

◆ weightxQ() [2/2]

template<typename PDFPTR >
double LHAPDF::weightxQ ( int  id,
double  x,
double  Q,
const PDFPTR  basepdf,
const PDFPTR  newpdf,
double  aschk = 5e-2 
)
inline

Get the PDF reweighting factor for a beam with id,x,Q parameters, from basepdf to newpdf

Note
For NLO calculations, in general different PDF values enter for each counterterm: be careful.

◆ weightxQ2() [1/2]

double LHAPDF::weightxQ2 ( int  id,
double  x,
double  Q2,
const PDF basepdf,
const PDF newpdf,
double  aschk = 5e-2 
)
inline

Get the PDF reweighting factor for a beam with id,x,Q parameters, from basepdf to newpdf

Note
For NLO calculations, in general different PDF values enter for each counterterm: be careful.

◆ weightxQ2() [2/2]

template<typename PDFPTR >
double LHAPDF::weightxQ2 ( int  id,
double  x,
double  Q2,
const PDFPTR  basepdf,
const PDFPTR  newpdf,
double  aschk = 5e-2 
)
inline

Get the PDF reweighting factor for a beam with id,x,Q parameters, from basepdf to newpdf

Note
For NLO calculations, in general different PDF values enter for each counterterm: be careful.

◆ weightxxQ() [1/2]

double LHAPDF::weightxxQ ( int  id1,
int  id2,
double  x1,
double  x2,
double  Q,
const PDF basepdf,
const PDF newpdf,
double  aschk = 5e-2 
)
inline

Get the PDF reweighting factor for two beams, one with id1,x1 and the other with id2,x2, from basepdf to newpdf

Note
For NLO calculations, in general different PDF values enter for each counterterm: be careful.

◆ weightxxQ() [2/2]

template<typename PDFPTR >
double LHAPDF::weightxxQ ( int  id1,
int  id2,
double  x1,
double  x2,
double  Q,
const PDFPTR  basepdf,
const PDFPTR  newpdf,
double  aschk = 5e-2 
)
inline

Get the PDF reweighting factor for two beams, one with id1,x1 and the other with id2,x2, from basepdf to newpdf

Note
For NLO calculations, in general different PDF values enter for each counterterm: be careful.

◆ weightxxQ2() [1/2]

double LHAPDF::weightxxQ2 ( int  id1,
int  id2,
double  x1,
double  x2,
double  Q2,
const PDF basepdf,
const PDF newpdf,
double  aschk = 5e-2 
)
inline

Get the PDF reweighting factor for two beams, one with id1,x1 and the other with id2,x2, from basepdf to newpdf

Note
For NLO calculations, in general different PDF values enter for each counterterm: be careful.

◆ weightxxQ2() [2/2]

template<typename PDFPTR >
double LHAPDF::weightxxQ2 ( int  id1,
int  id2,
double  x1,
double  x2,
double  Q2,
const PDFPTR  basepdf,
const PDFPTR  newpdf,
double  aschk = 5e-2 
)
inline

Get the PDF reweighting factor for two beams, one with id1,x1 and the other with id2,x2, from basepdf to newpdf

Note
For NLO calculations, in general different PDF values enter for each counterterm: be careful.