1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#ifndef SimpleJetCorrector_h
#define SimpleJetCorrector_h
#include "CondFormats/Serialization/interface/Serializable.h"
#include <string>
#include <vector>
#include "CondFormats/JetMETObjects/interface/JetCorrectorParameters.h"
#include "CommonTools/Utils/interface/FormulaEvaluator.h"
class JetCorrectorParameters;
class SimpleJetCorrector {
public:
//-------- Constructors --------------
SimpleJetCorrector(const std::string& fDataFile, const std::string& fOption = "");
SimpleJetCorrector(const JetCorrectorParameters& fParameters);
//-------- Member functions -----------
void setInterpolation(bool fInterpolation) { mDoInterpolation = fInterpolation; }
float correction(const std::vector<float>& fX, const std::vector<float>& fY) const;
const JetCorrectorParameters& parameters() const { return mParameters; }
private:
//-------- Member functions -----------
SimpleJetCorrector(const SimpleJetCorrector&);
SimpleJetCorrector& operator=(const SimpleJetCorrector&);
float invert(const double* args, const double* params) const;
float correctionBin(unsigned fBin, const std::vector<float>& fY) const;
unsigned findInvertVar();
void setFuncParameters();
//-------- Member variables -----------
JetCorrectorParameters mParameters;
reco::FormulaEvaluator mFunc;
unsigned mInvertVar;
bool mDoInterpolation;
};
#endif
|