00001
00002 #ifndef TRIG_TESTTRIGSF_H
00003 #define TRIG_TESTTRIGSF_H
00004
00005
00006
00007
00008
00009
00010 #include <set>
00011
00012
00013 #include "TStopwatch.h"
00014
00015
00016 #include "GaudiKernel/ITHistSvc.h"
00017 #include "GaudiKernel/ToolHandle.h"
00018
00019
00020 #include "AthenaBaseComps/AthAlgorithm.h"
00021
00022
00023 #include "MuonEfficiencyCorrections/IMuonTriggerScaleFactors.h"
00024
00025 class TH1;
00026 class TH2;
00027
00028 namespace Trig
00029 {
00030 class Object;
00031
00032 class TestTrigSF : virtual public AthAlgorithm
00033 {
00034 public:
00035
00036 TestTrigSF(const std::string& name, ISvcLocator* pSvcLocator);
00037 virtual ~TestTrigSF() {}
00038
00039 StatusCode initialize();
00040 StatusCode execute();
00041 StatusCode finalize();
00042
00043 private:
00044
00045 typedef std::map<std::string, std::string> L1Map;
00046
00047 private:
00048
00049 void RegHist(TH1 *h, const std::string &key);
00050
00051 void CheckSF(const xAOD::Muon *ptr);
00052
00053 void CheckSyst(const xAOD::Muon *ptr, const std::string &syst_name, int step, TH2 *h);
00054
00055 void FillHist(TH2 *h, const xAOD::Muon *ptr, double val);
00056
00057 private:
00058
00059
00060 std::string m_outputStream;
00061 std::string m_inputContainerName;
00062 std::string m_triggerName;
00063
00064
00065 ServiceHandle<ITHistSvc> m_histSvc;
00066 ToolHandle<CP::IMuonTriggerScaleFactors> m_trigEff;
00067
00068
00069 TStopwatch m_timerEvent;
00070 TStopwatch m_timerTotal;
00071
00072 int m_countEvent;
00073
00074 L1Map m_mapL1;
00075
00076 TH2 *m_barrel_sf;
00077 TH2 *m_endcap_sf;
00078
00079 TH2 *m_barrel_sf_err_stat_up;
00080 TH2 *m_barrel_sf_err_stat_dw;
00081
00082 TH2 *m_endcap_sf_err_stat_up;
00083 TH2 *m_endcap_sf_err_stat_dw;
00084
00085 TH2 *m_barrel_sf_err_syst_up;
00086 TH2 *m_barrel_sf_err_syst_dw;
00087
00088 TH2 *m_endcap_sf_err_syst_up;
00089 TH2 *m_endcap_sf_err_syst_dw;
00090 };
00091 }
00092
00093 #endif