/
SimpleJetCorrector.h
50 lines (41 loc) · 1.58 KB
/
SimpleJetCorrector.h
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
41
42
43
44
45
46
47
48
#ifndef SimpleJetCorrector_h
#define SimpleJetCorrector_h
#include "CondFormats/Serialization/interface/Serializable.h"
#include <string>
#include <vector>
#include <TFormula.h>
#include <RVersion.h>
#include "CondFormats/JetMETObjects/interface/JetCorrectorParameters.h"
class JetCorrectorParameters;
class SimpleJetCorrector
{
public:
//-------- Constructors --------------
SimpleJetCorrector();
SimpleJetCorrector(const std::string& fDataFile, const std::string& fOption = "");
SimpleJetCorrector(const JetCorrectorParameters& fParameters);
//-------- Destructor -----------------
~SimpleJetCorrector();
//-------- 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&);
#if ROOT_VERSION_CODE >= ROOT_VERSION(6,03,00)
float invert(const Double_t *args, const Double_t *params) const;
#else
float invert(const std::vector<float>& fX, TFormula&) const;
#endif
float correctionBin(unsigned fBin,const std::vector<float>& fY) const;
unsigned findInvertVar();
void setFuncParameters();
//-------- Member variables -----------
JetCorrectorParameters mParameters;
TFormula mFunc;
unsigned mInvertVar;
bool mDoInterpolation;
};
#endif