#include <SimpleJetCorrector.h>
Definition at line 15 of file SimpleJetCorrector.h.
SimpleJetCorrector::SimpleJetCorrector |
( |
| ) |
|
SimpleJetCorrector::SimpleJetCorrector |
( |
const std::string & |
fDataFile, |
|
|
const std::string & |
fOption = "" |
|
) |
| |
SimpleJetCorrector::~SimpleJetCorrector |
( |
| ) |
|
float SimpleJetCorrector::correction |
( |
const std::vector< float > & |
fX, |
|
|
const std::vector< float > & |
fY |
|
) |
| const |
Definition at line 50 of file SimpleJetCorrector.cc.
References newFWLiteAna::bin, JetCorrectorParameters::binIndex(), correctionBin(), JetCorrectorParameters::definitions(), i, mDoInterpolation, mParameters, JetCorrectorParameters::Definitions::nBinVar(), JetCorrectorParameters::neighbourBin(), JetCorrectorParameters::record(), query::result, tmp, and JetCorrectorParameters::Record::xMiddle().
68 if (prevBin>=0 && nextBin>=0)
76 cor = quadraticInterpolation(fX[
i],xMiddle,xValue);
float correctionBin(unsigned fBin, const std::vector< float > &fY) const
const Definitions & definitions() const
const Record & record(unsigned fBin) const
int binIndex(const std::vector< float > &fX) const
float xMiddle(unsigned fVar) const
std::vector< std::vector< double > > tmp
int neighbourBin(unsigned fIndex, unsigned fVar, bool fNext) const
JetCorrectorParameters mParameters
float SimpleJetCorrector::correctionBin |
( |
unsigned |
fBin, |
|
|
const std::vector< float > & |
fY |
|
) |
| const |
|
private |
Definition at line 92 of file SimpleJetCorrector.cc.
References JetCorrectorParameters::definitions(), i, invert(), JetCorrectorParameters::Definitions::isResponse(), mFunc, mParameters, N, JetCorrectorParameters::Record::parameters(), JetCorrectorParameters::record(), query::result, JetCorrectorParameters::size(), tmp, and x.
Referenced by correction().
96 std::stringstream sserr;
97 sserr<<
"wrong bin: "<<fBin<<
": only "<<
mParameters.
size()<<
" available!";
98 handleError(
"SimpleJetCorrector",sserr.str());
100 unsigned N = fY.size();
103 std::stringstream sserr;
104 sserr<<
"two many variables: "<<N<<
" maximum is 4";
105 handleError(
"SimpleJetCorrector",sserr.str());
109 #if ROOT_VERSION_CODE >= ROOT_VERSION(6,03,00)
110 Double_t params[par.size() - 2 *
N];
111 for(
unsigned int i=2*N;
i<par.size();
i++)
113 params[
i-2*
N] = par[
i];
116 for(
unsigned i=0;
i<
N;
i++)
118 x[
i] = (fY[
i] < par[2*
i]) ? par[2*
i] : (fY[
i] > par[2*
i+1]) ? par[2*
i+1] : fY[
i];
123 return mFunc.EvalPar(x, params);
128 TFormula tFunc(
mFunc);
130 for(
unsigned int i=2*N;
i<par.size();
i++)
131 tFunc.SetParameter(
i-2*N,par[
i]);
133 std::vector<float>
tmp;
134 for(
unsigned i=0;i<
N;i++)
136 x[
i] = (fY[
i] < par[2*
i]) ? par[2*i] : (fY[i] > par[2*i+1]) ? par[2*i+1] : fY[
i];
140 result =
invert(tmp,tFunc);
142 result = tFunc.Eval(x[0],x[1],x[2],x[3]);
std::vector< float > parameters() const
const Definitions & definitions() const
const Record & record(unsigned fBin) const
float invert(const Double_t *args, const Double_t *params) const
std::vector< std::vector< double > > tmp
JetCorrectorParameters mParameters
unsigned SimpleJetCorrector::findInvertVar |
( |
| ) |
|
|
private |
float SimpleJetCorrector::invert |
( |
const Double_t * |
args, |
|
|
const Double_t * |
params |
|
) |
| const |
|
private |
void SimpleJetCorrector::setFuncParameters |
( |
| ) |
|
|
private |
void SimpleJetCorrector::setInterpolation |
( |
bool |
fInterpolation | ) |
|
|
inline |
bool SimpleJetCorrector::mDoInterpolation |
|
private |
TFormula SimpleJetCorrector::mFunc |
|
private |
unsigned SimpleJetCorrector::mInvertVar |
|
private |