CMS 3D CMS Logo

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