File indexing completed on 2024-04-06 12:08:11
0001 #ifndef RPCDqmClient_H
0002 #define RPCDqmClient_H
0003
0004 #include "DQMServices/Core/interface/DQMStore.h"
0005 #include "DQMServices/Core/interface/DQMEDHarvester.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #include "DQM/RPCMonitorClient/interface/RPCClient.h"
0008
0009 #include "Geometry/RPCGeometry/interface/RPCGeometry.h"
0010 #include "Geometry/Records/interface/MuonGeometryRecord.h"
0011
0012 #include <string>
0013 #include <vector>
0014 #include <memory>
0015
0016 class RPCDqmClient : public DQMEDHarvester {
0017 public:
0018
0019 RPCDqmClient(const edm::ParameterSet &ps);
0020
0021
0022 ~RPCDqmClient() override = default;
0023
0024 protected:
0025 void beginJob() override;
0026 void dqmEndLuminosityBlock(DQMStore::IBooker &,
0027 DQMStore::IGetter &,
0028 edm::LuminosityBlock const &,
0029 edm::EventSetup const &) override;
0030 void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override;
0031
0032 void makeClientMap(const edm::ParameterSet ¶meters_);
0033 void getMonitorElements(DQMStore::IGetter &);
0034 void getRPCdetId(const edm::EventSetup &);
0035
0036 private:
0037 bool offlineDQM_;
0038 int prescaleGlobalFactor_, minimumEvents_, numLumBlock_;
0039 int numberOfDisks_, numberOfRings_;
0040
0041 bool useRollInfo_, enableDQMClients_;
0042 std::string prefixDir_;
0043 std::string globalFolder_;
0044 std::vector<std::string> clientList_;
0045 int lumiCounter_;
0046 MonitorElement *RPCEvents_;
0047 std::vector<RPCDetId> myDetIds_;
0048 std::vector<std::string> clientNames_, clientHisto_;
0049 std::vector<std::unique_ptr<RPCClient> > clientModules_;
0050
0051 std::vector<int> clientTag_;
0052
0053 edm::ESGetToken<RPCGeometry, MuonGeometryRecord> rpcGeomToken_;
0054 };
0055 #endif