File indexing completed on 2023-03-17 10:58:27
0001 #ifndef DQMOFFLINE_TRIGGER_EGHLTOFFLINECLIENT
0002 #define DQMOFFLINE_TRIGGER_EGHLTOFFLINECLIENT
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #include "FWCore/Framework/interface/Frameworkfwd.h"
0028 #include "DQMServices/Core/interface/DQMEDHarvester.h"
0029 #include "DQMServices/Core/interface/DQMStore.h"
0030
0031 #include <vector>
0032 #include <string>
0033
0034 class EgHLTOfflineClient : public DQMEDHarvester {
0035 private:
0036
0037 std::string dirName_;
0038
0039 std::vector<std::string> eleHLTFilterNames_;
0040 std::vector<std::string> eleHLTFilterNames2Leg_;
0041 std::vector<std::string> eleTightLooseTrigNames_;
0042 std::vector<std::string> phoHLTFilterNames_;
0043 std::vector<std::string> phoHLTFilterNames2Leg_;
0044 std::vector<std::string> phoTightLooseTrigNames_;
0045
0046 std::vector<std::string> eleN1EffVars_;
0047 std::vector<std::string> eleSingleEffVars_;
0048 std::vector<std::string> eleEffTags_;
0049
0050 std::vector<std::string> phoN1EffVars_;
0051 std::vector<std::string> phoSingleEffVars_;
0052 std::vector<std::string> phoEffTags_;
0053
0054 std::vector<std::string> eleTrigTPEffVsVars_;
0055 std::vector<std::string> phoTrigTPEffVsVars_;
0056 std::vector<std::string> eleLooseTightTrigEffVsVars_;
0057 std::vector<std::string> phoLooseTightTrigEffVsVars_;
0058
0059 std::vector<std::string> eleHLTvOfflineVars_;
0060 std::vector<std::string> phoHLTvOfflineVars_;
0061
0062 bool runClientEndLumiBlock_;
0063 bool runClientEndRun_;
0064 bool runClientEndJob_;
0065
0066 bool filterInactiveTriggers_;
0067 bool isSetup_;
0068 std::string hltTag_;
0069
0070 public:
0071 explicit EgHLTOfflineClient(const edm::ParameterSet&);
0072 ~EgHLTOfflineClient() override;
0073
0074
0075
0076
0077 void beginRun(const edm::Run& run, const edm::EventSetup& c) override;
0078
0079
0080
0081
0082
0083 void dqmEndJob(DQMStore::IBooker&, DQMStore::IGetter&) override;
0084 void dqmEndLuminosityBlock(DQMStore::IBooker&,
0085 DQMStore::IGetter&,
0086 edm::LuminosityBlock const&,
0087 edm::EventSetup const&) override;
0088
0089
0090 void createN1EffHists(const std::string& filterName,
0091 const std::string& baseName,
0092 const std::string& region,
0093 const std::vector<std::string>& varNames,
0094 DQMStore::IBooker&,
0095 DQMStore::IGetter&);
0096
0097 void createSingleEffHists(const std::string& filterName,
0098 const std::string& baseName,
0099 const std::string& region,
0100 const std::vector<std::string>& varNames,
0101 DQMStore::IBooker&,
0102 DQMStore::IGetter&);
0103
0104 void createLooseTightTrigEff(const std::vector<std::string>& tightLooseTrigNames,
0105 const std::string& region,
0106 const std::vector<std::string>& vsVarNames,
0107 const std::string& objName,
0108 DQMStore::IBooker&,
0109 DQMStore::IGetter&);
0110
0111 void createTrigTagProbeEffHists(const std::string& filterName,
0112 const std::string& region,
0113 const std::vector<std::string>& vsVarNames,
0114 const std::string& objName,
0115 DQMStore::IBooker&,
0116 DQMStore::IGetter&);
0117
0118 void createTrigTagProbeEffHistsNewAlgo(const std::string& filterName,
0119 const std::string& region,
0120 const std::vector<std::string>& vsVarNames,
0121 const std::string& objName,
0122 DQMStore::IBooker&,
0123 DQMStore::IGetter&);
0124
0125 void createTrigTagProbeEffHists2Leg(const std::string& filterNameLeg1,
0126 const std::string& filterNameLeg2,
0127 const std::string& region,
0128 const std::vector<std::string>& vsVarNames,
0129 const std::string& objName,
0130 DQMStore::IBooker&,
0131 DQMStore::IGetter&);
0132
0133 void createHLTvsOfflineHists(const std::string& filterName,
0134 const std::string& baseName,
0135 const std::string& region,
0136 const std::vector<std::string>& varNames,
0137 DQMStore::IBooker&,
0138 DQMStore::IGetter&);
0139
0140 MonitorElement* FillHLTvsOfflineHist(const std::string& filter,
0141 const std::string& name,
0142 const std::string& title,
0143 const MonitorElement* numer,
0144 const MonitorElement* denom,
0145 DQMStore::IBooker&,
0146 DQMStore::IGetter&);
0147
0148 MonitorElement* makeEffMonElemFromPassAndAll(const std::string& filterName,
0149 const std::string& name,
0150 const std::string& title,
0151 const MonitorElement* pass,
0152 const MonitorElement* all,
0153 DQMStore::IBooker&,
0154 DQMStore::IGetter&);
0155
0156 MonitorElement* makeEffMonElemFromPassAndFail(const std::string& filterName,
0157 const std::string& name,
0158 const std::string& title,
0159 const MonitorElement* pass,
0160 const MonitorElement* fail,
0161 DQMStore::IBooker&,
0162 DQMStore::IGetter&);
0163
0164 MonitorElement* makeEffMonElemFromPassAndFailAndTagTag(const std::string& filter,
0165 const std::string& name,
0166 const std::string& title,
0167 const MonitorElement* pass,
0168 const MonitorElement* fail,
0169 const MonitorElement* tagtag,
0170 DQMStore::IBooker&,
0171 DQMStore::IGetter&);
0172
0173 MonitorElement* makeEffMonElem2Leg(const std::string& filter,
0174 const std::string& name,
0175 const std::string& title,
0176 const MonitorElement* Leg1Eff,
0177 const MonitorElement* Leg2NotLeg1Source,
0178 const MonitorElement* all,
0179 DQMStore::IBooker&,
0180 DQMStore::IGetter&);
0181
0182 private:
0183 void runClient_(DQMStore::IBooker&, DQMStore::IGetter&);
0184 };
0185
0186 #endif