CMS 3D CMS Logo

EgHLTOfflineClient.h
Go to the documentation of this file.
1 #ifndef DQMOFFLINE_TRIGGER_EGHLTOFFLINECLIENT
2 #define DQMOFFLINE_TRIGGER_EGHLTOFFLINECLIENT
3 
4 // -*- C++ -*-
5 //
6 // Package: EgammaHLTOfflineClient
7 // Class: EgammaHLTOffline
8 //
9 /*
10  Description: This is a DQM client meant to plot high-level HLT trigger
11  quantities as stored in the HLT results object TriggerResults for the Egamma triggers
12 
13  Notes:
14  Currently I would like to plot simple histograms of three seperate types of variables
15  1) global event quantities: eg nr of electrons
16  2) di-object quanities: transverse mass, di-electron mass
17  3) single object kinematic and id variables: eg et,eta,isolation
18 
19 */
20 //
21 // Original Author: Sam Harper
22 // Created: June 2008
23 //
24 //
25 //
26 
30 
31 #include <vector>
32 #include <string>
33 
35 private:
36  // DQMStore* dbe_; //dbe seems to be the standard name for this, I dont know why. We of course dont own it
38 
39  std::vector<std::string> eleHLTFilterNames_; //names of the filters monitored using electrons to make plots for
40  std::vector<std::string> eleHLTFilterNames2Leg_;
41  std::vector<std::string> eleTightLooseTrigNames_;
42  std::vector<std::string> phoHLTFilterNames_; //names of the filters monitored using photons to make plots for
43  std::vector<std::string> phoHLTFilterNames2Leg_;
44  std::vector<std::string> phoTightLooseTrigNames_;
45 
46  std::vector<std::string> eleN1EffVars_;
47  std::vector<std::string> eleSingleEffVars_;
48  std::vector<std::string> eleEffTags_;
49 
50  std::vector<std::string> phoN1EffVars_;
51  std::vector<std::string> phoSingleEffVars_;
52  std::vector<std::string> phoEffTags_;
53 
54  std::vector<std::string> eleTrigTPEffVsVars_;
55  std::vector<std::string> phoTrigTPEffVsVars_;
56  std::vector<std::string> eleLooseTightTrigEffVsVars_;
57  std::vector<std::string> phoLooseTightTrigEffVsVars_;
58 
59  std::vector<std::string> eleHLTvOfflineVars_;
60  std::vector<std::string> phoHLTvOfflineVars_;
61 
65 
67  bool isSetup_;
69 
70  //disabling copying/assignment (in theory this is copyable but lets not just in case)
72  EgHLTOfflineClient& operator=(const EgHLTOfflineClient& rhs) { return *this; }
73 
74 public:
75  explicit EgHLTOfflineClient(const edm::ParameterSet&);
76  ~EgHLTOfflineClient() override;
77 
78  // virtual void beginJob();
79  // virtual void analyze(const edm::Event&, const edm::EventSetup&); //dummy
80  // virtual void endJob();
81  void beginRun(const edm::Run& run, const edm::EventSetup& c) override;
82  // virtual void endRun(const edm::Run& run, const edm::EventSetup& c);
83 
84  // virtual void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg,const edm::EventSetup& context){}
85  // DQM Client Diagnostic
86  // virtual void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg,const edm::EventSetup& c);
87  void dqmEndJob(DQMStore::IBooker&, DQMStore::IGetter&) override; //performed in the endJob
90  edm::LuminosityBlock const&,
91  edm::EventSetup const&) override; //performed in the endLumi
92 
93  //at somepoint these all may migrate to a helper class
95  const std::string& baseName,
96  const std::string& region,
97  const std::vector<std::string>& varNames,
100 
101  void createSingleEffHists(const std::string& filterName,
102  const std::string& baseName,
103  const std::string& region,
104  const std::vector<std::string>& varNames,
107 
108  void createLooseTightTrigEff(const std::vector<std::string>& tightLooseTrigNames,
109  const std::string& region,
110  const std::vector<std::string>& vsVarNames,
111  const std::string& objName,
114 
115  void createTrigTagProbeEffHists(const std::string& filterName,
116  const std::string& region,
117  const std::vector<std::string>& vsVarNames,
118  const std::string& objName,
121 
122  void createTrigTagProbeEffHistsNewAlgo(const std::string& filterName,
123  const std::string& region,
124  const std::vector<std::string>& vsVarNames,
125  const std::string& objName,
128 
129  void createTrigTagProbeEffHists2Leg(const std::string& filterNameLeg1,
130  const std::string& filterNameLeg2,
131  const std::string& region,
132  const std::vector<std::string>& vsVarNames,
133  const std::string& objName,
136 
137  void createHLTvsOfflineHists(const std::string& filterName,
138  const std::string& baseName,
139  const std::string& region,
140  const std::vector<std::string>& varNames,
143 
145  const std::string& name,
146  const std::string& title,
147  const MonitorElement* numer,
148  const MonitorElement* denom,
151 
153  const std::string& name,
154  const std::string& title,
155  const MonitorElement* pass,
156  const MonitorElement* all,
159 
161  const std::string& name,
162  const std::string& title,
163  const MonitorElement* pass,
164  const MonitorElement* fail,
167 
169  const std::string& name,
170  const std::string& title,
171  const MonitorElement* pass,
172  const MonitorElement* fail,
173  const MonitorElement* tagtag,
176 
178  const std::string& name,
179  const std::string& title,
180  const MonitorElement* Leg1Eff,
181  const MonitorElement* Leg2NotLeg1Source,
182  const MonitorElement* all,
185 
186 private:
187  void runClient_(DQMStore::IBooker&, DQMStore::IGetter&); //master function which runs the client
188 };
189 
190 #endif
void createTrigTagProbeEffHists(const std::string &filterName, const std::string &region, const std::vector< std::string > &vsVarNames, const std::string &objName, DQMStore::IBooker &, DQMStore::IGetter &)
void createTrigTagProbeEffHistsNewAlgo(const std::string &filterName, const std::string &region, const std::vector< std::string > &vsVarNames, const std::string &objName, DQMStore::IBooker &, DQMStore::IGetter &)
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
MonitorElement * makeEffMonElemFromPassAndFailAndTagTag(const std::string &filter, const std::string &name, const std::string &title, const MonitorElement *pass, const MonitorElement *fail, const MonitorElement *tagtag, DQMStore::IBooker &, DQMStore::IGetter &)
std::vector< std::string > eleHLTFilterNames_
std::vector< std::string > phoHLTFilterNames2Leg_
std::vector< std::string > phoLooseTightTrigEffVsVars_
EgHLTOfflineClient(const EgHLTOfflineClient &rhs)
std::vector< std::string > phoTrigTPEffVsVars_
std::vector< std::string > eleTightLooseTrigNames_
void dqmEndLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
std::vector< std::string > phoN1EffVars_
std::vector< std::string > eleHLTvOfflineVars_
std::vector< std::string > eleTrigTPEffVsVars_
void createSingleEffHists(const std::string &filterName, const std::string &baseName, const std::string &region, const std::vector< std::string > &varNames, DQMStore::IBooker &, DQMStore::IGetter &)
void createLooseTightTrigEff(const std::vector< std::string > &tightLooseTrigNames, const std::string &region, const std::vector< std::string > &vsVarNames, const std::string &objName, DQMStore::IBooker &, DQMStore::IGetter &)
EgHLTOfflineClient & operator=(const EgHLTOfflineClient &rhs)
std::vector< std::string > phoEffTags_
MonitorElement * makeEffMonElemFromPassAndFail(const std::string &filterName, const std::string &name, const std::string &title, const MonitorElement *pass, const MonitorElement *fail, DQMStore::IBooker &, DQMStore::IGetter &)
std::vector< std::string > phoSingleEffVars_
void createHLTvsOfflineHists(const std::string &filterName, const std::string &baseName, const std::string &region, const std::vector< std::string > &varNames, DQMStore::IBooker &, DQMStore::IGetter &)
MonitorElement * makeEffMonElemFromPassAndAll(const std::string &filterName, const std::string &name, const std::string &title, const MonitorElement *pass, const MonitorElement *all, DQMStore::IBooker &, DQMStore::IGetter &)
char const * varNames[]
void runClient_(DQMStore::IBooker &, DQMStore::IGetter &)
void createTrigTagProbeEffHists2Leg(const std::string &filterNameLeg1, const std::string &filterNameLeg2, const std::string &region, const std::vector< std::string > &vsVarNames, const std::string &objName, DQMStore::IBooker &, DQMStore::IGetter &)
std::vector< std::string > eleN1EffVars_
std::vector< std::string > phoTightLooseTrigNames_
std::vector< std::string > phoHLTvOfflineVars_
std::vector< std::string > phoHLTFilterNames_
std::vector< std::string > eleLooseTightTrigEffVsVars_
MonitorElement * makeEffMonElem2Leg(const std::string &filter, const std::string &name, const std::string &title, const MonitorElement *Leg1Eff, const MonitorElement *Leg2NotLeg1Source, const MonitorElement *all, DQMStore::IBooker &, DQMStore::IGetter &)
void createN1EffHists(const std::string &filterName, const std::string &baseName, const std::string &region, const std::vector< std::string > &varNames, DQMStore::IBooker &, DQMStore::IGetter &)
std::vector< std::string > eleEffTags_
void beginRun(const edm::Run &run, const edm::EventSetup &c) override
MonitorElement * FillHLTvsOfflineHist(const std::string &filter, const std::string &name, const std::string &title, const MonitorElement *numer, const MonitorElement *denom, DQMStore::IBooker &, DQMStore::IGetter &)
Definition: Run.h:45
std::vector< std::string > eleHLTFilterNames2Leg_
~EgHLTOfflineClient() override
std::vector< std::string > eleSingleEffVars_