CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackIPTagPlotter.cc
Go to the documentation of this file.
1 #include <cstddef>
2 #include <string>
3 
5 
7 
9  const EtaPtBin & etaPtBin, const edm::ParameterSet& pSet, const bool& update, const bool& mc, const bool& wf) :
10  BaseTagInfoPlotter(tagName, etaPtBin),
11  nBinEffPur_(pSet.getParameter<int>("nBinEffPur")),
12  startEffPur_(pSet.getParameter<double>("startEffPur")),
13  endEffPur_(pSet.getParameter<double>("endEffPur")),
14  mcPlots_(mc), willFinalize_(wf),
15  makeQualityPlots_(pSet.getParameter<bool>("QualityPlots")),
16  lowerIPSBound(pSet.getParameter<double>("LowerIPSBound")),
17  upperIPSBound(pSet.getParameter<double>("UpperIPSBound")),
18  lowerIPBound(pSet.getParameter<double>("LowerIPBound")),
19  upperIPBound(pSet.getParameter<double>("UpperIPBound")),
20  lowerIPEBound(pSet.getParameter<double>("LowerIPEBound")),
21  upperIPEBound(pSet.getParameter<double>("UpperIPEBound")),
22  nBinsIPS(pSet.getParameter<int>("NBinsIPS")),
23  nBinsIP(pSet.getParameter<int>("NBinsIP")),
24  nBinsIPE(pSet.getParameter<int>("NBinsIPE")),
25  minDecayLength(pSet.getParameter<double>("MinDecayLength")),
26  maxDecayLength(pSet.getParameter<double>("MaxDecayLength")),
27  minJetDistance(pSet.getParameter<double>("MinJetDistance")),
28  maxJetDistance(pSet.getParameter<double>("MaxJetDistance")),
29  finalized(false)
30 {
31  const std::string trackIPDir(theExtensionString.substr(1));
32 
34  ("selTrksNbr_3D" + theExtensionString, "Number of selected tracks for 3D IPS", 31, -0.5, 30.5,
35  false, true, true, "b", update,trackIPDir ,mc, makeQualityPlots_);
36 
38  ("selTrksNbr_2D" + theExtensionString, "Number of selected tracks for 2D IPS", 31, -0.5, 30.5,
39  false, true, true, "b", update,trackIPDir ,mc, makeQualityPlots_);
40 
41  // IP significance
42  // 3D
44  ("ips_3D" + theExtensionString, "3D IP significance",
45  nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
46 
47  tkcntHistosSig3D[0] = new TrackIPHistograms<double>
48  ("ips1_3D" + theExtensionString, "3D IP significance 1.trk",
49  nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir,mc, makeQualityPlots_) ;
50 
51  tkcntHistosSig3D[1] = new TrackIPHistograms<double>
52  ("ips2_3D" + theExtensionString, "3D IP significance 2.trk",
53  nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
54 
55  tkcntHistosSig3D[2] = new TrackIPHistograms<double>
56  ("ips3_3D" + theExtensionString, "3D IP significance 3.trk",
57  nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
58 
59  tkcntHistosSig3D[3] = new TrackIPHistograms<double>
60  ("ips4_3D" + theExtensionString, "3D IP significance 4.trk",
61  nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
62 
63  //2D
65  ("ips_2D" + theExtensionString, "2D IP significance",
66  nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
67 
68  tkcntHistosSig2D[0] = new TrackIPHistograms<double>
69  ("ips1_2D" + theExtensionString, "2D IP significance 1.trk",
70  nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
71 
72  tkcntHistosSig2D[1] = new TrackIPHistograms<double>
73  ("ips2_2D" + theExtensionString, "2D IP significance 2.trk",
74  nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
75 
76  tkcntHistosSig2D[2] = new TrackIPHistograms<double>
77  ("ips3_2D" + theExtensionString, "2D IP significance 3.trk",
78  nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
79 
80  tkcntHistosSig2D[3] = new TrackIPHistograms<double>
81  ("ips4" + theExtensionString, "2D IP significance 4.trk",
82  nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
83 
84  // IP value
85  //3D
87  ("ip_3D" + theExtensionString, "3D IP value",
88  nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
89 
90  tkcntHistosVal3D[0] = new TrackIPHistograms<double>
91  ("ip1_3D" + theExtensionString, "3D IP value 1.trk",
92  nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
93 
94  tkcntHistosVal3D[1] = new TrackIPHistograms<double>
95  ("ip2_3D" + theExtensionString, "3D IP value 2.trk",
96  nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
97 
98  tkcntHistosVal3D[2] = new TrackIPHistograms<double>
99  ("ip3_3D" + theExtensionString, "3D IP value 3.trk",
100  nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
101 
102  tkcntHistosVal3D[3] = new TrackIPHistograms<double>
103  ("ip4_3D" + theExtensionString, "3D IP value 4.trk",
104  nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
105 
106  //2D
108  ("ip_2D" + theExtensionString, "2D IP value",
109  nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
110 
111  tkcntHistosVal2D[0] = new TrackIPHistograms<double>
112  ("ip1_2D" + theExtensionString, "2D IP value 1.trk",
113  nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
114 
115  tkcntHistosVal2D[1] = new TrackIPHistograms<double>
116  ("ip2_2D" + theExtensionString, "2D IP value 2.trk",
117  nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
118 
119  tkcntHistosVal2D[2] = new TrackIPHistograms<double>
120  ("ip3_2D" + theExtensionString, "2D IP value 3.trk",
121  nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
122 
123  tkcntHistosVal2D[3] = new TrackIPHistograms<double>
124  ("ip4" + theExtensionString, "2D IP value 4.trk",
125  nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
126 
127 
128  // IP error
129  // 3D
131  ("ipe_3D" + theExtensionString, "3D IP error",
132  nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
133 
134  tkcntHistosErr3D[0] = new TrackIPHistograms<double>
135  ("ipe1_3D" + theExtensionString, "3D IP error 1.trk",
136  nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
137 
138  tkcntHistosErr3D[1] = new TrackIPHistograms<double>
139  ("ipe2_3D" + theExtensionString, "3D IP error 2.trk",
140  nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
141 
142  tkcntHistosErr3D[2] = new TrackIPHistograms<double>
143  ("ipe3_3D" + theExtensionString, "3D IP error 3.trk",
144  nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
145 
146  tkcntHistosErr3D[3] = new TrackIPHistograms<double>
147  ("ipe4_3D" + theExtensionString, "3D IP error 4.trk",
148  nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
149 
150  //2D
152  ("ipe_2D" + theExtensionString, "2D IP error",
153  nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
154 
155  tkcntHistosErr2D[0] = new TrackIPHistograms<double>
156  ("ipe1_2D" + theExtensionString, "2D IP error 1.trk",
157  nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
158 
159  tkcntHistosErr2D[1] = new TrackIPHistograms<double>
160  ("ipe2_2D" + theExtensionString, "2D IP error 2.trk",
161  nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
162 
163  tkcntHistosErr2D[2] = new TrackIPHistograms<double>
164  ("ipe3_2D" + theExtensionString, "2D IP error 3.trk",
165  nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
166 
167  tkcntHistosErr2D[3] = new TrackIPHistograms<double>
168  ("ipe4_2D" + theExtensionString, "2D IP error 4.trk",
169  nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
170 
171  // decay length
173  ("decLen_2D" + theExtensionString, "Decay Length 2D",
174  50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
175 
176  tkcntHistosDecayLengthVal2D[0] = new TrackIPHistograms<double>
177  ("decLen1_2D" + theExtensionString, "2D Decay Length 1.trk",
178  50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
179 
180  tkcntHistosDecayLengthVal2D[1] = new TrackIPHistograms<double>
181  ("decLen2_2D" + theExtensionString, "2D Decay Length 2.trk",
182  50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
183 
184  tkcntHistosDecayLengthVal2D[2] = new TrackIPHistograms<double>
185  ("decLen3_2D" + theExtensionString, "2D Decay Length 3.trk",
186  50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
187 
188  tkcntHistosDecayLengthVal2D[3] = new TrackIPHistograms<double>
189  ("decLen4_2D" + theExtensionString, "2D Decay Length 4.trk",
190  50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
191 
193  ("decLen_3D" + theExtensionString, "3D Decay Length",
194  50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
195 
196  tkcntHistosDecayLengthVal3D[0] = new TrackIPHistograms<double>
197  ("decLen1_3D" + theExtensionString, "3D Decay Length 1.trk",
198  50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
199 
200  tkcntHistosDecayLengthVal3D[1] = new TrackIPHistograms<double>
201  ("decLen2_3D" + theExtensionString, "3D Decay Length 2.trk",
202  50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
203 
204  tkcntHistosDecayLengthVal3D[2] = new TrackIPHistograms<double>
205  ("decLen3_3D" + theExtensionString, "3D Decay Length 3.trk",
206  50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
207 
208  tkcntHistosDecayLengthVal3D[3] = new TrackIPHistograms<double>
209  ("decLen4_3D" + theExtensionString, "3D Decay Length 4.trk",
210  50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
211 
212  // jet distance
214  ("jetDist_2D" + theExtensionString, "JetDistance 2D",
215  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
216 
217  tkcntHistosJetDistVal2D[0] = new TrackIPHistograms<double>
218  ("jetDist1_2D" + theExtensionString, "JetDistance 2D 1.trk",
219  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
220 
221  tkcntHistosJetDistVal2D[1] = new TrackIPHistograms<double>
222  ("jetDist2_2D" + theExtensionString, "JetDistance 2D 2.trk",
223  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
224 
225  tkcntHistosJetDistVal2D[2] = new TrackIPHistograms<double>
226  ("jetDist3_2D" + theExtensionString, "JetDistance 2D 3.trk",
227  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
228 
229  tkcntHistosJetDistVal2D[3] = new TrackIPHistograms<double>
230  ("jetDist4_2D" + theExtensionString, "JetDistance 2D 4.trk",
231  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
232 
234  ("jetDist_3D" + theExtensionString, "JetDistance 3D",
235  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
236 
237  tkcntHistosJetDistVal3D[0] = new TrackIPHistograms<double>
238  ("jetDist1_3D" + theExtensionString, "JetDistance 3D 1.trk",
239  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
240 
241  tkcntHistosJetDistVal3D[1] = new TrackIPHistograms<double>
242  ("jetDist2_3D" + theExtensionString, "JetDistance 3D 2.trk",
243  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
244 
245  tkcntHistosJetDistVal3D[2] = new TrackIPHistograms<double>
246  ("jetDist3_3D" + theExtensionString, "JetDistance 3D 3.trk",
247  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
248 
249  tkcntHistosJetDistVal3D[3] = new TrackIPHistograms<double>
250  ("jetDist4_3D" + theExtensionString, "JetDistance 3D 4.trk",
251  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
252 
254  ("jetDist_2D" + theExtensionString, "JetDistance Sign 2D",
255  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
256 
257  tkcntHistosJetDistSign2D[0] = new TrackIPHistograms<double>
258  ("jetDist1_2D" + theExtensionString, "JetDistance Sign 2D 1.trk",
259  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
260 
261  tkcntHistosJetDistSign2D[1] = new TrackIPHistograms<double>
262  ("jetDist2_2D" + theExtensionString, "JetDistance Sign 2D 2.trk",
263  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
264 
265  tkcntHistosJetDistSign2D[2] = new TrackIPHistograms<double>
266  ("jetDist3_2D" + theExtensionString, "JetDistance Sign 2D 3.trk",
267  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
268 
269  tkcntHistosJetDistSign2D[3] = new TrackIPHistograms<double>
270  ("jetDist4_2D" + theExtensionString, "JetDistance Sign 2D 4.trk",
271  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
272 
274  ("jetDist_3D" + theExtensionString, "JetDistance Sign 3D",
275  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
276 
277  tkcntHistosJetDistSign3D[0] = new TrackIPHistograms<double>
278  ("jetDist1_3D" + theExtensionString, "JetDistance Sign 3D 1.trk",
279  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
280 
281  tkcntHistosJetDistSign3D[1] = new TrackIPHistograms<double>
282  ("jetDist2_3D" + theExtensionString, "JetDistance Sign 3D 2.trk",
283  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
284 
285  tkcntHistosJetDistSign3D[2] = new TrackIPHistograms<double>
286  ("jetDist3_3D" + theExtensionString, "JetDistance Sign 3D 3.trk",
287  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
288 
289  tkcntHistosJetDistSign3D[3] = new TrackIPHistograms<double>
290  ("jetDist4_3D" + theExtensionString, "JetDistance Sign 3D 4.trk",
291  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
292 
293  // track chi-squared
295  ("tkNChiSqr_2D" + theExtensionString, "Normalized Chi Squared 2D",
296  50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
297 
298  tkcntHistosTkNChiSqr2D[0] = new TrackIPHistograms<double>
299  ("tkNChiSqr1_2D" + theExtensionString, "Normalized Chi Squared 2D 1.trk",
300  50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
301 
302  tkcntHistosTkNChiSqr2D[1] = new TrackIPHistograms<double>
303  ("tkNChiSqr2_2D" + theExtensionString, "Normalized Chi Squared 2D 2.trk",
304  50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
305 
306  tkcntHistosTkNChiSqr2D[2] = new TrackIPHistograms<double>
307  ("tkNChiSqr3_2D" + theExtensionString, "Normalized Chi Squared 2D 3.trk",
308  50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
309 
310  tkcntHistosTkNChiSqr2D[3] = new TrackIPHistograms<double>
311  ("tkNChiSqr4_2D" + theExtensionString, "Normalized Chi Squared 2D 4.trk",
312  50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
313 
315  ("tkNChiSqr_3D" + theExtensionString, "Normalized Chi Squared 3D",
316  50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
317 
318  tkcntHistosTkNChiSqr3D[0] = new TrackIPHistograms<double>
319  ("tkNChiSqr1_3D" + theExtensionString, "Normalized Chi Squared 3D 1.trk",
320  50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
321 
322  tkcntHistosTkNChiSqr3D[1] = new TrackIPHistograms<double>
323  ("tkNChiSqr2_3D" + theExtensionString, "Normalized Chi Squared 3D 2.trk",
324  50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
325 
326  tkcntHistosTkNChiSqr3D[2] = new TrackIPHistograms<double>
327  ("tkNChiSqr3_3D" + theExtensionString, "Normalized Chi Squared 3D 3.trk",
328  50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
329 
330  tkcntHistosTkNChiSqr3D[3] = new TrackIPHistograms<double>
331  ("tkNChiSqr4_3D" + theExtensionString, "Normalized Chi Squared 3D 4.trk",
332  50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
333 
334  // track pT
336  ("tkPt_2D" + theExtensionString, "Track Pt 2D",
337  50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
338 
339  tkcntHistosTkPt2D[0] = new TrackIPHistograms<double>
340  ("tkPt1_2D" + theExtensionString, "Track Pt 2D 1.trk",
341  50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
342 
343  tkcntHistosTkPt2D[1] = new TrackIPHistograms<double>
344  ("tkPt2_2D" + theExtensionString, "Track Pt 2D 2.trk",
345  50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
346 
347  tkcntHistosTkPt2D[2] = new TrackIPHistograms<double>
348  ("tkPt3_2D" + theExtensionString, "Track Pt 2D 3.trk",
349  50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
350 
351  tkcntHistosTkPt2D[3] = new TrackIPHistograms<double>
352  ("tkPt4_2D" + theExtensionString, "Track Pt 2D 4.trk",
353  50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
354 
356  ("tkPt_3D" + theExtensionString, "Track Pt 3D",
357  50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
358 
359  tkcntHistosTkPt3D[0] = new TrackIPHistograms<double>
360  ("tkPt1_3D" + theExtensionString, "Track Pt 3D 1.trk",
361  50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
362 
363  tkcntHistosTkPt3D[1] = new TrackIPHistograms<double>
364  ("tkPt2_3D" + theExtensionString, "Track Pt 3D 2.trk",
365  50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
366 
367  tkcntHistosTkPt3D[2] = new TrackIPHistograms<double>
368  ("tkPt3_3D" + theExtensionString, "Track Pt 3D 3.trk",
369  50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
370 
371  tkcntHistosTkPt3D[3] = new TrackIPHistograms<double>
372  ("tkPt4_3D" + theExtensionString, "Track Pt 3D 4.trk",
373  50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
374 
375  // track nHits
377  ("tkNHits_2D" + theExtensionString, "Track NHits 2D",
378  31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
379 
380  tkcntHistosTkNHits2D[0] = new TrackIPHistograms<int>
381  ("tkNHits1_2D" + theExtensionString, "Track NHits 2D 1.trk",
382  31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
383 
384  tkcntHistosTkNHits2D[1] = new TrackIPHistograms<int>
385  ("tkNHits2_2D" + theExtensionString, "Track NHits 2D 2.trk",
386  31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
387 
388  tkcntHistosTkNHits2D[2] = new TrackIPHistograms<int>
389  ("tkNHits3_2D" + theExtensionString, "Track NHits 2D 3.trk",
390  31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
391 
392  tkcntHistosTkNHits2D[3] = new TrackIPHistograms<int>
393  ("tkNHits4_2D" + theExtensionString, "Track NHits 2D 4.trk",
394  31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
395 
397  ("tkNHits_3D" + theExtensionString, "Track NHits 3D",
398  31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
399 
400  tkcntHistosTkNHits3D[0] = new TrackIPHistograms<int>
401  ("tkNHits1_3D" + theExtensionString, "Track NHits 3D 1.trk",
402  31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
403 
404  tkcntHistosTkNHits3D[1] = new TrackIPHistograms<int>
405  ("tkNHits2_3D" + theExtensionString, "Track NHits 3D 2.trk",
406  31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
407 
408  tkcntHistosTkNHits3D[2] = new TrackIPHistograms<int>
409  ("tkNHits3_3D" + theExtensionString, "Track NHits 3D 3.trk",
410  31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
411 
412  tkcntHistosTkNHits3D[3] = new TrackIPHistograms<int>
413  ("tkNHits4_3D" + theExtensionString, "Track NHits 3D 4.trk",
414  31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);
415 
416  // probability
418  ("prob_3D" + theExtensionString, "3D IP probability",
419  50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
420 
421  tkcntHistosProb3D[0] = new TrackIPHistograms<float>
422  ("prob1_3D" + theExtensionString, "3D IP probability 1.trk",
423  50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
424 
425  tkcntHistosProb3D[1] = new TrackIPHistograms<float>
426  ("prob2_3D" + theExtensionString, "3D IP probability 2.trk",
427  50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
428 
429  tkcntHistosProb3D[2] = new TrackIPHistograms<float>
430  ("prob3_3D" + theExtensionString, "3D IP probability 3.trk",
431  50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
432 
433  tkcntHistosProb3D[3] = new TrackIPHistograms<float>
434  ("prob4_3D" + theExtensionString, "3D IP probability 4.trk",
435  50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
436 
438  ("prob_2D" + theExtensionString, "2D IP probability",
439  50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
440 
441  tkcntHistosProb2D[0] = new TrackIPHistograms<float>
442  ("prob1_2D" + theExtensionString, "2D IP probability 1.trk",
443  50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
444 
445  tkcntHistosProb2D[1] = new TrackIPHistograms<float>
446  ("prob2_2D" + theExtensionString, "2D IP probability 2.trk",
447  50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
448 
449  tkcntHistosProb2D[2] = new TrackIPHistograms<float>
450  ("prob3_2D" + theExtensionString, "2D IP probability 3.trk",
451  50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
452 
453  tkcntHistosProb2D[3] = new TrackIPHistograms<float>
454  ("prob4" + theExtensionString, "2D IP probability 4.trk",
455  50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;
456 
458  ("ghostTrackDist" + theExtensionString, "GhostTrackDistance",
459  50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
461  ("ghostTrackDistSign" + theExtensionString, "GhostTrackDistance significance",
462  50, -100.0, 100.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
464  ("ghostTrackWeight" + theExtensionString, "GhostTrack fit participation weight",
465  50, 0.0, 1.0, false, false, true, "b", update,trackIPDir, mc, makeQualityPlots_);
466 
468  ("trackQual" + theExtensionString, "Track Quality of Tracks Associated to Jets",
469  4, -1.5, 2.5, false, true, true, "b", update, trackIPDir, mc);
470 
472  ("selectedTrackQual" + theExtensionString, "Track Quality of Selected Tracks Associated to Jets",
473  4, -1.5, 2.5, false, true, true, "b", update, trackIPDir, mc);
474 
476  ("trackMultVsJetPt" + theExtensionString, "Track Multiplicity vs Jet Pt for Tracks Associated to Jets",
477  50, 0.0, 250.0, 21, -0.5, 30.5, false, update, trackIPDir, mc, true);
478 
480  ("selectedTrackMultVsJetPt" + theExtensionString, "Track Multiplicity vs Jet Pt for Selected Tracks Associated to Jets",
481  50, 0.0, 250.0, 21, -0.5, 20.5, false, update, trackIPDir, mc, true);
482 
484 
485 }
486 
487 
489 {
490 
491  delete trkNbr3D;
492  delete trkNbr2D;
495  delete ghostTrackWeightHisto;
496  delete trackQualHisto;
497  delete selectedTrackQualHisto;
498  delete trackMultVsJetPtHisto;
500 
501  for(int n=0; n != 5; ++n) {
502  delete tkcntHistosSig2D[n];
503  delete tkcntHistosSig3D[n];
504  delete tkcntHistosVal2D[n];
505  delete tkcntHistosVal3D[n];
506  delete tkcntHistosErr2D[n];
507  delete tkcntHistosErr3D[n];
510  delete tkcntHistosJetDistVal2D[n];
511  delete tkcntHistosJetDistVal3D[n];
512  delete tkcntHistosJetDistSign2D[n];
513  delete tkcntHistosJetDistSign3D[n];
514  delete tkcntHistosTkNChiSqr2D[n];
515  delete tkcntHistosTkNChiSqr3D[n];
516  delete tkcntHistosTkPt2D[n];
517  delete tkcntHistosTkPt3D[n];
518  delete tkcntHistosTkNHits2D[n];
519  delete tkcntHistosTkNHits3D[n];
520  delete tkcntHistosProb2D[n];
521  delete tkcntHistosProb3D[n];
522  }
523  if (finalized) {
524  for(int n=0; n != 4; ++n) delete effPurFromHistos[n];
525  }
526 }
527 
528 
530  const int & jetFlavour)
531 {
532 
533  const reco::TrackIPTagInfo * tagInfo =
534  dynamic_cast<const reco::TrackIPTagInfo *>(baseTagInfo);
535 
536  if (!tagInfo) {
537  throw cms::Exception("Configuration")
538  << "BTagPerformanceAnalyzer: Extended TagInfo not of type TrackIPTagInfo. " << std::endl;
539  }
540 
541  const GlobalPoint pv(tagInfo->primaryVertex()->position().x(),
542  tagInfo->primaryVertex()->position().y(),
543  tagInfo->primaryVertex()->position().z());
544 
545  const std::vector<reco::TrackIPTagInfo::TrackIPData>& ip = tagInfo->impactParameterData();
546 
547  std::vector<float> prob2d, prob3d;
548  if (tagInfo->hasProbabilities()) {
549  prob2d = tagInfo->probabilities(0);
550  prob3d = tagInfo->probabilities(1);
551  }
552 
553  trkNbr3D->fill(jetFlavour, ip.size());
554  trkNbr2D->fill(jetFlavour, ip.size());
555 
556  std::vector<std::size_t> sortedIndices = tagInfo->sortedIndexes(reco::TrackIPTagInfo::IP2DSig);
557  std::vector<std::size_t> selectedIndices;
558  reco::TrackRefVector sortedTracks = tagInfo->sortedTracks(sortedIndices);
559  reco::TrackRefVector selectedTracks;
560  for(unsigned int n = 0; n != sortedIndices.size(); ++n) {
561  double decayLength = (ip[sortedIndices[n]].closestToJetAxis - pv).mag();
562  double jetDistance = ip[sortedIndices[n]].distanceToJetAxis.value();
563  if(decayLength > minDecayLength && decayLength < maxDecayLength &&
564  jetDistance > minJetDistance && jetDistance < maxJetDistance ) {
565  selectedIndices.push_back(sortedIndices[n]);
566  selectedTracks.push_back(sortedTracks[n]);
567  }
568  }
569  for(unsigned int n=0; n != selectedIndices.size() && n != 4; ++n) {
570  const reco::TrackRef& track = sortedTracks[n];
571  const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
572  tkcntHistosSig2D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip2d.significance(), true);
573  tkcntHistosVal2D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip2d.value(), true);
574  tkcntHistosErr2D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip2d.error(), true);
575  const double& decayLen = (ip[selectedIndices[n]].closestToJetAxis - pv).mag();
576  tkcntHistosDecayLengthVal2D[n]->fill(jetFlavour, trackQual, decayLen, true);
577  tkcntHistosJetDistVal2D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToJetAxis.value(), true);
578  tkcntHistosJetDistSign2D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToJetAxis.significance(), true);
579  tkcntHistosTkNChiSqr2D[n]->fill(jetFlavour, trackQual, track->normalizedChi2(), true);
580  tkcntHistosTkPt2D[n]->fill(jetFlavour, trackQual, track->pt(), true);
581  tkcntHistosTkNHits2D[n]->fill(jetFlavour, trackQual, track->found(), true);
582  }
583  sortedIndices = tagInfo->sortedIndexes(reco::TrackIPTagInfo::Prob2D);
584  selectedIndices.clear();
585  sortedTracks = tagInfo->sortedTracks(sortedIndices);
586  selectedTracks.clear();
587  for(unsigned int n = 0; n != sortedIndices.size(); ++n) {
588  double decayLength = (ip[sortedIndices[n]].closestToJetAxis - pv).mag();
589  double jetDistance = ip[sortedIndices[n]].distanceToJetAxis.value();
590  if(decayLength > minDecayLength && decayLength < maxDecayLength &&
591  jetDistance > minJetDistance && jetDistance < maxJetDistance ) {
592  selectedIndices.push_back(sortedIndices[n]);
593  selectedTracks.push_back(sortedTracks[n]);
594  }
595  }
596  for(unsigned int n=0; n != selectedIndices.size() && n != 4; ++n) {
597  const reco::TrackRef& track = sortedTracks[n];
598  const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
599  tkcntHistosProb2D[n]->fill(jetFlavour, trackQual, prob2d[selectedIndices[n]], true);
600  }
601  for(unsigned int n=selectedIndices.size(); n < 4; ++n){
603  tkcntHistosSig2D[n]->fill(jetFlavour, trackQual, lowerIPSBound-1.0, false);
604  tkcntHistosVal2D[n]->fill(jetFlavour, trackQual, lowerIPBound-1.0, false);
605  tkcntHistosErr2D[n]->fill(jetFlavour, trackQual, lowerIPEBound-1.0, false);
606  }
607  sortedIndices = tagInfo->sortedIndexes(reco::TrackIPTagInfo::IP3DSig);
608  selectedIndices.clear();
609  sortedTracks = tagInfo->sortedTracks(sortedIndices);
610  selectedTracks.clear();
611  for(unsigned int n = 0; n != sortedIndices.size(); ++n) {
612  double decayLength = (ip[sortedIndices[n]].closestToJetAxis - pv).mag();
613  double jetDistance = ip[sortedIndices[n]].distanceToJetAxis.value();
614  if(decayLength > minDecayLength && decayLength < maxDecayLength &&
615  jetDistance > minJetDistance && jetDistance < maxJetDistance ) {
616  selectedIndices.push_back(sortedIndices[n]);
617  selectedTracks.push_back(sortedTracks[n]);
618  }
619  }
620  for(unsigned int n=0; n != selectedIndices.size() && n != 4; ++n) {
621  const reco::TrackRef& track = sortedTracks[n];
622  const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
623  tkcntHistosSig3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip3d.significance(), true);
624  tkcntHistosVal3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip3d.value(), true);
625  tkcntHistosErr3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip3d.error(), true);
626  const double& decayLen = (ip[selectedIndices[n]].closestToJetAxis - pv).mag();
627  tkcntHistosDecayLengthVal3D[n]->fill(jetFlavour, trackQual, decayLen, true);
628  tkcntHistosJetDistVal3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToJetAxis.value(), true);
629  tkcntHistosJetDistSign3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToJetAxis.significance(), true);
630  tkcntHistosTkNChiSqr3D[n]->fill(jetFlavour, trackQual, track->normalizedChi2(), true);
631  tkcntHistosTkPt3D[n]->fill(jetFlavour, trackQual, track->pt(), true);
632  tkcntHistosTkNHits3D[n]->fill(jetFlavour, trackQual, track->found(), true);
633  }
634  sortedIndices = tagInfo->sortedIndexes(reco::TrackIPTagInfo::Prob3D);
635  selectedIndices.clear();
636  sortedTracks = tagInfo->sortedTracks(sortedIndices);
637  selectedTracks.clear();
638  for(unsigned int n = 0; n != sortedIndices.size(); ++n) {
639  double decayLength = (ip[sortedIndices[n]].closestToJetAxis - pv).mag();
640  double jetDistance = ip[sortedIndices[n]].distanceToJetAxis.value();
641  if(decayLength > minDecayLength && decayLength < maxDecayLength &&
642  jetDistance > minJetDistance && jetDistance < maxJetDistance ) {
643  selectedIndices.push_back(sortedIndices[n]);
644  selectedTracks.push_back(sortedTracks[n]);
645  }
646  }
647  for(unsigned int n=0; n != selectedIndices.size() && n != 4; ++n) {
648  const reco::TrackRef& track = sortedTracks[n];
649  const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
650  tkcntHistosProb3D[n]->fill(jetFlavour, trackQual, prob3d[selectedIndices[n]], true);
651  }
652  for(unsigned int n=selectedIndices.size(); n < 4; ++n){
654  tkcntHistosSig3D[n]->fill(jetFlavour, trackQual, lowerIPSBound-1.0, false);
655  tkcntHistosVal3D[n]->fill(jetFlavour, trackQual, lowerIPBound-1.0, false);
656  tkcntHistosErr3D[n]->fill(jetFlavour, trackQual, lowerIPEBound-1.0, false);
657  }
658  for(unsigned int n=0; n != ip.size(); ++n) {
659  const reco::TrackRef& track = tagInfo->selectedTracks()[n];
660  const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
661  tkcntHistosSig2D[4]->fill(jetFlavour, trackQual, ip[n].ip2d.significance(), true);
662  tkcntHistosVal2D[4]->fill(jetFlavour, trackQual, ip[n].ip2d.value(), true);
663  tkcntHistosErr2D[4]->fill(jetFlavour, trackQual, ip[n].ip2d.error(), true);
664  tkcntHistosProb2D[4]->fill(jetFlavour, trackQual, prob2d[n], true);
665  const double& decayLen = (ip[n].closestToJetAxis - pv).mag();
666  tkcntHistosDecayLengthVal2D[4]->fill(jetFlavour, trackQual, decayLen, true);
667  tkcntHistosJetDistVal2D[4]->fill(jetFlavour, trackQual, ip[n].distanceToJetAxis.value(), true);
668  tkcntHistosJetDistSign2D[4]->fill(jetFlavour, trackQual, ip[n].distanceToJetAxis.significance(), true);
669  tkcntHistosTkNChiSqr2D[4]->fill(jetFlavour, trackQual, track->normalizedChi2(), true);
670  tkcntHistosTkPt2D[4]->fill(jetFlavour, trackQual, track->pt(), true);
671  tkcntHistosTkNHits2D[4]->fill(jetFlavour, trackQual, track->found(), true);
672  }
673  for(unsigned int n=0; n != ip.size(); ++n) {
674  const reco::TrackRef& track = tagInfo->selectedTracks()[n];
675  const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
676  tkcntHistosSig3D[4]->fill(jetFlavour, trackQual, ip[n].ip3d.significance(), true);
677  tkcntHistosVal3D[4]->fill(jetFlavour, trackQual, ip[n].ip3d.value(), true);
678  tkcntHistosErr3D[4]->fill(jetFlavour, trackQual, ip[n].ip3d.error(), true);
679  tkcntHistosProb3D[4]->fill(jetFlavour, trackQual, prob3d[n], true);
680  const double& decayLen = (ip[n].closestToJetAxis - pv).mag();
681  tkcntHistosDecayLengthVal3D[4]->fill(jetFlavour, trackQual, decayLen, true);
682  tkcntHistosJetDistVal3D[4]->fill(jetFlavour, trackQual, ip[n].distanceToJetAxis.value(), true);
683  tkcntHistosJetDistSign3D[4]->fill(jetFlavour, trackQual, ip[n].distanceToJetAxis.significance(), true);
684  tkcntHistosTkNChiSqr3D[4]->fill(jetFlavour, trackQual, track->normalizedChi2(), true);
685  tkcntHistosTkPt3D[4]->fill(jetFlavour, trackQual, track->pt(), true);
686  tkcntHistosTkNHits3D[4]->fill(jetFlavour, trackQual, track->found(), true);
687  }
688  for(unsigned int n=0; n != ip.size(); ++n) {
689  const reco::TrackRef& track = tagInfo->selectedTracks()[n];
690  const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
691  ghostTrackDistanceValuHisto->fill(jetFlavour, trackQual, ip[n].distanceToGhostTrack.value(), true);
692  ghostTrackDistanceSignHisto->fill(jetFlavour, trackQual, ip[n].distanceToGhostTrack.significance(), true);
693  ghostTrackWeightHisto->fill(jetFlavour, trackQual, ip[n].ghostTrackWeight, true);
694  selectedTrackQualHisto->fill(jetFlavour, trackQual);
695  }
696  for(unsigned int n = 0; n != tagInfo->tracks().size(); ++n) {
697  trackQualHisto->fill(jetFlavour, highestTrackQual(tagInfo->tracks()[n]));
698  }
699 
700  trackMultVsJetPtHisto->fill(jetFlavour, tagInfo->jet()->pt(), tagInfo->tracks().size());
701  selectedTrackMultVsJetPtHisto->fill(jetFlavour, tagInfo->jet()->pt(), tagInfo->selectedTracks().size());
702 }
703 
705  const std::string trackIPDir(theExtensionString.substr(1));
708  endEffPur_);
709  effPurFromHistos[1] = new EffPurFromHistos (tkcntHistosSig3D[2],trackIPDir, mcPlots_,
711  endEffPur_);
712  effPurFromHistos[2] = new EffPurFromHistos (tkcntHistosSig2D[1],trackIPDir, mcPlots_,
714  endEffPur_);
715  effPurFromHistos[3] = new EffPurFromHistos (tkcntHistosSig2D[2],trackIPDir, mcPlots_,
717  endEffPur_);
718 }
719 
720 
722 {
723  //
724  // final processing:
725  // produce the misid. vs. eff histograms
726  //
727  for(int n=0; n != 4; ++n) effPurFromHistos[n]->compute();
728  finalized = true;
729 }
730 
731 void TrackIPTagPlotter::psPlot(const std::string & name)
732 {
733  const std::string cName("TrackIPPlots"+ theExtensionString);
734  RecoBTag::setTDRStyle()->cd();
735  TCanvas canvas(cName.c_str(), cName.c_str(), 600, 900);
736  canvas.UseCurrentStyle();
737  canvas.Divide(2,3);
738  canvas.Print((name + cName + ".ps[").c_str());
739 
740  canvas.cd(1);
741  trkNbr3D->plot();
742  canvas.cd(2);
743  tkcntHistosSig3D[4]->plot();
744  for(int n=0; n < 4; n++) {
745  canvas.cd(3+n);
746  tkcntHistosSig3D[n]->plot();
747  }
748 
749  canvas.Print((name + cName + ".ps").c_str());
750  canvas.Clear();
751  canvas.Divide(2,3);
752 
753  canvas.cd(1);
754  trkNbr3D->plot();
755  canvas.cd(2);
756  tkcntHistosProb3D[4]->plot();
757  for(int n=0; n < 4; n++) {
758  canvas.cd(3+n);
760  }
761 
762  canvas.Print((name + cName + ".ps").c_str());
763  canvas.Clear();
764  canvas.Divide(2,3);
765  canvas.cd(1);
766  trkNbr2D->plot();
767  canvas.cd(2);
768  tkcntHistosSig2D[4]->plot();
769  for(int n=0; n != 4; ++n) {
770  canvas.cd(3+n);
771  tkcntHistosSig2D[n]->plot();
772  }
773 
774  canvas.Print((name + cName + ".ps").c_str());
775  canvas.Clear();
776  canvas.Divide(2,3);
777  canvas.cd(1);
778  trkNbr2D->plot();
779  canvas.cd(2);
780  tkcntHistosProb2D[4]->plot();
781  for(int n=0; n != 4; ++n) {
782  canvas.cd(3+n);
784  }
785 
786  if (finalized) {
787  for(int n=0; n != 2; ++n) {
788  canvas.Print((name + cName + ".ps").c_str());
789  canvas.Clear();
790  canvas.Divide(2,3);
791  canvas.cd(1);
793  canvas.cd(2);
795  canvas.cd(3);
796  effPurFromHistos[0+n]->plot();
797  canvas.cd(4);
799  canvas.cd(5);
801  canvas.cd(6);
802  effPurFromHistos[1+n]->plot();
803  }
804  }
805 
806  canvas.Print((name + cName + ".ps").c_str());
807  canvas.Clear();
808  canvas.Divide(1,3);
809  canvas.cd(1);
811  canvas.cd(2);
813  canvas.cd(3);
815 
816  canvas.Print((name + cName + ".ps").c_str());
817  canvas.Print((name + cName + ".ps]").c_str());
818 }
819 
820 
821 void TrackIPTagPlotter::epsPlot(const std::string & name)
822 {
823  trkNbr2D->epsPlot(name);
824  trkNbr3D->epsPlot(name);
828  for(int n=0; n != 5; ++n) {
829  tkcntHistosSig2D[n]->epsPlot(name);
830  tkcntHistosSig3D[n]->epsPlot(name);
831  tkcntHistosVal2D[n]->epsPlot(name);
832  tkcntHistosVal3D[n]->epsPlot(name);
833  tkcntHistosErr2D[n]->epsPlot(name);
834  tkcntHistosErr3D[n]->epsPlot(name);
835  tkcntHistosProb2D[n]->epsPlot(name);
836  tkcntHistosProb3D[n]->epsPlot(name);
845  tkcntHistosTkPt2D[n]->epsPlot(name);
846  tkcntHistosTkPt3D[n]->epsPlot(name);
849  }
850  if (finalized) {
851  for(int n=0; n != 4; ++n) effPurFromHistos[n]->epsPlot(name);
852  }
853 }
854 
857  {
858  if(track->quality(i))
859  return i;
860  }
861 
863 }
TrackIPHistograms< double > * tkcntHistosErr3D[5]
TrackIPHistograms< double > * tkcntHistosJetDistSign3D[5]
int i
Definition: DBlmapReader.cc:9
TrackIPHistograms< double > * tkcntHistosErr2D[5]
void plot(TPad *theCanvas=0)
TrackIPHistograms< int > * tkcntHistosTkNHits2D[5]
void psPlot(const std::string &name)
TrackIPHistograms< double > * tkcntHistosTkNChiSqr2D[5]
const edm::Ref< VertexCollection > & primaryVertex() const
TrackIPHistograms< double > * tkcntHistosTkNChiSqr3D[5]
FlavourHistograms< int > * trkNbr2D
TrackQuality
track quality
Definition: TrackBase.h:95
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
const std::string theExtensionString
TStyle * setTDRStyle()
Definition: Tools.cc:287
TrackIPHistograms< float > * tkcntHistosProb2D[5]
void epsPlot(const std::string &name)
void fill(const int &flavour, const T &variable) const
TrackIPHistograms< double > * tkcntHistosSig2D[5]
TrackIPHistograms< double > * tkcntHistosJetDistVal3D[5]
TrackIPHistograms< double > * ghostTrackDistanceSignHisto
TrackIPHistograms< int > * tkcntHistosTkNHits3D[5]
TrackIPHistograms< double > * tkcntHistosTkPt3D[5]
FlavourHistograms2D< double, int > * selectedTrackMultVsJetPtHisto
def canvas
Definition: svgfig.py:481
FlavourHistograms< int > * selectedTrackQualHisto
virtual TrackRefVector tracks(void) const
returns a list of tracks associated to the jet
Definition: JTATagInfo.h:21
TrackIPHistograms< double > * ghostTrackWeightHisto
void epsPlot(const std::string &name)
TrackIPHistograms< double > * tkcntHistosDecayLengthVal2D[5]
void fill(const int &flavour, const T &variableX, const G &variableY) const
void fill(const int &flavour, const reco::TrackBase::TrackQuality &quality, const T &variable, const bool &hasTrack) const
FlavourHistograms< double > * discriminatorCutEfficScan() const
void plot(TPad *theCanvas=0)
FlavourHistograms< double > * discriminatorNoCutEffic() const
const std::vector< float > & probabilities(int ip) const
TrackIPHistograms< double > * tkcntHistosDecayLengthVal3D[5]
virtual edm::RefToBase< Jet > jet(void) const
returns a polymorphic reference to the tagged jet
Definition: JTATagInfo.h:20
EffPurFromHistos * effPurFromHistos[4]
FlavourHistograms2D< double, int > * trackMultVsJetPtHisto
virtual bool hasProbabilities() const
TrackIPHistograms< double > * tkcntHistosTkPt2D[5]
std::vector< size_t > sortedIndexes(SortCriteria mode=IP3DSig) const
TrackIPHistograms< float > * tkcntHistosProb3D[5]
virtual void finalize()
void clear()
Clear the vector.
Definition: RefVector.h:133
virtual double pt() const
transverse momentum
TrackIPTagPlotter(const std::string &tagName, const EtaPtBin &etaPtBin, const edm::ParameterSet &pSet, const bool &update, const bool &mc, const bool &wf)
reco::TrackRefVector sortedTracks(std::vector< size_t > indexes) const
TrackIPHistograms< double > * tkcntHistosJetDistVal2D[5]
void analyzeTag(const reco::BaseTagInfo *baseTagInfo, const int &jetFlavour)
#define update(a, b)
TrackIPHistograms< double > * ghostTrackDistanceValuHisto
const std::vector< TrackIPData > & impactParameterData() const
TrackIPHistograms< double > * tkcntHistosVal3D[5]
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:64
size_type size() const
Size of the RefVector.
Definition: RefVector.h:89
TrackIPHistograms< double > * tkcntHistosVal2D[5]
virtual void createPlotsForFinalize()
reco::TrackBase::TrackQuality highestTrackQual(const reco::TrackRef &track) const
TrackIPHistograms< double > * tkcntHistosSig3D[5]
const edm::RefVector< TrackCollection > & selectedTracks() const
FlavourHistograms< int > * trackQualHisto
FlavourHistograms< int > * trkNbr3D
TrackIPHistograms< double > * tkcntHistosJetDistSign2D[5]