00001 #ifndef BDTSF_H
00002 #define BDTSF_H
00003
00004 #include "CommonSF.h"
00005
00006 namespace TauCorrUncert {
00007
00008 typedef enum{
00009 TOTAL,
00010 QCD,
00011 WJETS,
00012 TES,
00013 REMAIN
00014 } SYS;
00015
00016 class BDTSF : public CommonSF
00017 {
00018
00019 public:
00020
00021 BDTSF(const std::string& sharepath,
00022 bool debug=false);
00023
00024 ~BDTSF(){}
00025
00026 double getBDTbinnedSF(int prongness,
00027 const double& BDT);
00028 double getBDTbinnedSF(int prongness,
00029 const double& eta,
00030 const double& BDT);
00031
00032 double getBDTbinnedSFSysUnc(int prongness,
00033 const double& BDT,
00034 const std::string& direction,
00035 SYS sys = TOTAL);
00036 double getBDTbinnedSFSysUnc(int prongness,
00037 const double& eta,
00038 const double& BDT,
00039 const std::string& direction,
00040 SYS sys = TOTAL);
00041
00042 double getBDTbinnedSFStatUnc(int prongness,
00043 const double& BDT,
00044 const std::string& direction);
00045 double getBDTbinnedSFStatUnc(int prongness,
00046 const double& eta,
00047 const double& BDT,
00048 const std::string& direction);
00049
00050 private:
00051 std::string ConvertSystematicToString(SYS sys);
00052 std::string ConvertDirectionToString(const std::string& direction);
00053 std::string ConvertEtaToString(const float& fEta);
00054 float GetBDTbinnedSFValue(const std::string& sWorkingPoint, const float& fBDT);
00055 ClassDef(BDTSF, 1)
00056 };
00057 }
00058
00059 #endif // BDTSF_H