fast pQCD calculations for hadron-induced processes
Classes | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
fastNLOCreate Class Reference
Inheritance diagram for fastNLOCreate:
fastNLOTable

Classes

struct  fnloStats
 

Public Member Functions

 fastNLOCreate (const std::string &steerfile, std::string warmupfile="", bool shouldReadSteeringFile=true)
 
 fastNLOCreate (const std::string &steerfile, const fastNLO::GeneratorConstants &GenConsts, const fastNLO::ProcessConstants &ProcConsts)
 
 fastNLOCreate (const std::string &warmupfile, const fastNLO::GeneratorConstants &GenConsts, const fastNLO::ProcessConstants &ProcConsts, const fastNLO::ScenarioConstants &ScenConsts)
 
 fastNLOCreate (const fastNLO::GeneratorConstants &GenConsts, const fastNLO::ProcessConstants &ProcConsts, const fastNLO::ScenarioConstants &ScenConsts, const fastNLO::WarmupConstants &WarmConsts)
 
void SetOrderOfAlphasOfCalculation (unsigned int ord)
 set absolute order of alpha_s More...
 
void SetScenario (const fnloScenario scen)
 set the member fScenario, which will be used when calling Fill()
 
void SetEvent (const fnloEvent ev)
 set the member fEvent, which will be used when calling Fill()
 
void SetNumberOfEvents (double n)
 
void SetLoOrder (int LOOrd)
 set number of events. This is only mandatory, before calling WriteTable(). More...
 
fastNLOReaderSetIsReferenceTable (fastNLOReader *fnloread=NULL)
 set this table/contribution to become a reference contribution More...
 
void SetGenConstsDefaults ()
 set defaults for generator constants More...
 
void SetProcConstsDefaults ()
 set defaults for process constants More...
 
bool CheckProcConsts ()
 check process constants to be different from defaults More...
 
void Fill (int scalevar=0)
 fill event quantities in fastNLO table. Call it for every subprocess. More...
 
void FillOneSubprocess (const fnloEvent &event, const fnloScenario &scen, int scalevar=0)
 same function as 'Fill()', but uses content of member fScenario and fEvent
 
void FillAllSubprocesses (const std::vector< fnloEvent > &events, const fnloScenario &scen, int scalevar=0)
 Fill a selection (std::vector) of events/processes/channels, which all have the identic scenario.
 
void FillAllSubprocesses (const std::vector< std::vector< fnloEvent > > &events, const fnloScenario &scen)
 Fill a list of subprocesses for various scale-variations into a fixed-scale table.
 
int GetNSubprocesses () const
 The number of subprocesses (channels)
 
const std::vector< double > & GetScaleVariations () const
 Get list of scale variations.
 
void WriteTable (std::string filename)
 Write fastNLO table to file filename.
 
void WriteTable ()
 Write fastNLO table to disk. More...
 
void WriteTable (double nEvents)
 
void WriteWarmupTable ()
 Write fastNLO table to disk and set number of events. More...
 
void MultiplyCoefficientsByBinSize ()
 Multiply all coefficients by bin size. More...
 
void DivideCoefficientsByBinSize ()
 Divide all coefficients by bin size. More...
 
void MultiplyCoefficientsByConstant (double c)
 Multiply all coefficients with a constant factor c. More...
 
void NormalizeCoefficients (double wgt=1)
 Set number of events to wgt and adjust coefficients accordingly. More...
 
void NormalizeCoefficients (const std::vector< std::vector< double > > &wgtProcBin)
 Set number of events to wgt (with wgt differently for each subproc. and bin) resulting Nevt will become 1. More...
 
void PrintWarmupValues ()
 Print the warmup values to the screen.
 
std::string GetWarmupTableFilename ()
 Get the filename, which is used for storage of the warmup-table.
 
void SetWarmupTableFilename (std::string)
 Set the filename, which is used for storage of the warmup-table (otherwise a default is used)
 
bool GetIsWarmup () const
 
bool GetIsFlexibleScale () const
 Get flag for warmup table. More...
 
void SetWarmupXSafetyMargin (int margin=4)
 Set margin for x-value: First digit in 'e' notation (e.g. margin=4: x=6.6e-3 -> 6.2e-3)
 
void SetWarmupNDigitMu1 (int rnd=1)
 Round warmup values for scale 1.
 
void SetWarmupNDigitMu2 (int rnd=2)
 Round warmup values for scale 2.
 
fastNLOCoeffAddBaseGetTheCoeffTable () const
 Getter for the one (and only) coefficient table.
 
bool TestParameterInSteering (const std::string &label) const
 Test on existence of user-defined parameter name in steering card. More...
 
bool GetParameterFromSteering (const std::string &label, bool &val) const
 Get user-defined parameter from steering file.
 
bool GetParameterFromSteering (const std::string &label, int &val) const
 Get user-defined parameter from steering file.
 
bool GetParameterFromSteering (const std::string &label, double &val) const
 Get user-defined parameter from steering file.
 
bool GetParameterFromSteering (const std::string &label, std::string &val) const
 Get user-defined parameter from steering file.
 
bool GetParameterFromSteering (const std::string &label, std::vector< int > &val) const
 Get user-defined parameter from steering file.
 
bool GetParameterFromSteering (const std::string &label, std::vector< double > &val) const
 Get user-defined parameter from steering file.
 
bool GetParameterFromSteering (const std::string &label, std::vector< std::string > &val) const
 Get user-defined parameter from steering file.
 
bool GetParameterFromSteering (const std::string &label, std::vector< std::vector< int > > &val) const
 Get user-defined parameter from steering file.
 
bool GetParameterFromSteering (const std::string &label, std::vector< std::vector< double > > &val) const
 Get user-defined parameter from steering file.
 
void AdjustWarmupValues ()
 Round warmup values to more likely values. More...
 
void PrintAllSteeringValues () const
 
void Clear ()
 Print all steering values obtained from steering files (of all fastNLOCreate instances);.
 
void PrintStats () const
 Clear coefficient table. More...
 
void SetGlobalVerbosity (std::string sverb)
 Set GlobalVerbosity using std::string variable.
 
void SetCacheSize (int MaxCache)
 Set maximum number of events in cache. Set to 0 to deactivate caching.
 
int GetCacheSize () const
 Get max cache size.
 
- Public Member Functions inherited from fastNLOTable
 fastNLOTable (std::string filename)
 
 fastNLOTable (const fastNLOTable &)
 
virtual void ReadTable ()
 
bool IsCompatible (const fastNLOTable &other) const
 
bool IsCompatibleScenario (const fastNLOTable &other) const
 
bool IsCatenable (const fastNLOTable &other) const
 
bool IsCatenableScenario (const fastNLOTable &other) const
 
void PrintHeader (int iprint) const
 Print header variables (BlockA1) to screen.
 
bool IsCompatibleHeader (const fastNLOTable &other) const
 Compare header with header of another table.
 
bool IsCatenableHeader (const fastNLOTable &other) const
 Compare header with header of another table.
 
std::string GetFilename () const
 
void SetFilename (std::string name)
 
int GetItabversion () const
 
void SetItabversion (int version)
 
std::string GetScenName () const
 
void SetScenName (std::string name)
 
int GetNmult () const
 
int GetNcontrib () const
 
int GetNdata () const
 
int GetOutputPrecision () const
 
void SetOutputPrecision (int precision)
 
unsigned int GetNumDiffBin () const
 Get dimensionality of calculation: single-, double-, or triple-differential. More...
 
double GetObsBinLoBound (unsigned int iObs, unsigned int iDim) const
 Getters for linear array of observable bins "ObsBin" running from 0->(NObsBin-1) More...
 
double GetObsBinUpBound (unsigned int iObs, unsigned int iDim) const
 Return upper bin bound for obs. bin iObs in dim. iDim.
 
std::vector< double > GetObsBinsLoBounds (unsigned int iDim) const
 Return std::vector of lower bin bounds in dim. iDim for all obs. bins.
 
std::vector< double > GetObsBinsUpBounds (unsigned int iDim) const
 Return std::vector of upper bin bounds in dim. iDim for all obs. bins.
 
double GetObsBinsLoBoundsMin (unsigned int iDim) const
 Return minimum value of all lower bin bounds for dim. iDim. More...
 
double GetObsBinsUpBoundsMax (unsigned int iDim) const
 Return maximum value of all upper bin bounds for dim. iDim. More...
 
std::vector< std::pair< double, double > > GetObsBinsBounds (unsigned int iDim) const
 Return std::vector of pairs with lower and upper bin bounds in dim. iDim for all obs. bins.
 
int GetObsBinNumber (const std::vector< double > &vobs) const
 Return observable bin no. for std::vector of values obs0=var0,obs1=var1,...; -1 if outside range.
 
int GetObsBinNumber (double var0) const
 Return observable bin no. for obs0=var0 in 1D binning; -1 if outside range. More...
 
int GetObsBinNumber (double var0, double var1) const
 Return observable bin no. for obs0=var0,obs1=var1 in 2D binning; -1 if outside range. More...
 
int GetObsBinNumber (double var0, double var1, double var2) const
 Return observable bin no. for obs0=var0,obs1=var1,obs2=var2 in 3D binning; -1 if outside range. More...
 
std::vector< std::pair< double, double > > GetDim0BinBounds () const
 Getters for multidimensional binning, here called DimBins. More...
 
std::vector< std::pair< double, double > > GetDim1BinBounds (unsigned int iDim0Bin) const
 Return std::vector of pairs with unique bin bounds of 2nd dim. for 'iDim0Bin' of 1st dim.
 
std::vector< std::pair< double, double > > GetDim2BinBounds (unsigned int iDim0Bin, unsigned int iDim1Bin) const
 Return std::vector of pairs with unique bin bounds of 3rd dim. for 'iDim0Bin' and 'iDim1Bin' of 1st two dim.
 
std::vector< std::pair< double, double > > GetObsBinDimBounds (unsigned int iObs) const
 Return std::vector of pairs with lower and upper bin bounds for all dimensions for a given obs. bin.
 
std::pair< double, double > GetObsBinDimBounds (unsigned int iObs, unsigned int iDim) const
 Return pair with lower and upper bin bounds for given obs. bin and dim. iDim.
 
unsigned int GetIDim0Bin (unsigned int iObs) const
 Return bin no. in 1st dim. for obs. bin iObs. More...
 
unsigned int GetIDim1Bin (unsigned int iObs) const
 Return bin no. in 2nd dim. for obs. bin iObs. More...
 
unsigned int GetIDim2Bin (unsigned int iObs) const
 Return bin no. in 3rd dim. for obs. bin iObs. More...
 
unsigned int GetNDim0Bins () const
 Return no. of bins in 1st dimension. More...
 
unsigned int GetNDim1Bins (unsigned int iDim0Bin) const
 Return no. of bins in 2nd dimension for given bin in 1st dim. More...
 
unsigned int GetNDim2Bins (unsigned int iDim0Bin, unsigned int iDim1Bin) const
 Return no. of bins in 3rd dimension for given bins in 1st and 2nd dim. More...
 
int GetODim0Bin (double var0) const
 Return bin no. in 1st dim. for obs0=var0; -1 if outside range.
 
int GetODim1Bin (double var0, double var1) const
 Return bin no. in 2nd dim. for obs0=var0,obs1=var1; -1 if outside range.
 
int GetODim2Bin (double var0, double var1, double var2) const
 Return bin no. in 3rd dim. for obs0=var0,obs1=var1,obs2=var2; -1 if outside range.
 
int GetIDiffBin (int bin) const
 Get if dimension is 'truly differential' or bin-integrated (divided by bin width or not) More...
 
double GetBinSize (int bin) const
 Get BinSize for bin = BinSizeDim1 < * BinSizeDim2 >
 
std::vector< std::string > GetDimLabels () const
 Get vector of dimensions labels.
 
std::string GetDimLabel (int iDim) const
 Get dimension label for dimension iDim.
 
int GetINormFlag () const
 
bool IsNorm () const
 Get normalization logical (def=false)
 
std::string GetDenomTable () const
 Get filename of normalization table for INormFlag<0.
 
std::vector< std::string > GetScDescr () const
 get/set scenario description More...
 
void SetScDescr (std::vector< std::string > ScDescr)
 
int GetIpublunits () const
 get/set cross section units of published results (pb = 12, fb = 15, ...)
 
void SetIpublunits (int unit)
 
double GetEcms () const
 get/set center-of-mass energy in units of GeV
 
void SetEcms (double E)
 
int GetLoOrder () const
 get/set power of alpha_s for LO process
 
void SetLoOrder (int LOOrd)
 
unsigned int GetNObsBin () const
 get/set no. of observable bins
 
void SetNObsBin (int NObs)
 
std::vector< std::vector< std::pair< double, double > > > GetBins () const
 get/set Bin vector
 
void SetBins (std::vector< std::vector< std::pair< double, double > > >)
 
std::vector< double > GetBinSize () const
 get/set BinSize vector
 
void SetBinSize (std::vector< double >)
 
void EraseBinFromTable (unsigned int iObsIdx)
 
template<typename T >
void EraseBin (std::vector< T > &v, unsigned int idx)
 
void MultiplyBinInTable (unsigned int iObsIdx, double fact)
 
void MultiplyBinSize (unsigned int iObsIdx, double fact)
 
template<typename T >
void MultiplyBin (std::vector< T > &v, unsigned int idx, double fact)
 
void CatBinToTable (const fastNLOTable &other, unsigned int iObsIdx, unsigned int table_count)
 
void CatBin (const fastNLOTable &other, unsigned int iObsIdx, unsigned int table_count)
 
std::string GetRivetId () const
 
std::string GetXSDescr () const
 Get cross section from analysis description.
 
void SetDimLabel (std::string label, unsigned int iDim, bool IsDiff=true)
 
void SetNumDiffBin (int iDiff)
 
void PrintTableInfo (const int iprint=0) const
 Print basic info about fastNLO table and its contributions. More...
 
void PrintContributionSummary (int iprint) const
 
void PrintFastNLOTableConstants (const int iprint=0) const
 Print (technical) constants of fastNLO table (use iprint) for level of details.
 
void PrintScenario (int iprint) const
 
virtual void Print (int iprint) const
 
void MergeTable (const fastNLOTable &rhs, fastNLO::EMerge option=fastNLO::kMerge)
 'merge' More...
 
void MergeTables (const std::vector< fastNLOTable *> &tables, fastNLO::EMerge option=fastNLO::kMerge, double cutRMS=0)
 'merge' (also supports 'median' and 'mean') More...
 
void AddTable (const fastNLOTable &rhs, fastNLO::EMerge option=fastNLO::kMerge)
 'merge'
 
void DeleteAllCoeffTable ()
 Handle coefficient tables.
 
int CreateCoeffTable (int no, fastNLOCoeffBase *newcoeff)
 
void CatenateTable (const fastNLOTable &other)
 
fastNLOCoeffBaseGetCoeffTable (int no) const
 
fastNLOCoeffDataGetDataTable () const
 Returns pointer to data table if available, else returns NULL pointer.
 
fastNLOCoeffAddBaseGetReferenceTable (fastNLO::ESMOrder eOrder) const
 Returns pointer to reference table if available, else returns NULL pointer.
 
template<typename T >
void EraseBin (vector< T > &v, unsigned int idx)
 
template<typename T >
void MultiplyBin (vector< T > &v, unsigned int idx, double fact)
 

Public Attributes

fnloEvent fEvent
 Structure, which holds all relevant variables related to event observables.
 
fnloScenario fScenario
 Structure, which holds perturbative (wilson) coefficients/weights and x-values.
 

Protected Member Functions

 fastNLOCreate ()
 don't use the default constructor. fastNLOCreate is only reasonable with input steering.
 
void Instantiate ()
 
int CreateCoeffTable ()
 Create the one (and only) coefficient table.
 
void ApplyPDFWeight (std::vector< std::pair< int, double > > &nodes, const double x, const std::vector< double > *grid) const
 
double CalcPDFReweight (double x) const
 
void FillContribution (int scalevar=0)
 fill contribution into table More...
 
void FillContributionFlexHHC (fastNLOCoeffAddFlex *c, int ObsBin)
 fill flexible scale contribution in pp/ppbar More...
 
void FillContributionFlexDIS (fastNLOCoeffAddFlex *c, int ObsBin)
 fill flexible scale contribution in DIS More...
 
void FillContributionFixHHC (fastNLOCoeffAddFix *c, int ObsBin, int scalevar)
 fill fixed scale table in pp/ppbar More...
 
void FillContributionFixDIS (fastNLOCoeffAddFix *c, int ObsBin, int scalevar)
 fill fixed scale contribution in DIS More...
 
void FillRefContribution (int scalevar=0)
 fill contribution if this is a reference table More...
 
void ReadSteering (std::string steerfile, std::string steeringNameSpace="", bool shouldReadSteeringFile=true)
 read steering file More...
 
void ReadGenAndProcConstsFromSteering ()
 
void ReadScenarioConstsFromSteering ()
 Read steering values into fScenConsts.
 
void ReadBinning ()
 
void ReadBinningFromScenarioConsts ()
 
void ReadBinSize ()
 
void SetBinning1D (std::vector< double > bgrid, std::string label, unsigned int idiff)
 
void SetBinning1D (std::vector< double > bgrid, std::string label, unsigned int idiff, double norm)
 
void SetBinning1D (std::vector< double > bgrid, std::string label, unsigned int idiff, std::vector< double > vnorm)
 
void SetBinning1D (std::vector< double > blow, std::vector< double > bupp, std::string label, unsigned int idiff)
 
void SetBinning1D (std::vector< double > blow, std::vector< double > bupp, std::string label, unsigned int idiff, double norm)
 
void SetBinning1D (std::vector< double > blow, std::vector< double > bupp, std::string label, unsigned int idiff, std::vector< double > vnorm)
 
void SetBinningND (std::vector< double > bgrid, unsigned int ndim, std::vector< int > idiff)
 
void SetBinningND (std::vector< std::vector< double > > bgrid, unsigned int ndim, std::vector< int > idiff)
 
void ReadCoefficientSpecificVariables ()
 
void ReadScaleFactors ()
 
void InitVariablesInCoefficientTable ()
 
void InitCoeffTable ()
 
void InitInterpolationKernels ()
 
fastNLOInterpolBaseMakeInterpolationKernels (std::string KernelName, double xdn, double xup)
 
void InitGrids ()
 
void GetWarmupValues ()
 
bool CheckWarmupConsistency ()
 Check consistency of warmup bin-grid and variables with steering values. More...
 
void UseBinGridFromWarmup ()
 Use bin grid as given in the warmup table. More...
 
int CheckWarmupValuesIdenticalWithBinGrid (std::vector< std::pair< double, double > > &wrmmu)
 Check if warmup values are possibly identical with bin grid. More...
 
void RoundValues (std::vector< std::pair< double, double > > &wrmmu, int nth)
 Round values to closes value by at most 1%. More...
 
int GetNthRelevantDigit (double val, int n)
 
std::vector< std::vector< std::pair< int, int > > > ReadPartonCombinations (int ord, const std::vector< std::vector< int > > &PartonCombinations)
 Read PDFCoeff from steering. More...
 
int GetBin ()
 get bin number from 'scenario' observables More...
 
int GetXIndex (const int &Obsbin, const int &x1bin, const int &x2bin) const
 get x-index in case of two hadrons. More...
 
int GetNxmax (const std::vector< double > *xGrid1, const std::vector< double > *xGrid2)
 get maximum x-index
 
bool CheckWeightIsFinite ()
 Check if weight is reasonable. More...
 
void HalfMatrixCheck (double x1, double x2, int &xmin, int &xmax, int &subproc) const
 check x-values in case of half-matrix notation (pp,ppbar), and exchange if necessary. More...
 
void UpdateWarmupArrays ()
 
void InitWarmupArrays ()
 
void OutWarmup (std::ostream &=std::cout)
 
std::vector< double > GetColumnFromTable (const std::vector< std::vector< double > > &table, int iCol)
 Get a column from a table. More...
 
std::string GetWarmupHeader (int iScale, std::string minmax)
 
void FillWeightCache (int scalevar)
 Fill weight into cache, merge weights for identical phase space points. More...
 
void FlushCache ()
 Fill weights from cache into table.
 
- Protected Member Functions inherited from fastNLOTable
void PrintWelcomeMessage ()
 Say hello to fastNLO user.
 
std::ostream * OpenFileWrite (bool compress=false)
 open std::ofstream for writing tables to ffilename More...
 
std::istream * OpenFileRead ()
 open std::ifstream for reading table More...
 
void WriteHeader (std::ostream &table)
 write (or cout) hader using std::ostream
 
int ReadHeader (std::istream &table)
 read header of table (BlockA1) More...
 
void CloseFileWrite (std::ostream &table)
 
void CloseFileRead (std::istream &table)
 
void WriteScenario (std::ostream &table)
 
void ReadScenario (std::istream &table)
 
void ReadCoeffTables (std::istream &table, int nCoeff)
 
fastNLOCoeffBaseReadRestOfCoeffTable (const fastNLOCoeffBase &cB, std::istream &table)
 

Protected Attributes

std::string fWarmupFilename
 File name of the warmup table.
 
bool fIsWarmup
 is it a warmup run?
 
int fWarmupXMargin
 margin for x-value: First digit in 'e' notation (e.g. margin=4: x=6.6e-3 -> 6.2e-3)
 
int fWarmupNDigitMu1
 Digits of warmup values for scale 1.
 
int fWarmupNDigitMu2
 Digits of warmup values for scale 2.
 
int fIOrd
 order of alpha_s of run
 
bool fIsFlexibleScale
 is it a flexible scale table?
 
bool fApplyPDFReweight
 shall the PDF reweight be applied.
 
std::string fSteerfile
 filename of steering file.
 
int fObsBin
 ObsBin from 'last' 'Fill()'-call.
 
fnloScenario fLastScen
 keep information of scenario from last 'Fill()'-call
 
fastNLOReaderfReader
 PDF and alpha_s interface for reference tables.
 
fastNLO::GeneratorConstants fGenConsts
 Generator specific constants.
 
fastNLO::ProcessConstants fProcConsts
 Process specific constants.
 
fastNLO::ScenarioConstants fScenConsts
 Scenario specific constants.
 
fastNLO::WarmupConstants fWarmupConsts
 Warmup specific constants.
 
std::vector< int > fSymProc
 necessary for half-matrix notation
 
std::vector< double > fScaleFac
 Scale factors. Needed for fixed-scale tables.
 
std::vector< fastNLOInterpolBase * > fKernX1
 Interpolation kernel for x-interpolation.
 
std::vector< fastNLOInterpolBase * > fKernX2
 Interpolation kernel for x-interpolation.
 
std::vector< fastNLOInterpolBase * > fKernMu1
 Interpolation kernel for mu1-interpolation.
 
std::vector< fastNLOInterpolBase * > fKernMu2
 Interpolation kernel for mu2-interpolation.
 
std::vector< std::vector< fastNLOInterpolBase * > > fKernMuS
 Interpolation kernels for each scale var for fixed-scale tables.
 
std::vector< std::pair< double, double > > fWMu1
 array of warmup-up values
 
std::vector< std::pair< double, double > > fWMu2
 array of warmup-values
 
std::vector< std::pair< double, double > > fWx
 array of warmup-values
 
std::vector< std::pair< double, double > > fWMu1Rnd
 copy of warm-up array for rounding
 
std::vector< std::pair< double, double > > fWMu2Rnd
 copy of warm-up array for rounding
 
std::vector< std::pair< double, double > > fWxRnd
 copy of warm-up array for rounding
 
int fCacheMax
 
std::vector< std::pair< fnloScenario, fnloEvent > > fWeightCache
 cache for fill-weights
 
struct fastNLOCreate::fnloStats fStats
 
- Protected Attributes inherited from fastNLOTable
std::string ffilename
 
int fPrecision
 
int Itabversion
 
std::string ScenName
 
PrimalScream logger
 
std::vector< fastNLOCoeffBase *> fCoeff
 
double Ecms
 
int ILOord
 
int Ipublunits
 
std::vector< std::string > ScDescript
 
unsigned int NObsBin
 
unsigned int NDim
 
std::vector< std::string > DimLabel
 
std::vector< int > IDiffBin
 
std::vector< std::vector< std::pair< double, double > > > Bin
 
std::vector< double > BinSize
 
int INormFlag
 
std::string DenomTable
 
std::vector< int > IDivLoPointer
 
std::vector< int > IDivUpPointer
 

Additional Inherited Members

- Static Protected Attributes inherited from fastNLOTable
static bool fWelcomeOnce = false
 

Constructor & Destructor Documentation

◆ fastNLOCreate() [1/2]

fastNLOCreate::fastNLOCreate ( const std::string &  steerfile,
std::string  warmupfile = "",
bool  shouldReadSteeringFile = true 
)

fastNLOCreate. A class for creating a fastNLO Table which contains exactly one table of coefficients.

Member variables are initialized by reading in a steering file.

Following information has to be obtained from the generator and is NOT obtained from steering:

  • Order in alpha_s of leading-order process
  • Center of mass energy
  • Order of calculation (LO=0, NLO=1, NNLO=2)

◆ fastNLOCreate() [2/2]

fastNLOCreate::fastNLOCreate ( const fastNLO::GeneratorConstants GenConsts,
const fastNLO::ProcessConstants ProcConsts,
const fastNLO::ScenarioConstants ScenConsts,
const fastNLO::WarmupConstants WarmConsts 
)

Constructor of fastNLOCreate

Pass all needed steering paramters through GeneratorConstants, ProcessConstants, ScenarioConstants and WarmupConstants (see GeneratorConstants.h file for details)

No steering or warmup file is read in

Set constants from arguments

No WarmupFile required, a pseudo-WarmupFilename is defined here

Member Function Documentation

◆ AdjustWarmupValues()

void fastNLOCreate::AdjustWarmupValues ( )

Round warmup values to more likely values.

Adjust warmup-values found to supposedly more reasonable values.

Do this ONLY ONCE on COPY of actual values just before writing out to the warm-up table.

  1. Round warm-up values up/down, if they are 4% close to the bin boundary -> if more than 70% of all bins are close to the bin boundary, then round all
  2. Round values up/down, by mostly 3% to next reasonable value
  3. Round lower x-values down by 20%

◆ CheckProcConsts()

bool fastNLOCreate::CheckProcConsts ( )

check process constants to be different from defaults

Check that reasonable values different from the defaults have been set

◆ CheckWarmupConsistency()

bool fastNLOCreate::CheckWarmupConsistency ( )
protected

Check consistency of warmup bin-grid and variables with steering values.

check if warmup values are consistent with steering card check if number of bins is consistent

◆ CheckWarmupValuesIdenticalWithBinGrid()

int fastNLOCreate::CheckWarmupValuesIdenticalWithBinGrid ( std::vector< std::pair< double, double > > &  wrmmu)
protected

Check if warmup values are possibly identical with bin grid.

Check, where scale variable is identical with measured variable and hence warmu-values should be identical with bin grid.

returns idim, if identity was found returns -1 else.

If more than 70% of all bins are closer than 4% to the bin boundary, then identity is assumed

◆ CheckWeightIsFinite()

bool fastNLOCreate::CheckWeightIsFinite ( )
protected

Check if weight is reasonable.

check if weights are finite

◆ DivideCoefficientsByBinSize()

void fastNLOCreate::DivideCoefficientsByBinSize ( )

Divide all coefficients by bin size.

Divide all coefficients by binsize

◆ Fill()

void fastNLOCreate::Fill ( int  scalevar = 0)

fill event quantities in fastNLO table. Call it for every subprocess.

Fill values, which are stored in 'Event' and 'Scenario' into fastNLO table.

◆ FillContribution()

void fastNLOCreate::FillContribution ( int  scalevar = 0)
protected

fill contribution into table

read information from 'Event' and 'Scenario' do the interpolation and fill into the tables.

◆ FillContributionFixDIS()

void fastNLOCreate::FillContributionFixDIS ( fastNLOCoeffAddFix c,
int  ObsBin,
int  scalevar 
)
protected

fill fixed scale contribution in DIS

read information from 'Event' and 'Scenario' do the interpolation and fill into the tables.

◆ FillContributionFixHHC()

void fastNLOCreate::FillContributionFixHHC ( fastNLOCoeffAddFix c,
int  ObsBin,
int  scalevar 
)
protected

fill fixed scale table in pp/ppbar

read informatio from 'Event' and 'Scenario' do the interpolation and fill into the tables.

◆ FillContributionFlexDIS()

void fastNLOCreate::FillContributionFlexDIS ( fastNLOCoeffAddFlex c,
int  ObsBin 
)
protected

fill flexible scale contribution in DIS

read information from 'Event' and 'Scenario' do the interpolation and fill into the tables.

◆ FillContributionFlexHHC()

void fastNLOCreate::FillContributionFlexHHC ( fastNLOCoeffAddFlex c,
int  ObsBin 
)
protected

fill flexible scale contribution in pp/ppbar

read informatio from 'Event' and 'Scenario' do the interpolation and fill into the tables.

◆ FillRefContribution()

void fastNLOCreate::FillRefContribution ( int  scalevar = 0)
protected

fill contribution if this is a reference table

This is a reference table. Fill contribution as it would be a cross section

◆ FillWeightCache()

void fastNLOCreate::FillWeightCache ( int  scalevar)
protected

Fill weight into cache, merge weights for identical phase space points.

fill event into cache

◆ GetBin()

int fastNLOCreate::GetBin ( )
protected

get bin number from 'scenario' observables

get bin number, using observables from Scenario

◆ GetColumnFromTable()

std::vector< double > fastNLOCreate::GetColumnFromTable ( const std::vector< std::vector< double > > &  table,
int  iCol 
)
protected

Get a column from a table.

Get a column from a table

◆ GetIsFlexibleScale()

bool fastNLOCreate::GetIsFlexibleScale ( ) const
inline

Get flag for warmup table.

Get if flexible-scale table is requested

◆ GetWarmupValues()

void fastNLOCreate::GetWarmupValues ( )
protected

GetWarmupValues. Checks if warmup-table exists and initialized member variable fIsWarmup

Check if warmup values already set by user

Try to get warmup values from steering

◆ GetXIndex()

int fastNLOCreate::GetXIndex ( const int &  Obsbin,
const int &  x1bin,
const int &  x2bin 
) const
inlineprotected

get x-index in case of two hadrons.

get index if 1 or two hadrons are involved

◆ HalfMatrixCheck()

void fastNLOCreate::HalfMatrixCheck ( double  x1,
double  x2,
int &  xmin,
int &  xmax,
int &  subproc 
) const
inlineprotected

check x-values in case of half-matrix notation (pp,ppbar), and exchange if necessary.

check if half-matrix notation if half-matrix notation, and xmin-node is larger than xmax-node exchange suprocesses according to fSymProc and adjust x-nodes.

◆ InitCoeffTable()

void fastNLOCreate::InitCoeffTable ( )
protected

create a coeff table

set 'usual' variables for perturbative calculations

read in process specific variables

◆ InitInterpolationKernels()

void fastNLOCreate::InitInterpolationKernels ( )
protected

initialize members for interpolation

◆ InitWarmupArrays()

void fastNLOCreate::InitWarmupArrays ( )
protected

initialize arrays to store and determine warm-up values including copy for later rounding and write out initialize with reasonable values

◆ Instantiate()

void fastNLOCreate::Instantiate ( )
protected

Instantiate all internal members and prepare for filling

◆ MakeInterpolationKernels()

fastNLOInterpolBase * fastNLOCreate::MakeInterpolationKernels ( std::string  KernelName,
double  xdn,
double  xup 
)
protected

This function identifies the string-identifier and creates the corresponding fastNLO Interpolation kernel

◆ MultiplyCoefficientsByBinSize()

void fastNLOCreate::MultiplyCoefficientsByBinSize ( )

Multiply all coefficients by bin size.

Multiply all coefficients by binsize

◆ MultiplyCoefficientsByConstant()

void fastNLOCreate::MultiplyCoefficientsByConstant ( double  c)

Multiply all coefficients with a constant factor c.

Divide all coefficients by binsize

◆ NormalizeCoefficients() [1/2]

void fastNLOCreate::NormalizeCoefficients ( double  wgt = 1)

Set number of events to wgt and adjust coefficients accordingly.

Set number of events to wgt (default=1) and weight coefficients in sigmatilde accordingly This means, that the information about the number of events is essentially lost (now remained stored in fWgt)

◆ NormalizeCoefficients() [2/2]

void fastNLOCreate::NormalizeCoefficients ( const std::vector< std::vector< double > > &  wgtProcBin)

Set number of events to wgt (with wgt differently for each subproc. and bin) resulting Nevt will become 1.

Set number of events to wgtProcBin[iProc][iBin] sigmatilde is weighted accordingly.

◆ PrintStats()

void fastNLOCreate::PrintStats ( ) const
inline

Clear coefficient table.

Print statistics

◆ ReadBinningFromScenarioConsts()

void fastNLOCreate::ReadBinningFromScenarioConsts ( )
protected

read in binning from ScenConsts

◆ ReadBinSize()

void fastNLOCreate::ReadBinSize ( )
protected

initialize BinSize either from steering or from fScenConsts

◆ ReadGenAndProcConstsFromSteering()

void fastNLOCreate::ReadGenAndProcConstsFromSteering ( )
protected

ReadGenAndProcConstsFromSteering() If generator and process constants have not been set in the constructor, then obtain these values from the steering file.

◆ ReadPartonCombinations()

vector< vector< pair< int, int > > > fastNLOCreate::ReadPartonCombinations ( int  ord,
const std::vector< std::vector< int > > &  PartonCombinations 
)
protected

Read PDFCoeff from steering.

Read PDF linear combinations from steering file and convert to internal format

◆ ReadScaleFactors()

void fastNLOCreate::ReadScaleFactors ( )
protected

read scale factors from steering and init member fScaleFac

◆ ReadSteering()

void fastNLOCreate::ReadSteering ( std::string  steerfile,
std::string  steeringNameSpace = "",
bool  shouldReadSteeringFile = true 
)
protected

read steering file

read in steering file The filename of the steering file is used as the 'namespace' of keys in read_steer if there is no steeringNameSpace given explicitly

Remove extension from steerfile to define default steering namespace

Set verbosity from steering or to default WARNING

Set WarmupFilename from steering

◆ RoundValues()

void fastNLOCreate::RoundValues ( std::vector< std::pair< double, double > > &  wrmmu,
int  nth 
)
protected

Round values to closes value by at most 1%.

Round warmup values up (down) if third relevant digit is a 9 (0) lower values are only rounded down, upper values are only rounded up

◆ SetGenConstsDefaults()

void fastNLOCreate::SetGenConstsDefaults ( )

set defaults for generator constants

Set default values for generator constants

< X section units of coefficients passed to fastNLO (neg. power of 10: pb->12, fb->15)

◆ SetIsReferenceTable()

fastNLOReader * fastNLOCreate::SetIsReferenceTable ( fastNLOReader fnloread = NULL)

set this table/contribution to become a reference contribution

set this table/contribution to become a reference contribution If fnloread is set to NULL, the weights are assumed to be already multiplied by PDF and alpha_s values. If fnloread is provided, then it is assumed that the weights have the same units and format as for the filling of default tables and those need to be multiplied by PDF and alpha_s values.

Function returns the input pointer without changes.

◆ SetLoOrder()

void fastNLOCreate::SetLoOrder ( int  LOOrd)

set number of events. This is only mandatory, before calling WriteTable().

set order of alpha_s for leading order process.

◆ SetOrderOfAlphasOfCalculation()

void fastNLOCreate::SetOrderOfAlphasOfCalculation ( unsigned int  ord)

set absolute order of alpha_s

set order of alpha_s of this calculation it must be: iLeadingOrder + iHigherOrder ; for instance: 3-jet-production in NLO = 4!

◆ SetProcConstsDefaults()

void fastNLOCreate::SetProcConstsDefaults ( )

set defaults for process constants

Set default values for process constants

< Order in alpha_s of leading order process

< No. of PDFs involved

< No. of LO subprocesses

< No. of NLO subprocesses

< No. of NNLO subprocesses

< Flag 1 to define PDF linear combinations of partonic subprocesses (e.g. hh –> jets: 3)

< Flag 2 to define PDF linear combinations (dep. on IPDFdef1; for 3 e.g. 1 for jet specific LCs, 121 for generic 11x11 matrix)

< Flag 3 to define PDF LCs at LO (dep. on IPDFdef1, IPDFdef2; for 3, 1 e.g. 6 subprocesses, ignored for IPDFdef2==121)

< Flag 3 to define PDF LCs at NLO (dep. on IPDFdef1, IPDFdef2; for 3, 1 e.g. 7 subprocesses, ignored for IPDFdef2==121)

< Flag 3 to define PDF LCs at NNLO (dep. on IPDFdef1, IPDFdef2; for 3, 1 e.g. 7 subprocesses, ignored for IPDFdef2==121)

< Define internal storage mode for PDF LCs (dep. on NPDF; e.g. for 1: 0 for linear, for 2: 1 for half- or 2 for full-matrix)

◆ TestParameterInSteering()

bool fastNLOCreate::TestParameterInSteering ( const std::string &  label) const

Test on existence of user-defined parameter name in steering card.

Get flag if parameter exists in steering card

◆ UpdateWarmupArrays()

void fastNLOCreate::UpdateWarmupArrays ( )
protected

Update the warmup-arrays fWMu1, fWx und fWMu2

◆ UseBinGridFromWarmup()

void fastNLOCreate::UseBinGridFromWarmup ( )
protected

Use bin grid as given in the warmup table.

initialialize all binning related variables with values stored in the warmup file.

◆ WriteTable()

void fastNLOCreate::WriteTable ( )
virtual

Write fastNLO table to disk.

Write fastNLO file to disk

Reimplemented from fastNLOTable.

◆ WriteWarmupTable()

void fastNLOCreate::WriteWarmupTable ( )

Write fastNLO table to disk and set number of events.

Write the warmup table to disk.


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