diff --git a/v2.5/toolkit/fastnlotoolkit/fastNLOCreate.cc b/v2.5/toolkit/fastnlotoolkit/fastNLOCreate.cc index e5fb8aed8267db6f2e9144a9c284e47534bb205b..a1dbe806f1ecd70c2afe3b42ec049fcfd89c3e5e 100644 --- a/v2.5/toolkit/fastnlotoolkit/fastNLOCreate.cc +++ b/v2.5/toolkit/fastnlotoolkit/fastNLOCreate.cc @@ -1932,7 +1932,10 @@ void fastNLOCreate::GetWarmupValues() { //! logger.debug["GetWarmupValues"]<<endl; - if (!fWarmupConsts.Values.empty()) { + if (fScenConsts.X_NNodeCounting == "NodeDensity") { + logger.info["GetWarmupValues"]<<"Warmup not needed to determine bin edges."<<endl; + fIsWarmup=false; + } else if (!fWarmupConsts.Values.empty()) { //! Check if warmup values already set by user logger.info["GetWarmupValues"]<<"Found warmup values in fWarmupConsts without reading warmup-steering file."<<endl; fIsWarmup=false; @@ -2055,6 +2058,9 @@ bool fastNLOCreate::CheckWarmupConsistency() { vector<vector<double> > warmup = fWarmupConsts.Values;//DOUBLE_TAB_NS(Warmup.Values,fSteerfile); bool ret = true; + if (fScenConsts.X_NNodeCounting == "NodeDensity") { + return ret; + } const string wrmuphelp = "Please check your warmup-file for compatibility with your steering.\nTo calculate a new warmup-file compatible to your steering, remove the old one.\nAlternatively use 'IgnoreWarmupBinningCheck=true' to ignore precision-related binning differences or\nuse 'ReadBinningFromSteering=false' to read all binning-related information from the warmup file.\n"; @@ -4429,20 +4435,26 @@ void fastNLOCreate::InitInterpolationKernels() { vector<double> wrmMu1Up, wrmMu1Dn; vector<double> wrmMu2Up, wrmMu2Dn; if (GetTheCoeffTable()->GetIRef() == 0) { - wrmX = GetColumnFromTable(fWarmupConsts.Values, 1) ;// DOUBLE_COL_NS(Warmup.Values,x_min,fSteerfile); - wrmMu1Dn = GetColumnFromTable(fWarmupConsts.Values, 3) ;//read_steer::getdoublecolumn("Warmup.Values",GetWarmupHeader(0,"min"),fSteerfile); - wrmMu1Up = GetColumnFromTable(fWarmupConsts.Values, 4) ;//read_steer::getdoublecolumn("Warmup.Values",GetWarmupHeader(0,"max"),fSteerfile); - if (wrmMu1Dn.size()!=GetNObsBin() || wrmMu1Up.size()!= GetNObsBin()) { - logger.error["InitInterpolationKernels"]<<"Insufficient no. of rows for warmup values of Mu1. Exiting."<<endl; - exit(1); - } - if (fIsFlexibleScale) { - wrmMu2Dn = GetColumnFromTable(fWarmupConsts.Values, 5) ;//read_steer::getdoublecolumn("Warmup.Values",GetWarmupHeader(1,"min"),fSteerfile); - wrmMu2Up = GetColumnFromTable(fWarmupConsts.Values, 6) ;//read_steer::getdoublecolumn("Warmup.Values",GetWarmupHeader(1,"max"),fSteerfile); - if (wrmMu2Dn.size()!=GetNObsBin() || wrmMu2Up.size()!= GetNObsBin()) { - logger.error["InitInterpolationKernels"]<<"Insufficient no. of rows for warmup values for Mu2. Exiting."<<endl; + if (fScenConsts.X_NNodeCounting == "NodeDensity") { + wrmMu1Dn = GetObsBinsLoBounds(1); + wrmMu1Up = GetObsBinsUpBounds(1); + std::cout << wrmMu1Dn.size() << " " << wrmMu1Up.size() << endl; + } else { + wrmX = GetColumnFromTable(fWarmupConsts.Values, 1) ;// DOUBLE_COL_NS(Warmup.Values,x_min,fSteerfile); + wrmMu1Dn = GetColumnFromTable(fWarmupConsts.Values, 3) ;//read_steer::getdoublecolumn("Warmup.Values",GetWarmupHeader(0,"min"),fSteerfile); + wrmMu1Up = GetColumnFromTable(fWarmupConsts.Values, 4) ;//read_steer::getdoublecolumn("Warmup.Values",GetWarmupHeader(0,"max"),fSteerfile); + if (wrmMu1Dn.size()!=GetNObsBin() || wrmMu1Up.size()!= GetNObsBin()) { + logger.error["InitInterpolationKernels"]<<"Insufficient no. of rows for warmup values of Mu1. Exiting."<<endl; exit(1); } + if (fIsFlexibleScale) { + wrmMu2Dn = GetColumnFromTable(fWarmupConsts.Values, 5) ;//read_steer::getdoublecolumn("Warmup.Values",GetWarmupHeader(1,"min"),fSteerfile); + wrmMu2Up = GetColumnFromTable(fWarmupConsts.Values, 6) ;//read_steer::getdoublecolumn("Warmup.Values",GetWarmupHeader(1,"max"),fSteerfile); + if (wrmMu2Dn.size()!=GetNObsBin() || wrmMu2Up.size()!= GetNObsBin()) { + logger.error["InitInterpolationKernels"]<<"Insufficient no. of rows for warmup values for Mu2. Exiting."<<endl; + exit(1); + } + } } } else { wrmX.resize(GetNObsBin(),0);