33 edm::LogError(
"SimpleJetCorrectionUncertainty")<<
" bin variables out of range";
47 if ((p.size() % 3) != 0)
48 throw cms::Exception (
"SimpleJetCorrectionUncertainty")<<
"wrong # of parameters: multiple of 3 expected, "<<p.size()<<
" got";
49 std::vector<float> yGrid,
value;
50 unsigned int N = p.size()/3;
52 for(
unsigned i=0;
i<
N;
i++)
55 yGrid.push_back(p[ind]);
57 value.push_back(p[ind+1]);
59 value.push_back(p[ind+2]);
63 else if (fY >= yGrid[N-1])
89 edm::LogError(
"SimpleJetCorrectionUncertainty")<<
" interpolation error";
95 float a = (fY[1]-fY[0])/(fX[1]-fX[0]);
96 float b = (fY[0]*fX[1]-fY[1]*fX[0])/(fX[1]-fX[0]);
107 if (x<v[0] || x>=v[n])
111 if (x>=v[i] && x<v[i+1])
float uncertaintyBin(unsigned fBin, float fY, bool fDirection) const
~SimpleJetCorrectionUncertainty()
std::vector< float > parameters() const
SimpleJetCorrectionUncertainty()
const Record & record(unsigned fBin) const
JetCorrectorParameters * mParameters
float linearInterpolation(float fZ, const float fX[2], const float fY[2]) const
int findBin(const std::vector< float > &v, float x) const
int binIndex(const std::vector< float > &fX) const
bin
set the eta bin as selection string.
float uncertainty(const std::vector< float > &fX, float fY, bool fDirection) const