00001 #ifndef DQM_RPCMonitorClient_RPCMonitorLinkSynchro_H 00002 #define DQM_RPCMonitorClient_RPCMonitorLinkSynchro_H 00003 00007 #include "FWCore/Framework/interface/EDAnalyzer.h" 00008 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00009 00010 #include "FWCore/Framework/interface/ESWatcher.h" 00011 #include "CondFormats/DataRecord/interface/RPCEMapRcd.h" 00012 00013 #include "DQM/RPCMonitorClient/interface/RPCLinkSynchroStat.h" 00014 00015 class MonitorElement; 00016 #include "TObjArray.h" 00017 namespace edm { class Event; class EventSetup; class Run;} 00018 00019 00020 class RPCMonitorLinkSynchro : public edm::EDAnalyzer { 00021 public: 00022 explicit RPCMonitorLinkSynchro( const edm::ParameterSet& cfg); 00023 virtual ~RPCMonitorLinkSynchro(); 00024 virtual void beginJob(); 00025 virtual void beginRun(const edm::Run&, const edm::EventSetup&); 00026 virtual void endLuminosityBlock(const edm::LuminosityBlock&,const edm::EventSetup&); 00027 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00028 virtual const RPCRawSynchro::ProdItem & select(const RPCRawSynchro::ProdItem &v, const edm::Event&, const edm::EventSetup&) { return v; }; 00029 virtual void endJob(); 00030 00031 protected: 00032 virtual TObjArray histos() const; 00033 edm::ParameterSet theConfig; 00034 edm::ESWatcher<RPCEMapRcd> theCablingWatcher; 00035 RPCLinkSynchroStat theSynchroStat; 00036 00037 MonitorElement* me_delaySummary; 00038 MonitorElement* me_delaySpread; 00039 MonitorElement* me_topOccup; 00040 MonitorElement* me_topSpread; 00041 MonitorElement* me_notComplete[3]; 00042 00043 }; 00044 00045 #endif 00046 00047