00001
00002
00003
00004
00005 #ifndef HiggsZZ4lUtils_MuonResolutionAndMomentumScaleFactorsH
00006 #define HiggsZZ4lUtils_MuonResolutionAndMomentumScaleFactorsH
00007
00008
00009
00010
00011
00022
00023
00024
00025
00026
00027
00028 #include <vector>
00029 #include <string>
00030
00031
00032 #include "TLorentzVector.h"
00033
00034 namespace Analysis {
00035
00036 class MuonResolutionAndMomentumScaleFactors {
00037
00038 public:
00039
00040 MuonResolutionAndMomentumScaleFactors(const std::string & data_filename);
00043
00044
00045 double getResolutionScaleFactor(const TLorentzVector & p,
00046 int type);
00052
00053 double getResolutionScaleFactorError(const TLorentzVector & p,
00054 int type);
00060
00061 double getMomentumScaleFactor(const TLorentzVector & p,
00062 int type);
00069
00070 double getMomentumScaleFactorError(const TLorentzVector & p,
00071 int type);
00077
00078 private:
00079 std::vector<double> m_eta_min, m_eta_max;
00080
00081 std::vector<double> m_res_SF_CB, m_res_SF_CB_err;
00082 std::vector<double> m_mom_SF_CB, m_mom_SF_CB_err;
00083
00084 std::vector<double> m_res_SF_ID, m_res_SF_ID_err;
00085 std::vector<double> m_mom_SF_ID, m_mom_SF_ID_err;
00086
00087 std::vector<double> m_res_SF_SA, m_res_SF_SA_err;
00088 std::vector<double> m_mom_SF_SA, m_mom_SF_SA_err;
00089
00090 unsigned int getEtaBin(const TLorentzVector & p);
00091
00092 };
00093
00094 }
00095
00096 #endif
00097