Define Histogram.
101{
106
108 if (m_nHistClassesActual < 1) m_nHistClassesActual = 1;
109
110
111
112 for (int iskim = start_skim_topdqm; iskim < end_skim_topdqm; iskim++) {
113
114
115
116
117
118 h_topCombinedTimingTopAll[iskim] =
new TH1I(Form(
"h_t0_comb_%s",
skim_smap[iskim].c_str()),
"ALL TOP combined t0 decisions", 100,
119 0,
120 100000);
121 h_topCombinedTimingTopAll[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decision time (us)");
122
123 h_topNSlotsCombinedTimingTopAll[iskim] =
new TH1I(Form(
"h_n_slots_comb_%s",
skim_smap[iskim].c_str()),
124 "ALL TOP combined t0 decisions: N slots", 17, 0, 17);
125 h_topNSlotsCombinedTimingTopAll[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: N slots");
126
127 h_topNHitSumAll[iskim] =
new TH1I(Form(
"h_nhit_per_slot_comb_%s",
skim_smap[iskim].c_str()),
128 "ALL TOP combined t0 decisions: N hits per slot", 200, 0, 200);
129 h_topNHitSumAll[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: N hits per slot");
130
131 h_topLogLSumAll[iskim] =
new TH1I(Form(
"h_logl_per_slot_comb_%s",
skim_smap[iskim].c_str()),
132 "ALL TOP combined t0 decisions: log L per slot", 100, 0, 60000);
133 h_topLogLSumAll[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: log L per slot");
134
135 h_topNSlotsCombinedTimingVsNHitsTopAll[iskim] =
new TH2I(Form(
"h_n_slots_vs_nhit_total_comb_%s",
skim_smap[iskim].c_str()),
136 "ALL TOP combined t0 decisions: N slots vs N hits (total)", 300, 0, 300, 17, 0, 17);
137 h_topNSlotsCombinedTimingVsNHitsTopAll[iskim]->GetXaxis()->SetTitle("N hits (total)");
138 h_topNSlotsCombinedTimingVsNHitsTopAll[iskim]->GetYaxis()->SetTitle("N slots");
139
140 h_topTrigType[iskim] =
new TH1I(Form(
"h_trig_type_%s",
skim_smap[iskim].c_str()),
141 "ALL TOP combined decisions: trig type", 10, 0, 10);
142 h_topTrigType[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: trig type");
143
144 h_topTimingResiduals[iskim] =
new TH1I(Form(
"h_timing_residuals_%s",
skim_smap[iskim].c_str()),
145 "ALL TOP combined decisions: timing residual", 100, 0, 100);
146 h_topTimingResiduals[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: timing residuals");
147
148 h_topTimingVariance[iskim] =
new TH1I(Form(
"h_timing_variance_%s",
skim_smap[iskim].c_str()),
149 "ALL TOP combined decisions: timing variance", 100, 0, 100);
150 h_topTimingVariance[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: timing variance");
151
152
153
154
155
156
157 h_topSlotAll[iskim] =
new TH1I(Form(
"h_slot_number_%s",
skim_smap[iskim].c_str()),
"slot", 16, 1, 17);
158 h_topSlotAll[iskim]->GetXaxis()->SetTitle("slot number in combined decisions (over 1us)");
159
160 h_topSegmentAll[iskim] =
new TH1I(Form(
"h_segment_slot_%s",
skim_smap[iskim].c_str()),
"segment", 10, 1, 11);
161 h_topSegmentAll[iskim]->GetXaxis()->SetTitle("segment for each slot in combined decisions (over 1us)");
162
163 h_topNHitsAll[iskim] =
new TH1I(Form(
"h_nhit_slot_%s",
skim_smap[iskim].c_str()),
"nhit", 200, 0, 200);
164 h_topNHitsAll[iskim]->GetXaxis()->SetTitle("N hits (for slots in combined decisions (over 1us))");
165
166 h_topLogLAll[iskim] =
new TH1I(Form(
"h_logl_slot_%s",
skim_smap[iskim].c_str()),
"log L", 100, 0, 60000);
167 h_topLogLAll[iskim]->GetXaxis()->SetTitle("log L (for slots in combined decisions (over 1us))");
168
169 h_topT0All[iskim] =
new TH1I(Form(
"h_t0_slot_%s",
skim_smap[iskim].c_str()),
"t0", 100, 0, 100000);
170 h_topT0All[iskim]->GetXaxis()->SetTitle("t0 for slots in combined decisions (over 1us)");
171
172
173
174
175
176
177 h_topSlotVsSegment[iskim] =
new TH2I(Form(
"h_slot_vs_segment_%s",
skim_smap[iskim].c_str()),
"slot # vs slot segment", 10, 1, 11,
178 16, 1, 17);
179 h_topSlotVsSegment[iskim]->GetXaxis()->SetTitle("segment");
180 h_topSlotVsSegment[iskim]->GetYaxis()->SetTitle("slot");
181
182 h_topSlotVsNHits[iskim] =
new TH2I(Form(
"h_slot_vs_nhit_%s",
skim_smap[iskim].c_str()),
"slot # vs slot nhit", 200, 0, 200, 16, 1,
183 17);
184 h_topSlotVsNHits[iskim]->GetXaxis()->SetTitle("N hits");
185 h_topSlotVsNHits[iskim]->GetYaxis()->SetTitle("slot");
186
187 h_topSlotVsLogL[iskim] =
new TH2I(Form(
"h_slot_vs_logl_%s",
skim_smap[iskim].c_str()),
"slot # vs slot log L", 100, 0, 60000, 16,
188 1, 17);
189 h_topSlotVsLogL[iskim]->GetXaxis()->SetTitle("logL");
190 h_topSlotVsLogL[iskim]->GetYaxis()->SetTitle("slot");
191
192 h_topSlotVsT0[iskim] =
new TH2I(Form(
"h_slot_vs_t0_%s",
skim_smap[iskim].c_str()),
"slot # vs slot t0", 100, 0, 100000, 16, 1, 17);
193 h_topSlotVsT0[iskim]->GetXaxis()->SetTitle("t0");
194 h_topSlotVsT0[iskim]->GetYaxis()->SetTitle("slot");
195
196 h_topSegmentVsNHits[iskim] =
new TH2I(Form(
"h_segment_vs_nhit_%s",
skim_smap[iskim].c_str()),
"slot segment vs slot nhit", 200, 0,
197 200, 10, 1, 11);
198 h_topSegmentVsNHits[iskim]->GetXaxis()->SetTitle("N hits");
199 h_topSegmentVsNHits[iskim]->GetYaxis()->SetTitle("segment");
200
201 h_topSegmentVsLogL[iskim] =
new TH2I(Form(
"h_segment_vs_logl_%s",
skim_smap[iskim].c_str()),
"slot segment vs slot log L", 100, 0,
202 60000, 10, 1, 11);
203 h_topSegmentVsLogL[iskim]->GetXaxis()->SetTitle("logL");
204 h_topSegmentVsLogL[iskim]->GetYaxis()->SetTitle("segment");
205
206 h_topSegmentVsT0[iskim] =
new TH2I(Form(
"h_segment_vs_t0_%s",
skim_smap[iskim].c_str()),
"slot segment vs slot t0", 100, 0, 100000,
207 10, 1, 11);
208 h_topSegmentVsT0[iskim]->GetXaxis()->SetTitle("t0");
209 h_topSegmentVsT0[iskim]->GetYaxis()->SetTitle("segment");
210
211 h_topNHitsVsLogL[iskim] =
new TH2I(Form(
"h_nhit_vs_logl_%s",
skim_smap[iskim].c_str()),
"slot nhit vs slot log L", 100, 0, 100000,
212 200, 0, 200);
213 h_topNHitsVsLogL[iskim]->GetXaxis()->SetTitle("logL");
214 h_topNHitsVsLogL[iskim]->GetYaxis()->SetTitle("N hits");
215
216 h_topNHitsVsT0[iskim] =
new TH2I(Form(
"h_nhit_vs_t0_%s",
skim_smap[iskim].c_str()),
"slot nhit vs slot t0", 100, 0, 100000, 200, 0,
217 200);
218 h_topNHitsVsT0[iskim]->GetXaxis()->SetTitle("t0");
219 h_topNHitsVsT0[iskim]->GetYaxis()->SetTitle("N hits");
220
221 h_topLogLVsT0[iskim] =
new TH2I(Form(
"h_logl_vs_t0_%s",
skim_smap[iskim].c_str()),
"slot log L vs slot t0", 100, 0, 100000, 100, 0,
222 60000);
223 h_topLogLVsT0[iskim]->GetXaxis()->SetTitle("t0");
224 h_topLogLVsT0[iskim]->GetYaxis()->SetTitle("logL");
225
226
227
228
229
230
231 for (int slot = 0; slot <= 15; slot++) {
232
233 h_topSlotSegment[iskim][slot] =
new TH1I(Form(
"h_segment_slot_%s_%s", (to_string(slot + 1)).c_str(),
skim_smap[iskim].c_str()),
234 "segment", 10, 1, 11);
236
237 h_topSlotNHits[iskim][slot] =
new TH1I(Form(
"h_nhit_slot_%s_%s", (to_string(slot + 1)).c_str(),
skim_smap[iskim].c_str()),
"nhit",
238 200, 0, 200);
239 h_topSlotNHits[iskim][slot]->GetXaxis()->SetTitle("N hits");
240
241 h_topSlotLogL[iskim][slot] =
new TH1I(Form(
"h_logl_slot_%s_%s", (to_string(slot + 1)).c_str(),
skim_smap[iskim].c_str()),
"log L",
242 100, 0, 60000);
243 h_topSlotLogL[iskim][slot]->GetXaxis()->SetTitle("log L");
244
245 h_topSlotT0[iskim][slot] =
new TH1I(Form(
"h_t0_slot_%s_%s", (to_string(slot + 1)).c_str(),
skim_smap[iskim].c_str()),
"t0", 100, 0,
246 100000);
247 h_topSlotT0[iskim][slot]->GetXaxis()->SetTitle("t0");
248
249 }
250
251
252
253
254
255
256 h_gdl_ecltop_timing_diff_vs_slot[iskim] =
new TH2I(Form(
"h_gdl_slot_vs_ecltop_timing_diff_%s",
skim_smap[iskim].c_str()),
257 "slot vs GDL ECL-TOP slot t0 difference", 400, 1400,
258 2200, 16, 1, 17);
259 h_gdl_ecltop_timing_diff_vs_slot[iskim]->GetXaxis()->SetTitle("GDL ECL - TOP slot t0 time difference (2ns)");
260 h_gdl_ecltop_timing_diff_vs_slot[iskim]->GetYaxis()->SetTitle("slot");
261
262 h_gdl_ecltop_timing_diff_vs_segment[iskim] =
new TH2I(Form(
"h_gdl_segment_vs_ecltop_timing_diff_%s",
skim_smap[iskim].c_str()),
263 "segment vs GDL ECL-TOP slot t0 difference",
264 400, 1400, 2200, 10, 1, 11);
265 h_gdl_ecltop_timing_diff_vs_segment[iskim]->GetXaxis()->SetTitle("GDL ECL - TOP slot t0 time difference (2ns)");
266 h_gdl_ecltop_timing_diff_vs_segment[iskim]->GetYaxis()->SetTitle("segment");
267
268 h_gdl_ecltop_timing_diff_vs_nhits[iskim] =
new TH2I(Form(
"h_gdl_nhits_vs_ecltop_timing_diff_%s",
skim_smap[iskim].c_str()),
269 "N hits (for slots) vs GDL ECL-TOP slot t0 difference", 400, 1400, 2200, 200, 0, 200);
270 h_gdl_ecltop_timing_diff_vs_nhits[iskim]->GetXaxis()->SetTitle("GDL ECL - TOP slot t0 time difference (2ns)");
271 h_gdl_ecltop_timing_diff_vs_nhits[iskim]->GetYaxis()->SetTitle("N hits");
272
273 h_gdl_ecltop_timing_diff_vs_logl[iskim] =
new TH2I(Form(
"h_gdl_logl_vs_ecltop_timing_diff_%s",
skim_smap[iskim].c_str()),
274 "log L (for slots) vs GDL ECL-TOP slot t0 difference", 400, 1400, 2200, 100, 0, 60000);
275 h_gdl_ecltop_timing_diff_vs_logl[iskim]->GetXaxis()->SetTitle("GDL ECL - TOP slot t0 time difference (2ns)");
276 h_gdl_ecltop_timing_diff_vs_logl[iskim]->GetYaxis()->SetTitle("log L");
277
278
279
280 h_ecl_gdl_top_timing_diff_both[iskim] =
new TH1I(Form(
"h_ecl_gdl_top_timing_diff_both_%s",
skim_smap[iskim].c_str()),
"", 400,
281 1400, 2200);
282 h_ecl_gdl_top_timing_diff_both[iskim]->GetXaxis()->SetTitle("Both ECL - GDL_TOP timing difference (2ns)");
283
284 h_ecl_top_top_timing_diff_both[iskim] =
new TH1I(Form(
"h_ecl_top_top_timing_diff_both_%s",
skim_smap[iskim].c_str()),
"", 400,
285 1400, 2200);
286 h_ecl_top_top_timing_diff_both[iskim]->GetXaxis()->SetTitle("Both ECL - TOP_TOP timing difference (2ns)");
287
288
289
291
292
293
294
295
296 h_gdl_top_rvc_vs_top_timing[iskim] =
new TH2I(Form(
"h_gdl_top_rvc_vs_top_timing_%s",
skim_smap[iskim].c_str()),
297 "ALL GDL TOP rvc vs GDL TOP timing (7.8ns)",
298 128, 0, 1280, 128, 0, 1280);
299 h_gdl_top_rvc_vs_top_timing[iskim]->GetXaxis()->SetTitle("TOP timing according to GDL (7.8ns)");
300 h_gdl_top_rvc_vs_top_timing[iskim]->GetYaxis()->SetTitle("GDL rvc((TOP decision (received))");
301
302 h_gdl_ecltop_rvc_diff[iskim] =
new TH1I(Form(
"h_gdl_ecltop_rvc_diff_%s",
skim_smap[iskim].c_str()),
303 "ALL GDL ECL-TOP rvc difference",
304 10, 0, 10);
305 h_gdl_ecltop_rvc_diff[iskim]->GetXaxis()->SetTitle("TOPTRG GDL ECL-TOP rvc difference (clks)");
306
307 h_gdl_cdctop_rvc_diff[iskim] =
new TH1I(Form(
"h_gdl_cdctop_rvc_diff_%s",
skim_smap[iskim].c_str()),
308 "ALL GDL CDC-TOP rvc difference",
309 10, 0, 10);
310 h_gdl_cdctop_rvc_diff[iskim]->GetXaxis()->SetTitle("TOPTRG GDL CDC-TOP rvc difference (clks)");
311
312
313
314 h_gdl_gdltop_rvc_diff_all[iskim] =
new TH1I(Form(
"h_gdl_gdltop_rvc_diff_%s",
skim_smap[iskim].c_str()),
315 "ALL GDL GDL-TOP rvc difference",
316 10, 1270, 1280);
317 h_gdl_gdltop_rvc_diff_all[iskim]->GetXaxis()->SetTitle("TOPTRG GDL GDL-TOP rvc difference (clks)");
318
319 h_gdl_comtop_rvc_diff_all[iskim] =
new TH1I(Form(
"h_gdl_comtop_rvc_diff_%s",
skim_smap[iskim].c_str()),
320 "ALL GDL COM-TOP rvc difference",
321 30, 20, 50);
322 h_gdl_comtop_rvc_diff_all[iskim]->GetXaxis()->SetTitle("TOPTRG GDL COM-TOP rvc difference (clks)");
323
324
325
326 h_topRvcDiff1All[iskim] =
new TH1I(Form(
"h_top_rvc_diff_1_%s",
skim_smap[iskim].c_str()),
"ALL rvc(posted to GDL)-rvc(TOP(this))",
327 250, -100, 150);
328 h_topRvcDiff1All[iskim]->GetXaxis()->SetTitle("rvc(posted to GDL)-rvc(TOP(this))");
329
330 h_topRvcDiff2All[iskim] =
new TH1I(Form(
"h_top_rvc_diff_2_%s",
skim_smap[iskim].c_str()),
"ALL rvc(TOP(this))-rvc(TOP(prev))",
331 128, 0, 1280);
332 h_topRvcDiff2All[iskim]->GetXaxis()->SetTitle("rvc(TOP(this))-rvc(TOP(prev))");
333
334 h_topRvcDiff3All[iskim] =
new TH1I(Form(
"h_top_rvc_diff_3_%s",
skim_smap[iskim].c_str()),
"ALL rvc(CB(window))-rvc(TOP(this))",
335 150, 0, 150);
336 h_topRvcDiff3All[iskim]->GetXaxis()->SetTitle("rvc(CB(window))-rvc(TOP(this))");
337
338 h_topRvcDiff4All[iskim] =
new TH1I(Form(
"h_top_rvc_diff_4_%s",
skim_smap[iskim].c_str()),
339 "ALL rvc(received L1 from GDL)-rvc(TOP(this))",
340 250, 0, 250);
341 h_topRvcDiff4All[iskim]->GetXaxis()->SetTitle("rvc(L1)-rvc(TOP(this))");
342
343
344
345 h_topGdlRvcDiff1All[iskim] =
new TH1I(Form(
"h_gdl_top_l1_rvc_diff_%s",
skim_smap[iskim].c_str()),
346 "ALL rvc(L1(GDL))-rvc(L1(as reported to TOP))",
347 10, 1235, 1245);
348 h_topGdlRvcDiff1All[iskim]->GetXaxis()->SetTitle("rvc(L1(GDL))-rvc(L1(as reported to TOP))");
349
350 h_topGdlRvcDiff2All[iskim] =
new TH1I(Form(
"h_gdl_l1_top_t0_this_rvc_diff_%s",
skim_smap[iskim].c_str()),
351 "ALL rvc(TOP(received by GDL))-rvc(TOP(this))",
352 50, 0, 200);
353 h_topGdlRvcDiff2All[iskim]->GetXaxis()->SetTitle("rvc(L1(GDL))-rvc(TOP(this))");
354
355 h_topGdlRvcDiff3All[iskim] =
new TH1I(Form(
"h_gdl_l1_top_t0_prev_rvc_diff_%s",
skim_smap[iskim].c_str()),
356 "ALL rvc(TOP(received by GDL))-rvc(TOP(prev))",
357 128, 0, 1280);
358 h_topGdlRvcDiff3All[iskim]->GetXaxis()->SetTitle("rvc(L1(GDL))-rvc(TOP(prev))");
359
360
361
362 h_decisionNumberVsNumberDecisionsGood[iskim] =
new TH2I(Form(
"h_decision_vs_n_decisions_good_%s",
skim_smap[iskim].c_str()),
363 "Good decision number vs N of decisions", 5, 0,
364 5, 5, 0, 5);
365 h_decisionNumberVsNumberDecisionsGood[iskim]->GetXaxis()->SetTitle("N decisions");
366 h_decisionNumberVsNumberDecisionsGood[iskim]->GetYaxis()->SetTitle("Decision number");
367
368
369
370 h_ecl_gdl_top_timing_diff_good[iskim] =
new TH1I(Form(
"h_ecl_gdl_top_timing_diff_good_%s",
skim_smap[iskim].c_str()),
"", 400,
371 1400, 2200);
372 h_ecl_gdl_top_timing_diff_good[iskim]->GetXaxis()->SetTitle("Good ECL - GDL_TOP timing difference (2ns)");
373
374 h_ecl_top_top_timing_diff_good[iskim] =
new TH1I(Form(
"h_ecl_top_top_timing_diff_good_%s",
skim_smap[iskim].c_str()),
"", 400,
375 1400, 2200);
376 h_ecl_top_top_timing_diff_good[iskim]->GetXaxis()->SetTitle("Good ECL - TOP_TOP timing difference (2ns)");
377
378
379
380 h_gdl_ecltop_timing_diff_vs_toptop_good[iskim] = new TH2I(Form("h_gdl_ecltop_timing_diff_vs_toptop_good_%s",
382 "GOOD TOP-TOP vs (GDL ECL)-(GDL TOP) (combined) t0 differences", 110, -760, 10240, 110, -760, 10240);
383 h_gdl_ecltop_timing_diff_vs_toptop_good[iskim]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(GDL TOP) t0 difference (ns, 100ns bins)");
384 h_gdl_ecltop_timing_diff_vs_toptop_good[iskim]->GetYaxis()->SetTitle("TOP timing (TOP) - TOP timing (GDL) (ns, 100ns bins)");
385
386 h_top_ecltop_timing_diff_vs_toptop_good[iskim] = new TH2I(Form("h_top_ecltop_timing_diff_vs_toptop_good_%s",
388 "GOOD TOP-TOP vs (GDL ECL)-(TOP TOP) (combined) t0 differences", 110, -760, 10240, 110, -760, 10240);
389 h_top_ecltop_timing_diff_vs_toptop_good[iskim]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(TOP TOP) t0 difference (ns, 100ns bins)");
390 h_top_ecltop_timing_diff_vs_toptop_good[iskim]->GetYaxis()->SetTitle("TOP timing (TOP) - TOP timing (GDL) (ns, 100ns bins)");
391
392 h_gdl_ecltop_timing_diff_vs_ecltop_good[iskim] = new TH2I(Form("h_gdl_ecltop_timing_diff_vs_ecltop_good_%s",
394 "GOOD (GDL ECL)-(TOP TOP) vs (GDL ECL)-(GDL TOP) (combined) t0 differences", 110, -760, 10240, 110, -760, 10240);
395 h_gdl_ecltop_timing_diff_vs_ecltop_good[iskim]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(GDL TOP) t0 difference (ns, 100ns bins)");
396 h_gdl_ecltop_timing_diff_vs_ecltop_good[iskim]->GetYaxis()->SetTitle("TOPTRG (GDL ECL)-(TOP TOP) t0 difference (ns, 100ns bins)");
397
398
399
400 h_gdl_gdltop_rvc_diff_good[iskim] =
new TH1I(Form(
"h_gdl_gdltop_rvc_diff_good_%s",
skim_smap[iskim].c_str()),
401 "GOOD GDL GDL-TOP rvc difference",
402 10, 1270, 1280);
403 h_gdl_gdltop_rvc_diff_good[iskim]->GetXaxis()->SetTitle("TOPTRG GDL GDL-TOP rvc difference (clks)");
404
405 h_gdl_comtop_rvc_diff_good[iskim] =
new TH1I(Form(
"h_gdl_comtop_rvc_diff_good_%s",
skim_smap[iskim].c_str()),
406 "GOOD GDL COM-TOP rvc difference",
407 30, 20, 50);
408 h_gdl_comtop_rvc_diff_good[iskim]->GetXaxis()->SetTitle("TOPTRG GDL COM-TOP rvc difference (clks)");
409
410
411
412 h_topCombinedTimingTopGood[iskim] =
new TH1I(Form(
"h_t0_good_%s",
skim_smap[iskim].c_str()),
"GOOD TOP combined t0 decision", 100,
413 0,
414 100000);
415 h_topCombinedTimingTopGood[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions");
416
417 h_topNSlotsCombinedTimingTopGood[iskim] =
new TH1I(Form(
"h_n_slots_good_%s",
skim_smap[iskim].c_str()),
418 "GOOD TOP combined t0 decision: N slots", 17, 0, 17);
419 h_topNSlotsCombinedTimingTopGood[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: N slots");
420
421 h_topNHitSumGood[iskim] =
new TH1I(Form(
"h_n_hit_per_slot_good_%s",
skim_smap[iskim].c_str()),
422 "GOOD TOP combined t0 decision: N hit per slot", 200, 0, 200);
423 h_topNHitSumGood[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: N hits per slot");
424
425 h_topLogLSumGood[iskim] =
new TH1I(Form(
"h_logl_per_slot_good_%s",
skim_smap[iskim].c_str()),
426 "GOOD TOP combined t0 decision: log L per slot", 100, 0, 60000);
427 h_topLogLSumGood[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: log L per slot");
428
429
430
431 h_topRvcDiff1Good[iskim] =
new TH1I(Form(
"h_rvc_diff_1_good_%s",
skim_smap[iskim].c_str()),
432 "GOOD rvc(posted to GDL)-rvc(TOP(this))",
433 250, -100, 150);
434 h_topRvcDiff1Good[iskim]->GetXaxis()->SetTitle("rvc(posted to GDL)-rvc(TOP(this))");
435
436 h_topRvcDiff2Good[iskim] =
new TH1I(Form(
"h_rvc_diff_2_good_%s",
skim_smap[iskim].c_str()),
"GOOD rvc(TOP(this))-rvc(TOP(prev))",
437 128, 0, 1280);
438 h_topRvcDiff2Good[iskim]->GetXaxis()->SetTitle("rvc(TOP(this))-rvc(TOP(prev))");
439
440 h_topRvcDiff3Good[iskim] =
new TH1I(Form(
"h_rvc_diff_3_good_%s",
skim_smap[iskim].c_str()),
"GOOD rvc(CB(window))-rvc(TOP(this))",
441 150, 0, 150);
442 h_topRvcDiff3Good[iskim]->GetXaxis()->SetTitle("rvc(CB(window))-rvc(TOP(this))");
443
444 h_topRvcDiff4Good[iskim] =
new TH1I(Form(
"h_rvc_diff_4_good_%s",
skim_smap[iskim].c_str()),
445 "GOOD rvc(received L1 from GDL)-rvc(TOP(this))",
446 250, 0, 250);
447 h_topRvcDiff4Good[iskim]->GetXaxis()->SetTitle("rvc(L1)-rvc(TOP(this))");
448
449
450
451 h_topGdlRvcDiff1Good[iskim] =
new TH1I(Form(
"h_gdl_top_l1_rvc_diff_good_%s",
skim_smap[iskim].c_str()),
452 "GOOD rvc(L1(GDL))-rvc(L1(as reported to TOP))",
453 10, 1235, 1245);
454 h_topGdlRvcDiff1Good[iskim]->GetXaxis()->SetTitle("rvc(L1(GDL))-rvc(L1(as reported to TOP))");
455
456 h_topGdlRvcDiff2Good[iskim] =
new TH1I(Form(
"h_gdl_l1_top_t0_this_rvc_diff_good_%s",
skim_smap[iskim].c_str()),
457 "GOOD rvc(TOP(received by GDL))-rvc(TOP(this))",
458 100, 0, 200);
459 h_topGdlRvcDiff2Good[iskim]->GetXaxis()->SetTitle("rvc(L1(GDL))-rvc(TOP(this))");
460
461 h_topGdlRvcDiff3Good[iskim] =
new TH1I(Form(
"h_gdl_l1_top_t0_prev_rvc_diff_good_%s",
skim_smap[iskim].c_str()),
462 "GOOD rvc(TOP(received by GDL))-rvc(TOP(prev))",
463 128, 0, 1280);
464 h_topGdlRvcDiff3Good[iskim]->GetXaxis()->SetTitle("rvc(L1(GDL))-rvc(TOP(prev))");
465
466
467
468 h_decisionNumberVsNumberDecisionsBad[iskim] =
new TH2I(Form(
"h_decision_vs_n_decisions_bad_%s",
skim_smap[iskim].c_str()),
469 "Bad decision number vs N of decisions", 5, 0, 5,
470 5, 0, 5);
471 h_decisionNumberVsNumberDecisionsBad[iskim]->GetXaxis()->SetTitle("N decisions");
472 h_decisionNumberVsNumberDecisionsBad[iskim]->GetYaxis()->SetTitle("Decision number");
473
474
475
476 h_ecl_gdl_top_timing_diff_bad[iskim] =
new TH1I(Form(
"h_ecl_gdl_top_timing_diff_bad_%s",
skim_smap[iskim].c_str()),
"", 400, 1400,
477 2200);
478 h_ecl_gdl_top_timing_diff_bad[iskim]->GetXaxis()->SetTitle("Bad ECL - GDL_TOP timing difference (2ns)");
479
480 h_ecl_top_top_timing_diff_bad[iskim] =
new TH1I(Form(
"h_ecl_top_top_timing_diff_bad_%s",
skim_smap[iskim].c_str()),
"", 400, 1400,
481 2200);
482 h_ecl_top_top_timing_diff_bad[iskim]->GetXaxis()->SetTitle("Bad ECL - TOP_TOP timing difference (2ns)");
483
484
485
486 h_gdl_ecltop_timing_diff_vs_toptop_bad[iskim] = new TH2I(Form("h_gdl_ecltop_timing_diff_vs_toptop_bad_%s",
488 "BAD TOP-TOP vs (GDL ECL)-(GDL TOP) t0 differences", 110, -760, 10240, 110, -760, 10240);
489 h_gdl_ecltop_timing_diff_vs_toptop_bad[iskim]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(GDL TOP) (combined) t0 difference (ns, 100ns bins)");
490 h_gdl_ecltop_timing_diff_vs_toptop_bad[iskim]->GetYaxis()->SetTitle("TOP timing (TOP) - TOP timing (GDL) (ns, 100ns bins)");
491
492 h_top_ecltop_timing_diff_vs_toptop_bad[iskim] = new TH2I(Form("h_top_ecltop_timing_diff_vs_toptop_bad_%s",
494 "BAD TOP-TOP vs (GDL ECL)-(TOP TOP) (combined) t0 differences", 110, -760, 10240, 110, -760, 10240);
495 h_top_ecltop_timing_diff_vs_toptop_bad[iskim]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(TOP TOP) t0 difference (ns, 100ns bins)");
496 h_top_ecltop_timing_diff_vs_toptop_bad[iskim]->GetYaxis()->SetTitle("TOP timing (TOP) - TOP timing (GDL) (ns, 100ns bins)");
497
498 h_gdl_ecltop_timing_diff_vs_ecltop_bad[iskim] = new TH2I(Form("h_gdl_ecltop_timing_diff_vs_ecltop_bad_%s",
500 "BAD (GDL ECL)-(TOP TOP) vs (GDL ECL)-(GDL TOP) (combined) t0 differences", 110, -760, 10240, 110, -760, 10240);
501 h_gdl_ecltop_timing_diff_vs_ecltop_bad[iskim]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(GDL TOP) t0 difference (ns, 100ns bins)");
502 h_gdl_ecltop_timing_diff_vs_ecltop_bad[iskim]->GetYaxis()->SetTitle("TOPTRG (GDL ECL)-(TOP TOP) t0 difference (ns, 100ns bins)");
503
504
505
506 h_gdl_gdltop_rvc_diff_bad[iskim] =
new TH1I(Form(
"h_gdl_gdltop_rvc_diff_bad_%s",
skim_smap[iskim].c_str()),
507 "BAD GDL GDL-TOP rvc difference",
508 10, 1270, 1280);
509 h_gdl_gdltop_rvc_diff_bad[iskim]->GetXaxis()->SetTitle("TOPTRG GDL GDL-TOP rvc difference (clks)");
510
511 h_gdl_comtop_rvc_diff_bad[iskim] =
new TH1I(Form(
"h_gdl_comtop_rvc_diff_bad_%s",
skim_smap[iskim].c_str()),
512 "BAD GDL COM-TOP rvc difference",
513 30, 20, 50);
514 h_gdl_comtop_rvc_diff_bad[iskim]->GetXaxis()->SetTitle("TOPTRG GDL COM-TOP rvc difference (clks)");
515
516
517
518 h_topCombinedTimingTopBad[iskim] =
new TH1I(Form(
"h_t0_bad_%s",
skim_smap[iskim].c_str()),
"BAD TOP combined t0 decision", 100, 0,
519 100000);
520 h_topCombinedTimingTopBad[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions");
521
522 h_topNSlotsCombinedTimingTopBad[iskim] =
new TH1I(Form(
"h_N_slots_bad_%s",
skim_smap[iskim].c_str()),
523 "BAD TOP combined t0 decision: N slots", 17, 0, 17);
524 h_topNSlotsCombinedTimingTopBad[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: N slots");
525
526 h_topNHitSumBad[iskim] =
new TH1I(Form(
"h_n_hit_per_slot_bad_%s",
skim_smap[iskim].c_str()),
527 "BAD TOP combined t0 decision: N hit per slot", 200, 0, 200);
528 h_topNHitSumBad[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: N hits per slot");
529
530 h_topLogLSumBad[iskim] =
new TH1I(Form(
"h_logl_per_slot_bad_%s",
skim_smap[iskim].c_str()),
531 "BAD TOP combined t0 decision: log L per slot", 100, 0, 60000);
532 h_topLogLSumBad[iskim]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: log L per slot");
533
534
535
536 h_topRvcDiff1Bad[iskim] =
new TH1I(Form(
"h_rvc_diff_1_bad_%s",
skim_smap[iskim].c_str()),
"BAD rvc(posted to GDL)-rvc(TOP(this))",
537 250, -100, 150);
538
539 h_topRvcDiff1Bad[iskim]->GetXaxis()->SetTitle("rvc(posted to GDL)-rvc(TOP(this))");
540
541 h_topRvcDiff2Bad[iskim] =
new TH1I(Form(
"h_rvc_diff_2_bad_%s",
skim_smap[iskim].c_str()),
"BAD rvc(TOP(this))-rvc(TOP(prev))",
542 128, 0, 1280);
543 h_topRvcDiff2Bad[iskim]->GetXaxis()->SetTitle("rvc(TOP(this))-rvc(TOP(prev))");
544
545 h_topRvcDiff3Bad[iskim] =
new TH1I(Form(
"h_rvc_diff_3_bad_%s",
skim_smap[iskim].c_str()),
"BAD rvc(CB(window))-rvc(TOP(this))",
546 150, 0, 150);
547 h_topRvcDiff3Bad[iskim]->GetXaxis()->SetTitle("rvc(CB(window))-rvc(TOP(this))");
548
549 h_topRvcDiff4Bad[iskim] =
new TH1I(Form(
"h_rvc_diff_4_bad_%s",
skim_smap[iskim].c_str()),
550 "BAD rvc(received L1 from GDL)-rvc(TOP(this))",
551 250, 0, 250);
552 h_topRvcDiff4Bad[iskim]->GetXaxis()->SetTitle("rvc(L1)-rvc(TOP(this))");
553
554
555
556 h_topGdlRvcDiff1Bad[iskim] =
new TH1I(Form(
"h_gdl_top_l1_rvc_diff_bad_%s",
skim_smap[iskim].c_str()),
557 "BAD rvc(L1(GDL))-rvc(L1(as reported to TOP))",
558 10, 1235, 1245);
559 h_topGdlRvcDiff1Bad[iskim]->GetXaxis()->SetTitle("rvc(L1(GDL))-rvc(L1(as reported to TOP))");
560
561 h_topGdlRvcDiff2Bad[iskim] =
new TH1I(Form(
"h_gdl_l1_top_t0_this_rvc_diff_bad_%s",
skim_smap[iskim].c_str()),
562 "BAD rvc(TOP(received by GDL))-rvc(TOP(this))",
563 100, 0, 200);
564 h_topGdlRvcDiff2Bad[iskim]->GetXaxis()->SetTitle("rvc(L1(GDL))-rvc(TOP(this))");
565
566 h_topGdlRvcDiff3Bad[iskim] =
new TH1I(Form(
"h_gdl_l1_top_t0_prev_rvc_diff_bad_%s",
skim_smap[iskim].c_str()),
567 "BAD rvc(TOP(received by GDL))-rvc(TOP(prev))",
568 128, 0, 1280);
569 h_topGdlRvcDiff3Bad[iskim]->GetXaxis()->SetTitle("rvc(L1(GDL))-rvc(TOP(prev))");
570
571 }
572
573
574 h_top_nt0decisions_vs_hist_class[iskim] =
new TH2I(Form(
"h_top_nt0decisions_vs_hist_class_%s",
skim_smap[iskim].c_str()),
575 "N t0 decisions vs event class according to TOP info matching between GDL and TOP",
576 3, 0, 3, 5, 1, 6);
577 h_top_nt0decisions_vs_hist_class[iskim]->GetXaxis()->SetTitle("TOP info match (GDL vs TOP): 0/1/2 : first decision match/no match/match in some other decision");
578 h_top_nt0decisions_vs_hist_class[iskim]->GetYaxis()->SetTitle("Number of t0 decisions");
579
580 h_top_gdl_match_decision_number[iskim] =
new TH1I(Form(
"h_top_gdl_match_decision_number_%s",
skim_smap[iskim].c_str()),
581 "Decision number where TOP info is the same at TOP and GDL",
582 6, 0, 6);
583 h_top_gdl_match_decision_number[iskim]->GetXaxis()->SetTitle("TOPTRG combined decision # where TOP info is the same at TOP and GDL");
584
585 h_gdl_ecltop_timing_diff_5ns[iskim] =
new TH1I(Form(
"h_gdl_ecltop_timing_diff_5ns_%s",
skim_smap[iskim].c_str()),
586 "GDL ECL-TOP t0 difference", 248, 0, 10240);
587 h_gdl_ecltop_timing_diff_5ns[iskim]->GetXaxis()->SetTitle("TOPTRG GDL ECL-TOP t0 difference (5ns)");
588
589 h_gdl_cdctop_timing_diff_5ns[iskim] =
new TH1I(Form(
"h_gdl_cdctop_timing_diff_5ns_%s",
skim_smap[iskim].c_str()),
590 "GDL CDC-TOP t0 difference", 248, 0, 10240);
591 h_gdl_cdctop_timing_diff_5ns[iskim]->GetXaxis()->SetTitle("TOPTRG GDL CDC-TOP t0 difference (5ns)");
592
593
594
595 h_gdl_ecltop_timing_diff_2ns[iskim] =
new TH1I(Form(
"h_gdl_ecltop_timing_diff_2ns_%s",
skim_smap[iskim].c_str()),
596 "GDL ECL-TOP t0 difference", 400, 1400, 2200);
597 h_gdl_ecltop_timing_diff_2ns[iskim]->GetXaxis()->SetTitle("TOPTRG GDL ECL-TOP t0 difference (2ns)");
598
599 h_gdl_ecltop_timing_diff_grl_matched_2ns[iskim] = new TH1I(Form("h_gdl_ecltop_timing_diff_grl_matched_2ns_%s",
601 "GDL ECL-TOP t0 difference", 400, 1400, 2200);
602 h_gdl_ecltop_timing_diff_grl_matched_2ns[iskim]->GetXaxis()->SetTitle("TOPTRG GDL ECL-TOP t0 difference when TOP and GRL match (2ns)");
603
604 h_gdl_ecltop_timing_diff_no_grl_matched_2ns[iskim] = new TH1I(Form("h_gdl_ecltop_timing_diff_no_grl_matched_2ns_%s",
606 "GDL ECL-TOP t0 difference", 400, 1400, 2200);
607 h_gdl_ecltop_timing_diff_no_grl_matched_2ns[iskim]->GetXaxis()->SetTitle("TOPTRG GDL ECL-TOP t0 difference when TOP and GRL do not match (2ns)");
608
609 h_gdl_ecltop_timing_diff_no_grl_at_all_2ns[iskim] = new TH1I(Form("h_gdl_ecltop_timing_diff_no_grl_at_all_2ns_%s",
611 "GDL ECL-TOP t0 difference", 400, 1400, 2200);
612 h_gdl_ecltop_timing_diff_no_grl_at_all_2ns[iskim]->GetXaxis()->SetTitle("TOPTRG GDL ECL-TOP t0 difference when GRL has no 2D tracks (2ns)");
613
614 h_gdl_ecltop_timing_diff_vs_nslots_2ns[iskim] = new TH2I(Form("h_gdl_ecltop_timing_diff_vs_nslots_2ns_%s",
616 "GDL N slots vs ECL-TOP t0 difference", 400, 1400, 2200, 16, 1, 17);
617 h_gdl_ecltop_timing_diff_vs_nslots_2ns[iskim]->GetXaxis()->SetTitle("TOPTRG GDL ECL-TOP t0 difference (2ns)");
618 h_gdl_ecltop_timing_diff_vs_nslots_2ns[iskim]->GetYaxis()->SetTitle("N slots in combined decision");
619
620 h_top_ecltop_timing_diff_combined_2ns[iskim] =
new TH1I(Form(
"h_gdl_ecltop_timing_diff_combined_2ns_%s",
skim_smap[iskim].c_str()),
621 "GDL ECL-TOP TOP t0 difference", 400, 1400, 2200);
622 h_top_ecltop_timing_diff_combined_2ns[iskim]->GetXaxis()->SetTitle("TOPTRG GDL ECL-TOP t0 difference (2ns)");
623
624 h_top_ecltop_timing_diff_best_slot_2ns[iskim] = new TH1I(Form("h_gdl_ecltop_timing_diff_best_slot_2ns_%s",
626 "GDL ECL-TOP TOP t0 difference using slot with max N hits", 400, 1400, 2200);
627 h_top_ecltop_timing_diff_best_slot_2ns[iskim]->GetXaxis()->SetTitle("TOPTRG GDL ECL-TOP t0 difference (2ns)");
628
629 h_gdl_cdctop_timing_diff_2ns[iskim] =
new TH1I(Form(
"h_gdl_cdctop_timing_diff_2ns_%s",
skim_smap[iskim].c_str()),
630 "GDL CDC-TOP t0 difference", 250, 0, 500);
631 h_gdl_cdctop_timing_diff_2ns[iskim]->GetXaxis()->SetTitle("TOPTRG GDL CDC-TOP t0 difference (2ns)");
632
633
634
635 for (int histClass = 0; histClass < m_nHistClassesActual; histClass++) {
636
637
638 h_N_decision[iskim][histClass] =
new TH1I(Form(
"h_N_decisions_%d_%s", histClass,
skim_smap[iskim].c_str()),
639 "N t0 decisions in 1 us before GDL L1", 5, 1,
640 6);
641 h_N_decision[iskim][histClass]->GetXaxis()->SetTitle(
"TOPTRG N combined t0 decisions");
642
643
644
645 h_topNHitVsNhit[iskim][histClass] =
new TH2I(Form(
"h_nhit_vs_nhit_first_decision_%d_%s", histClass,
skim_smap[iskim].c_str()),
646 "First decision: N hits vs N hits", 20, 0, 100, 20, 0, 100);
647 h_topNHitVsNhit[iskim][histClass]->GetXaxis()->SetTitle("N hits for slot with largest N hits");
648 h_topNHitVsNhit[iskim][histClass]->GetYaxis()->SetTitle("N hits for slot with next to the largest N hits");
649
650 h_topSlotVsSlot[iskim][histClass] =
new TH2I(Form(
"h_slot_vs_slot_first_decision_%d_%s", histClass,
skim_smap[iskim].c_str()),
651 "First decision: slot # vs slot #", 16, 1, 17, 16, 1, 17);
652 h_topSlotVsSlot[iskim][histClass]->GetXaxis()->SetTitle("Slot # for slot with largest N hits");
653 h_topSlotVsSlot[iskim][histClass]->GetYaxis()->SetTitle("Slot # for slot with next to the largest N hits");
654
655 h_topT0VsT0[iskim][histClass] =
new TH2I(Form(
"h_t0_vs_t0_first_decision_%d_%s", histClass,
skim_smap[iskim].c_str()),
656 "First decision: T0 vs T0", 100, 0, 100000, 100, 0, 100000);
657 h_topT0VsT0[iskim][histClass]->GetXaxis()->SetTitle("T0 for slot with largest N hits");
658 h_topT0VsT0[iskim][histClass]->GetYaxis()->SetTitle("T0 for slot with next to the largest N hits");
659
660 h_topSegmentVsSegment[iskim][histClass] = new TH2I(Form("h_segment_vs_segment_first_decision_%d_%s", histClass,
662 "First decision: segment # vs segment #", 10, 1, 11, 10, 1, 11);
663 h_topSegmentVsSegment[iskim][histClass]->GetXaxis()->SetTitle("Segment # for slot with largest N hits");
664 h_topSegmentVsSegment[iskim][histClass]->GetYaxis()->SetTitle("Segment # for slot with next to the largest N hits");
665
666 h_topLogLVsLogL[iskim][histClass] =
new TH2I(Form(
"h_logl_vs_logl_first_decision_%d_%s", histClass,
skim_smap[iskim].c_str()),
667 "First decision: log L vs log L", 100, 0, 60000, 100, 0, 60000);
668 h_topLogLVsLogL[iskim][histClass]->GetXaxis()->SetTitle("log L for slot with largest N hits");
669 h_topLogLVsLogL[iskim][histClass]->GetYaxis()->SetTitle("log L for slot with next to the largest N hits");
670
671 }
672
673
674
676
677
678
679 for (int histClass = 0; histClass < m_nHistClassesActual; histClass++) {
680
681 h_topCombinedTimingTop[iskim][histClass] =
new TH1I(Form(
"h_t0_%d_%s", histClass,
skim_smap[iskim].c_str()),
682 "TOP combined t0 decision", 100, 0,
683 100000);
684 h_topCombinedTimingTop[iskim][histClass]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions");
685
686 h_topNSlotsCombinedTimingTop[iskim][histClass] =
new TH1I(Form(
"h_n_slots_%d_%s", histClass,
skim_smap[iskim].c_str()),
687 "TOP combined t0 decision: N slots", 17, 0, 17);
688 h_topNSlotsCombinedTimingTop[iskim][histClass]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: N slots");
689
690 h_topNHitSum[iskim][histClass] =
new TH1I(Form(
"h_n_hit_per_slot_%d_%s", histClass,
skim_smap[iskim].c_str()),
691 "TOP combined t0 decision: N hits per slot", 200, 0, 200);
692 h_topNHitSum[iskim][histClass]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: N hits per slot");
693
694 h_topNHitBestSlot[iskim][histClass] =
new TH1I(Form(
"h_n_hit_best_slot_%d_%s", histClass,
skim_smap[iskim].c_str()),
695 "TOP combined t0 decision: N hits best slot", 200, 0, 200);
696 h_topNHitBestSlot[iskim][histClass]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: N hits best slot");
697
698
699
700
701
702
703 h_topLogLSum[iskim][histClass] =
new TH1I(Form(
"h_logl_per_slot_%d_%s", histClass,
skim_smap[iskim].c_str()),
704 "TOP combined t0 decision: log L per slot", 100, 0, 60000);
705 h_topLogLSum[iskim][histClass]->GetXaxis()->SetTitle("TOPTRG combined t0 decisions: log L per slot");
706
707
708
709 h_gdl_ecltop_timing_diff_vs_slot_2ns[iskim][histClass] = new TH2I(Form("h_gdl_slot_vs_ecltop_timing_diff_%d_%s", histClass,
710 skim_smap[iskim].c_str()),
"slot vs GDL ECL-TOP slot t0 difference", 400, 1400, 2200, 16, 1, 17);
711 h_gdl_ecltop_timing_diff_vs_slot_2ns[iskim][histClass]->GetXaxis()->SetTitle("GDL ECL - TOP slot t0 time difference (2ns)");
712 h_gdl_ecltop_timing_diff_vs_slot_2ns[iskim][histClass]->GetYaxis()->SetTitle("slot");
713
714 h_gdl_ecltop_timing_diff_vs_segment_2ns[iskim][histClass] = new TH2I(Form("h_gdl_segment_vs_ecltop_timing_diff_%d_%s", histClass,
715 skim_smap[iskim].c_str()),
"segment vs GDL ECL-TOP slot t0 difference", 400, 1400, 2200, 10, 1, 11);
716 h_gdl_ecltop_timing_diff_vs_segment_2ns[iskim][histClass]->GetXaxis()->SetTitle("GDL ECL - TOP slot t0 time difference (2ns)");
717 h_gdl_ecltop_timing_diff_vs_segment_2ns[iskim][histClass]->GetYaxis()->SetTitle("segment");
718
719 h_gdl_ecltop_timing_diff_vs_nhits_2ns[iskim][histClass] = new TH2I(Form("h_gdl_nhits_vs_ecltop_timing_diff_%d_%s", histClass,
720 skim_smap[iskim].c_str()),
"N hits (for slots) vs GDL ECL-TOP slot t0 difference", 400, 1400, 2200, 200, 0, 200);
721 h_gdl_ecltop_timing_diff_vs_nhits_2ns[iskim][histClass]->GetXaxis()->SetTitle("GDL ECL - TOP slot t0 time difference (2ns)");
722 h_gdl_ecltop_timing_diff_vs_nhits_2ns[iskim][histClass]->GetYaxis()->SetTitle("N hits");
723
724 h_gdl_ecltop_timing_diff_vs_logl_2ns[iskim][histClass] = new TH2I(Form("h_gdl_logl_vs_ecltop_timing_diff_%d_%s", histClass,
725 skim_smap[iskim].c_str()),
"log L (for slots) vs GDL ECL-TOP slot t0 difference", 400, 1400, 2200, 100, 0, 60000);
726 h_gdl_ecltop_timing_diff_vs_logl_2ns[iskim][histClass]->GetXaxis()->SetTitle("GDL ECL - TOP slot t0 time difference (2ns)");
727 h_gdl_ecltop_timing_diff_vs_logl_2ns[iskim][histClass]->GetYaxis()->SetTitle("log L");
728
729
730
731 h_top_ecltop_timing_combined_diff_2ns[iskim][histClass] = new TH1I(Form("h_top_ecltop_timing_combined_diff_2ns_%d_%s", histClass,
733 "(GDL ECL)-(TOP TOP) t0 difference (combined decision)", 400, 1400, 2200);
734 h_top_ecltop_timing_combined_diff_2ns[iskim][histClass]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(TOP TOP) t0 difference (2ns)");
735
736 h_top_ecltop_timing_best_slot_diff_2ns[iskim][histClass] = new TH1I(Form("h_top_ecltop_timing_best_slot_diff_2ns_%d_%s", histClass,
738 "(GDL ECL)-(TOP TOP) t0 difference (best slot decision)", 400, 1400, 2200);
739 h_top_ecltop_timing_best_slot_diff_2ns[iskim][histClass]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(TOP TOP) t0 difference (2ns)");
740
741 h_gdl_ecltop_timing_diff_vs_toptop[iskim][histClass] = new TH2I(Form("h_gdl_ecltop_timing_diff_vs_toptop_%d_%s", histClass,
743 "TOP-TOP vs (GDL ECL)-(GDL TOP) t0 differences", 110, -760, 10240, 110, -760, 10240);
744 h_gdl_ecltop_timing_diff_vs_toptop[iskim][histClass]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(GDL TOP) (combined) t0 difference (ns, 100ns bins)");
745 h_gdl_ecltop_timing_diff_vs_toptop[iskim][histClass]->GetYaxis()->SetTitle("TOP timing (TOP) - TOP timing (GDL) (ns, 100ns bins)");
746
747 h_top_ecltop_timing_diff_vs_toptop[iskim][histClass] = new TH2I(Form("h_top_ecltop_timing_diff_vs_toptop_%d_%s", histClass,
749 "TOP-TOP vs (GDL ECL)-(TOP TOP) (combined) t0 differences", 110, -760, 10240, 110, -760, 10240);
750 h_top_ecltop_timing_diff_vs_toptop[iskim][histClass]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(TOP TOP) t0 difference (ns, 100ns bins)");
751 h_top_ecltop_timing_diff_vs_toptop[iskim][histClass]->GetYaxis()->SetTitle("TOP timing (TOP) - TOP timing (GDL) (ns, 100ns bins)");
752
753 h_gdl_ecltop_timing_diff_vs_ecltop[iskim][histClass] = new TH2I(Form("h_gdl_ecltop_timing_diff_vs_ecltop_%d_%s", histClass,
755 "(GDL ECL)-(TOP TOP) vs (GDL ECL)-(GDL TOP) (combined) t0 differences", 110, -760, 10240, 110, -760, 10240);
756 h_gdl_ecltop_timing_diff_vs_ecltop[iskim][histClass]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(GDL TOP) t0 difference (ns, 100ns bins)");
757 h_gdl_ecltop_timing_diff_vs_ecltop[iskim][histClass]->GetYaxis()->SetTitle("TOPTRG (GDL ECL)-(TOP TOP) t0 difference (ns, 100ns bins)");
758
759 h_gdl_ecltop_timing_diff_vs_ecltop_best_slot[iskim][histClass] = new TH2I(Form("h_gdl_ecltop_timing_diff_vs_ecltop_best_slot_%d_%s",
761 "(GDL ECL)-(TOP TOP) vs (GDL ECL)-(GDL TOP) (best slot) t0 differences", 110, -760, 10240, 110, -760, 10240);
762 h_gdl_ecltop_timing_diff_vs_ecltop_best_slot[iskim][histClass]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(GDL TOP() best slot) t0 difference (ns, 100ns bins)");
763 h_gdl_ecltop_timing_diff_vs_ecltop_best_slot[iskim][histClass]->GetYaxis()->SetTitle("TOPTRG (GDL ECL)-(TOP TOP) t0 difference (ns, 100ns bins)");
764
765 h_top_ecltop_timing_diff_2ns[iskim][histClass] = new TH1I(Form("h_top_ecltop_timing_diff_2ns_%d_%s", histClass,
767 "(GDL ECL)-(TOP TOP) t0 difference (all decisions)", 400, 1400, 2200);
768 h_top_ecltop_timing_diff_2ns[iskim][histClass]->GetXaxis()->SetTitle("TOPTRG (GDL ECL)-(TOP TOP) t0 difference (2ns)");
769
770 }
771 }
772
773
774
775 h_topTC2IdVsTC1IdAll[iskim] =
new TH2I(Form(
"h_top_tc2id_vs_tc1id_%s",
skim_smap[iskim].c_str()),
776 "Sorted (by energy) TC2 Id vs TC1 Id", 100, 0, 600, 100, 0, 600);
777 h_topTC2IdVsTC1IdAll[iskim]->GetXaxis()->SetTitle("Most energetic TC id");
778 h_topTC2IdVsTC1IdAll[iskim]->GetYaxis()->SetTitle("Next to most energetic TC id");
779
780 h_topTC2EnergyVsTC1EnergyAll[iskim] =
new TH2I(Form(
"h_top_tc2en_vs_tc1en_%s",
skim_smap[iskim].c_str()),
781 "Sorted TC2 energy vs TC1 energy", 100, 0, 1000, 100, 0, 1000);
782 h_topTC2EnergyVsTC1EnergyAll[iskim]->GetXaxis()->SetTitle("Most energetic TC energy");
783 h_topTC2EnergyVsTC1EnergyAll[iskim]->GetYaxis()->SetTitle("Next to most energetic TC energy");
784
785 h_topTC2ThetaIdVsTC1ThetaIdAll[iskim] =
new TH2I(Form(
"h_top_tc2thetaid_vs_tc1thetaid_%s",
skim_smap[iskim].c_str()),
786 "Sorted by energy TC2 vs TC1 theta ids", 20, 0, 20,
787 20, 0, 20);
788 h_topTC2ThetaIdVsTC1ThetaIdAll[iskim]->GetXaxis()->SetTitle("Most energetic TC theta id");
789 h_topTC2ThetaIdVsTC1ThetaIdAll[iskim]->GetYaxis()->SetTitle("Next to most energetic TC theta id");
790
791 h_topTC2PhiIdVsTC1PhiIdAll[iskim] =
new TH2I(Form(
"h_top_tc2phiid_vs_tc1phiid_%s",
skim_smap[iskim].c_str()),
792 "Sorted by energy TC2 vs TC1 phi ids", 36, 1, 37, 36, 1,
793 37);
794 h_topTC2PhiIdVsTC1PhiIdAll[iskim]->GetXaxis()->SetTitle("Most energetic TC phi id");
795 h_topTC2PhiIdVsTC1PhiIdAll[iskim]->GetYaxis()->SetTitle("Next to most energetic TC phi id");
796
797 h_topTCPhiIdVsTCThetaIdAll[iskim] =
new TH3I(Form(
"h_top_tcphiid_vs_tcthetaid_%s",
skim_smap[iskim].c_str()),
798 "Sorted by energy TC2 vs TC1 theta vs phi ids", 20, 0, 20,
799 36, 1, 37, 2, 0, 2);
800 h_topTCPhiIdVsTCThetaIdAll[iskim]->GetXaxis()->SetTitle("Most and next to most energetic TCs theta ids");
801 h_topTCPhiIdVsTCThetaIdAll[iskim]->GetYaxis()->SetTitle("Most and next to most energetic TCs phi ids");
802 h_topTCPhiIdVsTCThetaIdAll[iskim]->GetZaxis()->SetTitle("Most and next to most energetic TCs");
803
804
805
806 h_topTC2IdVsTC1IdGRLAll[iskim] =
new TH2I(Form(
"h_top_tc2id_vs_tc1id_grl_%s",
skim_smap[iskim].c_str()),
807 "Sorted (by energy) TC2 Id vs TC1 Id", 100, 0, 600, 100, 0, 600);
808 h_topTC2IdVsTC1IdGRLAll[iskim]->GetXaxis()->SetTitle("Most energetic TC id");
809 h_topTC2IdVsTC1IdGRLAll[iskim]->GetYaxis()->SetTitle("Next to most energetic TC id");
810
811 h_topTC2EnergyVsTC1EnergyGRLAll[iskim] =
new TH2I(Form(
"h_top_tc2en_vs_tc1en_grl_%s",
skim_smap[iskim].c_str()),
812 "Sorted TC2 energy vs TC1 energy", 100, 0, 1000, 100, 0,
813 1000);
814 h_topTC2EnergyVsTC1EnergyGRLAll[iskim]->GetXaxis()->SetTitle("Most energetic TC energy");
815 h_topTC2EnergyVsTC1EnergyGRLAll[iskim]->GetYaxis()->SetTitle("Next to most energetic TC energy");
816
817 h_topTC2ThetaIdVsTC1ThetaIdGRLAll[iskim] =
new TH2I(Form(
"h_top_tc2thetaid_vs_tc1thetaid_grl_%s",
skim_smap[iskim].c_str()),
818 "Sorted by energy TC2 vs TC1 theta ids", 20,
819 0, 20, 20, 0, 20);
820 h_topTC2ThetaIdVsTC1ThetaIdGRLAll[iskim]->GetXaxis()->SetTitle("Most energetic TC theta id");
821 h_topTC2ThetaIdVsTC1ThetaIdGRLAll[iskim]->GetYaxis()->SetTitle("Next to most energetic TC theta id");
822
823 h_topTC2PhiIdVsTC1PhiIdGRLAll[iskim] =
new TH2I(Form(
"h_top_tc2phiid_vs_tc1phiid_grl_%s",
skim_smap[iskim].c_str()),
824 "Sorted by energy TC2 vs TC1 phi ids", 36, 1, 37, 36,
825 1, 37);
826 h_topTC2PhiIdVsTC1PhiIdGRLAll[iskim]->GetXaxis()->SetTitle("Most energetic TC phi id");
827 h_topTC2PhiIdVsTC1PhiIdGRLAll[iskim]->GetYaxis()->SetTitle("Next to most energetic TC phi id");
828
829 h_topTCPhiIdVsTCThetaIdGRLAll[iskim] =
new TH3I(Form(
"h_top_tcphiid_vs_tcthetaid_grl_%s",
skim_smap[iskim].c_str()),
830 "Sorted by energy TC2 vs TC1 theta vs phi ids", 20,
831 0, 20, 36, 1, 37, 2, 0, 2);
832 h_topTCPhiIdVsTCThetaIdGRLAll[iskim]->GetXaxis()->SetTitle("Most and next to most energetic TCs theta ids");
833 h_topTCPhiIdVsTCThetaIdGRLAll[iskim]->GetYaxis()->SetTitle("Most and next to most energetic TCs phi ids");
834 h_topTCPhiIdVsTCThetaIdGRLAll[iskim]->GetZaxis()->SetTitle("Most and next to most energetic TCs");
835
836
837
838 h_topTC2IdVsTC1Id[iskim] =
new TH2I(Form(
"h_top_tc2id_vs_tc1id_b2b_%s",
skim_smap[iskim].c_str()),
839 "Sorted (by energy) TC2 Id vs TC1 Id", 100, 0, 600, 100, 0, 600);
840 h_topTC2IdVsTC1Id[iskim]->GetXaxis()->SetTitle("Most energetic TC id");
841 h_topTC2IdVsTC1Id[iskim]->GetYaxis()->SetTitle("Next to most energetic TC id");
842
843 h_topTC2EnergyVsTC1Energy[iskim] =
new TH2I(Form(
"h_top_tc2en_vs_tc1en_b2b_%s",
skim_smap[iskim].c_str()),
844 "Sorted TC2 energy vs TC1 energy", 100, 0, 1000, 100, 0, 1000);
845 h_topTC2EnergyVsTC1Energy[iskim]->GetXaxis()->SetTitle("Most energetic TC energy");
846 h_topTC2EnergyVsTC1Energy[iskim]->GetYaxis()->SetTitle("Next to most energetic TC energy");
847
848 h_topTC2ThetaIdVsTC1ThetaId[iskim] =
new TH2I(Form(
"h_top_tc2thetaid_vs_tc1thetaid_b2b_%s",
skim_smap[iskim].c_str()),
849 "Sorted by energy TC2 vs TC1 theta ids", 20, 0, 20, 20, 0,
850 20);
851 h_topTC2ThetaIdVsTC1ThetaId[iskim]->GetXaxis()->SetTitle("Most energetic TC theta id");
852 h_topTC2ThetaIdVsTC1ThetaId[iskim]->GetYaxis()->SetTitle("Next to most energetic TC theta id");
853
854 h_topTC2PhiIdVsTC1PhiId[iskim] =
new TH2I(Form(
"h_top_tc2phiid_vs_tc1phiid_b2b_%s",
skim_smap[iskim].c_str()),
855 "Sorted by energy TC2 vs TC1 phi ids", 36, 1, 37, 36, 1, 37);
856 h_topTC2PhiIdVsTC1PhiId[iskim]->GetXaxis()->SetTitle("Most energetic TC phi id");
857 h_topTC2PhiIdVsTC1PhiId[iskim]->GetYaxis()->SetTitle("Next to most energetic TC phi id");
858
859 h_topTCPhiIdVsTCThetaId[iskim] =
new TH3I(Form(
"h_top_tcphiid_vs_tcthetaid_b2b_%s",
skim_smap[iskim].c_str()),
860 "Sorted by energy TC2 vs TC1 theta vs phi ids", 20, 0, 20, 36, 1,
861 37, 2, 0, 2);
862 h_topTCPhiIdVsTCThetaId[iskim]->GetXaxis()->SetTitle("Most and next to most energetic TCs theta ids");
863 h_topTCPhiIdVsTCThetaId[iskim]->GetYaxis()->SetTitle("Most and next to most energetic TCs phi ids");
864 h_topTCPhiIdVsTCThetaId[iskim]->GetZaxis()->SetTitle("Most and next to most energetic TCs");
865
866
867
868 h_topTC2IdVsTC1IdGRL[iskim] =
new TH2I(Form(
"h_top_tc2id_vs_tc1id_grl_b2b_%s",
skim_smap[iskim].c_str()),
869 "Sorted (by energy) TC2 Id vs TC1 Id", 100, 0, 600, 100, 0, 600);
870 h_topTC2IdVsTC1IdGRL[iskim]->GetXaxis()->SetTitle("Most energetic TC id");
871 h_topTC2IdVsTC1IdGRL[iskim]->GetYaxis()->SetTitle("Next to most energetic TC id");
872
873 h_topTC2EnergyVsTC1EnergyGRL[iskim] =
new TH2I(Form(
"h_top_tc2en_vs_tc1en_grl_b2b_%s",
skim_smap[iskim].c_str()),
874 "Sorted TC2 energy vs TC1 energy", 100, 0, 1000, 100, 0, 1000);
875 h_topTC2EnergyVsTC1EnergyGRL[iskim]->GetXaxis()->SetTitle("Most energetic TC energy");
876 h_topTC2EnergyVsTC1EnergyGRL[iskim]->GetYaxis()->SetTitle("Next to most energetic TC energy");
877
878 h_topTC2ThetaIdVsTC1ThetaIdGRL[iskim] =
new TH2I(Form(
"h_top_tc2thetaid_vs_tc1thetaid_grl_b2b_%s",
skim_smap[iskim].c_str()),
879 "Sorted by energy TC2 vs TC1 theta ids", 20, 0, 20,
880 20, 0, 20);
881 h_topTC2ThetaIdVsTC1ThetaIdGRL[iskim]->GetXaxis()->SetTitle("Most energetic TC theta id");
882 h_topTC2ThetaIdVsTC1ThetaIdGRL[iskim]->GetYaxis()->SetTitle("Next to most energetic TC theta id");
883
884 h_topTC2PhiIdVsTC1PhiIdGRL[iskim] =
new TH2I(Form(
"h_top_tc2phiid_vs_tc1phiid_grl_b2b_%s",
skim_smap[iskim].c_str()),
885 "Sorted by energy TC2 vs TC1 phi ids", 36, 1, 37, 36, 1,
886 37);
887 h_topTC2PhiIdVsTC1PhiIdGRL[iskim]->GetXaxis()->SetTitle("Most energetic TC phi id");
888 h_topTC2PhiIdVsTC1PhiIdGRL[iskim]->GetYaxis()->SetTitle("Next to most energetic TC phi id");
889
890 h_topTCPhiIdVsTCThetaIdGRL[iskim] =
new TH3I(Form(
"h_top_tcphiid_vs_tcthetaid_grl_b2b_%s",
skim_smap[iskim].c_str()),
891 "Sorted by energy TC2 vs TC1 theta vs phi ids", 20, 0, 20,
892 36, 1, 37, 2, 0, 2);
893 h_topTCPhiIdVsTCThetaIdGRL[iskim]->GetXaxis()->SetTitle("Most and next to most energetic TCs theta ids");
894 h_topTCPhiIdVsTCThetaIdGRL[iskim]->GetYaxis()->SetTitle("Most and next to most energetic TCs phi ids");
895 h_topTCPhiIdVsTCThetaIdGRL[iskim]->GetZaxis()->SetTitle("Most and next to most energetic TCs");
896
897
898
899 h_gdl_ecltop_timing_diff_vs_grl_top_l1[iskim] = new TH2I(Form("h_gdl_ecltop_timing_diff_vs_grl_top_l1_%s",
901 "(GDL ECL)-(GDL TOP) vs GRL TOP rvc (relative to GDL L1)", 100, -2000, 0, 110, -760, 10240);
902 h_gdl_ecltop_timing_diff_vs_grl_top_l1[iskim]->GetXaxis()->SetTitle("GRL TOP rvc relative to GDL L1 (rvc)");
903 h_gdl_ecltop_timing_diff_vs_grl_top_l1[iskim]->GetYaxis()->SetTitle("(GDL ECL)-(GDL TOP) t0 difference (ns, 100ns bins)");
904
905 h_gdl_top_l1_vs_grl_top_l1[iskim] =
new TH2I(Form(
"h_gdl_top_l1_vs_grl_top_l1_%s",
skim_smap[iskim].c_str()),
906 "GDL TOP rvc vs GRL TOP rvc (relative to GDL L1)", 100, -2000,
907 0, 128, 0, 1280);
908 h_gdl_top_l1_vs_grl_top_l1[iskim]->GetXaxis()->SetTitle("GRL TOP rvc relative to GDL L1 (rvc)");
909 h_gdl_top_l1_vs_grl_top_l1[iskim]->GetYaxis()->SetTitle("GDL TOP rvc relative to GDL L1 (rvc)");
910
911 h_grl_ntopslots_vs_ncdcslots[iskim] =
new TH2I(Form(
"h_grl_ntopslots_vs_ncdcslots_%s",
skim_smap[iskim].c_str()),
912 "GRL TOP slots vs CDC slots", 10, 0, 10, 10, 0, 10);
913 h_grl_ntopslots_vs_ncdcslots[iskim]->GetXaxis()->SetTitle("GRL CDC slots");
914 h_grl_ntopslots_vs_ncdcslots[iskim]->GetYaxis()->SetTitle("GRL TOP slots");
915
916 h_grl_ncdctopslots_matched[iskim] =
new TH1I(Form(
"h_grl_ncdctopslots_matched_%s",
skim_smap[iskim].c_str()),
917 "GRL Number of matched TOP and CDC slots", 17, 0, 17);
918 h_grl_ncdctopslots_matched[iskim]->GetXaxis()->SetTitle("Number of matched TOP and CDC slots");
919
920 h_grl_topslots_vs_cdcslots_match[iskim] =
new TH2I(Form(
"h_grl_topslots_vs_cdcslots_match_%s",
skim_smap[iskim].c_str()),
921 "GRL TOP slots vs CDC slots matches", 17, 0, 17, 17,
922 0, 17);
923 h_grl_topslots_vs_cdcslots_match[iskim]->GetXaxis()->SetTitle("GRL CDC slot");
924 h_grl_topslots_vs_cdcslots_match[iskim]->GetYaxis()->SetTitle("GRL TOP slot");
925
926 }
927
928
930
931}
static const int nHistClasses
number of histogram classes
std::string skim_smap[nskim_topdqm]
names of histograms