//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // 15.06.2011, MCP working group //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #ifndef StacoTightScaleEffFactorH #define StacoTightScaleEffFactorH ///////////////////////////////////// // CLASS StacoTightScaleEffFactors // ///////////////////////////////////// /// \class StacoTightScaleEffFactors /// /// This class provides efficiency scale factors and their uncertainties /// for physics analyses using STACO tight muons. /// /// For 2011 Tier0 data. /// /// \date 27.04.2011 /// /// \author Oliver.Kortner@CERN.CH ////////////////// // HEADER FILES // ////////////////// // ROOT // #include "TLorentzVector.h" // STL // #include // Base class // #include "MuonEfficiencyScaleFactor.h" // auxiliary class // #include "EtaPhiBinning.h" namespace Analysis { class StacoTightScaleEffFactors : public MuonEfficiencyScaleFactor { public: //! default constructor StacoTightScaleEffFactors(void); //! destructor virtual ~StacoTightScaleEffFactors() {} // Methods // double scaleFactor(const TLorentzVector & tlv) const; ///< Get the efficiency scale factor for the given ///< fourmomentum. double scaleFactorUncertainty(const TLorentzVector & tlv) const; ///< Get the uncertainty of the efficiency scale ///< factor for the given fourmomentum. double scaleFactor(const TLorentzVector & tlv, const unsigned int & run_nb) const; ///< Get the efficiency scale factor for the given ///< fourmomentum and the given run number. double scaleFactorUncertainty(const TLorentzVector & tlv, const unsigned int & run_nb) const; ///< Get the uncertainty of the efficiency scale ///< factor for the given fourmomentum and the given run number.. double scaleFactorSystematicUncertainty(const TLorentzVector & tlv) const; ///< Get the systematic uncertainty of the scale factor. The momentum ///< is assumed to be given in MeV. private: std::vector m_scale_factor_A; std::vector m_scale_factor_uncertainty_A; std::vector m_scale_factor_C; std::vector m_scale_factor_uncertainty_C; std::vector m_scale_factor_A_periodB; std::vector m_scale_factor_uncertainty_A_periodB; std::vector m_scale_factor_C_periodB; std::vector m_scale_factor_uncertainty_C_periodB; unsigned m_last_run_periodB; EtaPhiBinning m_eta_phi_binning; // auxiliary binning class }; } #endif