File indexing completed on 2024-04-06 12:09:13
0001
0002
0003
0004
0005
0006 #ifndef L1ScalersCLIENT_H
0007 #define L1ScalersCLIENT_H
0008
0009 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0010 #include "FWCore/Framework/interface/Frameworkfwd.h"
0011
0012 #include "DQMServices/Core/interface/DQMStore.h"
0013
0014 #include "FWCore/Utilities/interface/InputTag.h"
0015
0016
0017
0018 #define MAX_ALGOS 140
0019 #define MAX_TT 80
0020 #define MAX_LUMI_SEG 2000
0021
0022 class L1ScalersClient
0023 : public edm::one::EDAnalyzer<edm::one::SharedResources, edm::one::WatchRuns, edm::one::WatchLuminosityBlocks> {
0024 public:
0025 typedef dqm::legacy::MonitorElement MonitorElement;
0026 typedef dqm::legacy::DQMStore DQMStore;
0027
0028
0029 L1ScalersClient(const edm::ParameterSet &ps);
0030
0031
0032 void beginJob(void) override;
0033
0034
0035 void beginRun(const edm::Run &run, const edm::EventSetup &c) override;
0036
0037
0038 void endRun(const edm::Run &run, const edm::EventSetup &c) override;
0039
0040
0041
0042 void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c) override {}
0043 void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c) override;
0044
0045
0046 void analyze(const edm::Event &e, const edm::EventSetup &c) override;
0047
0048 private:
0049 DQMStore *dbe_;
0050
0051 int nev_;
0052 int nLumi_;
0053 int currentRun_;
0054
0055 float totAlgoPrevCount;
0056 float totTtPrevCount;
0057
0058 unsigned long int l1AlgoScalerCounters_[MAX_ALGOS];
0059 MonitorElement *l1AlgoCurrentRate_;
0060 MonitorElement *l1AlgoRateHistories_[MAX_ALGOS];
0061 MonitorElement *l1AlgoCurrentRatePerAlgo_[MAX_ALGOS];
0062 MonitorElement *totalAlgoRate_;
0063
0064 unsigned long int l1TechTrigScalerCounters_[MAX_TT];
0065 MonitorElement *l1TechTrigCurrentRate_;
0066 MonitorElement *l1TechTrigRateHistories_[MAX_TT];
0067 MonitorElement *l1TechTrigCurrentRatePerAlgo_[MAX_TT];
0068 MonitorElement *totalTtRate_;
0069
0070
0071 MonitorElement *selected_;
0072 MonitorElement *bxSelected_;
0073 std::vector<int> algoSelected_;
0074 std::vector<int> techSelected_;
0075 std::string folderName_;
0076 int numSelected_;
0077
0078 int currentLumiBlockNumber_;
0079 bool first_algo;
0080 bool first_tt;
0081 };
0082
0083 #endif