LHAPDF is hosted by Hepforge, IPPP Durham
LHAPDF  6.2.1
LHAPDF::AlphaS_Ipol Class Reference

#include <AlphaS.h>

Inheritance diagram for LHAPDF::AlphaS_Ipol:
LHAPDF::AlphaS

Public Member Functions

std::string type () const
 Implementation type of this solver.
 
double alphasQ2 (double q2) const
 Calculate alphaS(Q2)
 
void setQValues (const std::vector< double > &qs)
 
void setQ2Values (const std::vector< double > &q2s)
 
void setAlphaSValues (const std::vector< double > &as)
 
- Public Member Functions inherited from LHAPDF::AlphaS
 AlphaS ()
 Base class constructor for default param setup.
 
virtual ~AlphaS ()
 Destructor.
 
void setFlavorScheme (FlavorScheme scheme, int nf=-1)
 Set flavor scheme of alpha_s solver.
 
FlavorScheme flavorScheme () const
 Get flavor scheme.
 
double alphasQ (double q) const
 Calculate alphaS(Q)
 
int numFlavorsQ (double q) const
 Calculate the number of active flavours at energy scale Q.
 
virtual int numFlavorsQ2 (double q2) const
 Calculate the number of active flavours at energy scale Q2.
 
double quarkMass (int id) const
 Get a quark mass by PDG code.
 
void setQuarkMass (int id, double value)
 Set quark masses by PDG code. More...
 
double quarkThreshold (int id) const
 Get a flavor scale threshold by PDG code. More...
 
void setQuarkThreshold (int id, double value)
 Set a flavor threshold by PDG code (= quark masses by default) More...
 
int orderQCD ()
 
void setOrderQCD (int order)
 Set the order of QCD (expressed as number of loops) More...
 
void setMZ (double mz)
 Set the Z mass used in this alpha_s. More...
 
void setAlphaSMZ (double alphas)
 Set the alpha_s(MZ) used in this alpha_s. More...
 
void setMassReference (double mref)
 Set the Z mass used in this alpha_s. More...
 
void setAlphaSReference (double alphas)
 Set the alpha_s(MZ) used in this alpha_s. More...
 
virtual void setLambda (unsigned int, double)
 Set the {i}th Lambda constant for i active flavors. More...
 

Private Member Functions

double _interpolateCubic (double T, double VL, double VDL, double VH, double VDH) const
 Standard cubic interpolation formula.
 
double _ddq_central (size_t i) const
 Get the gradient for a patch in the middle of the grid.
 
double _ddq_forward (size_t i) const
 Get the gradient for a patch at the low end of the grid.
 
double _ddq_backward (size_t i) const
 Get the gradient for a patch at the high end of the grid.
 
void _setup_grids () const
 

Private Attributes

std::map< double, AlphaSArray_knotarrays
 
std::vector< double > _q2s
 Array of ipol knots in Q2.
 
std::vector< double > _as
 Array of alpha_s values for the Q2 knots.
 

Additional Inherited Members

- Public Types inherited from LHAPDF::AlphaS
enum  FlavorScheme { FIXED, VARIABLE }
 enum of flavor schemes
 
- Protected Member Functions inherited from LHAPDF::AlphaS
double _beta (int i, int nf) const
 
std::vector< double > _betas (int nf) const
 
- Protected Attributes inherited from LHAPDF::AlphaS
int _qcdorder
 Order of QCD evolution (expressed as number of loops)
 
double _mz
 Mass of the Z boson in GeV.
 
double _alphas_mz
 Value of alpha_s(MZ)
 
double _mreference
 Reference mass in GeV.
 
double _alphas_reference
 Value of alpha_s(reference mass)
 
bool _customref
 Decides whether to use custom reference values or fall back on MZ/AlphaS_MZ.
 
std::map< int, double > _quarkmasses
 
std::map< int, double > _flavorthresholds
 
FlavorScheme _flavorscheme
 The flavor scheme in use.
 
int _fixflav
 The allowed numbers of flavours in a fixed scheme.
 

Detailed Description

Interpolate alpha_s from tabulated points in Q2 via metadata

Todo:
Extrapolation: log-gradient xpol at low Q, const at high Q?
Examples:
/tests/testalphas.cc.

Member Function Documentation

◆ _setup_grids()

void LHAPDF::AlphaS_Ipol::_setup_grids ( ) const
private

Synchronise the contents of the single Q2 / alpha_s vectors into subgrid objects

Note
This is const so it can be called silently from a const method

◆ setAlphaSValues()

void LHAPDF::AlphaS_Ipol::setAlphaSValues ( const std::vector< double > &  as)
inline

Set the array of alpha_s(Q2) values for interpolation

The supplied vector must match the layout of Q2 knots. Subgrids may have discontinuities, i.e. different alpha_s values on either side of a subgrid boundary (for the same Q values).

Examples:
/tests/testalphas.cc.

◆ setQ2Values()

void LHAPDF::AlphaS_Ipol::setQ2Values ( const std::vector< double > &  q2s)
inline

Set the array of Q2 values for interpolation

Subgrids are represented by repeating the values which are the end of one subgrid and the start of the next. The supplied vector must match the layout of alpha_s values.

◆ setQValues()

void LHAPDF::AlphaS_Ipol::setQValues ( const std::vector< double > &  qs)

Set the array of Q values for interpolation

Writes to the same internal arrays as setQ2Values, appropriately transformed.

Examples:
/tests/testalphas.cc.

Member Data Documentation

◆ _knotarrays

std::map<double, AlphaSArray> LHAPDF::AlphaS_Ipol::_knotarrays
mutableprivate

Map of AlphaSArrays "binned" for lookup by low edge in (log)Q2

Note
This is mutable so it can be initialized silently from a const method

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