00001 #ifndef SimpleJetCorrector_h 00002 #define SimpleJetCorrector_h 00003 00004 #include <string> 00005 #include <vector> 00006 00007 #include <TFormula.h> 00008 00009 00010 class JetCorrectorParameters; 00011 00012 class SimpleJetCorrector 00013 { 00014 public: 00015 //-------- Constructors -------------- 00016 SimpleJetCorrector(); 00017 SimpleJetCorrector(const std::string& fDataFile, const std::string& fOption = ""); 00018 SimpleJetCorrector(const JetCorrectorParameters& fParameters); 00019 //-------- Destructor ----------------- 00020 ~SimpleJetCorrector(); 00021 //-------- Member functions ----------- 00022 void setInterpolation(bool fInterpolation) {mDoInterpolation = fInterpolation;} 00023 float correction(const std::vector<float>& fX,const std::vector<float>& fY) const; 00024 const JetCorrectorParameters& parameters() const {return *mParameters;} 00025 00026 private: 00027 //-------- Member functions ----------- 00028 SimpleJetCorrector(const SimpleJetCorrector&); 00029 SimpleJetCorrector& operator= (const SimpleJetCorrector&); 00030 float invert(std::vector<float> fX) const; 00031 float correctionBin(unsigned fBin,const std::vector<float>& fY) const; 00032 unsigned findInvertVar(); 00033 //-------- Member variables ----------- 00034 bool mDoInterpolation; 00035 unsigned mInvertVar; 00036 TFormula* mFunc; 00037 JetCorrectorParameters* mParameters; 00038 }; 00039 00040 #endif 00041 00042