00001 /* 00002 * ===================================================================================== 00003 * 00004 * Filename: CSCMonitorModuleCmn.h 00005 * 00006 * Description: Updated CSC Monitor module 00007 * 00008 * Version: 1.0 00009 * Created: 11/13/2008 01:36:45 PM 00010 * Revision: none 00011 * Compiler: gcc 00012 * 00013 * Author: Valdas Rapsevicius (VR), valdas.rapsevicius@cern.ch 00014 * Company: CERN, CH 00015 * 00016 * ===================================================================================== 00017 */ 00018 00019 00020 #ifndef CSCMonitorModuleCmn_H 00021 #define CSCMonitorModuleCmn_H 00022 00024 #include <iostream> 00025 #include <cstring> 00026 #include <vector> 00027 #include <map> 00028 #include <set> 00029 00031 #include <FWCore/Framework/interface/EDAnalyzer.h> 00032 #include <FWCore/ParameterSet/interface/ParameterSet.h> 00033 #include <DQMServices/Core/interface/DQMStore.h> 00034 #include <DQMServices/Core/interface/MonitorElement.h> 00035 #include <FWCore/ServiceRegistry/interface/Service.h> 00036 #include <FWCore/Framework/interface/ESHandle.h> 00037 #include <FWCore/Framework/interface/EventSetup.h> 00038 00040 #include "DataFormats/MuonDetId/interface/CSCDetId.h" 00041 #include "CondFormats/CSCObjects/interface/CSCCrateMap.h" 00042 #include "CondFormats/DataRecord/interface/CSCCrateMapRcd.h" 00043 00045 #include "DQM/CSCMonitorModule/interface/CSCDQM_Logger.h" 00046 #include "DQM/CSCMonitorModule/interface/CSCDQM_Configuration.h" 00047 #include "DQM/CSCMonitorModule/interface/CSCDQM_Dispatcher.h" 00048 00050 #include "DQM/CSCMonitorModule/interface/CSCMonitorObject.h" 00051 00053 static const char INPUT_TAG_LABEL[] = "source"; 00054 static const char DIR_EVENTINFO[] = "CSC/EventInfo/"; 00055 00060 class CSCMonitorModuleCmn: public edm::EDAnalyzer, public cscdqm::MonitorObjectProvider { 00061 00063 // Global stuff 00065 00066 public: 00067 00068 CSCMonitorModuleCmn(const edm::ParameterSet& ps); 00069 virtual ~CSCMonitorModuleCmn(); 00070 00071 private: 00072 00073 cscdqm::Configuration config; 00074 cscdqm::Dispatcher dispatcher; 00075 DQMStore *dbe; 00076 edm::InputTag inputTag; 00077 00079 const CSCCrateMap* pcrate; 00080 00082 // MonitorObjectProvider Implementation 00084 00085 public: 00086 00087 const CSCDetId getCSCDetId(const unsigned int crateId, const unsigned int dmbId) const { 00088 return pcrate->detId(crateId, dmbId, 0, 0); 00089 } 00090 cscdqm::MonitorObject *bookMonitorObject (const cscdqm::HistoBookRequest& p_req); 00091 00093 // EDAnalyzer Implementation 00095 00096 protected: 00097 00098 void beginJob(const edm::EventSetup& c); 00099 void beginRun(const edm::Run& r, const edm::EventSetup& c); 00100 void setup(); 00101 void analyze(const edm::Event& e, const edm::EventSetup& c) ; 00102 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& context) ; 00103 void endRun(const edm::Run& r, const edm::EventSetup& c); 00104 void endJob(); 00105 00106 }; 00107 00108 #endif