00001 #ifndef RPCMonitorEfficiency_h 00002 #define RPCMonitorEfficiency_h 00003 00015 #include <FWCore/Framework/interface/Frameworkfwd.h> 00016 #include <FWCore/Framework/interface/EDAnalyzer.h> 00017 #include <FWCore/Framework/interface/Event.h> 00018 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00019 #include "FWCore/ServiceRegistry/interface/Service.h" 00020 00021 #include "DQMServices/Core/interface/DQMStore.h" 00022 #include "DQMServices/Core/interface/MonitorElement.h" 00023 #include<string> 00024 #include<map> 00025 #include<fstream> 00026 00027 class RPCDetId; 00028 class TFile; 00029 class TH1F; 00030 class TFile; 00031 class TCanvas; 00032 class TH2F; 00033 00034 class RPCMonitorEfficiency : public edm::EDAnalyzer { 00035 public: 00036 00038 explicit RPCMonitorEfficiency( const edm::ParameterSet& ); 00039 00041 ~RPCMonitorEfficiency(); 00042 00043 //Operations 00044 virtual void analyze( const edm::Event&, const edm::EventSetup& ); 00045 // virtual void beginJob(const edm::EventSetup &); 00046 virtual void endJob(void); 00047 00048 std::map<std::string, MonitorElement*> bookDetUnitMEEff(RPCDetId & detId); 00049 00050 00051 private: 00052 std::string nameInLog; 00053 bool EffSaveRootFile; 00054 int EffSaveRootFileEventsInterval; 00055 std::string EffRootFileName; 00056 00058 00059 DQMStore * dbe; 00060 MonitorElement * h1; 00061 00062 bool debug; 00063 std::string theRecHits4DLabel; 00064 std::string digiLabel; 00065 std::map<uint32_t, std::map<std::string, MonitorElement*> > meCollection; 00066 00067 TH1F *hPositionX; 00068 std::vector<uint32_t> _idList; 00069 00070 std::vector<std::map<RPCDetId, int> > counter; 00071 std::vector<int> totalcounter; 00072 std::ofstream ofrej; 00073 00074 }; 00075 00076 #endif