File indexing completed on 2024-04-06 12:09:50
0001 #ifndef DQMOFFLINE_TRIGGER_EGHLTOFFLINESUMMARYCLIENT
0002 #define DQMOFFLINE_TRIGGER_EGHLTOFFLINESUMMARYCLIENT
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #include "FWCore/Framework/interface/Frameworkfwd.h"
0024 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0025 #include "DQMServices/Core/interface/DQMStore.h"
0026
0027 #include <vector>
0028 #include <string>
0029
0030 class EgHLTOfflineSummaryClient
0031 : public edm::one::EDAnalyzer<edm::one::SharedResources, edm::one::WatchRuns, edm::one::WatchLuminosityBlocks> {
0032 public:
0033 typedef dqm::legacy::MonitorElement MonitorElement;
0034 typedef dqm::legacy::DQMStore DQMStore;
0035
0036 struct SumHistBinData {
0037 std::string name;
0038 std::vector<std::string> qTestPatterns;
0039 };
0040
0041 private:
0042 DQMStore* dbe_;
0043 std::string dirName_;
0044 std::string egHLTSumHistName_;
0045
0046 std::vector<std::string> eleHLTFilterNames_;
0047 std::vector<std::string> phoHLTFilterNames_;
0048 std::vector<std::string> egHLTFiltersToMon_;
0049
0050 std::vector<std::string> eleHLTFilterNamesForSumBit_;
0051 std::vector<std::string> phoHLTFilterNamesForSumBit_;
0052
0053
0054 std::vector<SumHistBinData> egHLTSumHistXBins_;
0055 std::vector<SumHistBinData> eleQTestsForSumBit_;
0056 std::vector<SumHistBinData> phoQTestsForSumBit_;
0057
0058 bool runClientEndLumiBlock_;
0059 bool runClientEndRun_;
0060 bool runClientEndJob_;
0061
0062 std::vector<std::string> egHLTFiltersToMonPaths_;
0063 bool usePathNames_;
0064
0065 bool filterInactiveTriggers_;
0066 bool isSetup_;
0067 std::string hltTag_;
0068
0069
0070 EgHLTOfflineSummaryClient(const EgHLTOfflineSummaryClient& rhs) {}
0071 EgHLTOfflineSummaryClient& operator=(const EgHLTOfflineSummaryClient& rhs) { return *this; }
0072
0073 public:
0074 explicit EgHLTOfflineSummaryClient(const edm::ParameterSet&);
0075 ~EgHLTOfflineSummaryClient() override;
0076
0077 void beginJob() override;
0078 void analyze(const edm::Event&, const edm::EventSetup&) override;
0079 void endJob() override;
0080 void beginRun(const edm::Run& run, const edm::EventSetup& c) override;
0081 void endRun(const edm::Run& run, const edm::EventSetup& c) override;
0082
0083 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& context) override {}
0084
0085 void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& c) override;
0086
0087 private:
0088 void runClient_();
0089
0090 int getQTestBinData_(const edm::ParameterSet&);
0091
0092
0093 void splitStringsToPairs_(const std::vector<std::string>& stringsToSplit,
0094 std::vector<std::pair<std::string, std::string> >& splitStrings);
0095
0096 MonitorElement* getEgHLTSumHist_();
0097
0098
0099
0100 void getEgHLTFiltersToMon_(std::vector<std::string>& filterNames) const;
0101
0102
0103
0104 int getQTestResults_(const std::string& filterName, const std::vector<std::string>& pattern) const;
0105
0106 static void fillQTestData_(const edm::ParameterSet& iConfig,
0107 std::vector<SumHistBinData>& qTests,
0108 const std::string& label);
0109 };
0110
0111 #endif