Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:08:13

0001 #ifndef DQM_RPCMonitorDigi_RPCMonitorLinkSynchro_H
0002 #define DQM_RPCMonitorDigi_RPCMonitorLinkSynchro_H
0003 
0004 /** \class RPCMonitorLinkSynchro
0005  ** Monitor and anlyse synchro counts () produced by R2D. 
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