CMS 3D CMS Logo

EfficiencyPlotter.cc
Go to the documentation of this file.
2 
3 // Framework
10 
14 
15 #include <iostream>
16 #include <cstdio>
17 #include <string>
18 #include <cmath>
19 #include "TF1.h"
20 #include "TH1F.h"
21 
22 using namespace edm;
23 using namespace std;
24 
25 //#define DEBUG
26 
28 #ifdef DEBUG
29  cout << "EfficiencyPlotter(): Constructor " << endl;
30 #endif
31  parameters = ps;
32 
33  etaBin = parameters.getParameter<int>("etaBin");
34  etaMin = parameters.getParameter<double>("etaMin");
35  etaMax = parameters.getParameter<double>("etaMax");
36 
37  phiBin = parameters.getParameter<int>("phiBin");
38  phiMin = parameters.getParameter<double>("phiMin");
39  phiMax = parameters.getParameter<double>("phiMax");
40 
41  ptBin = parameters.getParameter<int>("ptBin");
42  ptMin = parameters.getParameter<double>("ptMin");
43  ptMax = parameters.getParameter<double>("ptMax");
44 
45  vtxBin = parameters.getParameter<int>("vtxBin");
46  vtxMin = parameters.getParameter<double>("vtxMin");
47  vtxMax = parameters.getParameter<double>("vtxMax");
48 
49  ID_ = parameters.getParameter<string>("MuonID");
50  theFolder = parameters.getParameter<string>("folder");
51 }
53 
55  ibooker.setCurrentFolder(theFolder);
56 
57  // efficiency plot
58  h_eff_eta_ID = ibooker.book1D("Eff_eta_" + ID_, ID_ + " Eff. vs #eta", etaBin, etaMin, etaMax);
59  h_eff_inner_pt_ID = ibooker.book1D("Eff_inner_pt_" + ID_, ID_ + " Eff. vs pt", ptBin, ptMin, ptMax);
60  h_eff_inner_eta_ID = ibooker.book1D("Eff_inner_eta_" + ID_, ID_ + " Eff. vs #eta", etaBin, etaMin, etaMax);
61  h_eff_inner_phi_ID = ibooker.book1D("Eff_inner_phi_" + ID_, ID_ + " Eff. vs #phi", phiBin, phiMin, phiMax);
62  h_eff_hp_eta_ID =
63  ibooker.book1D("Eff_hp_eta_" + ID_, "High Pt (Pt>20)" + ID_ + " Eff. vs #eta", etaBin, etaMin, etaMax);
64  h_eff_phi_ID = ibooker.book1D("Eff_phi_" + ID_, ID_ + " Eff. vs #phi", phiBin, phiMin, phiMax);
65  h_eff_pt_ID = ibooker.book1D("Eff_pt_" + ID_, ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
66  h_eff_pt_EB_ID = ibooker.book1D("Eff_pt_EB_" + ID_, "Barrel: " + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
67  h_eff_pt_EE_ID = ibooker.book1D("Eff_pt_EE_" + ID_, "Endcap: " + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
68  h_eff_pt_detIsoID = ibooker.book1D("Eff_pt_detIso" + ID_, "detIso" + ID_ + " Efficiency vs Pt", ptBin, ptMin, ptMax);
69  h_eff_pt_EB_detIsoID =
70  ibooker.book1D("Eff_pt_EB_detIso" + ID_, "Barrel: detIso" + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
71  h_eff_pt_EE_detIsoID =
72  ibooker.book1D("Eff_pt_EE_detIso" + ID_, "Endcap: detIso" + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
73  h_eff_pt_pfIsoID = ibooker.book1D("Eff_pt_pfIso" + ID_, "pfIso" + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
74  h_eff_pt_EB_pfIsoID =
75  ibooker.book1D("Eff_pt_EB_pfIso" + ID_, "Barrel: pfIso" + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
76  h_eff_pt_EE_pfIsoID =
77  ibooker.book1D("Eff_pt_EE_pfIso" + ID_, "Endcap: pfIso" + ID_ + " Eff. vs Pt", ptBin, ptMin, ptMax);
78  h_eff_vtx_detIsoID = ibooker.book1D("Eff_vtx_detIso" + ID_, "detIso" + ID_ + " Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
79  h_eff_vtx_pfIsoID = ibooker.book1D("Eff_vtx_pfIso" + ID_, "pfIso" + ID_ + " Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
80  h_eff_vtx_EB_detIsoID =
81  ibooker.book1D("Eff_vtx_EB_detIso" + ID_, "Barrel: detIso" + ID_ + " Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
82  h_eff_vtx_EB_pfIsoID =
83  ibooker.book1D("Eff_vtx_EB_pfIso" + ID_, "Barrel: pfIso" + ID_ + " Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
84  h_eff_vtx_EE_detIsoID =
85  ibooker.book1D("Eff_vtx_EE_detIso" + ID_, "Endcap: detIso" + ID_ + " Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
86  h_eff_vtx_EE_pfIsoID =
87  ibooker.book1D("Eff_vtx_EE_pfIso" + ID_, "Endcap: pfIso" + ID_ + " Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
88 
89  h_eff_pt_pfIsodBID =
90  ibooker.book1D("Eff_pt_pfIsodB" + ID_, "pfIso" + ID_ + " (deltaBeta) Eff. vs Pt", ptBin, ptMin, ptMax);
91  h_eff_pt_EB_pfIsodBID =
92  ibooker.book1D("Eff_pt_EB_pfIsodB" + ID_, "Barrel: pfIso" + ID_ + " (deltaBeta) Eff. vs Pt", ptBin, ptMin, ptMax);
93  h_eff_pt_EE_pfIsodBID =
94  ibooker.book1D("Eff_pt_EE_pfIsodB" + ID_, "Endcap: pfIso" + ID_ + " (deltaBeta) Eff. vs Pt", ptBin, ptMin, ptMax);
95  h_eff_vtx_pfIsodBID =
96  ibooker.book1D("Eff_vtx_pfIsodB" + ID_, "pfIso" + ID_ + " (deltaBeta) Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
97  h_eff_vtx_EB_pfIsodBID = ibooker.book1D(
98  "Eff_vtx_EB_pfIsodB" + ID_, "Barrel: pfIso" + ID_ + " (deltaBeta) Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
99  h_eff_vtx_EE_pfIsodBID = ibooker.book1D(
100  "Eff_vtx_EE_pfIsodB" + ID_, "Endcap: pfIso" + ID_ + " (deltaBeta) Eff. vs nVtx", vtxBin, vtxMin, vtxMax);
101 
102  // This prevents this ME to be normalized when drawn into the GUI
103  h_eff_eta_ID->setEfficiencyFlag();
104  h_eff_inner_eta_ID->setEfficiencyFlag();
105  h_eff_inner_pt_ID->setEfficiencyFlag();
106  h_eff_inner_phi_ID->setEfficiencyFlag();
107  h_eff_hp_eta_ID->setEfficiencyFlag();
108  h_eff_phi_ID->setEfficiencyFlag();
109  h_eff_pt_ID->setEfficiencyFlag();
110  h_eff_pt_EB_ID->setEfficiencyFlag();
111  h_eff_pt_EE_ID->setEfficiencyFlag();
112  h_eff_pt_detIsoID->setEfficiencyFlag();
113  h_eff_pt_EB_detIsoID->setEfficiencyFlag();
114  h_eff_pt_EE_detIsoID->setEfficiencyFlag();
115  h_eff_pt_pfIsoID->setEfficiencyFlag();
116  h_eff_pt_EB_pfIsoID->setEfficiencyFlag();
117  h_eff_pt_EE_pfIsoID->setEfficiencyFlag();
118  h_eff_vtx_detIsoID->setEfficiencyFlag();
119  h_eff_vtx_pfIsoID->setEfficiencyFlag();
120  h_eff_vtx_EB_detIsoID->setEfficiencyFlag();
121  h_eff_vtx_EB_pfIsoID->setEfficiencyFlag();
122  h_eff_vtx_EE_detIsoID->setEfficiencyFlag();
123  h_eff_vtx_EE_pfIsoID->setEfficiencyFlag();
124 
125  h_eff_pt_pfIsodBID->setEfficiencyFlag();
126  h_eff_pt_EB_pfIsodBID->setEfficiencyFlag();
127  h_eff_pt_EE_pfIsodBID->setEfficiencyFlag();
128  h_eff_vtx_pfIsodBID->setEfficiencyFlag();
129  h_eff_vtx_EB_pfIsodBID->setEfficiencyFlag();
130  h_eff_vtx_EE_pfIsodBID->setEfficiencyFlag();
131 
132  // AXIS TITLES....
133  h_eff_hp_eta_ID->setAxisTitle("#eta", 1);
134  h_eff_inner_eta_ID->setAxisTitle("#eta", 1);
135  h_eff_inner_pt_ID->setAxisTitle("#eta", 1);
136  h_eff_inner_phi_ID->setAxisTitle("#eta", 1);
137  h_eff_eta_ID->setAxisTitle("#eta", 1);
138  h_eff_phi_ID->setAxisTitle("#phi", 1);
139  h_eff_pt_ID->setAxisTitle("p_{T} (GeV)", 1);
140  h_eff_pt_EB_ID->setAxisTitle("p_{T} (GeV)", 1);
141  h_eff_pt_EE_ID->setAxisTitle("p_{T} (GeV)", 1);
142  h_eff_pt_detIsoID->setAxisTitle("p_{T} (GeV)", 1);
143  h_eff_pt_EB_detIsoID->setAxisTitle("p_{T} (GeV)", 1);
144  h_eff_pt_EE_detIsoID->setAxisTitle("p_{T} (GeV)", 1);
145  h_eff_pt_pfIsoID->setAxisTitle("p_{T} (GeV)", 1);
146  h_eff_pt_EB_pfIsoID->setAxisTitle("p_{T} (GeV)", 1);
147  h_eff_pt_EE_pfIsoID->setAxisTitle("p_{T} (GeV)", 1);
148  h_eff_vtx_detIsoID->setAxisTitle("Number of PV", 1);
149  h_eff_vtx_pfIsoID->setAxisTitle("Number of PV", 1);
150  h_eff_vtx_EB_detIsoID->setAxisTitle("Number of PV", 1);
151  h_eff_vtx_EB_pfIsoID->setAxisTitle("Number of PV", 1);
152  h_eff_vtx_EE_detIsoID->setAxisTitle("Number of PV", 1);
153  h_eff_vtx_EE_pfIsoID->setAxisTitle("Number of PV", 1);
154 
155  h_eff_pt_pfIsodBID->setAxisTitle("p_{T} (GeV)", 1);
156  h_eff_pt_EB_pfIsodBID->setAxisTitle("p_{T} (GeV)", 1);
157  h_eff_pt_EE_pfIsodBID->setAxisTitle("p_{T} (GeV)", 1);
158  h_eff_vtx_pfIsodBID->setAxisTitle("Number of PV", 1);
159  h_eff_vtx_EB_pfIsodBID->setAxisTitle("Number of PV", 1);
160  h_eff_vtx_EE_pfIsodBID->setAxisTitle("Number of PV", 1);
161 
163  string inputdir = "Muons/EfficiencyAnalyzer/" + ID_;
164  string numpath_pt = inputdir + "/passProbes_ID_pt";
165  string denpath_pt = inputdir + "/allProbes_pt";
166 
167  MonitorElement *Numerator_pt = igetter.get(numpath_pt);
168  MonitorElement *Denominator_pt = igetter.get(denpath_pt);
169 
170  if (Numerator_pt && Denominator_pt) {
171  TH1F *h_numerator_pt = Numerator_pt->getTH1F();
172  TH1F *h_denominator_pt = Denominator_pt->getTH1F();
173  TH1F *h_eff_pt = h_eff_pt_ID->getTH1F();
174 
175  if (h_eff_pt->GetSumw2N() == 0)
176  h_eff_pt->Sumw2();
177  h_eff_pt->Divide(h_numerator_pt, h_denominator_pt, 1., 1., "B");
178  }
179 
181  string numpath_inner_pt = inputdir + "/passProbes_ID_inner_pt";
182  string denpath_inner_pt = inputdir + "/allProbes_inner_pt";
183 
184  MonitorElement *Numerator_inner_pt = igetter.get(numpath_inner_pt);
185  MonitorElement *Denominator_inner_pt = igetter.get(denpath_inner_pt);
186 
187  if (Numerator_inner_pt && Denominator_inner_pt) {
188  TH1F *h_numerator_inner_pt = Numerator_inner_pt->getTH1F();
189  TH1F *h_denominator_inner_pt = Denominator_inner_pt->getTH1F();
190  TH1F *h_eff_inner_pt = h_eff_inner_pt_ID->getTH1F();
191 
192  if (h_eff_inner_pt->GetSumw2N() == 0)
193  h_eff_inner_pt->Sumw2();
194  h_eff_inner_pt->Divide(h_numerator_inner_pt, h_denominator_inner_pt, 1., 1., "B");
195  }
196 
198  string numpath_inner_eta = inputdir + "/passProbes_ID_inner_eta";
199  string denpath_inner_eta = inputdir + "/allProbes_inner_eta";
200 
201  MonitorElement *Numerator_inner_eta = igetter.get(numpath_inner_eta);
202  MonitorElement *Denominator_inner_eta = igetter.get(denpath_inner_eta);
203 
204  if (Numerator_inner_eta && Denominator_inner_eta) {
205  TH1F *h_numerator_inner_eta = Numerator_inner_eta->getTH1F();
206  TH1F *h_denominator_inner_eta = Denominator_inner_eta->getTH1F();
207  TH1F *h_eff_inner_eta = h_eff_inner_eta_ID->getTH1F();
208 
209  if (h_eff_inner_eta->GetSumw2N() == 0)
210  h_eff_inner_eta->Sumw2();
211  h_eff_inner_eta->Divide(h_numerator_inner_eta, h_denominator_inner_eta, 1., 1., "B");
212  }
213 
215  string numpath_inner_phi = inputdir + "/passProbes_ID_inner_phi";
216  string denpath_inner_phi = inputdir + "/allProbes_inner_phi";
217 
218  MonitorElement *Numerator_inner_phi = igetter.get(numpath_inner_phi);
219  MonitorElement *Denominator_inner_phi = igetter.get(denpath_inner_phi);
220 
221  if (Numerator_inner_phi && Denominator_inner_phi) {
222  TH1F *h_numerator_inner_phi = Numerator_inner_phi->getTH1F();
223  TH1F *h_denominator_inner_phi = Denominator_inner_phi->getTH1F();
224  TH1F *h_eff_inner_phi = h_eff_inner_phi_ID->getTH1F();
225 
226  if (h_eff_inner_phi->GetSumw2N() == 0)
227  h_eff_inner_phi->Sumw2();
228  h_eff_inner_phi->Divide(h_numerator_inner_phi, h_denominator_inner_phi, 1., 1., "B");
229  }
230 
232  string numpath_EB_pt = inputdir + "/passProbes_ID_EB_pt";
233  string denpath_EB_pt = inputdir + "/allProbes_EB_pt";
234 
235  MonitorElement *Numerator_EB_pt = igetter.get(numpath_EB_pt);
236  MonitorElement *Denominator_EB_pt = igetter.get(denpath_EB_pt);
237 
238  if (Numerator_EB_pt && Denominator_EB_pt) {
239  TH1F *h_numerator_EB_pt = Numerator_EB_pt->getTH1F();
240  TH1F *h_denominator_EB_pt = Denominator_EB_pt->getTH1F();
241  TH1F *h_eff_EB_pt = h_eff_pt_EB_ID->getTH1F();
242 
243  if (h_eff_EB_pt->GetSumw2N() == 0)
244  h_eff_EB_pt->Sumw2();
245  h_eff_EB_pt->Divide(h_numerator_EB_pt, h_denominator_EB_pt, 1., 1., "B");
246  }
247 
249  string numpath_EE_pt = inputdir + "/passProbes_ID_EE_pt";
250  string denpath_EE_pt = inputdir + "/allProbes_EE_pt";
251 
252  MonitorElement *Numerator_EE_pt = igetter.get(numpath_EE_pt);
253  MonitorElement *Denominator_EE_pt = igetter.get(denpath_EE_pt);
254 
255  if (Numerator_EE_pt && Denominator_EE_pt) {
256  TH1F *h_numerator_EE_pt = Numerator_EE_pt->getTH1F();
257  TH1F *h_denominator_EE_pt = Denominator_EE_pt->getTH1F();
258  TH1F *h_eff_EE_pt = h_eff_pt_EE_ID->getTH1F();
259 
260  if (h_eff_EE_pt->GetSumw2N() == 0)
261  h_eff_EE_pt->Sumw2();
262  h_eff_EE_pt->Divide(h_numerator_EE_pt, h_denominator_EE_pt, 1., 1., "B");
263  }
264 
266  string numpath_eta = inputdir + "/passProbes_ID_eta";
267  string denpath_eta = inputdir + "/allProbes_eta";
268 
269  MonitorElement *Numerator_eta = igetter.get(numpath_eta);
270  MonitorElement *Denominator_eta = igetter.get(denpath_eta);
271 
272  if (Numerator_eta && Denominator_eta) {
273  TH1F *h_numerator_eta = Numerator_eta->getTH1F();
274  TH1F *h_denominator_eta = Denominator_eta->getTH1F();
275 
276  TH1F *h_eff_eta = h_eff_eta_ID->getTH1F();
277 
278  if (h_eff_eta->GetSumw2N() == 0)
279  h_eff_eta->Sumw2();
280 
281  h_eff_eta->Divide(h_numerator_eta, h_denominator_eta, 1., 1., "B");
282  }
283 
285 
286  string numpath_hp_eta = inputdir + "/passProbes_ID_hp_eta";
287  string denpath_hp_eta = inputdir + "/allProbes_hp_eta";
288 
289  MonitorElement *Numerator_hp_eta = igetter.get(numpath_hp_eta);
290  MonitorElement *Denominator_hp_eta = igetter.get(denpath_hp_eta);
291 
292  if (Numerator_hp_eta && Denominator_hp_eta) {
293  TH1F *h_numerator_hp_eta = Numerator_hp_eta->getTH1F();
294  TH1F *h_denominator_hp_eta = Denominator_hp_eta->getTH1F();
295 
296  TH1F *h_eff_hp_eta = h_eff_hp_eta_ID->getTH1F();
297 
298  if (h_eff_hp_eta->GetSumw2N() == 0)
299  h_eff_hp_eta->Sumw2();
300 
301  h_eff_hp_eta->Divide(h_numerator_hp_eta, h_denominator_hp_eta, 1., 1., "B");
302  }
303 
305 
306  string numpath_phi = inputdir + "/passProbes_ID_phi";
307  string denpath_phi = inputdir + "/allProbes_phi";
308 
309  MonitorElement *Numerator_phi = igetter.get(numpath_phi);
310  MonitorElement *Denominator_phi = igetter.get(denpath_phi);
311 
312  if (Numerator_phi && Denominator_phi) {
313  TH1F *h_numerator_phi = Numerator_phi->getTH1F();
314  TH1F *h_denominator_phi = Denominator_phi->getTH1F();
315 
316  TH1F *h_eff_phi = h_eff_phi_ID->getTH1F();
317 
318  if (h_eff_phi->GetSumw2N() == 0)
319  h_eff_phi->Sumw2();
320 
321  h_eff_phi->Divide(h_numerator_phi, h_denominator_phi, 1., 1., "B");
322  }
323 
325  string numpath_detIso_pt = inputdir + "/passProbes_detIsoID_pt";
326  string denpath_detIso_pt = inputdir + "/allProbes_ID_pt";
327 
328  MonitorElement *Numerator_detIso_pt = igetter.get(numpath_detIso_pt);
329  MonitorElement *Denominator_detIso_pt = igetter.get(denpath_detIso_pt);
330 
331  if (Numerator_detIso_pt && Denominator_detIso_pt) {
332  TH1F *h_numerator_detIso_pt = Numerator_detIso_pt->getTH1F();
333  TH1F *h_denominator_detIso_pt = Denominator_detIso_pt->getTH1F();
334 
335  TH1F *h_eff_detIso_pt = h_eff_pt_detIsoID->getTH1F();
336 
337  if (h_eff_detIso_pt->GetSumw2N() == 0)
338  h_eff_detIso_pt->Sumw2();
339  h_eff_detIso_pt->Divide(h_numerator_detIso_pt, h_denominator_detIso_pt, 1., 1., "B");
340  }
341 
343  string numpath_detIso_EB_pt = inputdir + "/passProbes_EB_detIsoID_pt";
344  string denpath_detIso_EB_pt = inputdir + "/allProbes_EB_ID_pt";
345 
346  MonitorElement *Numerator_detIso_EB_pt = igetter.get(numpath_detIso_EB_pt);
347  MonitorElement *Denominator_detIso_EB_pt = igetter.get(denpath_detIso_EB_pt);
348 
349  if (Numerator_detIso_EB_pt && Denominator_detIso_EB_pt) {
350  TH1F *h_numerator_detIso_EB_pt = Numerator_detIso_EB_pt->getTH1F();
351  TH1F *h_denominator_detIso_EB_pt = Denominator_detIso_EB_pt->getTH1F();
352 
353  TH1F *h_eff_detIso_EB_pt = h_eff_pt_EB_detIsoID->getTH1F();
354 
355  if (h_eff_detIso_EB_pt->GetSumw2N() == 0)
356  h_eff_detIso_EB_pt->Sumw2();
357 
358  h_eff_detIso_EB_pt->Divide(h_numerator_detIso_EB_pt, h_denominator_detIso_EB_pt, 1., 1., "B");
359  }
360 
362  string numpath_detIso_EE_pt = inputdir + "/passProbes_EE_detIsoID_pt";
363  string denpath_detIso_EE_pt = inputdir + "/allProbes_EE_ID_pt";
364 
365  MonitorElement *Numerator_detIso_EE_pt = igetter.get(numpath_detIso_EE_pt);
366  MonitorElement *Denominator_detIso_EE_pt = igetter.get(denpath_detIso_EE_pt);
367 
368  if (Numerator_detIso_EE_pt && Denominator_detIso_EE_pt) {
369  TH1F *h_numerator_detIso_EE_pt = Numerator_detIso_EE_pt->getTH1F();
370  TH1F *h_denominator_detIso_EE_pt = Denominator_detIso_EE_pt->getTH1F();
371 
372  TH1F *h_eff_detIso_EE_pt = h_eff_pt_EE_detIsoID->getTH1F();
373 
374  if (h_eff_detIso_EE_pt->GetSumw2N() == 0)
375  h_eff_detIso_EE_pt->Sumw2();
376 
377  h_eff_detIso_EE_pt->Divide(h_numerator_detIso_EE_pt, h_denominator_detIso_EE_pt, 1., 1., "B");
378  }
379 
381  string numpath_pfIso_pt = inputdir + "/passProbes_pfIsoID_pt";
382  string denpath_pfIso_pt = inputdir + "/allProbes_ID_pt";
383 
384  MonitorElement *Numerator_pfIso_pt = igetter.get(numpath_pfIso_pt);
385  MonitorElement *Denominator_pfIso_pt = igetter.get(denpath_pfIso_pt);
386 
387  if (Numerator_pfIso_pt && Denominator_pfIso_pt) {
388  TH1F *h_numerator_pfIso_pt = Numerator_pfIso_pt->getTH1F();
389  TH1F *h_denominator_pfIso_pt = Denominator_pfIso_pt->getTH1F();
390 
391  TH1F *h_eff_pfIso_pt = h_eff_pt_pfIsoID->getTH1F();
392 
393  if (h_eff_pfIso_pt->GetSumw2N() == 0)
394  h_eff_pfIso_pt->Sumw2();
395 
396  h_eff_pfIso_pt->Divide(h_numerator_pfIso_pt, h_denominator_pfIso_pt, 1., 1., "B");
397  }
398 
400 
401  string numpath_pfIso_EB_pt = inputdir + "/passProbes_EB_pfIsoID_pt";
402  string denpath_pfIso_EB_pt = inputdir + "/allProbes_EB_ID_pt";
403 
404  MonitorElement *Numerator_pfIso_EB_pt = igetter.get(numpath_pfIso_EB_pt);
405  MonitorElement *Denominator_pfIso_EB_pt = igetter.get(denpath_pfIso_EB_pt);
406 
407  if (Numerator_pfIso_EB_pt && Denominator_pfIso_EB_pt) {
408  TH1F *h_numerator_pfIso_EB_pt = Numerator_pfIso_EB_pt->getTH1F();
409  TH1F *h_denominator_pfIso_EB_pt = Denominator_pfIso_EB_pt->getTH1F();
410 
411  TH1F *h_eff_pfIso_EB_pt = h_eff_pt_EB_pfIsoID->getTH1F();
412 
413  if (h_eff_pfIso_EB_pt->GetSumw2N() == 0)
414  h_eff_pfIso_EB_pt->Sumw2();
415  h_eff_pfIso_EB_pt->Divide(h_numerator_pfIso_EB_pt, h_denominator_pfIso_EB_pt, 1., 1., "B");
416  }
417 
419  string numpath_pfIso_EE_pt = inputdir + "/passProbes_EE_pfIsoID_pt";
420  string denpath_pfIso_EE_pt = inputdir + "/allProbes_EE_ID_pt";
421 
422  MonitorElement *Numerator_pfIso_EE_pt = igetter.get(numpath_pfIso_EE_pt);
423  MonitorElement *Denominator_pfIso_EE_pt = igetter.get(denpath_pfIso_EE_pt);
424 
425  if (Numerator_pfIso_EE_pt && Denominator_pfIso_EE_pt) {
426  TH1F *h_numerator_pfIso_EE_pt = Numerator_pfIso_EE_pt->getTH1F();
427  TH1F *h_denominator_pfIso_EE_pt = Denominator_pfIso_EE_pt->getTH1F();
428 
429  TH1F *h_eff_pfIso_EE_pt = h_eff_pt_EE_pfIsoID->getTH1F();
430 
431  if (h_eff_pfIso_EE_pt->GetSumw2N() == 0)
432  h_eff_pfIso_EE_pt->Sumw2();
433 
434  h_eff_pfIso_EE_pt->Divide(h_numerator_pfIso_EE_pt, h_denominator_pfIso_EE_pt, 1., 1., "B");
435  }
436 
438 
439  string numpath_pfIso_nvtx = inputdir + "/passProbes_pfIsoID_nVtx";
440  string denpath_pfIso_nvtx = inputdir + "/allProbes_ID_nVtx";
441 
442  MonitorElement *Numerator_pfIso_nvtx = igetter.get(numpath_pfIso_nvtx);
443  MonitorElement *Denominator_pfIso_nvtx = igetter.get(denpath_pfIso_nvtx);
444 
445  if (Numerator_pfIso_nvtx && Denominator_pfIso_nvtx) {
446  TH1F *h_numerator_pfIso_nvtx = Numerator_pfIso_nvtx->getTH1F();
447  TH1F *h_denominator_pfIso_nvtx = Denominator_pfIso_nvtx->getTH1F();
448 
449  TH1F *h_eff_pfIso_nvtx = h_eff_vtx_pfIsoID->getTH1F();
450 
451  if (h_eff_pfIso_nvtx->GetSumw2N() == 0)
452  h_eff_pfIso_nvtx->Sumw2();
453 
454  h_eff_pfIso_nvtx->Divide(h_numerator_pfIso_nvtx, h_denominator_pfIso_nvtx, 1., 1., "B");
455  }
456 
458  string numpath_detIso_nvtx = inputdir + "/passProbes_detIsoID_nVtx";
459  string denpath_detIso_nvtx = inputdir + "/allProbes_ID_nVtx";
460 
461  MonitorElement *Numerator_detIso_nvtx = igetter.get(numpath_detIso_nvtx);
462  MonitorElement *Denominator_detIso_nvtx = igetter.get(denpath_detIso_nvtx);
463 
464  if (Numerator_detIso_nvtx && Denominator_detIso_nvtx) {
465  TH1F *h_numerator_detIso_nvtx = Numerator_detIso_nvtx->getTH1F();
466  TH1F *h_denominator_detIso_nvtx = Denominator_detIso_nvtx->getTH1F();
467 
468  TH1F *h_eff_detIso_nvtx = h_eff_vtx_detIsoID->getTH1F();
469 
470  if (h_eff_detIso_nvtx->GetSumw2N() == 0)
471  h_eff_detIso_nvtx->Sumw2();
472 
473  h_eff_detIso_nvtx->Divide(h_numerator_detIso_nvtx, h_denominator_detIso_nvtx, 1., 1., "B");
474  }
475 
477  numpath_detIso_nvtx = inputdir + "/passProbes_EB_detIsoID_nVtx";
478  denpath_detIso_nvtx = inputdir + "/allProbes_EB_ID_nVtx";
479 
480  Numerator_detIso_nvtx = igetter.get(numpath_detIso_nvtx);
481  Denominator_detIso_nvtx = igetter.get(denpath_detIso_nvtx);
482 
483  if (Numerator_detIso_nvtx && Denominator_detIso_nvtx) {
484  TH1F *h_numerator_detIso_nvtx = Numerator_detIso_nvtx->getTH1F();
485  TH1F *h_denominator_detIso_nvtx = Denominator_detIso_nvtx->getTH1F();
486 
487  TH1F *h_eff_detIso_nvtx = h_eff_vtx_EB_detIsoID->getTH1F();
488 
489  if (h_eff_detIso_nvtx->GetSumw2N() == 0)
490  h_eff_detIso_nvtx->Sumw2();
491  h_eff_detIso_nvtx->Divide(h_numerator_detIso_nvtx, h_denominator_detIso_nvtx, 1., 1., "B");
492  }
493 
495  numpath_detIso_nvtx = inputdir + "/passProbes_EE_detIsoID_nVtx";
496  denpath_detIso_nvtx = inputdir + "/allProbes_EE_ID_nVtx";
497 
498  Numerator_detIso_nvtx = igetter.get(numpath_detIso_nvtx);
499  Denominator_detIso_nvtx = igetter.get(denpath_detIso_nvtx);
500 
501  if (Numerator_detIso_nvtx && Denominator_detIso_nvtx) {
502  TH1F *h_numerator_detIso_nvtx = Numerator_detIso_nvtx->getTH1F();
503  TH1F *h_denominator_detIso_nvtx = Denominator_detIso_nvtx->getTH1F();
504 
505  TH1F *h_eff_detIso_nvtx = h_eff_vtx_EE_detIsoID->getTH1F();
506 
507  if (h_eff_detIso_nvtx->GetSumw2N() == 0)
508  h_eff_detIso_nvtx->Sumw2();
509 
510  h_eff_detIso_nvtx->Divide(h_numerator_detIso_nvtx, h_denominator_detIso_nvtx, 1., 1., "B");
511  }
512 
514  numpath_pfIso_nvtx = inputdir + "/passProbes_EB_pfIsoID_nVtx";
515  denpath_pfIso_nvtx = inputdir + "/allProbes_EB_ID_nVtx";
516 
517  Numerator_pfIso_nvtx = igetter.get(numpath_pfIso_nvtx);
518  Denominator_pfIso_nvtx = igetter.get(denpath_pfIso_nvtx);
519 
520  if (Numerator_pfIso_nvtx && Denominator_pfIso_nvtx) {
521  TH1F *h_numerator_pfIso_nvtx = Numerator_pfIso_nvtx->getTH1F();
522  TH1F *h_denominator_pfIso_nvtx = Denominator_pfIso_nvtx->getTH1F();
523 
524  TH1F *h_eff_pfIso_nvtx = h_eff_vtx_EB_pfIsoID->getTH1F();
525 
526  if (h_eff_pfIso_nvtx->GetSumw2N() == 0)
527  h_eff_pfIso_nvtx->Sumw2();
528 
529  h_eff_pfIso_nvtx->Divide(h_numerator_pfIso_nvtx, h_denominator_pfIso_nvtx, 1., 1., "B");
530  }
531 
533  numpath_pfIso_nvtx = inputdir + "/passProbes_EE_pfIsoID_nVtx";
534  denpath_pfIso_nvtx = inputdir + "/allProbes_EE_ID_nVtx";
535 
536  Numerator_pfIso_nvtx = igetter.get(numpath_pfIso_nvtx);
537  Denominator_pfIso_nvtx = igetter.get(denpath_pfIso_nvtx);
538 
539  if (Numerator_pfIso_nvtx && Denominator_pfIso_nvtx) {
540  TH1F *h_numerator_pfIso_nvtx = Numerator_pfIso_nvtx->getTH1F();
541  TH1F *h_denominator_pfIso_nvtx = Denominator_pfIso_nvtx->getTH1F();
542 
543  TH1F *h_eff_pfIso_nvtx = h_eff_vtx_EE_pfIsoID->getTH1F();
544 
545  if (h_eff_pfIso_nvtx->GetSumw2N() == 0)
546  h_eff_pfIso_nvtx->Sumw2();
547 
548  h_eff_pfIso_nvtx->Divide(h_numerator_pfIso_nvtx, h_denominator_pfIso_nvtx, 1., 1., "B");
549  }
550 
552  string numpath_pfIsodB_pt = inputdir + "/passProbes_pfIsodBID_pt";
553  string denpath_pfIsodB_pt = inputdir + "/allProbes_ID_pt";
554 
555  MonitorElement *Numerator_pfIsodB_pt = igetter.get(numpath_pfIsodB_pt);
556  MonitorElement *Denominator_pfIsodB_pt = igetter.get(denpath_pfIsodB_pt);
557 
558  if (Numerator_pfIsodB_pt && Denominator_pfIsodB_pt) {
559  TH1F *h_numerator_pfIsodB_pt = Numerator_pfIsodB_pt->getTH1F();
560  TH1F *h_denominator_pfIsodB_pt = Denominator_pfIsodB_pt->getTH1F();
561 
562  TH1F *h_eff_pfIsodB_pt = h_eff_pt_pfIsodBID->getTH1F();
563 
564  if (h_eff_pfIsodB_pt->GetSumw2N() == 0)
565  h_eff_pfIsodB_pt->Sumw2();
566 
567  h_eff_pfIsodB_pt->Divide(h_numerator_pfIsodB_pt, h_denominator_pfIsodB_pt, 1., 1., "B");
568  }
569 
571 
572  string numpath_pfIsodB_EB_pt = inputdir + "/passProbes_EB_pfIsodBID_pt";
573  string denpath_pfIsodB_EB_pt = inputdir + "/allProbes_EB_ID_pt";
574 
575  MonitorElement *Numerator_pfIsodB_EB_pt = igetter.get(numpath_pfIsodB_EB_pt);
576  MonitorElement *Denominator_pfIsodB_EB_pt = igetter.get(denpath_pfIsodB_EB_pt);
577 
578  if (Numerator_pfIsodB_EB_pt && Denominator_pfIsodB_EB_pt) {
579  TH1F *h_numerator_pfIsodB_EB_pt = Numerator_pfIsodB_EB_pt->getTH1F();
580  TH1F *h_denominator_pfIsodB_EB_pt = Denominator_pfIsodB_EB_pt->getTH1F();
581 
582  TH1F *h_eff_pfIsodB_EB_pt = h_eff_pt_EB_pfIsodBID->getTH1F();
583 
584  if (h_eff_pfIsodB_EB_pt->GetSumw2N() == 0)
585  h_eff_pfIsodB_EB_pt->Sumw2();
586  h_eff_pfIsodB_EB_pt->Divide(h_numerator_pfIsodB_EB_pt, h_denominator_pfIsodB_EB_pt, 1., 1., "B");
587  }
588 
590  string numpath_pfIsodB_EE_pt = inputdir + "/passProbes_EE_pfIsodBID_pt";
591  string denpath_pfIsodB_EE_pt = inputdir + "/allProbes_EE_ID_pt";
592 
593  MonitorElement *Numerator_pfIsodB_EE_pt = igetter.get(numpath_pfIsodB_EE_pt);
594  MonitorElement *Denominator_pfIsodB_EE_pt = igetter.get(denpath_pfIsodB_EE_pt);
595 
596  if (Numerator_pfIsodB_EE_pt && Denominator_pfIsodB_EE_pt) {
597  TH1F *h_numerator_pfIsodB_EE_pt = Numerator_pfIsodB_EE_pt->getTH1F();
598  TH1F *h_denominator_pfIsodB_EE_pt = Denominator_pfIsodB_EE_pt->getTH1F();
599 
600  TH1F *h_eff_pfIsodB_EE_pt = h_eff_pt_EE_pfIsodBID->getTH1F();
601 
602  if (h_eff_pfIsodB_EE_pt->GetSumw2N() == 0)
603  h_eff_pfIsodB_EE_pt->Sumw2();
604 
605  h_eff_pfIsodB_EE_pt->Divide(h_numerator_pfIsodB_EE_pt, h_denominator_pfIsodB_EE_pt, 1., 1., "B");
606  }
607 
609 
610  string numpath_pfIsodB_nvtx = inputdir + "/passProbes_pfIsodBID_nVtx";
611  string denpath_pfIsodB_nvtx = inputdir + "/allProbes_ID_nVtx";
612 
613  MonitorElement *Numerator_pfIsodB_nvtx = igetter.get(numpath_pfIsodB_nvtx);
614  MonitorElement *Denominator_pfIsodB_nvtx = igetter.get(denpath_pfIsodB_nvtx);
615 
616  if (Numerator_pfIsodB_nvtx && Denominator_pfIsodB_nvtx) {
617  TH1F *h_numerator_pfIsodB_nvtx = Numerator_pfIsodB_nvtx->getTH1F();
618  TH1F *h_denominator_pfIsodB_nvtx = Denominator_pfIsodB_nvtx->getTH1F();
619 
620  TH1F *h_eff_pfIsodB_nvtx = h_eff_vtx_pfIsodBID->getTH1F();
621 
622  if (h_eff_pfIsodB_nvtx->GetSumw2N() == 0)
623  h_eff_pfIsodB_nvtx->Sumw2();
624 
625  h_eff_pfIsodB_nvtx->Divide(h_numerator_pfIsodB_nvtx, h_denominator_pfIsodB_nvtx, 1., 1., "B");
626  }
627 
629  numpath_pfIsodB_nvtx = inputdir + "/passProbes_EB_pfIsodBID_nVtx";
630  denpath_pfIsodB_nvtx = inputdir + "/allProbes_EB_ID_nVtx";
631 
632  Numerator_pfIsodB_nvtx = igetter.get(numpath_pfIsodB_nvtx);
633  Denominator_pfIsodB_nvtx = igetter.get(denpath_pfIsodB_nvtx);
634 
635  if (Numerator_pfIsodB_nvtx && Denominator_pfIsodB_nvtx) {
636  TH1F *h_numerator_pfIsodB_nvtx = Numerator_pfIsodB_nvtx->getTH1F();
637  TH1F *h_denominator_pfIsodB_nvtx = Denominator_pfIsodB_nvtx->getTH1F();
638 
639  TH1F *h_eff_pfIsodB_nvtx = h_eff_vtx_EB_pfIsodBID->getTH1F();
640 
641  if (h_eff_pfIsodB_nvtx->GetSumw2N() == 0)
642  h_eff_pfIsodB_nvtx->Sumw2();
643 
644  h_eff_pfIsodB_nvtx->Divide(h_numerator_pfIsodB_nvtx, h_denominator_pfIsodB_nvtx, 1., 1., "B");
645  }
646 
648  numpath_pfIsodB_nvtx = inputdir + "/passProbes_EE_pfIsodBID_nVtx";
649  denpath_pfIsodB_nvtx = inputdir + "/allProbes_EE_ID_nVtx";
650 
651  Numerator_pfIsodB_nvtx = igetter.get(numpath_pfIsodB_nvtx);
652  Denominator_pfIsodB_nvtx = igetter.get(denpath_pfIsodB_nvtx);
653 
654  if (Numerator_pfIsodB_nvtx && Denominator_pfIsodB_nvtx) {
655  TH1F *h_numerator_pfIsodB_nvtx = Numerator_pfIsodB_nvtx->getTH1F();
656  TH1F *h_denominator_pfIsodB_nvtx = Denominator_pfIsodB_nvtx->getTH1F();
657 
658  TH1F *h_eff_pfIsodB_nvtx = h_eff_vtx_EE_pfIsodBID->getTH1F();
659 
660  if (h_eff_pfIsodB_nvtx->GetSumw2N() == 0)
661  h_eff_pfIsodB_nvtx->Sumw2();
662 
663  h_eff_pfIsodB_nvtx->Divide(h_numerator_pfIsodB_nvtx, h_denominator_pfIsodB_nvtx, 1., 1., "B");
664  }
665 }
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
constexpr float ptMin
EfficiencyPlotter(const edm::ParameterSet &ps)
Constructor.
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
DQM Client Diagnostic.
~EfficiencyPlotter() override
Destructor.
virtual TH1F * getTH1F() const
virtual MonitorElement * get(std::string const &fullpath) const
Definition: DQMStore.cc:690
HLT enums.
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98