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