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