13 mParameters(fDataFile,fOption),
55 if (prevBin>=0 && nextBin>=0)
63 cor = quadraticInterpolation(fX[
i],xMiddle,xValue);
83 std::stringstream sserr;
84 sserr<<
"wrong bin: "<<fBin<<
": only "<<
mParameters.
size()<<
" available!";
85 handleError(
"SimpleJetCorrector",sserr.str());
87 unsigned N = fY.size();
90 std::stringstream sserr;
91 sserr<<
"two many variables: "<<N<<
" maximum is 4";
92 handleError(
"SimpleJetCorrector",sserr.str());
96 double params[par.size() - 2 *
N];
97 for(
unsigned int i=2*N;
i<par.size();
i++)
99 params[
i-2*
N] = par[
i];
102 for(
unsigned i=0;
i<
N;
i++)
104 x[
i] = (fY[
i] < par[2*
i]) ? par[2*
i] : (fY[
i] > par[2*
i+1]) ? par[2*
i+1] : fY[
i];
118 for(
unsigned i=0;
i<vv.size();
i++)
124 if (result >= vv.size())
125 handleError(
"SimpleJetCorrector",
"Response inversion is required but JetPt is not specified as parameter");
141 memcpy(&x, args,
sizeof(
double) * 4);
143 while(e > precision && nLoop < nMax)
float correctionBin(unsigned fBin, const std::vector< float > &fY) const
float invert(const double *args, const double *params) const
std::vector< float > parameters() const
const Definitions & definitions() const
SimpleJetCorrector(const std::string &fDataFile, const std::string &fOption="")
const Record & record(unsigned fBin) const
std::vector< std::string > parVar() const
int binIndex(const std::vector< float > &fX) const
float xMiddle(unsigned fVar) const
bin
set the eta bin as selection string.
int binIndexN(const std::vector< float > &fX) const
std::vector< std::vector< double > > tmp
float correction(const std::vector< float > &fX, const std::vector< float > &fY) const
reco::FormulaEvaluator mFunc
int neighbourBin(unsigned fIndex, unsigned fVar, bool fNext) const
JetCorrectorParameters mParameters