#include "/home/eluiggi/work/cms/sharedBin/src/analysisUtils/pdfUtils.h" #include double GetCentralPDF(std::vector theWeightsVector){ return theWeightsVector.at(0); } std::pair GetPDFUncertaity(std::vector theWeightsVector){ std::pair thePDFUncertainty; double pdf0 = GetCentralPDF(theWeightsVector); double deltaXPlusMax = 0.; double deltaXMinusMax = 0.; //std::vector pdfWeightedEvents; for(unsigned int vIt = 1; vIt < theWeightsVector.size();){ double xplus = theWeightsVector.at(vIt); double xminus = theWeightsVector.at(vIt+1); double deltaPlusCen = xplus - pdf0; double deltaMinusCen = xminus - pdf0; double theMaxPlusMinusCen = std::max(std::max(deltaPlusCen,deltaMinusCen),0.); deltaXPlusMax += theMaxPlusMinusCen*theMaxPlusMinusCen; double deltaCenPlus = pdf0 - xplus; double deltaCenMinus = pdf0 - xminus; double theMaxCenPlusMinus = std::max(std::max(deltaCenPlus,deltaCenMinus),0.); deltaXMinusMax += theMaxCenPlusMinus*theMaxCenPlusMinus; vIt += 2; } deltaXPlusMax = sqrt(deltaXPlusMax); deltaXMinusMax = sqrt(deltaXMinusMax); thePDFUncertainty = std::make_pair(deltaXPlusMax, deltaXMinusMax); return thePDFUncertainty; }