20 #include <trg/gdl/modules/trggdlDQM/TRGGDLDQMModule.h>
21 #include <trg/gdl/modules/trggdlUnpacker/trggdlUnpackerModule.h>
23 #include <framework/datastore/StoreObjPtr.h>
24 #include <framework/datastore/StoreArray.h>
26 #include <TDirectory.h>
27 #include <TPostScript.h>
32 #include <framework/logging/Logger.h>
33 #include <boost/algorithm/string.hpp>
54 addParam(
"eventByEventTimingHistRecord", m_eventByEventTimingHistRecord,
55 "Recording event by event timing distribution histogram or not",
57 addParam(
"dumpVcdFile", m_dumpVcdFile,
58 "Dumping vcd file or not",
60 addParam(
"bitConditionToDumpVcd", m_bitConditionToDumpVcd,
61 "Condition for vcd. alg format with '!' and '+'.",
63 addParam(
"vcdEventStart", m_vcdEventStart,
64 "Start equential event number",
66 addParam(
"vcdNumberOfEvents", m_vcdNumberOfEvents,
67 "Number of events to dump vcd file",
69 addParam(
"bitNameOnBinLabel", m_bitNameOnBinLabel,
70 "Put bitname on BinLabel",
72 addParam(
"generatePostscript", m_generatePostscript,
73 "Genarete postscript file or not",
75 addParam(
"postScriptName", m_postScriptName,
76 "postscript file name",
79 "use skim information or not",
81 B2DEBUG(20,
"eventByEventTimingFlag(" << m_eventByEventTimingHistRecord
82 <<
"), m_dumpVcdFile(" << m_dumpVcdFile
83 <<
"), m_bitConditionToDumpVcd(" << m_bitConditionToDumpVcd
84 <<
"), m_vcdEventStart(" << m_vcdEventStart
85 <<
"), m_vcdNumberOfEvents(" << m_vcdNumberOfEvents);
94 if (!oldDir->Get(
"TRGGDL"))oldDir->mkdir(
"TRGGDL");
97 for (
int iskim = start_skim_gdldqm; iskim < end_skim_gdldqm; iskim++) {
98 h_c8_gdlL1TocomL1[iskim] =
new TH1I(Form(
"hGDL_gdlL1TocomL1_%s", skim_smap[iskim].c_str()),
"comL1 - gdlL1 [clk8ns]", 100, 0,
102 h_c8_topTogdlL1[iskim] =
new TH1I(Form(
"hGDL_topTogdlL1_%s", skim_smap[iskim].c_str()),
"gdlL1 - top_timing [clk8ns]", 700, 0,
105 h_c8_eclTogdlL1[iskim] =
new TH1I(Form(
"hGDL_eclTogdlL1_%s", skim_smap[iskim].c_str()),
"gdlL1 - ecl_timing [clk8ns]", 500, 0,
108 h_c8_cdcTogdlL1[iskim] =
new TH1I(Form(
"hGDL_cdcTogdlL1_%s", skim_smap[iskim].c_str()),
"gdlL1 - cdc_timing [clk8ns]", 700, 0,
112 h_c8_ecl8mToGDL[iskim] =
new TH1I(Form(
"hGDL_ecl8mToGDL_%s", skim_smap[iskim].c_str()),
"gdlIn^{8MHz} - ecl_timing [clk8ns]",
115 h_c8_topToGDL[iskim] =
new TH1I(Form(
"hGDL_topToGDL_%s", skim_smap[iskim].c_str()),
"gdlIn - top_timing [clk8ns]", 700, 0,
118 h_c8_eclToGDL[iskim] =
new TH1I(Form(
"hGDL_eclToGDL_%s", skim_smap[iskim].c_str()),
"gdlIn - ecl_timing [clk8ns]", 500, 0,
121 h_c8_cdcToGDL[iskim] =
new TH1I(Form(
"hGDL_cdcToGDL_%s", skim_smap[iskim].c_str()),
"gdlIn - cdc_timing [clk8ns]", 700, 0,
125 h_c2_cdcTocomL1[iskim] =
new TH1I(Form(
"hGDL_cdcTocomL1_%s", skim_smap[iskim].c_str()),
"comL1 - cdc_timing [clk2ns]", 520, 0,
128 h_ns_cdcTocomL1[iskim] =
new TH1D(Form(
"hGDL_ns_cdcTocomL1_%s", skim_smap[iskim].c_str()),
"comL1 - cdc_timing [ns]", 2600, 0,
132 h_ns_cdcTogdlL1[iskim] =
new TH1D(Form(
"hGDL_ns_cdcTogdlL1_%s", skim_smap[iskim].c_str()),
"gdlL1 - cdc_timing [ns]", 2600, 0,
137 h_ns_topToecl[iskim] =
new TH1D(Form(
"hGDL_ns_topToecl_%s", skim_smap[iskim].c_str()),
"ecl_timing - top_timing [ns]", 800, 0,
141 h_ns_topTocdc[iskim] =
new TH1D(Form(
"hGDL_ns_topTocdc_%s", skim_smap[iskim].c_str()),
"cdc_timing - top_timing [ns]", 800, 0,
145 h_ns_cdcToecl[iskim] =
new TH1D(Form(
"hGDL_ns_cdcToecl_%s", skim_smap[iskim].c_str()),
"ecl_timing - cdc_timing [ns]", 2000, 0,
150 h_c2_cdcToecl[iskim] =
new TH1I(Form(
"hGDL_cdcToecl_%s", skim_smap[iskim].c_str()),
"ecl_timing - cdc_timing [clk2ns]", 1000, 0,
154 h_timtype[iskim] =
new TH1I(Form(
"hGDL_timtype_%s", skim_smap[iskim].c_str()),
"timtype", 7, 0, 7);
156 h_itd[iskim] =
new TH1I(Form(
"hGDL_itd_%s", skim_smap[iskim].c_str()),
"itd", n_inbit + 1, -1, n_inbit);
157 h_ftd[iskim] =
new TH1I(Form(
"hGDL_ftd_%s", skim_smap[iskim].c_str()),
"ftd", n_outbit + 1, -1, n_outbit);
158 h_psn[iskim] =
new TH1I(Form(
"hGDL_psn_%s", skim_smap[iskim].c_str()),
"psn", n_outbit + 1, -1, n_outbit);
160 h_psn_extra[iskim] =
new TH1I(Form(
"hGDL_psn_extra_%s", skim_smap[iskim].c_str()),
"psn extra", n_output_extra, 0, n_output_extra);
161 for (
int i = 0; i < n_output_extra; i++) {
162 h_psn_extra[iskim]->GetXaxis()->SetBinLabel(i + 1, output_extra[i]);
164 h_psn_extra[iskim]->GetXaxis()->SetLabelSize(0.02);
166 h_psn_extra_fast[iskim] =
new TH1I(Form(
"hGDL_psn_extra_fast_%s", skim_smap[iskim].c_str()),
"psn extra fast", n_output_extra, 0,
168 for (
int i = 0; i < n_output_extra; i++) {
169 h_psn_extra_fast[iskim]->GetXaxis()->SetBinLabel(i + 1, output_extra[i]);
171 h_psn_extra_fast[iskim]->GetXaxis()->SetLabelSize(0.02);
173 h_psn_effect_to_l1[iskim] =
new TH1I(Form(
"hGDL_psn_effect_to_l1_%s", skim_smap[iskim].c_str()),
"psn effect to l1",
176 for (
int i = 0; i < n_output_overlap; i++) {
177 h_psn_effect_to_l1[iskim]->GetXaxis()->SetBinLabel(i + 1, output_overlap[i]);
179 h_psn_effect_to_l1[iskim]->GetXaxis()->SetLabelSize(0.02);
181 h_psn_raw_rate[iskim] =
new TH1I(Form(
"hGDL_psn_raw_rate_%s", skim_smap[iskim].c_str()),
"psn raw rate", n_output_overlap, 0,
183 for (
int i = 0; i < n_output_overlap; i++) {
184 h_psn_raw_rate[iskim]->GetXaxis()->SetBinLabel(i + 1, output_overlap[i]);
186 h_psn_raw_rate[iskim]->GetXaxis()->SetLabelSize(0.02);
188 h_psn_pure_extra[iskim] =
new TH1I(Form(
"hGDL_psn_pure_extra_%s", skim_smap[iskim].c_str()),
"psn pure extra", n_output_pure_extra,
189 0, n_output_pure_extra);
190 for (
int i = 0; i < n_output_pure_extra; i++) {
191 h_psn_pure_extra[iskim]->GetXaxis()->SetBinLabel(i + 1, output_pure_extra[i]);
194 h_itd[iskim]->GetXaxis()->SetBinLabel(
h_itd[iskim]->GetXaxis()->FindBin(-1 + 0.5),
"all");
195 h_ftd[iskim]->GetXaxis()->SetBinLabel(
h_ftd[iskim]->GetXaxis()->FindBin(-1 + 0.5),
"all");
196 h_psn[iskim]->GetXaxis()->SetBinLabel(
h_psn[iskim]->GetXaxis()->FindBin(-1 + 0.5),
"all");
197 h_itd[iskim]->GetXaxis()->SetLabelSize(0.02);
198 h_ftd[iskim]->GetXaxis()->SetLabelSize(0.02);
199 h_psn[iskim]->GetXaxis()->SetLabelSize(0.02);
200 for (
unsigned i = 0; i < n_inbit; i++) {
201 if (m_bitNameOnBinLabel) {
202 h_itd[iskim]->GetXaxis()->SetBinLabel(
h_itd[iskim]->GetXaxis()->FindBin(i + 0.5), inbitname[i]);
205 for (
unsigned i = 0; i < n_outbit; i++) {
206 if (m_bitNameOnBinLabel) {
207 h_ftd[iskim]->GetXaxis()->SetBinLabel(
h_ftd[iskim]->GetXaxis()->FindBin(i + 0.5), outbitname[i]);
208 h_psn[iskim]->GetXaxis()->SetBinLabel(
h_psn[iskim]->GetXaxis()->FindBin(i + 0.5), outbitname[i]);
213 if (iskim != 0)
continue;
216 for (
unsigned i = 0; i < n_inbit; i++) {
217 h_itd_rise[i][iskim] =
new TH1I(Form(
"hGDL_itd_%s_rise_%s", inbitname[i], skim_smap[iskim].c_str()),
218 Form(
"itd%d(%s) rising", i, inbitname[i]), 48, 0, 48);
219 h_itd_rise[i][iskim]->SetLineColor(kRed);
220 h_itd_fall[i][iskim] =
new TH1I(Form(
"hGDL_itd_%s_fall_%s", inbitname[i], skim_smap[iskim].c_str()),
221 Form(
"itd%d(%s) falling", i, inbitname[i]), 48, 0, 48);
222 h_itd_fall[i][iskim]->SetLineColor(kGreen);
224 for (
unsigned i = 0; i < n_outbit; i++) {
225 h_ftd_rise[i][iskim] =
new TH1I(Form(
"hGDL_ftd_%s_rise_%s", outbitname[i], skim_smap[iskim].c_str()),
226 Form(
"ftd%d(%s) rising", i, outbitname[i]), 48, 0, 48);
227 h_ftd_rise[i][iskim]->SetLineColor(kRed);
228 h_ftd_fall[i][iskim] =
new TH1I(Form(
"hGDL_ftd_%s_fall_%s", outbitname[i], skim_smap[iskim].c_str()),
229 Form(
"ftd%d(%s) falling", i, outbitname[i]), 48, 0, 48);
230 h_ftd_fall[i][iskim]->SetLineColor(kGreen);
231 h_psn_rise[i][iskim] =
new TH1I(Form(
"hGDL_psn_%s_rise_%s", outbitname[i], skim_smap[iskim].c_str()),
232 Form(
"psn%d(%s) rising", i, outbitname[i]), 48, 0, 48);
233 h_psn_rise[i][iskim]->SetLineColor(kRed);
234 h_psn_fall[i][iskim] =
new TH1I(Form(
"hGDL_psn_%s_fall_%s", outbitname[i], skim_smap[iskim].c_str()),
235 Form(
"psn%d(%s) falling", i, outbitname[i]), 48, 0, 48);
236 h_psn_fall[i][iskim]->SetLineColor(kGreen);
248 for (
int iskim = start_skim_gdldqm; iskim < end_skim_gdldqm; iskim++) {
264 h_itd[iskim]->Reset();
265 h_ftd[iskim]->Reset();
266 h_psn[iskim]->Reset();
267 h_psn_extra[iskim]->Reset();
268 h_psn_extra_fast[iskim]->Reset();
269 h_psn_pure_extra[iskim]->Reset();
271 h_psn_raw_rate[iskim]->Reset();
272 h_psn_effect_to_l1[iskim]->Reset();
275 for (
int iskim = 0; iskim < nskim_gdldqm; iskim++) {
276 for (
int i = 0; i < nsample_fast; i++) {
277 for (
int ibin = 0; ibin < n_output_extra; ibin++) {
278 array_psn_extra_fast[iskim][i][ibin] = 0;
290 start_skim_gdldqm = 0;
292 }
else if (m_skim == 1) {
293 start_skim_gdldqm = 1;
294 end_skim_gdldqm = nskim_gdldqm;
296 start_skim_gdldqm = 0;
297 end_skim_gdldqm = nskim_gdldqm;
300 _exp = bevt->getExperiment();
301 _run = bevt->getRun();
308 for (
int i = 0; i < 320; i++) {
309 LeafBitMap[i] = m_unpacker->getLeafMap(i);
311 for (
int i = 0; i < 320; i++) {
312 strcpy(LeafNames[i], m_unpacker->getLeafnames(i));
323 for (
int i = 0; i < 10; i++) {
328 for (
int i = 0; i < 320; i++) {
329 if (strcmp(LeafNames[i],
"timtype") == 0) _e_timtype = LeafBitMap[i];
330 if (strcmp(LeafNames[i],
"gdll1rvc") == 0) _e_gdll1rvc = LeafBitMap[i];
331 if (strcmp(LeafNames[i],
"coml1rvc") == 0) _e_coml1rvc = LeafBitMap[i];
332 if (strcmp(LeafNames[i],
"toptiming") == 0)_e_toptiming = LeafBitMap[i];
333 if (strcmp(LeafNames[i],
"ecltiming") == 0)_e_ecltiming = LeafBitMap[i];
334 if (strcmp(LeafNames[i],
"cdctiming") == 0)_e_cdctiming = LeafBitMap[i];
335 if (strcmp(LeafNames[i],
"toprvc") == 0) _e_toprvc = LeafBitMap[i];
336 if (strcmp(LeafNames[i],
"eclrvc") == 0) _e_eclrvc = LeafBitMap[i];
337 if (strcmp(LeafNames[i],
"cdcrvc") == 0) _e_cdcrvc = LeafBitMap[i];
338 if (strcmp(LeafNames[i],
"psn0") == 0) ee_psn[0] = LeafBitMap[i];
339 if (strcmp(LeafNames[i],
"psn1") == 0) ee_psn[1] = LeafBitMap[i];
340 if (strcmp(LeafNames[i],
"psn2") == 0) ee_psn[2] = LeafBitMap[i];
341 if (strcmp(LeafNames[i],
"psn3") == 0) ee_psn[3] = LeafBitMap[i];
342 if (strcmp(LeafNames[i],
"psn4") == 0) ee_psn[4] = LeafBitMap[i];
343 if (strcmp(LeafNames[i],
"psn5") == 0) ee_psn[5] = LeafBitMap[i];
344 if (strcmp(LeafNames[i],
"psn6") == 0) ee_psn[6] = LeafBitMap[i];
345 if (strcmp(LeafNames[i],
"psn7") == 0) ee_psn[7] = LeafBitMap[i];
346 if (strcmp(LeafNames[i],
"psn8") == 0) ee_psn[8] = LeafBitMap[i];
347 if (strcmp(LeafNames[i],
"psn9") == 0) ee_psn[9] = LeafBitMap[i];
348 if (strcmp(LeafNames[i],
"ftd0") == 0) ee_ftd[0] = LeafBitMap[i];
349 if (strcmp(LeafNames[i],
"ftd1") == 0) ee_ftd[1] = LeafBitMap[i];
350 if (strcmp(LeafNames[i],
"ftd2") == 0) ee_ftd[2] = LeafBitMap[i];
351 if (strcmp(LeafNames[i],
"ftd3") == 0) ee_ftd[3] = LeafBitMap[i];
352 if (strcmp(LeafNames[i],
"ftd4") == 0) ee_ftd[4] = LeafBitMap[i];
353 if (strcmp(LeafNames[i],
"ftd5") == 0) ee_ftd[5] = LeafBitMap[i];
354 if (strcmp(LeafNames[i],
"ftd6") == 0) ee_ftd[6] = LeafBitMap[i];
355 if (strcmp(LeafNames[i],
"ftd7") == 0) ee_ftd[7] = LeafBitMap[i];
356 if (strcmp(LeafNames[i],
"ftd8") == 0) ee_ftd[8] = LeafBitMap[i];
357 if (strcmp(LeafNames[i],
"ftd9") == 0) ee_ftd[9] = LeafBitMap[i];
358 if (strcmp(LeafNames[i],
"itd0") == 0) ee_itd[0] = LeafBitMap[i];
359 if (strcmp(LeafNames[i],
"itd1") == 0) ee_itd[1] = LeafBitMap[i];
360 if (strcmp(LeafNames[i],
"itd2") == 0) ee_itd[2] = LeafBitMap[i];
361 if (strcmp(LeafNames[i],
"itd3") == 0) ee_itd[3] = LeafBitMap[i];
362 if (strcmp(LeafNames[i],
"itd4") == 0) ee_itd[4] = LeafBitMap[i];
363 if (strcmp(LeafNames[i],
"itd5") == 0) ee_itd[5] = LeafBitMap[i];
364 if (strcmp(LeafNames[i],
"itd6") == 0) ee_itd[6] = LeafBitMap[i];
365 if (strcmp(LeafNames[i],
"itd7") == 0) ee_itd[7] = LeafBitMap[i];
366 if (strcmp(LeafNames[i],
"itd8") == 0) ee_itd[8] = LeafBitMap[i];
367 if (strcmp(LeafNames[i],
"itd9") == 0) ee_itd[9] = LeafBitMap[i];
370 n_inbit = m_dbinput->getninbit();
371 n_outbit = m_dbftdl ->getnoutbit();
372 for (
int i = 0; i < 320; i++) {
373 strcpy(inbitname[i], m_dbinput->getinbitname(i));
375 for (
int i = 0; i < 320; i++) {
376 strcpy(outbitname[i], m_dbftdl->getoutbitname(i));
378 n_leafs = m_unpacker->getnLeafs();
379 n_leafsExtra = m_unpacker->getnLeafsExtra();
380 n_clocks = m_unpacker->getnClks();
381 nconf = m_unpacker->getconf();
382 nword_input = m_unpacker->get_nword_input();
383 nword_output = m_unpacker->get_nword_output();
385 for (
unsigned i = 0; i < n_clocks; i++) {
386 for (
int j = 0; j < n_leafs + n_leafsExtra; j++)h_0_vec.push_back(0);
387 for (
unsigned int j = 0; j < n_outbit; j++) h_p_vec.push_back(0);
388 for (
unsigned int j = 0; j < n_outbit; j++) h_f_vec.push_back(0);
389 for (
unsigned int j = 0; j < n_inbit; j++) h_i_vec.push_back(0);
392 for (
int iskim = 0; iskim < nskim_gdldqm; iskim++) {
393 for (
int i = 0; i < nsample_fast; i++) {
394 for (
int ibin = 0; ibin < n_output_extra; ibin++) {
395 array_psn_extra_fast[iskim][i][ibin] = 0;
404 if (m_generatePostscript) {
405 TPostScript* ps =
new TPostScript(m_postScriptName.c_str(), 112);
406 gStyle->SetOptStat(0);
407 TCanvas c1(
"c1",
"", 0, 0, 500, 300);
410 for (
int iskim = start_skim_gdldqm; iskim < end_skim_gdldqm; iskim++) {
412 h_itd[iskim]->GetXaxis()->SetRange(
h_itd[iskim]->GetXaxis()->FindBin(0.5),
413 h_itd[iskim]->GetXaxis()->FindBin(n_inbit - 0.5));
414 h_itd[iskim]->Draw();
416 h_ftd[iskim]->GetXaxis()->SetRange(
h_ftd[iskim]->GetXaxis()->FindBin(0.5),
417 h_ftd[iskim]->GetXaxis()->FindBin(n_outbit - 0.5));
418 h_ftd[iskim]->Draw();
420 h_psn[iskim]->GetXaxis()->SetRange(
h_psn[iskim]->GetXaxis()->FindBin(0.5),
421 h_psn[iskim]->GetXaxis()->FindBin(n_outbit - 0.5));
422 h_psn[iskim]->Draw();
424 h_ftd[iskim]->SetTitle(
"ftd(green), psnm(red)");
425 h_ftd[iskim]->SetFillColor(kGreen);
426 h_ftd[iskim]->SetBarWidth(0.4);
427 h_ftd[iskim]->Draw(
"bar");
428 h_psn[iskim]->SetFillColor(kRed);
429 h_psn[iskim]->SetBarWidth(0.4);
430 h_psn[iskim]->SetBarOffset(0.5);
431 h_psn[iskim]->Draw(
"bar,same");
468 if (iskim != 0)
continue;
469 for (
unsigned i = 0; i < n_inbit; i++) {
471 h_itd_rise[i][iskim]->SetTitle(Form(
"itd%d(%s) rising(red), falling(green)",
473 h_itd_rise[i][iskim]->Draw();
474 h_itd_fall[i][iskim]->Draw(
"same");
487 static unsigned nvcd = 0;
488 static bool begin_run =
true;
492 if (!entAry || !entAry.getEntries()) {
497 for (
int iskim = start_skim_gdldqm; iskim < end_skim_gdldqm; iskim++) {
498 if (iskim == 0) skim.push_back(iskim);
500 if (result_soft.isValid()) {
501 const std::map<std::string, int>& skim_map = result_soft->getResults();
502 for (
int iskim = start_skim_gdldqm; iskim < end_skim_gdldqm; iskim++) {
504 else if (skim_map.find(skim_menu[iskim]) != skim_map.end()) {
506 if (accepted) skim.push_back(iskim);
514 for (
int i = 0; i < 320; i++) {
515 if (strcmp(entAry[0]->m_unpackername[i],
"evt") == 0) evtno = entAry[0]->m_unpacker[i];
516 if (strcmp(entAry[0]->m_unpackername[i],
"clk") == 0) clk_map = i;
519 const double clkTo2ns = 1. / .508877;
520 const double clkTo1ns = 0.5 / .508877;
524 for (
unsigned i = 0; i < n_clocks; i++) {
525 for (
int j = 0; j < n_leafs + n_leafsExtra; j++) {
526 h_0_vec[i * (n_leafs + n_leafsExtra) + j] = 0;
528 for (
unsigned j = 0; j < n_outbit; j++) {
529 h_p_vec[i * n_outbit + j] = 0;
531 for (
unsigned j = 0; j < n_outbit; j++) {
532 h_f_vec[i * n_outbit + j] = 0;
534 for (
unsigned j = 0; j < n_inbit; j++) {
535 h_i_vec[i * n_inbit + j] = 0;
542 for (
int ii = 0; ii < entAry.getEntries(); ii++) {
543 std::vector<int*> Bits(n_leafs + n_leafsExtra);
545 for (
int i = 0; i < 320; i++) {
546 if (LeafBitMap[i] != -1) {
547 Bits[LeafBitMap[i]] = &(entAry[ii]->m_unpacker[i]);
550 for (
int leaf = 0; leaf < n_leafs + n_leafsExtra; leaf++) {
551 h_0_vec[(entAry[ii]->m_unpacker[clk_map]) * (n_leafs + n_leafsExtra) + leaf] = *Bits[leaf];
554 int coml1rvc = h_0_vec[0 * (n_leafs + n_leafsExtra) + _e_coml1rvc];
555 int toprvc = h_0_vec[0 * (n_leafs + n_leafsExtra) + _e_toprvc];
556 int eclrvc = h_0_vec[0 * (n_leafs + n_leafsExtra) + _e_eclrvc];
557 int cdcrvc = h_0_vec[0 * (n_leafs + n_leafsExtra) + _e_cdcrvc];
558 int c1_top_timing = h_0_vec[(n_clocks - 1) * (n_leafs + n_leafsExtra) + _e_toptiming];
559 int c1_ecl_timing = h_0_vec[(n_clocks - 1) * (n_leafs + n_leafsExtra) + _e_ecltiming];
560 int c1_cdc_timing = h_0_vec[(n_clocks - 1) * (n_leafs + n_leafsExtra) + _e_cdctiming];
561 int c8_top_timing = c1_top_timing >> 3;
562 int c2_top_timing = c1_top_timing >> 1;
563 int c8_ecl_timing = c1_ecl_timing >> 3;
564 int c2_ecl_timing = c1_ecl_timing >> 1;
565 int c8_cdc_timing = c1_cdc_timing >> 3;
566 int c2_cdc_timing = c1_cdc_timing >> 1;
569 B2DEBUG(20,
"nconf(" << nconf
570 <<
"), n_clocks(" << n_clocks
571 <<
"), n_leafs(" << n_leafs
572 <<
"), n_leafsExtra(" << n_leafsExtra
583 int gdll1_rvc = h_0_vec[(n_clocks - 1) * (n_leafs + n_leafsExtra) + _e_gdll1rvc];
586 for (
unsigned clk = 1; clk <= n_clocks; clk++) {
587 int psn_tmp[10] = {0};
588 int ftd_tmp[10] = {0};
589 int itd_tmp[10] = {0};
590 for (
unsigned j = 0; j < (unsigned)nword_input; j++) {
591 itd_tmp[j] = h_0_vec[(clk - 1) * (n_leafs + n_leafsExtra) + ee_itd[j]];
592 itd[j] |= itd_tmp[j];
593 for (
int i = 0; i < 32; i++) {
594 if (i + j * 32 >= n_inbit)
continue;
595 if (itd_tmp[j] & (1 << i)) h_i_vec[(clk - 1)*n_inbit + i + j * 32] = 1;
599 psn_tmp[0] = h_0_vec[(clk - 1) * (n_leafs + n_leafsExtra) + ee_psn[0]];
600 ftd_tmp[0] = h_0_vec[(clk - 1) * (n_leafs + n_leafsExtra) + ee_ftd[0]];
601 psn[0] |= psn_tmp[0];
602 ftd[0] |= ftd_tmp[0];
603 for (
unsigned int i = 0; i < 32; i++) {
604 if (i >= n_outbit)
continue;
605 if (psn_tmp[0] & (1 << i)) h_p_vec[(clk - 1)*n_outbit + i] = 1;
606 if (ftd_tmp[0] & (1 << i)) h_f_vec[(clk - 1)*n_outbit + i] = 1;
608 psn_tmp[1] = h_0_vec[(clk - 1) * n_outbit + ee_psn[2]] * (1 << 16) + h_0_vec[(clk - 1) * n_outbit + ee_psn[1]];
609 ftd_tmp[1] = h_0_vec[(clk - 1) * n_outbit + ee_ftd[2]] * (1 << 16) + h_0_vec[(clk - 1) * n_outbit + ee_ftd[1]];
610 psn[1] |= psn_tmp[1];
611 ftd[1] |= ftd_tmp[1];
612 for (
unsigned int i = 0; i < 32; i++) {
613 if (i + 32 >= n_outbit)
continue;
614 if (psn_tmp[1] & (1 << i)) h_p_vec[(clk - 1)*n_outbit + i + 32] = 1;
615 if (ftd_tmp[1] & (1 << i)) h_f_vec[(clk - 1)*n_outbit + i + 32] = 1;
618 for (
unsigned j = 0; j < (unsigned)nword_output; j++) {
619 psn_tmp[j] = h_0_vec[(clk - 1) * (n_leafs + n_leafsExtra) + ee_psn[j]];
620 ftd_tmp[j] = h_0_vec[(clk - 1) * (n_leafs + n_leafsExtra) + ee_ftd[j]];
621 psn[j] |= psn_tmp[j];
622 ftd[j] |= ftd_tmp[j];
623 for (
int i = 0; i < 32; i++) {
624 if (i + j * 32 >= n_outbit)
continue;
625 if (psn_tmp[j] & (1 << i)) h_p_vec[(clk - 1)*n_outbit + i + j * 32] = 1;
626 if (ftd_tmp[j] & (1 << i)) h_f_vec[(clk - 1)*n_outbit + i + j * 32] = 1;
630 int timtype_tmp = h_0_vec[(clk - 1) * (n_leafs + n_leafsExtra) + _e_timtype];
631 timtype = (timtype_tmp == 0) ? timtype : timtype_tmp;
637 fillRiseFallTimings();
644 for (
unsigned ifill = 0; ifill < skim.size(); ifill++) {
646 h_itd[skim[ifill]]->Fill(-0.5);
647 h_ftd[skim[ifill]]->Fill(-0.5);
648 h_psn[skim[ifill]]->Fill(-0.5);
649 for (
int i = 0; i < 32; i++) {
650 for (
unsigned j = 0; j < (unsigned)nword_input; j++) {
651 if (itd[j] & (1 << i))
h_itd[skim[ifill]]->Fill(i + 0.5 + 32 * j);
653 for (
unsigned j = 0; j < (unsigned)nword_output; j++) {
654 if (ftd[j] & (1 << i))
h_ftd[skim[ifill]]->Fill(i + 0.5 + 32 * j);
655 if (psn[j] & (1 << i))
h_psn[skim[ifill]]->Fill(i + 0.5 + 32 * j);
660 int gdlL1TocomL1 = gdll1_rvc < coml1rvc ? coml1rvc - gdll1_rvc : (coml1rvc + 1280) - gdll1_rvc;
663 int topTogdlL1 = gdll1_rvc < c8_top_timing ? (gdll1_rvc + 1280) - c8_top_timing : gdll1_rvc - c8_top_timing;
666 int eclTogdlL1 = gdll1_rvc < c8_ecl_timing ? (gdll1_rvc + 1280) - c8_ecl_timing : gdll1_rvc - c8_ecl_timing;
669 int cdcTogdlL1 = gdll1_rvc < c8_cdc_timing ? (gdll1_rvc + 1280) - c8_cdc_timing : gdll1_rvc - c8_cdc_timing;
672 int c127_ecl_timing = c8_ecl_timing & (((1 << 7) - 1) << 4);
673 int fit8mToGDL = c127_ecl_timing < eclrvc ? eclrvc - c127_ecl_timing : (eclrvc + 1280) - c127_ecl_timing;
676 int topToGDL = c8_top_timing < toprvc ? toprvc - c8_top_timing : (toprvc + 1280) - c8_top_timing;
678 int eclToGDL = c8_ecl_timing < eclrvc ? eclrvc - c8_ecl_timing : (eclrvc + 1280) - c8_ecl_timing;
680 int cdcToGDL = c8_cdc_timing < cdcrvc ? cdcrvc - c8_cdc_timing : (cdcrvc + 1280) - c8_cdc_timing;
683 int c2_comL1 = coml1rvc << 2;
684 int c2_gdlL1 = gdll1_rvc << 2;
685 int c2_diff_cdcTogdlL1 = c2_gdlL1 > c2_cdc_timing ?
686 c2_gdlL1 - c2_cdc_timing :
687 c2_gdlL1 - c2_cdc_timing + (1280 << 2) ;
690 int c2_diff_cdcTocomL1 = c2_comL1 > c2_cdc_timing ?
691 c2_comL1 - c2_cdc_timing :
692 c2_comL1 - c2_cdc_timing + (1280 << 2) ;
696 int c2_diff_cdcToecl = c2_ecl_timing > c2_cdc_timing ?
697 c2_ecl_timing - c2_cdc_timing :
698 c2_ecl_timing - c2_cdc_timing + (1280 << 2);
700 h_ns_cdcToecl[skim[ifill]]->Fill(c2_diff_cdcToecl * clkTo2ns);
702 int c1_diff_topToecl = c1_ecl_timing > c1_top_timing ?
703 c1_ecl_timing - c1_top_timing :
704 c1_ecl_timing - c1_top_timing + (1280 << 3);
705 h_ns_topToecl[skim[ifill]]->Fill(c1_diff_topToecl * clkTo1ns);
707 int c2_diff_topTocdc = c2_cdc_timing > c2_top_timing ?
708 c2_cdc_timing - c2_top_timing :
709 c2_cdc_timing - c2_top_timing + (1280 << 2);
710 h_ns_topTocdc[skim[ifill]]->Fill(c2_diff_topTocdc * clkTo2ns);
716 if (anaBitCondition()) {
718 B2DEBUG(20,
"anaBitCondition fired, evt(" << evtno <<
")");
719 if (m_vcdEventStart <= nvcd && nvcd < m_vcdEventStart + m_vcdNumberOfEvents) {
727 bool TRGGDLDQMModule::anaBitCondition(
void)
729 if (m_bitConditionToDumpVcd.length() == 0)
return true;
730 const char* cst = m_bitConditionToDumpVcd.c_str();
731 bool reading_word =
false;
732 bool result_the_term =
true;
733 bool not_flag =
false;
734 unsigned begin_word = 0;
735 unsigned word_length = 0;
738 for (
unsigned i = 0; i < m_bitConditionToDumpVcd.length(); i++) {
739 if ((
'a' <= cst[i] && cst[i] <=
'z') ||
740 (
'A' <= cst[i] && cst[i] <=
'Z') ||
741 (
'_' == cst[i]) || (
'!' == cst[i]) ||
742 (
'0' <= cst[i] && cst[i] <=
'9')) {
745 if (i == m_bitConditionToDumpVcd.length() - 1) {
746 bool fired = isFired(m_bitConditionToDumpVcd.substr(begin_word, word_length));
748 m_bitConditionToDumpVcd.substr(begin_word, word_length).c_str()
749 <<
"(" << fired <<
")");
750 if (((!not_flag && fired) || (not_flag && !fired)) && result_the_term) {
765 if (i == m_bitConditionToDumpVcd.length() - 1) {
767 bool fired = isFired(m_bitConditionToDumpVcd.substr(begin_word, word_length));
769 m_bitConditionToDumpVcd.substr(begin_word, word_length).c_str()
770 <<
"(" << fired <<
")");
771 if (((!not_flag && fired) || (not_flag && !fired)) && result_the_term) {
777 }
else if (
'+' == cst[i] || i == m_bitConditionToDumpVcd.length() - 1) {
780 if (result_the_term) {
781 bool fired = isFired(m_bitConditionToDumpVcd.substr(begin_word, word_length));
783 m_bitConditionToDumpVcd.substr(begin_word, word_length).c_str()
784 <<
"(" << fired <<
")");
785 if ((!not_flag && fired) || (not_flag && !fired)) {
793 reading_word =
false;
796 if (result_the_term) {
802 result_the_term =
true;
807 if (result_the_term) {
809 bool fired = isFired(m_bitConditionToDumpVcd.substr(begin_word, word_length));
811 m_bitConditionToDumpVcd.substr(begin_word, word_length).c_str()
812 <<
"(" << fired <<
")");
813 if ((!not_flag && fired) || (not_flag && !fired)) {
816 result_the_term =
false;
821 reading_word =
false;
830 void TRGGDLDQMModule::genVcd(
void)
832 int prev_i[400] = {0};
833 int prev_f[400] = {0};
834 int prev_p[400] = {0};
836 ofstream outf(Form(
"vcd/e%02dr%08de%08d.vcd", _exp, _run, evtno));
837 outf <<
"$date" << endl;
838 outf <<
" Aug 20, 2018 17:53:52" << endl;
839 outf <<
"$end" << endl;
840 outf <<
"$version" << endl;
841 outf <<
" ChipScope Pro Analyzer 14.7 P.20131013 (Build 14700.13.286.464)" << endl;
842 outf <<
"$end" << endl;
843 outf <<
"$timescale" << endl;
844 if (n_clocks == 32) {
845 outf <<
" 32ns" << endl;
846 }
else if (n_clocks == 48) {
847 outf <<
" 8ns" << endl;
849 outf <<
" 1ns" << endl;
851 outf <<
"$end" << endl;
853 outf <<
"$scope module gdl0067d_icn $end" << endl;
855 for (
unsigned j = 0; j < n_inbit; j++) {
856 outf <<
"$var wire 1 n" << seqnum++ <<
" " << inbitname[j] <<
" $end" << endl;
858 for (
unsigned j = 0; j < n_outbit; j++) {
859 outf <<
"$var wire 1 n" << seqnum++ <<
" ftd." << outbitname[j] <<
" $end" << endl;
861 for (
unsigned j = 0; j < n_outbit; j++) {
862 outf <<
"$var wire 1 n" << seqnum++ <<
" psn." << outbitname[j] <<
" $end" << endl;
865 outf <<
"$upscope $end" << endl;
866 outf <<
"$enddefinitions $end" << endl << endl;
868 for (
unsigned clk = 1; clk <= n_clocks; clk++) {
870 outf <<
"#" << clk - 1 << endl;
871 for (
unsigned k = 1; k <= n_inbit; k++) {
872 if (clk == 1 || prev_i[k - 1] != h_i_vec[(clk - 1)*n_inbit + k - 1]) {
873 prev_i[k - 1] = h_i_vec[(clk - 1) * n_inbit + k - 1];
874 outf << h_i_vec[(clk - 1)*n_inbit + k - 1] <<
"n" << seqnum << endl;
878 for (
unsigned k = 1; k <= n_outbit; k++) {
879 if (clk == 1 || prev_f[k - 1] != h_f_vec[(clk - 1)*n_outbit + k - 1]) {
880 prev_f[k - 1] = h_f_vec[(clk - 1) * n_outbit + k - 1];
881 outf << h_f_vec[(clk - 1)*n_outbit + k - 1] <<
"n" << seqnum << endl;
885 for (
unsigned k = 1; k <= n_outbit; k++) {
886 if (clk == 1 || prev_p[k - 1] != h_p_vec[(clk - 1)*n_outbit + k - 1]) {
887 prev_p[k - 1] = h_p_vec[(clk - 1) * n_outbit + k - 1];
888 outf << h_p_vec[(clk - 1)*n_outbit + k - 1] <<
"n" << seqnum << endl;
916 TRGGDLDQMModule::isFired_quick(
const std::string& bitname,
const bool& isPsnm = 0)
918 int bn = getoutbitnum(bitname.c_str());
919 for (
unsigned clk = 0; clk < n_clocks; clk++) {
922 if (h_p_vec[clk * n_outbit + bn] > 0)
925 if (h_f_vec[clk * n_outbit + bn] > 0)
930 bn = getinbitnum(bitname.c_str());
931 for (
unsigned clk = 0; clk < n_clocks; clk++) {
933 if (h_i_vec[clk * n_inbit + bn] > 0)
941 TRGGDLDQMModule::getinbitnum(
const char* c)
const
943 for (
int i = 0; i < 320; i++) {
944 if (strcmp(c, inbitname[i]) == 0)
return i;
950 TRGGDLDQMModule::getoutbitnum(
const char* c)
const
952 for (
int i = 0; i < 320; i++) {
953 if (strcmp(c, outbitname[i]) == 0)
return i;
960 TRGGDLDQMModule::isFired(std::string bitname)
963 for (
unsigned i = 0; i < bitname.length(); i++) {
964 if (
'A' <= bitname[i] && bitname[i] <=
'Z') {
968 boost::algorithm::to_lower(bitname);
969 int bn = m_dbftdl->getoutbitnum(bitname.c_str());
970 for (
unsigned clk = 0; clk < n_clocks; clk++) {
973 if (h_p_vec[clk * n_outbit + bn] > 0)
976 if (h_f_vec[clk * n_outbit + bn] > 0)
981 bn = m_dbinput->getinbitnum(bitname.c_str());
982 for (
unsigned clk = 0; clk < n_clocks; clk++) {
984 if (h_i_vec[clk * n_inbit + bn] > 0)
992 TRGGDLDQMModule::fillRiseFallTimings(
void)
996 for (
unsigned ifill = 0; ifill < skim.size(); ifill++) {
998 if (skim[ifill] != 0)
continue;
1000 for (
unsigned i = 0; i < n_inbit; i++) {
1001 if (n_clocks == 32) {
1002 h_itd_rise[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk32ns");
1003 h_itd_fall[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk32ns");
1004 h_itd_rise[i][skim[ifill]]->GetXaxis()->SetRange(1, 32);
1005 h_itd_fall[i][skim[ifill]]->GetXaxis()->SetRange(1, 32);
1007 h_itd_rise[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk8ns");
1008 h_itd_fall[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk8ns");
1010 bool rising_done =
false;
1011 bool falling_done =
false;
1012 for (
unsigned clk = 0; clk < n_clocks; clk++) {
1013 if (h_i_vec[clk * n_inbit + i] > 0) {
1014 if (! rising_done) {
1015 h_itd_rise[i][skim[ifill]]->Fill(clk + 0.5);
1018 }
else if (rising_done && !falling_done && clk == n_clocks - 1) {
1019 h_itd_fall[i][skim[ifill]]->Fill(clk + 0.5);
1021 }
else if (h_i_vec[clk * n_inbit + i] == 0) {
1022 if (rising_done && ! falling_done) {
1023 h_itd_fall[i][skim[ifill]]->Fill(clk + 0.5);
1024 falling_done =
true;
1029 for (
unsigned i = 0; i < n_outbit; i++) {
1030 if (n_clocks == 32) {
1031 h_ftd_rise[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk32ns");
1032 h_psn_rise[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk32ns");
1033 h_ftd_fall[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk32ns");
1034 h_psn_fall[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk32ns");
1035 h_ftd_rise[i][skim[ifill]]->GetXaxis()->SetRange(1, 32);
1036 h_psn_rise[i][skim[ifill]]->GetXaxis()->SetRange(1, 32);
1037 h_ftd_fall[i][skim[ifill]]->GetXaxis()->SetRange(1, 32);
1038 h_psn_fall[i][skim[ifill]]->GetXaxis()->SetRange(1, 32);
1040 h_ftd_rise[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk8ns");
1041 h_psn_rise[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk8ns");
1042 h_ftd_fall[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk8ns");
1043 h_psn_fall[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk8ns");
1045 bool rising_done =
false;
1046 bool falling_done =
false;
1047 for (
unsigned clk = 0; clk < n_clocks; clk++) {
1048 if (h_f_vec[clk * n_outbit + i] > 0) {
1049 if (! rising_done) {
1050 h_ftd_rise[i][skim[ifill]]->Fill(clk + 0.5);
1053 }
else if (rising_done && !falling_done && clk == n_clocks - 1) {
1054 h_ftd_fall[i][skim[ifill]]->Fill(clk + 0.5);
1056 }
else if (h_f_vec[clk * n_outbit + i] == 0) {
1057 if (rising_done && ! falling_done) {
1058 h_ftd_fall[i][skim[ifill]]->Fill(clk + 0.5);
1059 falling_done =
true;
1063 rising_done =
false;
1064 falling_done =
false;
1065 for (
unsigned clk = 0; clk < n_clocks; clk++) {
1066 if (h_p_vec[clk * n_outbit + i] > 0) {
1067 if (! rising_done) {
1068 h_psn_rise[i][skim[ifill]]->Fill(clk + 0.5);
1071 }
else if (rising_done && !falling_done && clk == n_clocks - 1) {
1072 h_psn_fall[i][skim[ifill]]->Fill(clk + 0.5);
1074 }
else if (h_p_vec[clk * n_outbit + i] == 0) {
1075 if (rising_done && ! falling_done) {
1076 h_psn_fall[i][skim[ifill]]->Fill(clk + 0.5);
1077 falling_done =
true;
1087 TRGGDLDQMModule::fillOutputOverlap(
void)
1089 for (
unsigned ifill = 0; ifill < skim.size(); ifill++) {
1090 bool ffy_fired = isFired_quick(
"ffy",
true);
1091 bool fyo_fired = isFired_quick(
"fyo",
true) || isFired_quick(
"fyb",
true);
1092 bool c4_fired = isFired_quick(
"c4",
true);
1093 bool hie_fired = isFired_quick(
"hie",
true);
1094 bool klm_fired = isFired_quick(
"mu_b2b",
true) || isFired_quick(
"mu_eb2b",
true) || isFired_quick(
"eklm2",
true)
1095 || isFired_quick(
"beklm",
true);
1096 bool klm_match_fired = isFired_quick(
"cdcklm1",
true) || isFired_quick(
"cdcklm2",
true)
1097 || isFired_quick(
"seklm1",
true) || isFired_quick(
"seklm2",
true)
1098 || isFired_quick(
"fwd_seklm",
true) || isFired_quick(
"bwd_seklm",
true)
1099 || isFired_quick(
"ieklm1",
true) || isFired_quick(
"ecleklm1",
true);
1100 bool stt_fired = isFired_quick(
"stt",
true) || isFired_quick(
"sttecl",
true);
1101 bool short_fired = isFired_quick(
"syo",
true) || isFired_quick(
"syb",
true) || isFired_quick(
"yioiecl1",
true) ;
1102 bool ff30_fired = isFired_quick(
"fy30",
true);
1103 bool inner_fired = isFired_quick(
"ioiecl2",
true);
1104 bool lml_fired = isFired_quick(
"lml0",
true) || isFired_quick(
"lml2",
true) || isFired_quick(
"lml6",
true)
1105 || isFired_quick(
"lml7",
true) || isFired_quick(
"lml8",
true) || isFired_quick(
"lml9",
true)
1106 || isFired_quick(
"lml10",
true)
1107 || isFired_quick(
"lml12",
true) || isFired_quick(
"lml13",
true)
1108 || isFired_quick(
"lml14",
true) || isFired_quick(
"lml15",
true) || isFired_quick(
"lml16",
true);
1109 bool gg_fired = isFired_quick(
"ggsel",
true);
1110 bool bhabha_fired = isFired_quick(
"bhapur",
true);
1111 bool pid_fired = isFired_quick(
"ssb",
true) || isFired_quick(
"eed",
true) || isFired_quick(
"fed",
true)
1112 || isFired_quick(
"yp",
true)
1113 || isFired_quick(
"fp",
true) || isFired_quick(
"shem",
true) || isFired_quick(
"ohem",
true);
1114 bool bhamon_fired = isFired_quick(
"bffo",
true) || isFired_quick(
"bhie",
true) || isFired_quick(
"lml3",
true)
1115 || isFired_quick(
"lml5",
true) || isFired_quick(
"bha3d",
true) || isFired_quick(
"bhabha",
true) || isFired_quick(
"lume",
true);
1116 bool eclmumu_fired = isFired_quick(
"eclmumu",
true);
1117 bool lml1_fired = isFired_quick(
"lml1",
true);
1118 bool lml4_fired = isFired_quick(
"lml4",
true);
1119 bool veto_fired = isFired_quick(
"hiev",
true) || isFired_quick(
"fffv",
true);
1120 bool random_fired = isFired_quick(
"bg",
true) || isFired_quick(
"poissonv",
true) || isFired_quick(
"revolution",
true)
1121 || isFired_quick(
"random",
true);
1122 bool ffz_fired = isFired_quick(
"ffz",
true);
1123 bool fzo_fired = isFired_quick(
"fzo",
true) || isFired_quick(
"fzb",
true);
1124 bool trg_calib_fired = isFired_quick(
"c2",
true) || isFired_quick(
"c3",
true) || isFired_quick(
"eklmhit",
true)
1125 || isFired_quick(
"f",
true) || isFired_quick(
"s",
true);
1126 bool cdcecl_calib_fired = isFired_quick(
"cdcecl3",
true) || isFired_quick(
"cdcecl4",
true);
1139 bool monitor_fired = isFired_quick(
"fff",
true) || isFired_quick(
"ffo",
true) || isFired_quick(
"ffb",
true)
1140 || isFired_quick(
"fffo",
true) || isFired_quick(
"ffs",
true) || isFired_quick(
"fss",
true) || isFired_quick(
"sss",
true)
1141 || isFired_quick(
"ff",
true) || isFired_quick(
"ss",
true) || isFired_quick(
"fso",
true)
1142 || isFired_quick(
"sso",
true) || isFired_quick(
"fsb",
true) || isFired_quick(
"ff30",
true)
1143 || isFired_quick(
"fioiecl1",
true) || isFired_quick(
"ioiecl1",
true)
1144 || isFired_quick(
"cdcecl1",
true) || isFired_quick(
"cdcecl2",
true)
1145 || isFired_quick(
"c2gev1",
true) || isFired_quick(
"c2gev2",
true)
1146 || isFired_quick(
"g_high",
true) || isFired_quick(
"g_c1",
true) || isFired_quick(
"gg",
true)
1147 || isFired_quick(
"c2hie",
true) || isFired_quick(
"stt6",
true);
1150 bool B_CDC_fired = ffy_fired || fyo_fired;
1151 bool B_ECL_fired = c4_fired || hie_fired;
1152 bool LOW_KLM_fired = klm_fired || klm_match_fired;
1153 bool LOW_CDC_fired = stt_fired || short_fired || ff30_fired || inner_fired;
1154 bool LOW_ECL_fired = lml_fired || cdcecl_calib_fired;
1155 bool CALIB_fired = gg_fired || bhabha_fired || pid_fired || bhamon_fired || eclmumu_fired || lml1_fired || lml4_fired || veto_fired
1156 || random_fired || trg_calib_fired;
1157 bool MONITOR_fired = monitor_fired || ffz_fired || fzo_fired;
1161 h_psn_effect_to_l1[skim[ifill]]->Fill(0.5);
1165 h_psn_effect_to_l1[skim[ifill]]->Fill(1.5);
1166 }
else if (B_ECL_fired) {
1167 h_psn_effect_to_l1[skim[ifill]]->Fill(2.5);
1168 }
else if (LOW_KLM_fired) {
1169 h_psn_effect_to_l1[skim[ifill]]->Fill(3.5);
1170 }
else if (LOW_CDC_fired) {
1171 h_psn_effect_to_l1[skim[ifill]]->Fill(4.5);
1172 }
else if (LOW_ECL_fired) {
1173 h_psn_effect_to_l1[skim[ifill]]->Fill(5.5);
1174 }
else if (CALIB_fired) {
1175 h_psn_effect_to_l1[skim[ifill]]->Fill(6.5);
1176 }
else if (MONITOR_fired) {
1177 h_psn_effect_to_l1[skim[ifill]]->Fill(7.5);
1179 h_psn_effect_to_l1[skim[ifill]]->Fill(8.5);
1183 h_psn_effect_to_l1[skim[ifill]]->Fill(9.5);
1184 }
else if (fyo_fired) {
1185 h_psn_effect_to_l1[skim[ifill]]->Fill(10.5);
1186 }
else if (c4_fired) {
1187 h_psn_effect_to_l1[skim[ifill]]->Fill(11.5);
1188 }
else if (hie_fired) {
1189 h_psn_effect_to_l1[skim[ifill]]->Fill(12.5);
1190 }
else if (klm_fired) {
1191 h_psn_effect_to_l1[skim[ifill]]->Fill(13.5);
1192 }
else if (klm_match_fired) {
1193 h_psn_effect_to_l1[skim[ifill]]->Fill(14.5);
1194 }
else if (stt_fired) {
1195 h_psn_effect_to_l1[skim[ifill]]->Fill(15.5);
1196 }
else if (short_fired) {
1197 h_psn_effect_to_l1[skim[ifill]]->Fill(16.5);
1198 }
else if (ff30_fired) {
1199 h_psn_effect_to_l1[skim[ifill]]->Fill(17.5);
1200 }
else if (inner_fired) {
1201 h_psn_effect_to_l1[skim[ifill]]->Fill(18.5);
1202 }
else if (lml_fired) {
1203 h_psn_effect_to_l1[skim[ifill]]->Fill(19.5);
1204 }
else if (gg_fired) {
1205 h_psn_effect_to_l1[skim[ifill]]->Fill(20.5);
1206 }
else if (bhabha_fired) {
1207 h_psn_effect_to_l1[skim[ifill]]->Fill(21.5);
1208 }
else if (pid_fired) {
1209 h_psn_effect_to_l1[skim[ifill]]->Fill(22.5);
1210 }
else if (bhamon_fired) {
1211 h_psn_effect_to_l1[skim[ifill]]->Fill(23.5);
1212 }
else if (eclmumu_fired) {
1213 h_psn_effect_to_l1[skim[ifill]]->Fill(24.5);
1214 }
else if (lml1_fired) {
1215 h_psn_effect_to_l1[skim[ifill]]->Fill(25.5);
1216 }
else if (lml4_fired) {
1217 h_psn_effect_to_l1[skim[ifill]]->Fill(26.5);
1218 }
else if (veto_fired) {
1219 h_psn_effect_to_l1[skim[ifill]]->Fill(27.5);
1220 }
else if (random_fired) {
1221 h_psn_effect_to_l1[skim[ifill]]->Fill(28.5);
1222 }
else if (ffz_fired) {
1223 h_psn_effect_to_l1[skim[ifill]]->Fill(29.5);
1224 }
else if (fzo_fired) {
1225 h_psn_effect_to_l1[skim[ifill]]->Fill(30.5);
1226 }
else if (monitor_fired) {
1227 h_psn_effect_to_l1[skim[ifill]]->Fill(31.5);
1229 h_psn_effect_to_l1[skim[ifill]]->Fill(32.5);
1232 if (isFired_quick(
"ffy",
true)) {
1233 h_psn_effect_to_l1[skim[ifill]]->Fill(33.5);
1234 }
else if (isFired_quick(
"fyb",
true)) {
1235 h_psn_effect_to_l1[skim[ifill]]->Fill(34.5);
1236 }
else if (isFired_quick(
"fyo",
true)) {
1237 h_psn_effect_to_l1[skim[ifill]]->Fill(35.5);
1238 }
else if (isFired_quick(
"c4",
true)) {
1239 h_psn_effect_to_l1[skim[ifill]]->Fill(36.5);
1240 }
else if (isFired_quick(
"hie",
true)) {
1241 h_psn_effect_to_l1[skim[ifill]]->Fill(37.5);
1242 }
else if (isFired_quick(
"mu_b2b",
true)) {
1243 h_psn_effect_to_l1[skim[ifill]]->Fill(38.5);
1244 }
else if (isFired_quick(
"mu_eb2b",
true)) {
1245 h_psn_effect_to_l1[skim[ifill]]->Fill(39.5);
1246 }
else if (isFired_quick(
"eklm2",
true)) {
1247 h_psn_effect_to_l1[skim[ifill]]->Fill(40.5);
1248 }
else if (isFired_quick(
"beklm",
true)) {
1249 h_psn_effect_to_l1[skim[ifill]]->Fill(41.5);
1250 }
else if (isFired_quick(
"cdcklm1",
true)) {
1251 h_psn_effect_to_l1[skim[ifill]]->Fill(42.5);
1252 }
else if (isFired_quick(
"cdcklm2",
true)) {
1253 h_psn_effect_to_l1[skim[ifill]]->Fill(43.5);
1254 }
else if (isFired_quick(
"seklm1",
true)) {
1255 h_psn_effect_to_l1[skim[ifill]]->Fill(44.5);
1256 }
else if (isFired_quick(
"seklm2",
true)) {
1257 h_psn_effect_to_l1[skim[ifill]]->Fill(45.5);
1258 }
else if (isFired_quick(
"fwd_seklm",
true)) {
1259 h_psn_effect_to_l1[skim[ifill]]->Fill(46.5);
1260 }
else if (isFired_quick(
"bwd_seklm",
true)) {
1261 h_psn_effect_to_l1[skim[ifill]]->Fill(47.5);
1262 }
else if (isFired_quick(
"ecleklm1",
true)) {
1263 h_psn_effect_to_l1[skim[ifill]]->Fill(48.5);
1264 }
else if (isFired_quick(
"ieklm1",
true)) {
1265 h_psn_effect_to_l1[skim[ifill]]->Fill(49.5);
1266 }
else if (isFired_quick(
"sttecl",
true)) {
1267 h_psn_effect_to_l1[skim[ifill]]->Fill(50.5);
1268 }
else if (isFired_quick(
"stt",
true)) {
1269 h_psn_effect_to_l1[skim[ifill]]->Fill(51.5);
1270 }
else if (isFired_quick(
"syb",
true)) {
1271 h_psn_effect_to_l1[skim[ifill]]->Fill(52.5);
1272 }
else if (isFired_quick(
"syo",
true)) {
1273 h_psn_effect_to_l1[skim[ifill]]->Fill(53.5);
1274 }
else if (isFired_quick(
"yioiecl1",
true)) {
1275 h_psn_effect_to_l1[skim[ifill]]->Fill(54.5);
1276 }
else if (isFired_quick(
"fy30",
true)) {
1277 h_psn_effect_to_l1[skim[ifill]]->Fill(55.5);
1278 }
else if (isFired_quick(
"ioiecl2",
true)) {
1279 h_psn_effect_to_l1[skim[ifill]]->Fill(56.5);
1280 }
else if (isFired_quick(
"lml0",
true)) {
1281 h_psn_effect_to_l1[skim[ifill]]->Fill(57.5);
1282 }
else if (isFired_quick(
"lml2",
true)) {
1283 h_psn_effect_to_l1[skim[ifill]]->Fill(58.5);
1284 }
else if (isFired_quick(
"lml6",
true)) {
1285 h_psn_effect_to_l1[skim[ifill]]->Fill(59.5);
1286 }
else if (isFired_quick(
"lml7",
true)) {
1287 h_psn_effect_to_l1[skim[ifill]]->Fill(60.5);
1288 }
else if (isFired_quick(
"lml8",
true)) {
1289 h_psn_effect_to_l1[skim[ifill]]->Fill(61.5);
1290 }
else if (isFired_quick(
"lml9",
true)) {
1291 h_psn_effect_to_l1[skim[ifill]]->Fill(62.5);
1292 }
else if (isFired_quick(
"lml10",
true)) {
1293 h_psn_effect_to_l1[skim[ifill]]->Fill(63.5);
1294 }
else if (isFired_quick(
"lml12",
true)) {
1295 h_psn_effect_to_l1[skim[ifill]]->Fill(64.5);
1296 }
else if (isFired_quick(
"lml13",
true)) {
1297 h_psn_effect_to_l1[skim[ifill]]->Fill(65.5);
1298 }
else if (isFired_quick(
"lml14",
true)) {
1299 h_psn_effect_to_l1[skim[ifill]]->Fill(66.5);
1300 }
else if (isFired_quick(
"lml15",
true)) {
1301 h_psn_effect_to_l1[skim[ifill]]->Fill(67.5);
1302 }
else if (isFired_quick(
"lml16",
true)) {
1303 h_psn_effect_to_l1[skim[ifill]]->Fill(68.5);
1304 }
else if (isFired_quick(
"ggsel",
true)) {
1305 h_psn_effect_to_l1[skim[ifill]]->Fill(69.5);
1306 }
else if (isFired_quick(
"bhapur",
true)) {
1307 h_psn_effect_to_l1[skim[ifill]]->Fill(70.5);
1308 }
else if (isFired_quick(
"lml3",
true)) {
1309 h_psn_effect_to_l1[skim[ifill]]->Fill(71.5);
1310 }
else if (isFired_quick(
"lml5",
true)) {
1311 h_psn_effect_to_l1[skim[ifill]]->Fill(72.5);
1312 }
else if (isFired_quick(
"bha3d",
true)) {
1313 h_psn_effect_to_l1[skim[ifill]]->Fill(73.5);
1314 }
else if (isFired_quick(
"bhabha",
true)) {
1315 h_psn_effect_to_l1[skim[ifill]]->Fill(74.5);
1316 }
else if (isFired_quick(
"lume",
true)) {
1317 h_psn_effect_to_l1[skim[ifill]]->Fill(75.5);
1318 }
else if (isFired_quick(
"bffo",
true)) {
1319 h_psn_effect_to_l1[skim[ifill]]->Fill(76.5);
1320 }
else if (isFired_quick(
"bhie",
true)) {
1321 h_psn_effect_to_l1[skim[ifill]]->Fill(77.5);
1322 }
else if (isFired_quick(
"eclmumu",
true)) {
1323 h_psn_effect_to_l1[skim[ifill]]->Fill(78.5);
1324 }
else if (isFired_quick(
"lml1",
true)) {
1325 h_psn_effect_to_l1[skim[ifill]]->Fill(79.5);
1326 }
else if (isFired_quick(
"lml4",
true)) {
1327 h_psn_effect_to_l1[skim[ifill]]->Fill(80.5);
1328 }
else if (isFired_quick(
"ssb",
true)) {
1329 h_psn_effect_to_l1[skim[ifill]]->Fill(81.5);
1330 }
else if (isFired_quick(
"eed",
true)) {
1331 h_psn_effect_to_l1[skim[ifill]]->Fill(82.5);
1332 }
else if (isFired_quick(
"fed",
true)) {
1333 h_psn_effect_to_l1[skim[ifill]]->Fill(83.5);
1334 }
else if (isFired_quick(
"yp",
true)) {
1335 h_psn_effect_to_l1[skim[ifill]]->Fill(84.5);
1336 }
else if (isFired_quick(
"fp",
true)) {
1337 h_psn_effect_to_l1[skim[ifill]]->Fill(85.5);
1338 }
else if (isFired_quick(
"shem",
true)) {
1339 h_psn_effect_to_l1[skim[ifill]]->Fill(86.5);
1340 }
else if (isFired_quick(
"ohem",
true)) {
1341 h_psn_effect_to_l1[skim[ifill]]->Fill(87.5);
1342 }
else if (isFired_quick(
"hiev",
true)) {
1343 h_psn_effect_to_l1[skim[ifill]]->Fill(88.5);
1344 }
else if (isFired_quick(
"fffv",
true)) {
1345 h_psn_effect_to_l1[skim[ifill]]->Fill(89.5);
1346 }
else if (isFired_quick(
"bg",
true)) {
1347 h_psn_effect_to_l1[skim[ifill]]->Fill(90.5);
1348 }
else if (isFired_quick(
"poissonv",
true)) {
1349 h_psn_effect_to_l1[skim[ifill]]->Fill(91.5);
1350 }
else if (isFired_quick(
"revolution",
true)) {
1351 h_psn_effect_to_l1[skim[ifill]]->Fill(92.5);
1352 }
else if (isFired_quick(
"random",
true)) {
1353 h_psn_effect_to_l1[skim[ifill]]->Fill(93.5);
1354 }
else if (isFired_quick(
"c2",
true)) {
1355 h_psn_effect_to_l1[skim[ifill]]->Fill(94.5);
1356 }
else if (isFired_quick(
"c3",
true)) {
1357 h_psn_effect_to_l1[skim[ifill]]->Fill(95.5);
1358 }
else if (isFired_quick(
"eklmhit",
true)) {
1359 h_psn_effect_to_l1[skim[ifill]]->Fill(96.5);
1360 }
else if (isFired_quick(
"f",
true)) {
1361 h_psn_effect_to_l1[skim[ifill]]->Fill(97.5);
1362 }
else if (isFired_quick(
"s",
true)) {
1363 h_psn_effect_to_l1[skim[ifill]]->Fill(98.5);
1364 }
else if (isFired_quick(
"y",
true)) {
1365 h_psn_effect_to_l1[skim[ifill]]->Fill(99.5);
1366 }
else if (isFired_quick(
"cdcecl3",
true)) {
1367 h_psn_effect_to_l1[skim[ifill]]->Fill(100.5);
1368 }
else if (isFired_quick(
"cdcecl4",
true)) {
1369 h_psn_effect_to_l1[skim[ifill]]->Fill(101.5);
1370 }
else if (isFired_quick(
"ffz",
true)) {
1371 h_psn_effect_to_l1[skim[ifill]]->Fill(102.5);
1372 }
else if (isFired_quick(
"fzb",
true)) {
1373 h_psn_effect_to_l1[skim[ifill]]->Fill(103.5);
1374 }
else if (isFired_quick(
"fzo",
true)) {
1375 h_psn_effect_to_l1[skim[ifill]]->Fill(104.5);
1376 }
else if (isFired_quick(
"fff",
true)) {
1377 h_psn_effect_to_l1[skim[ifill]]->Fill(105.5);
1378 }
else if (isFired_quick(
"ffb",
true)) {
1379 h_psn_effect_to_l1[skim[ifill]]->Fill(106.5);
1380 }
else if (isFired_quick(
"ffo",
true)) {
1381 h_psn_effect_to_l1[skim[ifill]]->Fill(107.5);
1382 }
else if (isFired_quick(
"fffo",
true)) {
1383 h_psn_effect_to_l1[skim[ifill]]->Fill(108.5);
1384 }
else if (isFired_quick(
"ffs",
true)) {
1385 h_psn_effect_to_l1[skim[ifill]]->Fill(109.5);
1386 }
else if (isFired_quick(
"fss",
true)) {
1387 h_psn_effect_to_l1[skim[ifill]]->Fill(110.5);
1388 }
else if (isFired_quick(
"sss",
true)) {
1389 h_psn_effect_to_l1[skim[ifill]]->Fill(111.5);
1390 }
else if (isFired_quick(
"ff",
true)) {
1391 h_psn_effect_to_l1[skim[ifill]]->Fill(112.5);
1392 }
else if (isFired_quick(
"ss",
true)) {
1393 h_psn_effect_to_l1[skim[ifill]]->Fill(113.5);
1394 }
else if (isFired_quick(
"fso",
true)) {
1395 h_psn_effect_to_l1[skim[ifill]]->Fill(114.5);
1396 }
else if (isFired_quick(
"sso",
true)) {
1397 h_psn_effect_to_l1[skim[ifill]]->Fill(115.5);
1398 }
else if (isFired_quick(
"fsb",
true)) {
1399 h_psn_effect_to_l1[skim[ifill]]->Fill(116.5);
1400 }
else if (isFired_quick(
"ff30",
true)) {
1401 h_psn_effect_to_l1[skim[ifill]]->Fill(117.5);
1402 }
else if (isFired_quick(
"fioiecl1",
true)) {
1403 h_psn_effect_to_l1[skim[ifill]]->Fill(118.5);
1404 }
else if (isFired_quick(
"ioiecl1",
true)) {
1405 h_psn_effect_to_l1[skim[ifill]]->Fill(119.5);
1406 }
else if (isFired_quick(
"cdcecl1",
true)) {
1407 h_psn_effect_to_l1[skim[ifill]]->Fill(120.5);
1408 }
else if (isFired_quick(
"cdcecl2",
true)) {
1409 h_psn_effect_to_l1[skim[ifill]]->Fill(121.5);
1410 }
else if (isFired_quick(
"c2gev1",
true)) {
1411 h_psn_effect_to_l1[skim[ifill]]->Fill(122.5);
1412 }
else if (isFired_quick(
"c2gev2",
true)) {
1413 h_psn_effect_to_l1[skim[ifill]]->Fill(123.5);
1414 }
else if (isFired_quick(
"c2hie",
true)) {
1415 h_psn_effect_to_l1[skim[ifill]]->Fill(124.5);
1416 }
else if (isFired_quick(
"g_high",
true)) {
1417 h_psn_effect_to_l1[skim[ifill]]->Fill(125.5);
1418 }
else if (isFired_quick(
"g_c1",
true)) {
1419 h_psn_effect_to_l1[skim[ifill]]->Fill(126.5);
1420 }
else if (isFired_quick(
"gg",
true)) {
1421 h_psn_effect_to_l1[skim[ifill]]->Fill(127.5);
1422 }
else if (isFired_quick(
"stt6",
true)) {
1423 h_psn_effect_to_l1[skim[ifill]]->Fill(128.5);
1425 h_psn_effect_to_l1[skim[ifill]]->Fill(129.5);
1430 h_psn_raw_rate[skim[ifill]]->Fill(0.5);
1434 h_psn_raw_rate[skim[ifill]]->Fill(1.5);
1435 }
if (B_ECL_fired) {
1436 h_psn_raw_rate[skim[ifill]]->Fill(2.5);
1437 }
if (LOW_KLM_fired) {
1438 h_psn_raw_rate[skim[ifill]]->Fill(3.5);
1439 }
if (LOW_CDC_fired) {
1440 h_psn_raw_rate[skim[ifill]]->Fill(4.5);
1441 }
if (LOW_ECL_fired) {
1442 h_psn_raw_rate[skim[ifill]]->Fill(5.5);
1443 }
if (CALIB_fired) {
1444 h_psn_raw_rate[skim[ifill]]->Fill(6.5);
1445 }
if (MONITOR_fired) {
1446 h_psn_raw_rate[skim[ifill]]->Fill(7.5);
1450 h_psn_raw_rate[skim[ifill]]->Fill(9.5);
1452 h_psn_raw_rate[skim[ifill]]->Fill(10.5);
1454 h_psn_raw_rate[skim[ifill]]->Fill(11.5);
1456 h_psn_raw_rate[skim[ifill]]->Fill(12.5);
1458 h_psn_raw_rate[skim[ifill]]->Fill(13.5);
1459 }
if (klm_match_fired) {
1460 h_psn_raw_rate[skim[ifill]]->Fill(14.5);
1462 h_psn_raw_rate[skim[ifill]]->Fill(15.5);
1463 }
if (short_fired) {
1464 h_psn_raw_rate[skim[ifill]]->Fill(16.5);
1466 h_psn_raw_rate[skim[ifill]]->Fill(17.5);
1467 }
if (inner_fired) {
1468 h_psn_raw_rate[skim[ifill]]->Fill(18.5);
1470 h_psn_raw_rate[skim[ifill]]->Fill(19.5);
1472 h_psn_raw_rate[skim[ifill]]->Fill(20.5);
1473 }
if (bhabha_fired) {
1474 h_psn_raw_rate[skim[ifill]]->Fill(21.5);
1476 h_psn_raw_rate[skim[ifill]]->Fill(22.5);
1477 }
if (bhamon_fired) {
1478 h_psn_raw_rate[skim[ifill]]->Fill(23.5);
1479 }
if (eclmumu_fired) {
1480 h_psn_raw_rate[skim[ifill]]->Fill(24.5);
1482 h_psn_raw_rate[skim[ifill]]->Fill(25.5);
1484 h_psn_raw_rate[skim[ifill]]->Fill(26.5);
1486 h_psn_raw_rate[skim[ifill]]->Fill(27.5);
1487 }
if (random_fired) {
1488 h_psn_raw_rate[skim[ifill]]->Fill(28.5);
1490 h_psn_raw_rate[skim[ifill]]->Fill(29.5);
1492 h_psn_raw_rate[skim[ifill]]->Fill(30.5);
1493 }
if (monitor_fired) {
1494 h_psn_raw_rate[skim[ifill]]->Fill(31.5);
1497 if (isFired_quick(
"ffy",
true)) {
1498 h_psn_raw_rate[skim[ifill]]->Fill(33.5);
1499 }
if (isFired_quick(
"fyb",
true)) {
1500 h_psn_raw_rate[skim[ifill]]->Fill(34.5);
1501 }
if (isFired_quick(
"fyo",
true)) {
1502 h_psn_raw_rate[skim[ifill]]->Fill(35.5);
1503 }
if (isFired_quick(
"c4",
true)) {
1504 h_psn_raw_rate[skim[ifill]]->Fill(36.5);
1505 }
if (isFired_quick(
"hie",
true)) {
1506 h_psn_raw_rate[skim[ifill]]->Fill(37.5);
1507 }
if (isFired_quick(
"mu_b2b",
true)) {
1508 h_psn_raw_rate[skim[ifill]]->Fill(38.5);
1509 }
if (isFired_quick(
"mu_eb2b",
true)) {
1510 h_psn_raw_rate[skim[ifill]]->Fill(39.5);
1511 }
if (isFired_quick(
"eklm2",
true)) {
1512 h_psn_raw_rate[skim[ifill]]->Fill(40.5);
1513 }
if (isFired_quick(
"beklm",
true)) {
1514 h_psn_raw_rate[skim[ifill]]->Fill(41.5);
1515 }
if (isFired_quick(
"cdcklm1",
true)) {
1516 h_psn_raw_rate[skim[ifill]]->Fill(42.5);
1517 }
if (isFired_quick(
"cdcklm2",
true)) {
1518 h_psn_raw_rate[skim[ifill]]->Fill(43.5);
1519 }
if (isFired_quick(
"seklm1",
true)) {
1520 h_psn_raw_rate[skim[ifill]]->Fill(44.5);
1521 }
if (isFired_quick(
"seklm2",
true)) {
1522 h_psn_raw_rate[skim[ifill]]->Fill(45.5);
1523 }
if (isFired_quick(
"fwd_seklm",
true)) {
1524 h_psn_raw_rate[skim[ifill]]->Fill(46.5);
1525 }
if (isFired_quick(
"bwd_seklm",
true)) {
1526 h_psn_raw_rate[skim[ifill]]->Fill(47.5);
1527 }
if (isFired_quick(
"ecleklm1",
true)) {
1528 h_psn_raw_rate[skim[ifill]]->Fill(48.5);
1529 }
if (isFired_quick(
"ieklm1",
true)) {
1530 h_psn_raw_rate[skim[ifill]]->Fill(49.5);
1531 }
if (isFired_quick(
"sttecl",
true)) {
1532 h_psn_raw_rate[skim[ifill]]->Fill(50.5);
1533 }
if (isFired_quick(
"stt",
true)) {
1534 h_psn_raw_rate[skim[ifill]]->Fill(51.5);
1535 }
if (isFired_quick(
"syb",
true)) {
1536 h_psn_raw_rate[skim[ifill]]->Fill(52.5);
1537 }
if (isFired_quick(
"syo",
true)) {
1538 h_psn_raw_rate[skim[ifill]]->Fill(53.5);
1539 }
if (isFired_quick(
"yioiecl1",
true)) {
1540 h_psn_raw_rate[skim[ifill]]->Fill(54.5);
1541 }
if (isFired_quick(
"fy30",
true)) {
1542 h_psn_raw_rate[skim[ifill]]->Fill(55.5);
1543 }
if (isFired_quick(
"ioiecl2",
true)) {
1544 h_psn_raw_rate[skim[ifill]]->Fill(56.5);
1545 }
if (isFired_quick(
"lml0",
true)) {
1546 h_psn_raw_rate[skim[ifill]]->Fill(57.5);
1547 }
if (isFired_quick(
"lml2",
true)) {
1548 h_psn_raw_rate[skim[ifill]]->Fill(58.5);
1549 }
if (isFired_quick(
"lml6",
true)) {
1550 h_psn_raw_rate[skim[ifill]]->Fill(59.5);
1551 }
if (isFired_quick(
"lml7",
true)) {
1552 h_psn_raw_rate[skim[ifill]]->Fill(60.5);
1553 }
if (isFired_quick(
"lml8",
true)) {
1554 h_psn_raw_rate[skim[ifill]]->Fill(61.5);
1555 }
if (isFired_quick(
"lml9",
true)) {
1556 h_psn_raw_rate[skim[ifill]]->Fill(62.5);
1557 }
if (isFired_quick(
"lml10",
true)) {
1558 h_psn_raw_rate[skim[ifill]]->Fill(63.5);
1559 }
if (isFired_quick(
"lml12",
true)) {
1560 h_psn_raw_rate[skim[ifill]]->Fill(64.5);
1561 }
if (isFired_quick(
"lml13",
true)) {
1562 h_psn_raw_rate[skim[ifill]]->Fill(65.5);
1563 }
if (isFired_quick(
"lml14",
true)) {
1564 h_psn_raw_rate[skim[ifill]]->Fill(66.5);
1565 }
if (isFired_quick(
"lml15",
true)) {
1566 h_psn_raw_rate[skim[ifill]]->Fill(67.5);
1567 }
if (isFired_quick(
"lml16",
true)) {
1568 h_psn_raw_rate[skim[ifill]]->Fill(68.5);
1569 }
if (isFired_quick(
"ggsel",
true)) {
1570 h_psn_raw_rate[skim[ifill]]->Fill(69.5);
1571 }
if (isFired_quick(
"bhapur",
true)) {
1572 h_psn_raw_rate[skim[ifill]]->Fill(70.5);
1573 }
if (isFired_quick(
"lml3",
true)) {
1574 h_psn_raw_rate[skim[ifill]]->Fill(71.5);
1575 }
if (isFired_quick(
"lml5",
true)) {
1576 h_psn_raw_rate[skim[ifill]]->Fill(72.5);
1577 }
if (isFired_quick(
"bha3d",
true)) {
1578 h_psn_raw_rate[skim[ifill]]->Fill(73.5);
1579 }
if (isFired_quick(
"bhabha",
true)) {
1580 h_psn_raw_rate[skim[ifill]]->Fill(74.5);
1581 }
if (isFired_quick(
"lume",
true)) {
1582 h_psn_raw_rate[skim[ifill]]->Fill(75.5);
1583 }
if (isFired_quick(
"bffo",
true)) {
1584 h_psn_raw_rate[skim[ifill]]->Fill(76.5);
1585 }
if (isFired_quick(
"bhie",
true)) {
1586 h_psn_raw_rate[skim[ifill]]->Fill(77.5);
1587 }
if (isFired_quick(
"eclmumu",
true)) {
1588 h_psn_raw_rate[skim[ifill]]->Fill(78.5);
1589 }
if (isFired_quick(
"lml1",
true)) {
1590 h_psn_raw_rate[skim[ifill]]->Fill(79.5);
1591 }
if (isFired_quick(
"lml4",
true)) {
1592 h_psn_raw_rate[skim[ifill]]->Fill(80.5);
1593 }
if (isFired_quick(
"ssb",
true)) {
1594 h_psn_raw_rate[skim[ifill]]->Fill(81.5);
1595 }
if (isFired_quick(
"eed",
true)) {
1596 h_psn_raw_rate[skim[ifill]]->Fill(82.5);
1597 }
if (isFired_quick(
"fed",
true)) {
1598 h_psn_raw_rate[skim[ifill]]->Fill(83.5);
1599 }
if (isFired_quick(
"yp",
true)) {
1600 h_psn_raw_rate[skim[ifill]]->Fill(84.5);
1601 }
if (isFired_quick(
"fp",
true)) {
1602 h_psn_raw_rate[skim[ifill]]->Fill(85.5);
1603 }
if (isFired_quick(
"shem",
true)) {
1604 h_psn_raw_rate[skim[ifill]]->Fill(86.5);
1605 }
if (isFired_quick(
"ohem",
true)) {
1606 h_psn_raw_rate[skim[ifill]]->Fill(87.5);
1607 }
if (isFired_quick(
"hiev",
true)) {
1608 h_psn_raw_rate[skim[ifill]]->Fill(88.5);
1609 }
if (isFired_quick(
"fffv",
true)) {
1610 h_psn_raw_rate[skim[ifill]]->Fill(89.5);
1611 }
if (isFired_quick(
"bg",
true)) {
1612 h_psn_raw_rate[skim[ifill]]->Fill(90.5);
1613 }
if (isFired_quick(
"poissonv",
true)) {
1614 h_psn_raw_rate[skim[ifill]]->Fill(91.5);
1615 }
if (isFired_quick(
"revolution",
true)) {
1616 h_psn_raw_rate[skim[ifill]]->Fill(92.5);
1617 }
if (isFired_quick(
"random",
true)) {
1618 h_psn_raw_rate[skim[ifill]]->Fill(93.5);
1619 }
if (isFired_quick(
"c2",
true)) {
1620 h_psn_raw_rate[skim[ifill]]->Fill(94.5);
1621 }
if (isFired_quick(
"c3",
true)) {
1622 h_psn_raw_rate[skim[ifill]]->Fill(95.5);
1623 }
if (isFired_quick(
"eklmhit",
true)) {
1624 h_psn_raw_rate[skim[ifill]]->Fill(96.5);
1625 }
if (isFired_quick(
"f",
true)) {
1626 h_psn_raw_rate[skim[ifill]]->Fill(97.5);
1627 }
if (isFired_quick(
"s",
true)) {
1628 h_psn_raw_rate[skim[ifill]]->Fill(98.5);
1629 }
if (isFired_quick(
"y",
true)) {
1630 h_psn_raw_rate[skim[ifill]]->Fill(99.5);
1631 }
if (isFired_quick(
"cdcecl3",
true)) {
1632 h_psn_raw_rate[skim[ifill]]->Fill(100.5);
1633 }
if (isFired_quick(
"cdcecl4",
true)) {
1634 h_psn_raw_rate[skim[ifill]]->Fill(101.5);
1635 }
if (isFired_quick(
"ffz",
true)) {
1636 h_psn_raw_rate[skim[ifill]]->Fill(102.5);
1637 }
if (isFired_quick(
"fzb",
true)) {
1638 h_psn_raw_rate[skim[ifill]]->Fill(103.5);
1639 }
if (isFired_quick(
"fzo",
true)) {
1640 h_psn_raw_rate[skim[ifill]]->Fill(104.5);
1641 }
if (isFired_quick(
"fff",
true)) {
1642 h_psn_raw_rate[skim[ifill]]->Fill(105.5);
1643 }
if (isFired_quick(
"ffb",
true)) {
1644 h_psn_raw_rate[skim[ifill]]->Fill(106.5);
1645 }
if (isFired_quick(
"ffo",
true)) {
1646 h_psn_raw_rate[skim[ifill]]->Fill(107.5);
1647 }
if (isFired_quick(
"fffo",
true)) {
1648 h_psn_raw_rate[skim[ifill]]->Fill(108.5);
1649 }
if (isFired_quick(
"ffs",
true)) {
1650 h_psn_raw_rate[skim[ifill]]->Fill(109.5);
1651 }
if (isFired_quick(
"fss",
true)) {
1652 h_psn_raw_rate[skim[ifill]]->Fill(110.5);
1653 }
if (isFired_quick(
"sss",
true)) {
1654 h_psn_raw_rate[skim[ifill]]->Fill(111.5);
1655 }
if (isFired_quick(
"ff",
true)) {
1656 h_psn_raw_rate[skim[ifill]]->Fill(112.5);
1657 }
if (isFired_quick(
"ss",
true)) {
1658 h_psn_raw_rate[skim[ifill]]->Fill(113.5);
1659 }
if (isFired_quick(
"fso",
true)) {
1660 h_psn_raw_rate[skim[ifill]]->Fill(114.5);
1661 }
if (isFired_quick(
"sso",
true)) {
1662 h_psn_raw_rate[skim[ifill]]->Fill(115.5);
1663 }
if (isFired_quick(
"fsb",
true)) {
1664 h_psn_raw_rate[skim[ifill]]->Fill(116.5);
1665 }
if (isFired_quick(
"ff30",
true)) {
1666 h_psn_raw_rate[skim[ifill]]->Fill(117.5);
1667 }
if (isFired_quick(
"fioiecl1",
true)) {
1668 h_psn_raw_rate[skim[ifill]]->Fill(118.5);
1669 }
if (isFired_quick(
"ioiecl1",
true)) {
1670 h_psn_raw_rate[skim[ifill]]->Fill(119.5);
1671 }
if (isFired_quick(
"cdcecl1",
true)) {
1672 h_psn_raw_rate[skim[ifill]]->Fill(120.5);
1673 }
if (isFired_quick(
"cdcecl2",
true)) {
1674 h_psn_raw_rate[skim[ifill]]->Fill(121.5);
1675 }
if (isFired_quick(
"c2gev1",
true)) {
1676 h_psn_raw_rate[skim[ifill]]->Fill(122.5);
1677 }
if (isFired_quick(
"c2gev2",
true)) {
1678 h_psn_raw_rate[skim[ifill]]->Fill(123.5);
1679 }
if (isFired_quick(
"c2hie",
true)) {
1680 h_psn_raw_rate[skim[ifill]]->Fill(124.5);
1681 }
if (isFired_quick(
"g_high",
true)) {
1682 h_psn_raw_rate[skim[ifill]]->Fill(125.5);
1683 }
if (isFired_quick(
"g_c1",
true)) {
1684 h_psn_raw_rate[skim[ifill]]->Fill(126.5);
1685 }
if (isFired_quick(
"gg",
true)) {
1686 h_psn_raw_rate[skim[ifill]]->Fill(127.5);
1687 }
if (isFired_quick(
"stt6",
true)) {
1688 h_psn_raw_rate[skim[ifill]]->Fill(128.5);
1695 TRGGDLDQMModule::fillOutputExtra(
void)
1697 bool c4_fired = isFired_quick(
"c4");
1698 bool hie_fired = isFired_quick(
"hie");
1699 bool LML_fired = (isFired_quick(
"lml0",
true) || isFired_quick(
"lml1",
true) || isFired_quick(
"lml2",
true)
1700 || isFired_quick(
"lml3",
true) || isFired_quick(
"lml4",
true) || isFired_quick(
"lml5",
true)
1701 || isFired_quick(
"lml6",
true) || isFired_quick(
"lml7",
true) || isFired_quick(
"lml8",
true)
1702 || isFired_quick(
"lml9",
true) || isFired_quick(
"lml10",
true) || isFired_quick(
"eclmumu",
true));
1703 bool CDC_fired = (isFired_quick(
"fff",
true) || isFired_quick(
"ffo",
true) || isFired_quick(
"ffb",
true)
1704 || isFired_quick(
"ffy",
true) || isFired_quick(
"fyo",
true) || isFired_quick(
"fyb",
true));
1705 bool ECL_fired = (isFired_quick(
"c4",
true) || isFired_quick(
"hie",
true));
1706 bool fff_fired = isFired_quick(
"fff");
1707 bool ff_fired = isFired_quick(
"ff");
1708 bool f_fired = isFired_quick(
"f");
1709 bool ffo_fired = isFired_quick(
"ffo");
1710 bool ffb_fired = isFired_quick(
"ffb");
1711 bool ffy_fired = isFired_quick(
"ffy");
1712 bool fyo_fired = isFired_quick(
"fyo");
1713 bool fyb_fired = isFired_quick(
"fyb");
1714 bool aaa_fired = isFired_quick(
"aaa");
1715 bool aay_fired = isFired_quick(
"aay");
1716 bool bha2D_fired = isFired_quick(
"bhabha");
1717 bool bha3D_fired = isFired_quick(
"bha3d");
1718 bool lml0_fired = isFired_quick(
"lml0");
1719 bool lml1_fired = isFired_quick(
"lml1");
1720 bool lml2_fired = isFired_quick(
"lml2");
1721 bool lml3_fired = isFired_quick(
"lml3");
1722 bool lml4_fired = isFired_quick(
"lml4");
1723 bool lml5_fired = isFired_quick(
"lml5");
1724 bool lml6_fired = isFired_quick(
"lml6");
1725 bool lml7_fired = isFired_quick(
"lml7");
1726 bool lml8_fired = isFired_quick(
"lml8");
1727 bool lml9_fired = isFired_quick(
"lml9");
1728 bool lml10_fired = isFired_quick(
"lml10");
1729 bool lml12_fired = isFired_quick(
"lml12");
1730 bool lml13_fired = isFired_quick(
"lml13");
1731 bool eclmumu_fired = isFired_quick(
"eclmumu");
1732 bool mu_b2b_fired = isFired_quick(
"mu_b2b");
1733 bool mu_eb2b_fired = isFired_quick(
"mu_eb2b");
1734 bool cdcklm1_fired = isFired_quick(
"cdcklm1");
1735 bool cdcklm2_fired = isFired_quick(
"cdcklm2");
1736 bool ycdcklm1_fired = isFired_quick(
"ycdcklm1");
1737 bool ycdcklm2_fired = isFired_quick(
"ycdcklm2");
1738 bool klm_hit_fired = isFired_quick(
"klm_hit");
1739 bool eklm_hit_fired = isFired_quick(
"eklm_hit");
1740 bool cdcecl1_fired = isFired_quick(
"cdcecl1");
1741 bool cdcecl2_fired = isFired_quick(
"cdcecl2");
1742 bool cdcecl3_fired = isFired_quick(
"cdcecl3");
1743 bool cdcecl4_fired = isFired_quick(
"cdcecl4");
1744 bool fso_fired = isFired_quick(
"fso");
1745 bool fsb_fired = isFired_quick(
"fsb");
1746 bool syo_fired = isFired_quick(
"syo");
1747 bool syb_fired = isFired_quick(
"syb");
1748 bool syoecl_fired = isFired_quick(
"syoecl");
1749 bool sybecl_fired = isFired_quick(
"sybecl");
1750 bool x_fired = isFired_quick(
"x");
1751 bool fioiecl1_fired = isFired_quick(
"fioiecl1");
1752 bool ecleklm1_fired = isFired_quick(
"ecleklm1");
1753 bool seklm1_fired = isFired_quick(
"seklm1");
1754 bool seklm2_fired = isFired_quick(
"seklm2");
1755 bool ieklm_fired = isFired_quick(
"ieklm");
1756 bool iecl_fired = isFired_quick(
"iecl");
1757 bool yioiecl1_fired = isFired_quick(
"yioiecl1");
1758 bool stt_fired = isFired_quick(
"stt");
1759 bool sttecl_fired = isFired_quick(
"sttecl");
1760 bool ffz_fired = isFired_quick(
"ffz");
1761 bool fzo_fired = isFired_quick(
"fzo");
1762 bool fzb_fired = isFired_quick(
"fzb");
1764 for (
unsigned ifill = 0; ifill < skim.size(); ifill++) {
1766 for (
int i = nsample_fast - 1; i > 0; i--) {
1767 for (
int ibin = 0; ibin < n_output_extra; ibin++) {
1768 array_psn_extra_fast[skim[ifill]][i][ibin] = array_psn_extra_fast[skim[ifill]][i - 1][ibin];
1771 for (
int ibin = 0; ibin < n_output_extra; ibin++) {
1772 array_psn_extra_fast[skim[ifill]][0][ibin] = 0;
1776 h_psn_extra[skim[ifill]]->Fill(0.5);
1777 array_psn_extra_fast[skim[ifill]][0][0] = 1;
1779 if (fff_fired && (ECL_fired)) {
1780 h_psn_extra[skim[ifill]]->Fill(1.5);
1781 array_psn_extra_fast[skim[ifill]][0][1] = 1;
1783 if (ffo_fired && (ECL_fired)) {
1784 h_psn_extra[skim[ifill]]->Fill(2.5);
1785 array_psn_extra_fast[skim[ifill]][0][2] = 1;
1787 if (ffb_fired && (ECL_fired)) {
1788 h_psn_extra[skim[ifill]]->Fill(3.5);
1789 array_psn_extra_fast[skim[ifill]][0][3] = 1;
1792 h_psn_extra[skim[ifill]]->Fill(4.5);
1793 array_psn_extra_fast[skim[ifill]][0][4] = 1;
1796 h_psn_extra[skim[ifill]]->Fill(5.5);
1797 array_psn_extra_fast[skim[ifill]][0][5] = 1;
1800 h_psn_extra[skim[ifill]]->Fill(6.5);
1801 array_psn_extra_fast[skim[ifill]][0][6] = 1;
1803 if ((CDC_fired) && (ECL_fired)) {
1804 h_psn_extra[skim[ifill]]->Fill(7.5);
1805 array_psn_extra_fast[skim[ifill]][0][7] = 1;
1808 h_psn_extra[skim[ifill]]->Fill(8.5);
1809 array_psn_extra_fast[skim[ifill]][0][8] = 1;
1812 h_psn_extra[skim[ifill]]->Fill(9.5);
1813 array_psn_extra_fast[skim[ifill]][0][9] = 1;
1816 h_psn_extra[skim[ifill]]->Fill(10.5);
1817 array_psn_extra_fast[skim[ifill]][0][10] = 1;
1819 if (ff_fired && (LML_fired)) {
1820 h_psn_extra[skim[ifill]]->Fill(11.5);
1821 array_psn_extra_fast[skim[ifill]][0][11] = 1;
1824 h_psn_extra[skim[ifill]]->Fill(12.5);
1825 array_psn_extra_fast[skim[ifill]][0][12] = 1;
1827 if (f_fired && (LML_fired)) {
1828 h_psn_extra[skim[ifill]]->Fill(13.5);
1829 array_psn_extra_fast[skim[ifill]][0][13] = 1;
1832 h_psn_extra[skim[ifill]]->Fill(14.5);
1833 array_psn_extra_fast[skim[ifill]][0][14] = 1;
1835 if (fff_fired && (LML_fired)) {
1836 h_psn_extra[skim[ifill]]->Fill(15.5);
1837 array_psn_extra_fast[skim[ifill]][0][15] = 1;
1839 if (ffo_fired && (LML_fired)) {
1840 h_psn_extra[skim[ifill]]->Fill(16.5);
1841 array_psn_extra_fast[skim[ifill]][0][16] = 1;
1843 if (ffb_fired && (LML_fired)) {
1844 h_psn_extra[skim[ifill]]->Fill(17.5);
1845 array_psn_extra_fast[skim[ifill]][0][17] = 1;
1848 h_psn_extra[skim[ifill]]->Fill(18.5);
1849 array_psn_extra_fast[skim[ifill]][0][18] = 1;
1851 if (ffy_fired && (ECL_fired)) {
1852 h_psn_extra[skim[ifill]]->Fill(19.5);
1853 array_psn_extra_fast[skim[ifill]][0][19] = 1;
1855 if (fyo_fired && (ECL_fired)) {
1856 h_psn_extra[skim[ifill]]->Fill(20.5);
1857 array_psn_extra_fast[skim[ifill]][0][20] = 1;
1859 if (fyb_fired && (ECL_fired)) {
1860 h_psn_extra[skim[ifill]]->Fill(21.5);
1861 array_psn_extra_fast[skim[ifill]][0][21] = 1;
1863 if ((ffy_fired || fyo_fired || fyb_fired) && (ECL_fired)) {
1864 h_psn_extra[skim[ifill]]->Fill(22.5);
1865 array_psn_extra_fast[skim[ifill]][0][22] = 1;
1867 if (ffy_fired && (LML_fired)) {
1868 h_psn_extra[skim[ifill]]->Fill(23.5);
1869 array_psn_extra_fast[skim[ifill]][0][23] = 1;
1871 if (fyo_fired && (LML_fired)) {
1872 h_psn_extra[skim[ifill]]->Fill(24.5);
1873 array_psn_extra_fast[skim[ifill]][0][24] = 1;
1875 if (fyb_fired && (LML_fired)) {
1876 h_psn_extra[skim[ifill]]->Fill(25.5);
1877 array_psn_extra_fast[skim[ifill]][0][25] = 1;
1879 if (c4_fired && (CDC_fired)) {
1880 h_psn_extra[skim[ifill]]->Fill(26.5);
1881 array_psn_extra_fast[skim[ifill]][0][26] = 1;
1883 if (hie_fired && (CDC_fired)) {
1884 h_psn_extra[skim[ifill]]->Fill(27.5);
1885 array_psn_extra_fast[skim[ifill]][0][27] = 1;
1887 if (lml0_fired && (CDC_fired)) {
1888 h_psn_extra[skim[ifill]]->Fill(28.5);
1889 array_psn_extra_fast[skim[ifill]][0][28] = 1;
1891 if (lml1_fired && (CDC_fired)) {
1892 h_psn_extra[skim[ifill]]->Fill(29.5);
1893 array_psn_extra_fast[skim[ifill]][0][29] = 1;
1895 if (lml2_fired && (CDC_fired)) {
1896 h_psn_extra[skim[ifill]]->Fill(30.5);
1897 array_psn_extra_fast[skim[ifill]][0][30] = 1;
1899 if (lml3_fired && (CDC_fired)) {
1900 h_psn_extra[skim[ifill]]->Fill(31.5);
1901 array_psn_extra_fast[skim[ifill]][0][31] = 1;
1903 if (lml4_fired && (CDC_fired)) {
1904 h_psn_extra[skim[ifill]]->Fill(32.5);
1905 array_psn_extra_fast[skim[ifill]][0][32] = 1;
1907 if (lml5_fired && (CDC_fired)) {
1908 h_psn_extra[skim[ifill]]->Fill(33.5);
1909 array_psn_extra_fast[skim[ifill]][0][33] = 1;
1911 if (lml6_fired && (CDC_fired)) {
1912 h_psn_extra[skim[ifill]]->Fill(34.5);
1913 array_psn_extra_fast[skim[ifill]][0][34] = 1;
1915 if (lml7_fired && (CDC_fired)) {
1916 h_psn_extra[skim[ifill]]->Fill(35.5);
1917 array_psn_extra_fast[skim[ifill]][0][35] = 1;
1919 if (lml8_fired && (CDC_fired)) {
1920 h_psn_extra[skim[ifill]]->Fill(36.5);
1921 array_psn_extra_fast[skim[ifill]][0][36] = 1;
1923 if (lml9_fired && (CDC_fired)) {
1924 h_psn_extra[skim[ifill]]->Fill(37.5);
1925 array_psn_extra_fast[skim[ifill]][0][37] = 1;
1927 if (lml10_fired && (CDC_fired)) {
1928 h_psn_extra[skim[ifill]]->Fill(38.5);
1929 array_psn_extra_fast[skim[ifill]][0][38] = 1;
1931 if (lml12_fired && (CDC_fired)) {
1932 h_psn_extra[skim[ifill]]->Fill(39.5);
1933 array_psn_extra_fast[skim[ifill]][0][39] = 1;
1935 if (lml13_fired && (CDC_fired)) {
1936 h_psn_extra[skim[ifill]]->Fill(40.5);
1937 array_psn_extra_fast[skim[ifill]][0][40] = 1;
1939 if (eclmumu_fired && (CDC_fired)) {
1940 h_psn_extra[skim[ifill]]->Fill(41.5);
1941 array_psn_extra_fast[skim[ifill]][0][41] = 1;
1943 if (mu_b2b_fired && (CDC_fired)) {
1944 h_psn_extra[skim[ifill]]->Fill(42.5);
1945 array_psn_extra_fast[skim[ifill]][0][42] = 1;
1947 if (mu_eb2b_fired && (CDC_fired)) {
1948 h_psn_extra[skim[ifill]]->Fill(43.5);
1949 array_psn_extra_fast[skim[ifill]][0][43] = 1;
1951 if (cdcklm1_fired && (CDC_fired)) {
1952 h_psn_extra[skim[ifill]]->Fill(44.5);
1953 array_psn_extra_fast[skim[ifill]][0][44] = 1;
1955 if (cdcklm2_fired && (CDC_fired)) {
1956 h_psn_extra[skim[ifill]]->Fill(45.5);
1957 array_psn_extra_fast[skim[ifill]][0][45] = 1;
1959 if (klm_hit_fired && (CDC_fired)) {
1960 h_psn_extra[skim[ifill]]->Fill(46.5);
1961 array_psn_extra_fast[skim[ifill]][0][46] = 1;
1963 if (eklm_hit_fired && (CDC_fired)) {
1964 h_psn_extra[skim[ifill]]->Fill(47.5);
1965 array_psn_extra_fast[skim[ifill]][0][47] = 1;
1967 if (mu_b2b_fired && LML_fired) {
1968 h_psn_extra[skim[ifill]]->Fill(48.5);
1969 array_psn_extra_fast[skim[ifill]][0][48] = 1;
1971 if (mu_eb2b_fired && LML_fired) {
1972 h_psn_extra[skim[ifill]]->Fill(49.5);
1973 array_psn_extra_fast[skim[ifill]][0][49] = 1;
1975 if (cdcklm1_fired && LML_fired) {
1976 h_psn_extra[skim[ifill]]->Fill(50.5);
1977 array_psn_extra_fast[skim[ifill]][0][50] = 1;
1979 if (cdcklm2_fired && LML_fired) {
1980 h_psn_extra[skim[ifill]]->Fill(51.5);
1981 array_psn_extra_fast[skim[ifill]][0][51] = 1;
1983 if (klm_hit_fired && LML_fired) {
1984 h_psn_extra[skim[ifill]]->Fill(52.5);
1985 array_psn_extra_fast[skim[ifill]][0][52] = 1;
1987 if (eklm_hit_fired && LML_fired) {
1988 h_psn_extra[skim[ifill]]->Fill(53.5);
1989 array_psn_extra_fast[skim[ifill]][0][53] = 1;
1991 if (cdcecl1_fired && (CDC_fired)) {
1992 h_psn_extra[skim[ifill]]->Fill(54.5);
1993 array_psn_extra_fast[skim[ifill]][0][54] = 1;
1995 if (cdcecl2_fired && (CDC_fired)) {
1996 h_psn_extra[skim[ifill]]->Fill(55.5);
1997 array_psn_extra_fast[skim[ifill]][0][55] = 1;
1999 if (cdcecl3_fired && (CDC_fired)) {
2000 h_psn_extra[skim[ifill]]->Fill(56.5);
2001 array_psn_extra_fast[skim[ifill]][0][56] = 1;
2003 if (cdcecl4_fired && (CDC_fired)) {
2004 h_psn_extra[skim[ifill]]->Fill(57.5);
2005 array_psn_extra_fast[skim[ifill]][0][57] = 1;
2007 if (cdcecl1_fired && LML_fired) {
2008 h_psn_extra[skim[ifill]]->Fill(58.5);
2009 array_psn_extra_fast[skim[ifill]][0][58] = 1;
2011 if (cdcecl2_fired && LML_fired) {
2012 h_psn_extra[skim[ifill]]->Fill(59.5);
2013 array_psn_extra_fast[skim[ifill]][0][59] = 1;
2015 if (cdcecl3_fired && LML_fired) {
2016 h_psn_extra[skim[ifill]]->Fill(60.5);
2017 array_psn_extra_fast[skim[ifill]][0][60] = 1;
2019 if (cdcecl4_fired && LML_fired) {
2020 h_psn_extra[skim[ifill]]->Fill(61.5);
2021 array_psn_extra_fast[skim[ifill]][0][61] = 1;
2023 if (fso_fired && LML_fired) {
2024 h_psn_extra[skim[ifill]]->Fill(62.5);
2025 array_psn_extra_fast[skim[ifill]][0][62] = 1;
2027 if (fsb_fired && LML_fired) {
2028 h_psn_extra[skim[ifill]]->Fill(63.5);
2029 array_psn_extra_fast[skim[ifill]][0][63] = 1;
2031 if (syo_fired && LML_fired) {
2032 h_psn_extra[skim[ifill]]->Fill(64.5);
2033 array_psn_extra_fast[skim[ifill]][0][64] = 1;
2035 if (syb_fired && LML_fired) {
2036 h_psn_extra[skim[ifill]]->Fill(65.5);
2037 array_psn_extra_fast[skim[ifill]][0][65] = 1;
2039 if (x_fired && LML_fired) {
2040 h_psn_extra[skim[ifill]]->Fill(66.5);
2041 array_psn_extra_fast[skim[ifill]][0][66] = 1;
2043 if (fioiecl1_fired && LML_fired) {
2044 h_psn_extra[skim[ifill]]->Fill(67.5);
2045 array_psn_extra_fast[skim[ifill]][0][67] = 1;
2047 if (ecleklm1_fired && LML_fired) {
2048 h_psn_extra[skim[ifill]]->Fill(68.5);
2049 array_psn_extra_fast[skim[ifill]][0][68] = 1;
2051 if (seklm1_fired && LML_fired) {
2052 h_psn_extra[skim[ifill]]->Fill(69.5);
2053 array_psn_extra_fast[skim[ifill]][0][69] = 1;
2055 if (seklm2_fired && LML_fired) {
2056 h_psn_extra[skim[ifill]]->Fill(70.5);
2057 array_psn_extra_fast[skim[ifill]][0][70] = 1;
2059 if (ieklm_fired && LML_fired) {
2060 h_psn_extra[skim[ifill]]->Fill(71.5);
2061 array_psn_extra_fast[skim[ifill]][0][71] = 1;
2063 if (iecl_fired && LML_fired) {
2064 h_psn_extra[skim[ifill]]->Fill(72.5);
2065 array_psn_extra_fast[skim[ifill]][0][72] = 1;
2067 if (ecleklm1_fired && CDC_fired) {
2068 h_psn_extra[skim[ifill]]->Fill(73.5);
2069 array_psn_extra_fast[skim[ifill]][0][73] = 1;
2071 if (syo_fired && ECL_fired) {
2072 h_psn_extra[skim[ifill]]->Fill(74.5);
2073 array_psn_extra_fast[skim[ifill]][0][74] = 1;
2075 if (yioiecl1_fired && ECL_fired) {
2076 h_psn_extra[skim[ifill]]->Fill(75.5);
2077 array_psn_extra_fast[skim[ifill]][0][75] = 1;
2079 if (stt_fired && ECL_fired) {
2080 h_psn_extra[skim[ifill]]->Fill(76.5);
2081 array_psn_extra_fast[skim[ifill]][0][76] = 1;
2083 if (ffz_fired && (ECL_fired)) {
2084 h_psn_extra[skim[ifill]]->Fill(77.5);
2085 array_psn_extra_fast[skim[ifill]][0][77] = 1;
2087 if (fzo_fired && (ECL_fired)) {
2088 h_psn_extra[skim[ifill]]->Fill(78.5);
2089 array_psn_extra_fast[skim[ifill]][0][78] = 1;
2091 if (fzb_fired && (ECL_fired)) {
2092 h_psn_extra[skim[ifill]]->Fill(79.5);
2093 array_psn_extra_fast[skim[ifill]][0][79] = 1;
2095 if (ffy_fired && ffz_fired && (ECL_fired)) {
2096 h_psn_extra[skim[ifill]]->Fill(80.5);
2097 array_psn_extra_fast[skim[ifill]][0][80] = 1;
2099 if (fyo_fired && fzo_fired && (ECL_fired)) {
2100 h_psn_extra[skim[ifill]]->Fill(81.5);
2101 array_psn_extra_fast[skim[ifill]][0][81] = 1;
2103 if (fyb_fired && fzb_fired && (ECL_fired)) {
2104 h_psn_extra[skim[ifill]]->Fill(82.5);
2105 array_psn_extra_fast[skim[ifill]][0][82] = 1;
2107 if ((ffy_fired || ffz_fired) && (ECL_fired)) {
2108 h_psn_extra[skim[ifill]]->Fill(83.5);
2109 array_psn_extra_fast[skim[ifill]][0][83] = 1;
2111 if ((fyo_fired || fzo_fired) && (ECL_fired)) {
2112 h_psn_extra[skim[ifill]]->Fill(84.5);
2113 array_psn_extra_fast[skim[ifill]][0][84] = 1;
2115 if ((fyb_fired || fzb_fired) && (ECL_fired)) {
2116 h_psn_extra[skim[ifill]]->Fill(85.5);
2117 array_psn_extra_fast[skim[ifill]][0][85] = 1;
2119 if (ffy_fired && ffz_fired) {
2120 h_psn_extra[skim[ifill]]->Fill(86.5);
2121 array_psn_extra_fast[skim[ifill]][0][86] = 1;
2123 if (fyo_fired && fzo_fired) {
2124 h_psn_extra[skim[ifill]]->Fill(87.5);
2125 array_psn_extra_fast[skim[ifill]][0][87] = 1;
2127 if (fyb_fired && fzb_fired) {
2128 h_psn_extra[skim[ifill]]->Fill(88.5);
2129 array_psn_extra_fast[skim[ifill]][0][88] = 1;
2131 if (ffy_fired || ffz_fired) {
2132 h_psn_extra[skim[ifill]]->Fill(89.5);
2133 array_psn_extra_fast[skim[ifill]][0][89] = 1;
2135 if (fyo_fired || fzo_fired) {
2136 h_psn_extra[skim[ifill]]->Fill(90.5);
2137 array_psn_extra_fast[skim[ifill]][0][90] = 1;
2139 if (fyb_fired || fzb_fired) {
2140 h_psn_extra[skim[ifill]]->Fill(91.5);
2141 array_psn_extra_fast[skim[ifill]][0][91] = 1;
2144 h_psn_extra[skim[ifill]]->Fill(92.5);
2145 array_psn_extra_fast[skim[ifill]][0][92] = 1;
2148 h_psn_extra[skim[ifill]]->Fill(93.5);
2149 array_psn_extra_fast[skim[ifill]][0][93] = 1;
2151 if (aaa_fired && ECL_fired) {
2152 h_psn_extra[skim[ifill]]->Fill(94.5);
2153 array_psn_extra_fast[skim[ifill]][0][94] = 1;
2155 if (aay_fired && ECL_fired) {
2156 h_psn_extra[skim[ifill]]->Fill(95.5);
2157 array_psn_extra_fast[skim[ifill]][0][95] = 1;
2159 if (ycdcklm1_fired && (CDC_fired)) {
2160 h_psn_extra[skim[ifill]]->Fill(96.5);
2161 array_psn_extra_fast[skim[ifill]][0][96] = 1;
2163 if (ycdcklm2_fired && (CDC_fired)) {
2164 h_psn_extra[skim[ifill]]->Fill(97.5);
2165 array_psn_extra_fast[skim[ifill]][0][97] = 1;
2167 if (ycdcklm1_fired && LML_fired) {
2168 h_psn_extra[skim[ifill]]->Fill(98.5);
2169 array_psn_extra_fast[skim[ifill]][0][98] = 1;
2171 if (ycdcklm2_fired && LML_fired) {
2172 h_psn_extra[skim[ifill]]->Fill(99.5);
2173 array_psn_extra_fast[skim[ifill]][0][99] = 1;
2175 if (sttecl_fired && ECL_fired) {
2176 h_psn_extra[skim[ifill]]->Fill(100.5);
2177 array_psn_extra_fast[skim[ifill]][0][100] = 1;
2179 if (syoecl_fired && LML_fired) {
2180 h_psn_extra[skim[ifill]]->Fill(101.5);
2181 array_psn_extra_fast[skim[ifill]][0][101] = 1;
2183 if (sybecl_fired && LML_fired) {
2184 h_psn_extra[skim[ifill]]->Fill(102.5);
2185 array_psn_extra_fast[skim[ifill]][0][102] = 1;
2187 if (syoecl_fired && ECL_fired) {
2188 h_psn_extra[skim[ifill]]->Fill(103.5);
2189 array_psn_extra_fast[skim[ifill]][0][103] = 1;
2191 if (sybecl_fired && ECL_fired) {
2192 h_psn_extra[skim[ifill]]->Fill(104.5);
2193 array_psn_extra_fast[skim[ifill]][0][104] = 1;
2197 for (
int ibin = 0; ibin < n_output_extra; ibin++) {
2198 int sum_psn_extra_fast = 0;
2199 for (
int i = 0; i < nsample_fast; i++) {
2200 sum_psn_extra_fast += array_psn_extra_fast[skim[ifill]][i][ibin];
2202 h_psn_extra_fast[skim[ifill]]->SetBinContent(ibin + 1, sum_psn_extra_fast);
2208 const char* TRGGDLDQMModule::output_extra[n_output_extra] = {
2209 "all",
"fff&(c4|hie)",
"ffo&(c4|hie)",
"ffb&(c4|hie)",
"fff",
"c4|hie",
"fff|ffo|ffb",
"(fff|ffo|ffb)&(c4|hie)",
"bha2D",
"bha3D",
2210 "ff",
"ff&(lml|eclmumu)",
"f",
"f&(lml|eclmumu)",
"lml|eclmumu",
"fff&(lml|eclmumu)",
"ffo&(lml|eclmumu)",
"ffb&(lml|eclmumu)",
"ffy",
"ffy&(c4|hie)",
2211 "fyo&(c4|hie)",
"fyb&(c4|hie)",
"(ffy|ffo|ffb)&(c4|hie)",
"ffy&(lml|eclmumu)",
"fyo&(lml|eclmumu)",
"fyb&(lml|eclmumu)",
"c4&(fff|ffo|ffb)",
"hie&(fff|ffo|ffb)",
"lml0&(fff|ffo|ffb)",
"lml1&(fff|ffo|ffb)",
2212 "lml2&(fff|ffo|ffb)",
"lml3&(fff|ffo|ffb)",
"lml4&(fff|ffo|ffb)",
"lml5&(fff|ffo|ffb)",
"lml6&(fff|ffo|ffb)",
"lml7&(fff|ffo|ffb)",
"lml8&(fff|ffo|ffb)",
"lml9&(fff|ffo|ffb)",
"lml10&(fff|ffo|ffb)",
"lml12&(fff|ffo|ffb)",
2213 "lml13&(fff|ffo|ffb)",
"eclmumu&(fff|ffo|ffb)",
"mu_b2b&(fff|ffo|ffb)",
"mu_eb2b&(fff|ffo|ffb)",
"cdcklm1&(fff|ffo|ffb)",
"cdcklm2&(fff|ffo|ffb)",
"klm_hit&(fff|ffo|ffb)",
"eklm_hit&(fff|ffo|ffb)",
"mu_b2b&(lml|eclmumu)",
"mu_eb2b&(lml|eclmumu)",
2214 "cdcklm1&(lml|eclmumu)",
"cdcklm2&(lml|eclmumu)",
"klm_hit&(lml|eclmumu)",
"eklm_hit&(lml|eclmumu)",
"cdcecl1&(fff|ffo|ffb)",
"cdcecl2&(fff|ffo|ffb)",
"cdcecl3&(fff|ffo|ffb)",
"cdcecl4&(fff|ffo|ffb)",
"cdcecl1&(lml|eclmumu)",
"cdcecl2&(lml|eclmumu)",
2215 "cdcecl3&(lml|eclmumu)",
"cdcecl4&(lml|eclmumu)",
"fso&(lml|eclmumu)",
"fsb&(lml|eclmumu)",
"syo&(lml|eclmumu)",
"syb&(lml|eclmumu)",
"x&(lml|eclmumu)",
"fioiecl1&(lml|eclmumu)",
"ecleklm1&(lml|eclmumu)",
"seklm1&(lml|eclmumu)",
2216 "seklm2&(lml|eclmumu)",
"ieklm&(lml|eclmumu)",
"iecl&(lml|eclmumu)",
"ecleklm1&(fff|ffo|ffb)",
"syo&(c4|hie)",
"yioiecl1&(c4|hie)",
"stt&(c4|hie)",
"ffz&(c4|hie)",
"fzo&(c4|hie)",
"fzb&(c4|hie)",
2217 "ffy&ffz&(c4|hie)",
"fyo&fzo&(c4|hie)",
"fyb&fzb&(c4|hie)",
"(ffy|ffz)&(c4|hie)",
"(fyo|fzo)&(c4|hie)",
"(fyb|fzb)&(c4|hie)",
"ffy&ffz",
"fyo&fzo",
"fyb&fzb",
"(ffy|ffz)",
2218 "(fyo|fzo)",
"(fyb|fzb)",
"ffo",
"ffb",
"aaa&(c4|hie)",
"aay&(c4|hie)",
"ycdcklm1&(fff|ffo|ffb)",
"ycdcklm2&(fff|ffo|ffb)",
"ycdcklm1&(lml|eclmumu)",
"ycdcklm2&(lml|eclmumu)",
2219 "sttecl&(c4|hie)",
"syoecl&(lml|eclmumu)",
"sybecl&(lml|eclmumu)",
"syoecl&(c4|hie)",
"sybecl&(c4|hie)"
2225 const char* TRGGDLDQMModule::output_overlap[n_output_overlap] = {
2226 "all",
"B_CDC",
"B_ECL",
"L_KLM",
"L_CDC",
"L_ECL",
"CALIB",
"MONITOR",
"OTHER",
"B_ffy",
2227 "B_fyo",
"B_c4",
"B_hie",
"L_klm",
"L_klm_match",
"L_stt",
"L_short",
"L_fy30",
"L_inner",
"L_lml",
2228 "CALIB_gg",
"CALIB_bhapur",
"CALIB_pid",
"CALIB_wo_bhaveto",
"CALIB_eclmumu",
"CALIB_lml1",
"CALIB_lml4",
"CALIB_noveto",
"CALIB_random",
"MON_ffz",
2229 "MON_fzo",
"MONITOR_all",
"OTHER_all",
2332 TRGGDLDQMModule::fillOutputPureExtra(
void)
2335 int n_fulltrack = 0;
2337 float phi_list[100];
2338 for (
int itrack = 0; itrack < Tracks.getEntries(); itrack++) {
2340 if (tfr ==
nullptr)
continue;
2342 float z0 = tfr->
getZ0();
2343 float d0 = tfr->
getD0();
2344 float phi = tfr->
getPhi();
2349 if (z0 > -1 && z0 < 1 && d0 > -1 && d0 < 1 && flayer < 8 && llayer > 50
2351 phi_list[n_fulltrack] = phi;
2355 for (
int i = 0; i < n_fulltrack; i++) {
2356 for (
int j = 0; j < n_fulltrack; j++) {
2357 float dphi = phi_list[i] - phi_list[j];
2358 if (dphi < 0) dphi = -dphi;
2359 if (dphi > 3.14) dphi = 2 * 3.14 - dphi;
2360 if (dphi > max_dphi) max_dphi = dphi;
2371 int ecl_timing_threshold_low = -200;
2372 int ecl_timing_threshold_high = 200;
2373 double ecl_xtcid_energy_sum[576] = {0};
2374 double total_energy = 0;
2376 for (
const auto& eclcalhit : m_ECLCalDigitData) {
2379 if (!eclcalhit.isCalibrated()) {
continue;}
2380 if (eclcalhit.isFailedFit()) {
continue;}
2381 if (eclcalhit.isTimeResolutionFailed()) {
continue;}
2384 int ecl_cid = (double) eclcalhit.getCellId();
2387 int ecl_quality = -1;
2388 for (
const auto& eclhit : m_ECLDigitData) {
2389 if (ecl_cid == eclhit.getCellId()) {
2390 ecl_quality = (int) eclhit.getQuality();
2393 if (ecl_quality != 0) {
continue;}
2396 double ecl_xtal_energy = eclcalhit.getEnergy();
2400 int ecl_timing = eclcalhit.getTime();
2401 if (ecl_timing < ecl_timing_threshold_low ||
2402 ecl_timing > ecl_timing_threshold_high) {
continue;}
2408 if (ecl_tcid >= 0 && ecl_tcid < 576 && ecl_thetaid >= 2 && ecl_thetaid <= 15) {
2409 ecl_xtcid_energy_sum[ecl_tcid] = ecl_xtcid_energy_sum[ecl_tcid] + ecl_xtal_energy;
2414 for (
int i = 0; i < 576; i++) {
2415 if (ecl_xtcid_energy_sum[i] > 0.1) {
2416 total_energy += ecl_xtcid_energy_sum[i];
2425 if (n_fulltrack > 2) {
2426 bool fff_fired = isFired_quick(
"fff");
2427 bool ffy_fired = isFired_quick(
"ffy");
2428 bool c4_fired = isFired_quick(
"c4");
2429 bool hie_fired = isFired_quick(
"hie");
2430 if (c4_fired || hie_fired) {
2431 h_psn_pure_extra[0]->Fill(0.5);
2433 if (fff_fired && (c4_fired || hie_fired)) {
2434 h_psn_pure_extra[0]->Fill(1.5);
2436 if (ffy_fired && (c4_fired || hie_fired)) {
2437 h_psn_pure_extra[0]->Fill(2.5);
2441 if (n_fulltrack > 1 && max_dphi > 3.14 / 2.) {
2442 bool ffo_fired = isFired_quick(
"ffo");
2443 bool fyo_fired = isFired_quick(
"fyo");
2444 bool c4_fired = isFired_quick(
"c4");
2445 bool hie_fired = isFired_quick(
"hie");
2446 if (c4_fired || hie_fired) {
2447 h_psn_pure_extra[0]->Fill(3.5);
2449 if (ffo_fired && (c4_fired || hie_fired)) {
2450 h_psn_pure_extra[0]->Fill(4.5);
2452 if (fyo_fired && (c4_fired || hie_fired)) {
2453 h_psn_pure_extra[0]->Fill(5.5);
2457 if (n_fulltrack > 1 && max_dphi > 3.14 * 5 / 6.) {
2458 bool ffb_fired = isFired_quick(
"ffb");
2459 bool fyb_fired = isFired_quick(
"fyb");
2460 bool c4_fired = isFired_quick(
"c4");
2461 bool hie_fired = isFired_quick(
"hie");
2462 if (c4_fired || hie_fired) {
2463 h_psn_pure_extra[0]->Fill(6.5);
2465 if (ffb_fired && (c4_fired || hie_fired)) {
2466 h_psn_pure_extra[0]->Fill(7.5);
2468 if (fyb_fired && (c4_fired || hie_fired)) {
2469 h_psn_pure_extra[0]->Fill(8.5);
2474 if (total_energy > 1) {
2475 bool fff_fired = isFired_quick(
"fff");
2476 bool ffo_fired = isFired_quick(
"ffo");
2477 bool ffb_fired = isFired_quick(
"ffb");
2478 bool hie_fired = isFired_quick(
"hie");
2479 if (fff_fired || ffo_fired || ffb_fired) {
2480 h_psn_pure_extra[0]->Fill(9.5);
2482 if (hie_fired && (fff_fired || ffo_fired || ffb_fired)) {
2483 h_psn_pure_extra[0]->Fill(10.5);
2489 bool fff_fired = isFired_quick(
"fff");
2490 bool ffo_fired = isFired_quick(
"ffo");
2491 bool ffb_fired = isFired_quick(
"ffb");
2492 bool c4_fired = isFired_quick(
"c4");
2493 if (fff_fired || ffo_fired || ffb_fired) {
2494 h_psn_pure_extra[0]->Fill(11.5);
2496 if (c4_fired && (fff_fired || ffo_fired || ffb_fired)) {
2497 h_psn_pure_extra[0]->Fill(12.5);
2503 const char* TRGGDLDQMModule::output_pure_extra[n_output_pure_extra] = {
2504 "c4|hie offline_fff",
"fff&(c4|hie) offline_fff",
"ffy&(c4|hie) offline_fff",
2505 "c4|hie offline_ffo",
"ffo&(c4|hie) offline_ffo",
"fyo&(c4|hie) offline_ffo",
2506 "c4|hie offline_ffb",
"ffb&(c4|hie) offline_ffb",
"fyb&(c4|hie) offline_ffb",
2507 "fff|ffb|ffo offline_hie",
"hie&(fff|ffb|ffo) offline_hie",
2508 "fff|ffb|ffo offline_c4",
"c4&(fff|ffb|ffo) offline_c4"
static const ChargedStable pion
charged pion particle
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
short getLastLayer() const
Returns the index of the last layer with a hit.
short getFirstLayer() const
Returns the index of the first layer with a hit.
void setDescription(const std::string &description)
Sets the description of the module.
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
TH1I * h_c8_cdcTogdlL1[nskim_gdldqm]
timestamp diff from t0(cdc) to gdlL1 in LSB8nsec
TH1I * h_c8_eclTogdlL1[nskim_gdldqm]
timestamp diff from t0(ecl) to gdlL1 in LSB8nsec
TH1I * h_c8_topTogdlL1[nskim_gdldqm]
timestamp diff from t0(top) to gdlL1 in LSB8nsec
virtual void initialize() override
initialize
TH1I * h_c8_eclToGDL[nskim_gdldqm]
timestamp diff from t0(ecl) to GDL in LSB8nsec
virtual void event() override
Event.
TH1D * h_ns_topTocdc[nskim_gdldqm]
timestamp diff from top_timing to cdc_timing in nsec
TH1I * h_ftd[nskim_gdldqm]
ftd bits
virtual void endRun() override
End Run.
TH1D * h_ns_cdcToecl[nskim_gdldqm]
timestamp diff from cdc_timing to ecl_timing in nsec
TH1I * h_c8_ecl8mToGDL[nskim_gdldqm]
timestamp diff from fit on fam to GDL in LSB8nsec
TH1I * h_c2_cdcToecl[nskim_gdldqm]
timestamp from cdc_timing to ecl_timing to L1 in LSB2nsec
TH1I * h_c8_gdlL1TocomL1[nskim_gdldqm]
timestamp diff from gdlL1 to comL1 in LSB8nsec
TH1D * h_ns_cdcTocomL1[nskim_gdldqm]
timestamp diff from cdc_timing to comL1 in nsec
virtual void beginRun() override
begin Run
TH1I * h_c2_cdcTocomL1[nskim_gdldqm]
timestamp diff from cdc_timing to comL1 in LSB2nsec
TH1I * h_c8_topToGDL[nskim_gdldqm]
timestamp diff from t0(top) to GDL in LSB8nsec
TH1I * h_psn[nskim_gdldqm]
psn bits
TH1D * h_ns_topToecl[nskim_gdldqm]
timestamp diff from top_timing to ecl_timing in nsec
TH1I * h_itd[nskim_gdldqm]
input bits
TH1D * h_ns_cdcTogdlL1[nskim_gdldqm]
timestamp diff from cdc_timing to gdlL1 in nsec
TH1I * h_timtype[nskim_gdldqm]
timtype
TH1I * h_c8_cdcToGDL[nskim_gdldqm]
timestamp diff from t0(cdc) to GDL in LSB8nsec
virtual void defineHisto() override
Define Histogram.
Values of the result of a track fit with a given particle hypothesis.
double getPhi() const
Getter for phi0 with CDF naming convention.
double getD0() const
Getter for d0.
double getTransverseMomentum() const
Getter for the absolute value of the transverse momentum at the perigee.
double getZ0() const
Getter for z0.
HitPatternCDC getHitPatternCDC() const
Getter for the hit pattern in the CDC;.
int getTCThetaIdFromTCId(int)
get [TC Theta ID] from [TC ID]
int getTCIdFromXtalId(int)
get [TC ID] from [Xtal ID]
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
@ c_accept
Accept this event.
Abstract base class for different kinds of events.