File indexing completed on 2024-04-06 12:08:13
0001 #ifndef DQM_RPCMonitorDigi_RPCMonitorLinkSynchro_H
0002 #define DQM_RPCMonitorDigi_RPCMonitorLinkSynchro_H
0003
0004
0005
0006
0007 #include "DQMServices/Core/interface/DQMOneEDAnalyzer.h"
0008 #include "DQMServices/Core/interface/DQMStore.h"
0009
0010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0011 #include "FWCore/Utilities/interface/InputTag.h"
0012 #include "FWCore/Framework/interface/ESWatcher.h"
0013 #include "FWCore/Framework/interface/Event.h"
0014 #include "FWCore/Framework/interface/Run.h"
0015 #include "CondFormats/RPCObjects/interface/RPCEMap.h"
0016 #include "CondFormats/DataRecord/interface/RPCEMapRcd.h"
0017 #include "DQM/RPCMonitorDigi/interface/RPCLinkSynchroStat.h"
0018
0019 class RPCMonitorLinkSynchro : public DQMOneEDAnalyzer<edm::one::WatchLuminosityBlocks> {
0020 public:
0021 explicit RPCMonitorLinkSynchro(const edm::ParameterSet& cfg);
0022 ~RPCMonitorLinkSynchro() override = default;
0023
0024 void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0025 void dqmBeginRun(const edm::Run& r, const edm::EventSetup& c) override;
0026 void beginLuminosityBlock(const edm::LuminosityBlock&, const edm::EventSetup&) final {}
0027 void endLuminosityBlock(const edm::LuminosityBlock&, const edm::EventSetup&) override;
0028 void analyze(const edm::Event&, const edm::EventSetup&) override;
0029 virtual const RPCRawSynchro::ProdItem& select(const RPCRawSynchro::ProdItem& v,
0030 const edm::Event&,
0031 const edm::EventSetup&) {
0032 return v;
0033 };
0034
0035 protected:
0036 edm::ParameterSet theConfig;
0037 edm::ESWatcher<RPCEMapRcd> theCablingWatcher;
0038 edm::ESGetToken<RPCEMap, RPCEMapRcd> rpcEMapToken_;
0039 RPCLinkSynchroStat theSynchroStat;
0040
0041 MonitorElement* me_delaySummary;
0042 MonitorElement* me_delaySpread;
0043 MonitorElement* me_topOccup;
0044 MonitorElement* me_topSpread;
0045 MonitorElement* me_notComplete[3];
0046
0047 private:
0048 edm::EDGetTokenT<RPCRawSynchro::ProdItem> rpcRawSynchroProdItemTag_;
0049 };
0050
0051 #endif