18#include <trg/gdl/modules/trggdlDQM/TRGGDLDQMModule.h>
19#include <trg/gdl/modules/trggdlUnpacker/trggdlUnpackerModule.h>
21#include <framework/datastore/StoreObjPtr.h>
22#include <framework/datastore/StoreArray.h>
24#include <TDirectory.h>
25#include <TPostScript.h>
30#include <framework/logging/Logger.h>
31#include <boost/algorithm/string.hpp>
52 addParam(
"eventByEventTimingHistRecord", m_eventByEventTimingHistRecord,
53 "Recording event by event timing distribution histogram or not",
55 addParam(
"dumpVcdFile", m_dumpVcdFile,
56 "Dumping vcd file or not",
58 addParam(
"bitConditionToDumpVcd", m_bitConditionToDumpVcd,
59 "Condition for vcd. alg format with '!' and '+'.",
61 addParam(
"vcdEventStart", m_vcdEventStart,
62 "Start equential event number",
64 addParam(
"vcdNumberOfEvents", m_vcdNumberOfEvents,
65 "Number of events to dump vcd file",
67 addParam(
"bitNameOnBinLabel", m_bitNameOnBinLabel,
68 "Put bitname on BinLabel",
70 addParam(
"generatePostscript", m_generatePostscript,
71 "Genarete postscript file or not",
73 addParam(
"postScriptName", m_postScriptName,
74 "postscript file name",
77 "use skim information or not",
79 B2DEBUG(20,
"eventByEventTimingFlag(" << m_eventByEventTimingHistRecord
80 <<
"), m_dumpVcdFile(" << m_dumpVcdFile
81 <<
"), m_bitConditionToDumpVcd(" << m_bitConditionToDumpVcd
82 <<
"), m_vcdEventStart(" << m_vcdEventStart
83 <<
"), m_vcdNumberOfEvents(" << m_vcdNumberOfEvents);
92 if (!oldDir->Get(
"TRGGDL"))oldDir->mkdir(
"TRGGDL");
95 for (
int iskim = start_skim_gdldqm; iskim < end_skim_gdldqm; iskim++) {
96 h_c8_gdlL1TocomL1[iskim] =
new TH1I(Form(
"hGDL_gdlL1TocomL1_%s", skim_smap[iskim].c_str()),
"comL1 - gdlL1 [clk8ns]", 100, 0,
100 h_c8_topTogdlL1[iskim] =
new TH1I(Form(
"hGDL_topTogdlL1_%s", skim_smap[iskim].c_str()),
"gdlL1 - top_timing [clk8ns]", 700, 0,
103 h_c8_eclTogdlL1[iskim] =
new TH1I(Form(
"hGDL_eclTogdlL1_%s", skim_smap[iskim].c_str()),
"gdlL1 - ecl_timing [clk8ns]", 500, 0,
106 h_c8_cdcTogdlL1[iskim] =
new TH1I(Form(
"hGDL_cdcTogdlL1_%s", skim_smap[iskim].c_str()),
"gdlL1 - cdc_timing [clk8ns]", 700, 0,
110 h_c8_ecl8mToGDL[iskim] =
new TH1I(Form(
"hGDL_ecl8mToGDL_%s", skim_smap[iskim].c_str()),
"gdlIn^{8MHz} - ecl_timing [clk8ns]",
113 h_c8_topToGDL[iskim] =
new TH1I(Form(
"hGDL_topToGDL_%s", skim_smap[iskim].c_str()),
"gdlIn - top_timing [clk8ns]", 700, 0,
116 h_c8_eclToGDL[iskim] =
new TH1I(Form(
"hGDL_eclToGDL_%s", skim_smap[iskim].c_str()),
"gdlIn - ecl_timing [clk8ns]", 500, 0,
119 h_c8_cdcToGDL[iskim] =
new TH1I(Form(
"hGDL_cdcToGDL_%s", skim_smap[iskim].c_str()),
"gdlIn - cdc_timing [clk8ns]", 700, 0,
123 h_c2_cdcTocomL1[iskim] =
new TH1I(Form(
"hGDL_cdcTocomL1_%s", skim_smap[iskim].c_str()),
"comL1 - cdc_timing [clk2ns]", 520, 0,
126 h_ns_cdcTocomL1[iskim] =
new TH1D(Form(
"hGDL_ns_cdcTocomL1_%s", skim_smap[iskim].c_str()),
"comL1 - cdc_timing [ns]", 2600, 0,
130 h_ns_cdcTogdlL1[iskim] =
new TH1D(Form(
"hGDL_ns_cdcTogdlL1_%s", skim_smap[iskim].c_str()),
"gdlL1 - cdc_timing [ns]", 2600, 0,
135 h_ns_topToecl[iskim] =
new TH1D(Form(
"hGDL_ns_topToecl_%s", skim_smap[iskim].c_str()),
"ecl_timing - top_timing [ns]", 800, 0,
139 h_ns_topTocdc[iskim] =
new TH1D(Form(
"hGDL_ns_topTocdc_%s", skim_smap[iskim].c_str()),
"cdc_timing - top_timing [ns]", 800, 0,
143 h_ns_cdcToecl[iskim] =
new TH1D(Form(
"hGDL_ns_cdcToecl_%s", skim_smap[iskim].c_str()),
"ecl_timing - cdc_timing [ns]", 2000, 0,
148 h_c2_cdcToecl[iskim] =
new TH1I(Form(
"hGDL_cdcToecl_%s", skim_smap[iskim].c_str()),
"ecl_timing - cdc_timing [clk2ns]", 1000, 0,
152 h_timtype[iskim] =
new TH1I(Form(
"hGDL_timtype_%s", skim_smap[iskim].c_str()),
"timtype", 7, 0, 7);
154 h_itd[iskim] =
new TH1I(Form(
"hGDL_itd_%s", skim_smap[iskim].c_str()),
"itd", n_inbit + 1, -1, n_inbit);
155 h_ftd[iskim] =
new TH1I(Form(
"hGDL_ftd_%s", skim_smap[iskim].c_str()),
"ftd", n_outbit + 1, -1, n_outbit);
156 h_psn[iskim] =
new TH1I(Form(
"hGDL_psn_%s", skim_smap[iskim].c_str()),
"psn", n_outbit + 1, -1, n_outbit);
158 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);
159 for (
int i = 0; i < n_output_extra; i++) {
160 h_psn_extra[iskim]->GetXaxis()->SetBinLabel(i + 1, output_extra[i]);
162 h_psn_extra[iskim]->GetXaxis()->SetLabelSize(0.02);
164 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,
166 for (
int i = 0; i < n_output_extra; i++) {
167 h_psn_extra_fast[iskim]->GetXaxis()->SetBinLabel(i + 1, output_extra[i]);
169 h_psn_extra_fast[iskim]->GetXaxis()->SetLabelSize(0.02);
171 h_psn_effect_to_l1[iskim] =
new TH1I(Form(
"hGDL_psn_effect_to_l1_%s", skim_smap[iskim].c_str()),
"psn effect to l1",
174 for (
int i = 0; i < n_output_overlap; i++) {
175 h_psn_effect_to_l1[iskim]->GetXaxis()->SetBinLabel(i + 1, output_overlap[i]);
177 h_psn_effect_to_l1[iskim]->GetXaxis()->SetLabelSize(0.02);
179 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,
181 for (
int i = 0; i < n_output_overlap; i++) {
182 h_psn_raw_rate[iskim]->GetXaxis()->SetBinLabel(i + 1, output_overlap[i]);
184 h_psn_raw_rate[iskim]->GetXaxis()->SetLabelSize(0.02);
186 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,
187 0, n_output_pure_extra);
188 for (
int i = 0; i < n_output_pure_extra; i++) {
189 h_psn_pure_extra[iskim]->GetXaxis()->SetBinLabel(i + 1, output_pure_extra[i]);
192 h_itd[iskim]->GetXaxis()->SetBinLabel(
h_itd[iskim]->GetXaxis()->FindBin(-1 + 0.5),
"all");
193 h_ftd[iskim]->GetXaxis()->SetBinLabel(
h_ftd[iskim]->GetXaxis()->FindBin(-1 + 0.5),
"all");
194 h_psn[iskim]->GetXaxis()->SetBinLabel(
h_psn[iskim]->GetXaxis()->FindBin(-1 + 0.5),
"all");
195 h_itd[iskim]->GetXaxis()->SetLabelSize(0.02);
196 h_ftd[iskim]->GetXaxis()->SetLabelSize(0.02);
197 h_psn[iskim]->GetXaxis()->SetLabelSize(0.02);
198 for (
unsigned i = 0; i < n_inbit; i++) {
199 if (m_bitNameOnBinLabel) {
200 h_itd[iskim]->GetXaxis()->SetBinLabel(
h_itd[iskim]->GetXaxis()->FindBin(i + 0.5), inbitname[i]);
203 for (
unsigned i = 0; i < n_outbit; i++) {
204 if (m_bitNameOnBinLabel) {
205 h_ftd[iskim]->GetXaxis()->SetBinLabel(
h_ftd[iskim]->GetXaxis()->FindBin(i + 0.5), outbitname[i]);
206 h_psn[iskim]->GetXaxis()->SetBinLabel(
h_psn[iskim]->GetXaxis()->FindBin(i + 0.5), outbitname[i]);
211 if (iskim != 0)
continue;
214 for (
unsigned i = 0; i < n_inbit; i++) {
215 h_itd_rise[i][iskim] =
new TH1I(Form(
"hGDL_itd_%s_rise_%s", inbitname[i], skim_smap[iskim].c_str()),
216 Form(
"itd%d(%s) rising", i, inbitname[i]), 48, 0, 48);
217 h_itd_rise[i][iskim]->SetLineColor(kRed);
218 h_itd_fall[i][iskim] =
new TH1I(Form(
"hGDL_itd_%s_fall_%s", inbitname[i], skim_smap[iskim].c_str()),
219 Form(
"itd%d(%s) falling", i, inbitname[i]), 48, 0, 48);
220 h_itd_fall[i][iskim]->SetLineColor(kGreen);
222 for (
unsigned i = 0; i < n_outbit; i++) {
223 h_ftd_rise[i][iskim] =
new TH1I(Form(
"hGDL_ftd_%s_rise_%s", outbitname[i], skim_smap[iskim].c_str()),
224 Form(
"ftd%d(%s) rising", i, outbitname[i]), 48, 0, 48);
225 h_ftd_rise[i][iskim]->SetLineColor(kRed);
226 h_ftd_fall[i][iskim] =
new TH1I(Form(
"hGDL_ftd_%s_fall_%s", outbitname[i], skim_smap[iskim].c_str()),
227 Form(
"ftd%d(%s) falling", i, outbitname[i]), 48, 0, 48);
228 h_ftd_fall[i][iskim]->SetLineColor(kGreen);
229 h_psn_rise[i][iskim] =
new TH1I(Form(
"hGDL_psn_%s_rise_%s", outbitname[i], skim_smap[iskim].c_str()),
230 Form(
"psn%d(%s) rising", i, outbitname[i]), 48, 0, 48);
231 h_psn_rise[i][iskim]->SetLineColor(kRed);
232 h_psn_fall[i][iskim] =
new TH1I(Form(
"hGDL_psn_%s_fall_%s", outbitname[i], skim_smap[iskim].c_str()),
233 Form(
"psn%d(%s) falling", i, outbitname[i]), 48, 0, 48);
234 h_psn_fall[i][iskim]->SetLineColor(kGreen);
246 for (
int iskim = start_skim_gdldqm; iskim < end_skim_gdldqm; iskim++) {
262 h_itd[iskim]->Reset();
263 h_ftd[iskim]->Reset();
264 h_psn[iskim]->Reset();
265 h_psn_extra[iskim]->Reset();
266 h_psn_extra_fast[iskim]->Reset();
267 h_psn_pure_extra[iskim]->Reset();
269 h_psn_raw_rate[iskim]->Reset();
270 h_psn_effect_to_l1[iskim]->Reset();
273 for (
int iskim = 0; iskim < nskim_gdldqm; iskim++) {
274 for (
int i = 0; i < nsample_fast; i++) {
275 for (
int ibin = 0; ibin < n_output_extra; ibin++) {
276 array_psn_extra_fast[iskim][i][ibin] = 0;
288 start_skim_gdldqm = 0;
290 }
else if (m_skim == 1) {
291 start_skim_gdldqm = 1;
292 end_skim_gdldqm = nskim_gdldqm;
294 start_skim_gdldqm = 0;
295 end_skim_gdldqm = nskim_gdldqm;
298 _exp = bevt->getExperiment();
299 _run = bevt->getRun();
306 for (
int i = 0; i < 320; i++) {
307 LeafBitMap[i] = m_unpacker->getLeafMap(i);
309 for (
int i = 0; i < 320; i++) {
310 strcpy(LeafNames[i], m_unpacker->getLeafnames(i));
321 for (
int i = 0; i < 10; i++) {
326 for (
int i = 0; i < 320; i++) {
327 if (strcmp(LeafNames[i],
"timtype") == 0) _e_timtype = LeafBitMap[i];
328 if (strcmp(LeafNames[i],
"gdll1rvc") == 0) _e_gdll1rvc = LeafBitMap[i];
329 if (strcmp(LeafNames[i],
"coml1rvc") == 0) _e_coml1rvc = LeafBitMap[i];
330 if (strcmp(LeafNames[i],
"toptiming") == 0)_e_toptiming = LeafBitMap[i];
331 if (strcmp(LeafNames[i],
"ecltiming") == 0)_e_ecltiming = LeafBitMap[i];
332 if (strcmp(LeafNames[i],
"cdctiming") == 0)_e_cdctiming = LeafBitMap[i];
333 if (strcmp(LeafNames[i],
"toprvc") == 0) _e_toprvc = LeafBitMap[i];
334 if (strcmp(LeafNames[i],
"eclrvc") == 0) _e_eclrvc = LeafBitMap[i];
335 if (strcmp(LeafNames[i],
"cdcrvc") == 0) _e_cdcrvc = LeafBitMap[i];
336 if (strcmp(LeafNames[i],
"psn0") == 0) ee_psn[0] = LeafBitMap[i];
337 if (strcmp(LeafNames[i],
"psn1") == 0) ee_psn[1] = LeafBitMap[i];
338 if (strcmp(LeafNames[i],
"psn2") == 0) ee_psn[2] = LeafBitMap[i];
339 if (strcmp(LeafNames[i],
"psn3") == 0) ee_psn[3] = LeafBitMap[i];
340 if (strcmp(LeafNames[i],
"psn4") == 0) ee_psn[4] = LeafBitMap[i];
341 if (strcmp(LeafNames[i],
"psn5") == 0) ee_psn[5] = LeafBitMap[i];
342 if (strcmp(LeafNames[i],
"psn6") == 0) ee_psn[6] = LeafBitMap[i];
343 if (strcmp(LeafNames[i],
"psn7") == 0) ee_psn[7] = LeafBitMap[i];
344 if (strcmp(LeafNames[i],
"psn8") == 0) ee_psn[8] = LeafBitMap[i];
345 if (strcmp(LeafNames[i],
"psn9") == 0) ee_psn[9] = LeafBitMap[i];
346 if (strcmp(LeafNames[i],
"ftd0") == 0) ee_ftd[0] = LeafBitMap[i];
347 if (strcmp(LeafNames[i],
"ftd1") == 0) ee_ftd[1] = LeafBitMap[i];
348 if (strcmp(LeafNames[i],
"ftd2") == 0) ee_ftd[2] = LeafBitMap[i];
349 if (strcmp(LeafNames[i],
"ftd3") == 0) ee_ftd[3] = LeafBitMap[i];
350 if (strcmp(LeafNames[i],
"ftd4") == 0) ee_ftd[4] = LeafBitMap[i];
351 if (strcmp(LeafNames[i],
"ftd5") == 0) ee_ftd[5] = LeafBitMap[i];
352 if (strcmp(LeafNames[i],
"ftd6") == 0) ee_ftd[6] = LeafBitMap[i];
353 if (strcmp(LeafNames[i],
"ftd7") == 0) ee_ftd[7] = LeafBitMap[i];
354 if (strcmp(LeafNames[i],
"ftd8") == 0) ee_ftd[8] = LeafBitMap[i];
355 if (strcmp(LeafNames[i],
"ftd9") == 0) ee_ftd[9] = LeafBitMap[i];
356 if (strcmp(LeafNames[i],
"itd0") == 0) ee_itd[0] = LeafBitMap[i];
357 if (strcmp(LeafNames[i],
"itd1") == 0) ee_itd[1] = LeafBitMap[i];
358 if (strcmp(LeafNames[i],
"itd2") == 0) ee_itd[2] = LeafBitMap[i];
359 if (strcmp(LeafNames[i],
"itd3") == 0) ee_itd[3] = LeafBitMap[i];
360 if (strcmp(LeafNames[i],
"itd4") == 0) ee_itd[4] = LeafBitMap[i];
361 if (strcmp(LeafNames[i],
"itd5") == 0) ee_itd[5] = LeafBitMap[i];
362 if (strcmp(LeafNames[i],
"itd6") == 0) ee_itd[6] = LeafBitMap[i];
363 if (strcmp(LeafNames[i],
"itd7") == 0) ee_itd[7] = LeafBitMap[i];
364 if (strcmp(LeafNames[i],
"itd8") == 0) ee_itd[8] = LeafBitMap[i];
365 if (strcmp(LeafNames[i],
"itd9") == 0) ee_itd[9] = LeafBitMap[i];
368 n_inbit = m_dbinput->getninbit();
369 n_outbit = m_dbftdl ->getnoutbit();
370 for (
int i = 0; i < 320; i++) {
371 strcpy(inbitname[i], m_dbinput->getinbitname(i));
373 for (
int i = 0; i < 320; i++) {
374 strcpy(outbitname[i], m_dbftdl->getoutbitname(i));
376 n_leafs = m_unpacker->getnLeafs();
377 n_leafsExtra = m_unpacker->getnLeafsExtra();
378 n_clocks = m_unpacker->getnClks();
379 nconf = m_unpacker->getconf();
380 nword_input = m_unpacker->get_nword_input();
381 nword_output = m_unpacker->get_nword_output();
383 for (
unsigned i = 0; i < n_clocks; i++) {
384 for (
int j = 0; j < n_leafs + n_leafsExtra; j++)h_0_vec.push_back(0);
385 for (
unsigned int j = 0; j < n_outbit; j++) h_p_vec.push_back(0);
386 for (
unsigned int j = 0; j < n_outbit; j++) h_f_vec.push_back(0);
387 for (
unsigned int j = 0; j < n_inbit; j++) h_i_vec.push_back(0);
390 for (
int iskim = 0; iskim < nskim_gdldqm; iskim++) {
391 for (
int i = 0; i < nsample_fast; i++) {
392 for (
int ibin = 0; ibin < n_output_extra; ibin++) {
393 array_psn_extra_fast[iskim][i][ibin] = 0;
402 if (m_generatePostscript) {
403 TPostScript* ps =
new TPostScript(m_postScriptName.c_str(), 112);
404 gStyle->SetOptStat(0);
405 TCanvas c1(
"c1",
"", 0, 0, 500, 300);
408 for (
int iskim = start_skim_gdldqm; iskim < end_skim_gdldqm; iskim++) {
410 h_itd[iskim]->GetXaxis()->SetRange(
h_itd[iskim]->GetXaxis()->FindBin(0.5),
411 h_itd[iskim]->GetXaxis()->FindBin(n_inbit - 0.5));
412 h_itd[iskim]->Draw();
414 h_ftd[iskim]->GetXaxis()->SetRange(
h_ftd[iskim]->GetXaxis()->FindBin(0.5),
415 h_ftd[iskim]->GetXaxis()->FindBin(n_outbit - 0.5));
416 h_ftd[iskim]->Draw();
418 h_psn[iskim]->GetXaxis()->SetRange(
h_psn[iskim]->GetXaxis()->FindBin(0.5),
419 h_psn[iskim]->GetXaxis()->FindBin(n_outbit - 0.5));
420 h_psn[iskim]->Draw();
422 h_ftd[iskim]->SetTitle(
"ftd(green), psnm(red)");
423 h_ftd[iskim]->SetFillColor(kGreen);
424 h_ftd[iskim]->SetBarWidth(0.4);
425 h_ftd[iskim]->Draw(
"bar");
426 h_psn[iskim]->SetFillColor(kRed);
427 h_psn[iskim]->SetBarWidth(0.4);
428 h_psn[iskim]->SetBarOffset(0.5);
429 h_psn[iskim]->Draw(
"bar,same");
466 if (iskim != 0)
continue;
467 for (
unsigned i = 0; i < n_inbit; i++) {
469 h_itd_rise[i][iskim]->SetTitle(Form(
"itd%d(%s) rising(red), falling(green)",
471 h_itd_rise[i][iskim]->Draw();
472 h_itd_fall[i][iskim]->Draw(
"same");
485 static unsigned nvcd = 0;
486 static bool begin_run =
true;
490 if (!entAry || !entAry.getEntries()) {
495 for (
int iskim = start_skim_gdldqm; iskim < end_skim_gdldqm; iskim++) {
496 if (iskim == 0) skim.push_back(iskim);
498 if (result_soft.isValid()) {
499 const std::map<std::string, int>& skim_map = result_soft->getResults();
500 for (
int iskim = start_skim_gdldqm; iskim < end_skim_gdldqm; iskim++) {
502 else if (skim_map.find(skim_menu[iskim]) != skim_map.end()) {
504 if (accepted) skim.push_back(iskim);
512 for (
int i = 0; i < 320; i++) {
513 if (strcmp(entAry[0]->m_unpackername[i],
"evt") == 0) evtno = entAry[0]->m_unpacker[i];
514 if (strcmp(entAry[0]->m_unpackername[i],
"clk") == 0) clk_map = i;
517 const double clkTo2ns = 1. / .508877;
518 const double clkTo1ns = 0.5 / .508877;
522 for (
unsigned i = 0; i < n_clocks; i++) {
523 for (
int j = 0; j < n_leafs + n_leafsExtra; j++) {
524 h_0_vec[i * (n_leafs + n_leafsExtra) + j] = 0;
526 for (
unsigned j = 0; j < n_outbit; j++) {
527 h_p_vec[i * n_outbit + j] = 0;
529 for (
unsigned j = 0; j < n_outbit; j++) {
530 h_f_vec[i * n_outbit + j] = 0;
532 for (
unsigned j = 0; j < n_inbit; j++) {
533 h_i_vec[i * n_inbit + j] = 0;
540 for (
int ii = 0; ii < entAry.getEntries(); ii++) {
541 std::vector<int*> Bits(n_leafs + n_leafsExtra);
543 for (
int i = 0; i < 320; i++) {
544 if (LeafBitMap[i] != -1) {
545 Bits[LeafBitMap[i]] = &(entAry[ii]->m_unpacker[i]);
548 for (
int leaf = 0; leaf < n_leafs + n_leafsExtra; leaf++) {
549 h_0_vec[(entAry[ii]->m_unpacker[clk_map]) * (n_leafs + n_leafsExtra) + leaf] = *Bits[leaf];
552 int coml1rvc = h_0_vec[0 * (n_leafs + n_leafsExtra) + _e_coml1rvc];
553 int toprvc = h_0_vec[0 * (n_leafs + n_leafsExtra) + _e_toprvc];
554 int eclrvc = h_0_vec[0 * (n_leafs + n_leafsExtra) + _e_eclrvc];
555 int cdcrvc = h_0_vec[0 * (n_leafs + n_leafsExtra) + _e_cdcrvc];
556 int c1_top_timing = h_0_vec[(n_clocks - 1) * (n_leafs + n_leafsExtra) + _e_toptiming];
557 int c1_ecl_timing = h_0_vec[(n_clocks - 1) * (n_leafs + n_leafsExtra) + _e_ecltiming];
558 int c1_cdc_timing = h_0_vec[(n_clocks - 1) * (n_leafs + n_leafsExtra) + _e_cdctiming];
559 int c8_top_timing = c1_top_timing >> 3;
560 int c2_top_timing = c1_top_timing >> 1;
561 int c8_ecl_timing = c1_ecl_timing >> 3;
562 int c2_ecl_timing = c1_ecl_timing >> 1;
563 int c8_cdc_timing = c1_cdc_timing >> 3;
564 int c2_cdc_timing = c1_cdc_timing >> 1;
567 B2DEBUG(20,
"nconf(" << nconf
568 <<
"), n_clocks(" << n_clocks
569 <<
"), n_leafs(" << n_leafs
570 <<
"), n_leafsExtra(" << n_leafsExtra
581 int gdll1_rvc = h_0_vec[(n_clocks - 1) * (n_leafs + n_leafsExtra) + _e_gdll1rvc];
584 for (
unsigned clk = 1; clk <= n_clocks; clk++) {
585 int psn_tmp[10] = {0};
586 int ftd_tmp[10] = {0};
587 int itd_tmp[10] = {0};
588 for (
unsigned j = 0; j < (unsigned)nword_input; j++) {
589 itd_tmp[j] = h_0_vec[(clk - 1) * (n_leafs + n_leafsExtra) + ee_itd[j]];
590 itd[j] |= itd_tmp[j];
591 for (
int i = 0; i < 32; i++) {
592 if (i + j * 32 >= n_inbit)
continue;
593 if (itd_tmp[j] & (1 << i)) h_i_vec[(clk - 1)*n_inbit + i + j * 32] = 1;
597 psn_tmp[0] = h_0_vec[(clk - 1) * (n_leafs + n_leafsExtra) + ee_psn[0]];
598 ftd_tmp[0] = h_0_vec[(clk - 1) * (n_leafs + n_leafsExtra) + ee_ftd[0]];
599 psn[0] |= psn_tmp[0];
600 ftd[0] |= ftd_tmp[0];
601 for (
unsigned int i = 0; i < 32; i++) {
602 if (i >= n_outbit)
continue;
603 if (psn_tmp[0] & (1 << i)) h_p_vec[(clk - 1)*n_outbit + i] = 1;
604 if (ftd_tmp[0] & (1 << i)) h_f_vec[(clk - 1)*n_outbit + i] = 1;
606 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]];
607 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]];
608 psn[1] |= psn_tmp[1];
609 ftd[1] |= ftd_tmp[1];
610 for (
unsigned int i = 0; i < 32; i++) {
611 if (i + 32 >= n_outbit)
continue;
612 if (psn_tmp[1] & (1 << i)) h_p_vec[(clk - 1)*n_outbit + i + 32] = 1;
613 if (ftd_tmp[1] & (1 << i)) h_f_vec[(clk - 1)*n_outbit + i + 32] = 1;
616 for (
unsigned j = 0; j < (unsigned)nword_output; j++) {
617 psn_tmp[j] = h_0_vec[(clk - 1) * (n_leafs + n_leafsExtra) + ee_psn[j]];
618 ftd_tmp[j] = h_0_vec[(clk - 1) * (n_leafs + n_leafsExtra) + ee_ftd[j]];
619 psn[j] |= psn_tmp[j];
620 ftd[j] |= ftd_tmp[j];
621 for (
int i = 0; i < 32; i++) {
622 if (i + j * 32 >= n_outbit)
continue;
623 if (psn_tmp[j] & (1 << i)) h_p_vec[(clk - 1)*n_outbit + i + j * 32] = 1;
624 if (ftd_tmp[j] & (1 << i)) h_f_vec[(clk - 1)*n_outbit + i + j * 32] = 1;
628 int timtype_tmp = h_0_vec[(clk - 1) * (n_leafs + n_leafsExtra) + _e_timtype];
629 timtype = (timtype_tmp == 0) ? timtype : timtype_tmp;
635 fillRiseFallTimings();
642 for (
unsigned ifill = 0; ifill < skim.size(); ifill++) {
644 h_itd[skim[ifill]]->Fill(-0.5);
645 h_ftd[skim[ifill]]->Fill(-0.5);
646 h_psn[skim[ifill]]->Fill(-0.5);
647 for (
int i = 0; i < 32; i++) {
648 for (
unsigned j = 0; j < (unsigned)nword_input; j++) {
649 if (itd[j] & (1 << i))
h_itd[skim[ifill]]->Fill(i + 0.5 + 32 * j);
651 for (
unsigned j = 0; j < (unsigned)nword_output; j++) {
652 if (ftd[j] & (1 << i))
h_ftd[skim[ifill]]->Fill(i + 0.5 + 32 * j);
653 if (psn[j] & (1 << i))
h_psn[skim[ifill]]->Fill(i + 0.5 + 32 * j);
658 int gdlL1TocomL1 = gdll1_rvc < coml1rvc ? coml1rvc - gdll1_rvc : (coml1rvc + 1280) - gdll1_rvc;
661 int topTogdlL1 = gdll1_rvc < c8_top_timing ? (gdll1_rvc + 1280) - c8_top_timing : gdll1_rvc - c8_top_timing;
664 int eclTogdlL1 = gdll1_rvc < c8_ecl_timing ? (gdll1_rvc + 1280) - c8_ecl_timing : gdll1_rvc - c8_ecl_timing;
667 int cdcTogdlL1 = gdll1_rvc < c8_cdc_timing ? (gdll1_rvc + 1280) - c8_cdc_timing : gdll1_rvc - c8_cdc_timing;
670 int c127_ecl_timing = c8_ecl_timing & (((1 << 7) - 1) << 4);
671 int fit8mToGDL = c127_ecl_timing < eclrvc ? eclrvc - c127_ecl_timing : (eclrvc + 1280) - c127_ecl_timing;
674 int topToGDL = c8_top_timing < toprvc ? toprvc - c8_top_timing : (toprvc + 1280) - c8_top_timing;
676 int eclToGDL = c8_ecl_timing < eclrvc ? eclrvc - c8_ecl_timing : (eclrvc + 1280) - c8_ecl_timing;
678 int cdcToGDL = c8_cdc_timing < cdcrvc ? cdcrvc - c8_cdc_timing : (cdcrvc + 1280) - c8_cdc_timing;
681 int c2_comL1 = coml1rvc << 2;
682 int c2_gdlL1 = gdll1_rvc << 2;
683 int c2_diff_cdcTogdlL1 = c2_gdlL1 > c2_cdc_timing ?
684 c2_gdlL1 - c2_cdc_timing :
685 c2_gdlL1 - c2_cdc_timing + (1280 << 2) ;
688 int c2_diff_cdcTocomL1 = c2_comL1 > c2_cdc_timing ?
689 c2_comL1 - c2_cdc_timing :
690 c2_comL1 - c2_cdc_timing + (1280 << 2) ;
694 int c2_diff_cdcToecl = c2_ecl_timing > c2_cdc_timing ?
695 c2_ecl_timing - c2_cdc_timing :
696 c2_ecl_timing - c2_cdc_timing + (1280 << 2);
698 h_ns_cdcToecl[skim[ifill]]->Fill(c2_diff_cdcToecl * clkTo2ns);
700 int c1_diff_topToecl = c1_ecl_timing > c1_top_timing ?
701 c1_ecl_timing - c1_top_timing :
702 c1_ecl_timing - c1_top_timing + (1280 << 3);
703 h_ns_topToecl[skim[ifill]]->Fill(c1_diff_topToecl * clkTo1ns);
705 int c2_diff_topTocdc = c2_cdc_timing > c2_top_timing ?
706 c2_cdc_timing - c2_top_timing :
707 c2_cdc_timing - c2_top_timing + (1280 << 2);
708 h_ns_topTocdc[skim[ifill]]->Fill(c2_diff_topTocdc * clkTo2ns);
714 if (anaBitCondition()) {
716 B2DEBUG(20,
"anaBitCondition fired, evt(" << evtno <<
")");
717 if (m_vcdEventStart <= nvcd && nvcd < m_vcdEventStart + m_vcdNumberOfEvents) {
725bool TRGGDLDQMModule::anaBitCondition(
void)
727 if (m_bitConditionToDumpVcd.length() == 0)
return true;
728 const char* cst = m_bitConditionToDumpVcd.c_str();
729 bool reading_word =
false;
730 bool result_the_term =
true;
731 bool not_flag =
false;
732 unsigned begin_word = 0;
733 unsigned word_length = 0;
736 for (
unsigned i = 0; i < m_bitConditionToDumpVcd.length(); i++) {
737 if ((
'a' <= cst[i] && cst[i] <=
'z') ||
738 (
'A' <= cst[i] && cst[i] <=
'Z') ||
739 (
'_' == cst[i]) || (
'!' == cst[i]) ||
740 (
'0' <= cst[i] && cst[i] <=
'9')) {
743 if (i == m_bitConditionToDumpVcd.length() - 1) {
744 bool fired = isFired(m_bitConditionToDumpVcd.substr(begin_word, word_length));
746 m_bitConditionToDumpVcd.substr(begin_word, word_length).c_str()
747 <<
"(" << fired <<
")");
748 if (((!not_flag && fired) || (not_flag && !fired)) && result_the_term) {
763 if (i == m_bitConditionToDumpVcd.length() - 1) {
765 bool fired = isFired(m_bitConditionToDumpVcd.substr(begin_word, word_length));
767 m_bitConditionToDumpVcd.substr(begin_word, word_length).c_str()
768 <<
"(" << fired <<
")");
770 if (((!not_flag && fired) || (not_flag && !fired)) && result_the_term) {
776 }
else if (
'+' == cst[i] || i == m_bitConditionToDumpVcd.length() - 1) {
779 if (result_the_term) {
780 bool fired = isFired(m_bitConditionToDumpVcd.substr(begin_word, word_length));
782 m_bitConditionToDumpVcd.substr(begin_word, word_length).c_str()
783 <<
"(" << fired <<
")");
784 if ((!not_flag && fired) || (not_flag && !fired)) {
792 reading_word =
false;
795 if (result_the_term) {
801 result_the_term =
true;
806 if (result_the_term) {
808 bool fired = isFired(m_bitConditionToDumpVcd.substr(begin_word, word_length));
810 m_bitConditionToDumpVcd.substr(begin_word, word_length).c_str()
811 <<
"(" << fired <<
")");
812 if ((!not_flag && fired) || (not_flag && !fired)) {
815 result_the_term =
false;
820 reading_word =
false;
829void TRGGDLDQMModule::genVcd(
void)
831 int prev_i[400] = {0};
832 int prev_f[400] = {0};
833 int prev_p[400] = {0};
835 ofstream outf(Form(
"vcd/e%02dr%08de%08d.vcd", _exp, _run, evtno));
836 outf <<
"$date" << endl;
837 outf <<
" Aug 20, 2018 17:53:52" << endl;
838 outf <<
"$end" << endl;
839 outf <<
"$version" << endl;
840 outf <<
" ChipScope Pro Analyzer 14.7 P.20131013 (Build 14700.13.286.464)" << endl;
841 outf <<
"$end" << endl;
842 outf <<
"$timescale" << endl;
843 if (n_clocks == 32) {
844 outf <<
" 32ns" << endl;
845 }
else if (n_clocks == 48) {
846 outf <<
" 8ns" << endl;
848 outf <<
" 1ns" << endl;
850 outf <<
"$end" << endl;
852 outf <<
"$scope module gdl0067d_icn $end" << endl;
854 for (
unsigned j = 0; j < n_inbit; j++) {
855 outf <<
"$var wire 1 n" << seqnum++ <<
" " << inbitname[j] <<
" $end" << endl;
857 for (
unsigned j = 0; j < n_outbit; j++) {
858 outf <<
"$var wire 1 n" << seqnum++ <<
" ftd." << outbitname[j] <<
" $end" << endl;
860 for (
unsigned j = 0; j < n_outbit; j++) {
861 outf <<
"$var wire 1 n" << seqnum++ <<
" psn." << outbitname[j] <<
" $end" << endl;
864 outf <<
"$upscope $end" << endl;
865 outf <<
"$enddefinitions $end" << endl << endl;
867 for (
unsigned clk = 1; clk <= n_clocks; clk++) {
869 outf <<
"#" << clk - 1 << endl;
870 for (
unsigned k = 1; k <= n_inbit; k++) {
871 if (clk == 1 || prev_i[k - 1] != h_i_vec[(clk - 1)*n_inbit + k - 1]) {
872 prev_i[k - 1] = h_i_vec[(clk - 1) * n_inbit + k - 1];
873 outf << h_i_vec[(clk - 1)*n_inbit + k - 1] <<
"n" << seqnum << endl;
877 for (
unsigned k = 1; k <= n_outbit; k++) {
878 if (clk == 1 || prev_f[k - 1] != h_f_vec[(clk - 1)*n_outbit + k - 1]) {
879 prev_f[k - 1] = h_f_vec[(clk - 1) * n_outbit + k - 1];
880 outf << h_f_vec[(clk - 1)*n_outbit + k - 1] <<
"n" << seqnum << endl;
884 for (
unsigned k = 1; k <= n_outbit; k++) {
885 if (clk == 1 || prev_p[k - 1] != h_p_vec[(clk - 1)*n_outbit + k - 1]) {
886 prev_p[k - 1] = h_p_vec[(clk - 1) * n_outbit + k - 1];
887 outf << h_p_vec[(clk - 1)*n_outbit + k - 1] <<
"n" << seqnum << endl;
915TRGGDLDQMModule::isFired_quick(
const std::string& bitname,
const bool& isPsnm = 0)
917 int bn = getoutbitnum(bitname.c_str());
918 for (
unsigned clk = 0; clk < n_clocks; clk++) {
921 if (h_p_vec[clk * n_outbit + bn] > 0)
924 if (h_f_vec[clk * n_outbit + bn] > 0)
929 bn = getinbitnum(bitname.c_str());
930 for (
unsigned clk = 0; clk < n_clocks; clk++) {
932 if (h_i_vec[clk * n_inbit + bn] > 0)
940TRGGDLDQMModule::getinbitnum(
const char* c)
const
942 for (
int i = 0; i < 320; i++) {
943 if (strcmp(c, inbitname[i]) == 0)
return i;
949TRGGDLDQMModule::getoutbitnum(
const char* c)
const
951 for (
int i = 0; i < 320; i++) {
952 if (strcmp(c, outbitname[i]) == 0)
return i;
959TRGGDLDQMModule::isFired(std::string bitname)
962 for (
unsigned i = 0; i < bitname.length(); i++) {
963 if (
'A' <= bitname[i] && bitname[i] <=
'Z') {
967 boost::algorithm::to_lower(bitname);
968 int bn = m_dbftdl->getoutbitnum(bitname.c_str());
969 for (
unsigned clk = 0; clk < n_clocks; clk++) {
972 if (h_p_vec[clk * n_outbit + bn] > 0)
975 if (h_f_vec[clk * n_outbit + bn] > 0)
980 bn = m_dbinput->getinbitnum(bitname.c_str());
981 for (
unsigned clk = 0; clk < n_clocks; clk++) {
983 if (h_i_vec[clk * n_inbit + bn] > 0)
991TRGGDLDQMModule::fillRiseFallTimings(
void)
995 for (
unsigned ifill = 0; ifill < skim.size(); ifill++) {
997 if (skim[ifill] != 0)
continue;
999 for (
unsigned i = 0; i < n_inbit; i++) {
1000 if (n_clocks == 32) {
1001 h_itd_rise[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk32ns");
1002 h_itd_fall[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk32ns");
1003 h_itd_rise[i][skim[ifill]]->GetXaxis()->SetRange(1, 32);
1004 h_itd_fall[i][skim[ifill]]->GetXaxis()->SetRange(1, 32);
1006 h_itd_rise[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk8ns");
1007 h_itd_fall[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk8ns");
1009 bool rising_done =
false;
1010 bool falling_done =
false;
1011 for (
unsigned clk = 0; clk < n_clocks; clk++) {
1012 if (h_i_vec[clk * n_inbit + i] > 0) {
1013 if (! rising_done) {
1014 h_itd_rise[i][skim[ifill]]->Fill(clk + 0.5);
1017 }
else if (rising_done && !falling_done && clk == n_clocks - 1) {
1018 h_itd_fall[i][skim[ifill]]->Fill(clk + 0.5);
1020 }
else if (h_i_vec[clk * n_inbit + i] == 0) {
1021 if (rising_done && ! falling_done) {
1022 h_itd_fall[i][skim[ifill]]->Fill(clk + 0.5);
1023 falling_done =
true;
1028 for (
unsigned i = 0; i < n_outbit; i++) {
1029 if (n_clocks == 32) {
1030 h_ftd_rise[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk32ns");
1031 h_psn_rise[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk32ns");
1032 h_ftd_fall[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk32ns");
1033 h_psn_fall[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk32ns");
1034 h_ftd_rise[i][skim[ifill]]->GetXaxis()->SetRange(1, 32);
1035 h_psn_rise[i][skim[ifill]]->GetXaxis()->SetRange(1, 32);
1036 h_ftd_fall[i][skim[ifill]]->GetXaxis()->SetRange(1, 32);
1037 h_psn_fall[i][skim[ifill]]->GetXaxis()->SetRange(1, 32);
1039 h_ftd_rise[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk8ns");
1040 h_psn_rise[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk8ns");
1041 h_ftd_fall[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk8ns");
1042 h_psn_fall[i][skim[ifill]]->GetXaxis()->SetTitle(
"clk8ns");
1044 bool rising_done =
false;
1045 bool falling_done =
false;
1046 for (
unsigned clk = 0; clk < n_clocks; clk++) {
1047 if (h_f_vec[clk * n_outbit + i] > 0) {
1048 if (! rising_done) {
1049 h_ftd_rise[i][skim[ifill]]->Fill(clk + 0.5);
1052 }
else if (rising_done && !falling_done && clk == n_clocks - 1) {
1053 h_ftd_fall[i][skim[ifill]]->Fill(clk + 0.5);
1055 }
else if (h_f_vec[clk * n_outbit + i] == 0) {
1056 if (rising_done && ! falling_done) {
1057 h_ftd_fall[i][skim[ifill]]->Fill(clk + 0.5);
1058 falling_done =
true;
1062 rising_done =
false;
1063 falling_done =
false;
1064 for (
unsigned clk = 0; clk < n_clocks; clk++) {
1065 if (h_p_vec[clk * n_outbit + i] > 0) {
1066 if (! rising_done) {
1067 h_psn_rise[i][skim[ifill]]->Fill(clk + 0.5);
1070 }
else if (rising_done && !falling_done && clk == n_clocks - 1) {
1071 h_psn_fall[i][skim[ifill]]->Fill(clk + 0.5);
1073 }
else if (h_p_vec[clk * n_outbit + i] == 0) {
1074 if (rising_done && ! falling_done) {
1075 h_psn_fall[i][skim[ifill]]->Fill(clk + 0.5);
1076 falling_done =
true;
1086TRGGDLDQMModule::fillOutputOverlap(
void)
1088 for (
unsigned ifill = 0; ifill < skim.size(); ifill++) {
1089 bool ffy_fired = isFired_quick(
"ffy",
true);
1090 bool fyo_fired = isFired_quick(
"fyo",
true) || isFired_quick(
"fyb",
true);
1091 bool c4_fired = isFired_quick(
"c4",
true);
1092 bool hie_fired = isFired_quick(
"hie",
true);
1093 bool klm_fired = isFired_quick(
"mu_b2b",
true) || isFired_quick(
"mu_eb2b",
true) || isFired_quick(
"eklm2",
true)
1094 || isFired_quick(
"beklm",
true);
1095 bool klm_match_fired = isFired_quick(
"cdcklm1",
true) || isFired_quick(
"cdcklm2",
true)
1096 || isFired_quick(
"seklm1",
true) || isFired_quick(
"seklm2",
true)
1097 || isFired_quick(
"fwd_seklm",
true) || isFired_quick(
"bwd_seklm",
true)
1098 || isFired_quick(
"ieklm1",
true) || isFired_quick(
"ecleklm1",
true);
1099 bool stt_fired = isFired_quick(
"stt",
true) || isFired_quick(
"sttecl",
true);
1100 bool short_fired = isFired_quick(
"syo",
true) || isFired_quick(
"syb",
true) || isFired_quick(
"yioiecl1",
true) ;
1101 bool ff30_fired = isFired_quick(
"fy30",
true);
1102 bool inner_fired = isFired_quick(
"ioiecl2",
true);
1103 bool lml_fired = isFired_quick(
"lml0",
true) || isFired_quick(
"lml2",
true) || isFired_quick(
"lml6",
true)
1104 || isFired_quick(
"lml7",
true) || isFired_quick(
"lml8",
true) || isFired_quick(
"lml9",
true)
1105 || isFired_quick(
"lml10",
true)
1106 || isFired_quick(
"lml12",
true) || isFired_quick(
"lml13",
true)
1107 || isFired_quick(
"lml14",
true) || isFired_quick(
"lml15",
true) || isFired_quick(
"lml16",
true);
1108 bool gg_fired = isFired_quick(
"ggsel",
true);
1109 bool bhabha_fired = isFired_quick(
"bhapur",
true);
1110 bool pid_fired = isFired_quick(
"ssb",
true) || isFired_quick(
"eed",
true) || isFired_quick(
"fed",
true)
1111 || isFired_quick(
"yp",
true)
1112 || isFired_quick(
"fp",
true) || isFired_quick(
"shem",
true) || isFired_quick(
"ohem",
true);
1113 bool bhamon_fired = isFired_quick(
"bffo",
true) || isFired_quick(
"bhie",
true) || isFired_quick(
"lml3",
true)
1114 || isFired_quick(
"lml5",
true) || isFired_quick(
"bha3d",
true) || isFired_quick(
"bhabha",
true) || isFired_quick(
"lume",
true);
1115 bool eclmumu_fired = isFired_quick(
"eclmumu",
true);
1116 bool lml1_fired = isFired_quick(
"lml1",
true);
1117 bool lml4_fired = isFired_quick(
"lml4",
true);
1118 bool veto_fired = isFired_quick(
"hiev",
true) || isFired_quick(
"fffv",
true);
1119 bool random_fired = isFired_quick(
"bg",
true) || isFired_quick(
"poissonv",
true) || isFired_quick(
"revolution",
true)
1120 || isFired_quick(
"random",
true);
1121 bool ffz_fired = isFired_quick(
"ffz",
true);
1122 bool fzo_fired = isFired_quick(
"fzo",
true) || isFired_quick(
"fzb",
true);
1123 bool trg_calib_fired = isFired_quick(
"c2",
true) || isFired_quick(
"c3",
true) || isFired_quick(
"eklmhit",
true)
1124 || isFired_quick(
"f",
true) || isFired_quick(
"s",
true);
1125 bool cdcecl_calib_fired = isFired_quick(
"cdcecl3",
true) || isFired_quick(
"cdcecl4",
true);
1138 bool monitor_fired = isFired_quick(
"fff",
true) || isFired_quick(
"ffo",
true) || isFired_quick(
"ffb",
true)
1139 || isFired_quick(
"fffo",
true) || isFired_quick(
"ffs",
true) || isFired_quick(
"fss",
true) || isFired_quick(
"sss",
true)
1140 || isFired_quick(
"ff",
true) || isFired_quick(
"ss",
true) || isFired_quick(
"fso",
true)
1141 || isFired_quick(
"sso",
true) || isFired_quick(
"fsb",
true) || isFired_quick(
"ff30",
true)
1142 || isFired_quick(
"fioiecl1",
true) || isFired_quick(
"ioiecl1",
true)
1143 || isFired_quick(
"cdcecl1",
true) || isFired_quick(
"cdcecl2",
true)
1144 || isFired_quick(
"c2gev1",
true) || isFired_quick(
"c2gev2",
true)
1145 || isFired_quick(
"g_high",
true) || isFired_quick(
"g_c1",
true) || isFired_quick(
"gg",
true)
1146 || isFired_quick(
"c2hie",
true) || isFired_quick(
"stt6",
true);
1149 bool B_CDC_fired = ffy_fired || fyo_fired;
1150 bool B_ECL_fired = c4_fired || hie_fired;
1151 bool LOW_KLM_fired = klm_fired || klm_match_fired;
1152 bool LOW_CDC_fired = stt_fired || short_fired || ff30_fired || inner_fired;
1153 bool LOW_ECL_fired = lml_fired || cdcecl_calib_fired;
1154 bool CALIB_fired = gg_fired || bhabha_fired || pid_fired || bhamon_fired || eclmumu_fired || lml1_fired || lml4_fired || veto_fired
1155 || random_fired || trg_calib_fired;
1156 bool MONITOR_fired = monitor_fired || ffz_fired || fzo_fired;
1160 h_psn_effect_to_l1[skim[ifill]]->Fill(0.5);
1164 h_psn_effect_to_l1[skim[ifill]]->Fill(1.5);
1165 }
else if (B_ECL_fired) {
1166 h_psn_effect_to_l1[skim[ifill]]->Fill(2.5);
1167 }
else if (LOW_KLM_fired) {
1168 h_psn_effect_to_l1[skim[ifill]]->Fill(3.5);
1169 }
else if (LOW_CDC_fired) {
1170 h_psn_effect_to_l1[skim[ifill]]->Fill(4.5);
1171 }
else if (LOW_ECL_fired) {
1172 h_psn_effect_to_l1[skim[ifill]]->Fill(5.5);
1173 }
else if (CALIB_fired) {
1174 h_psn_effect_to_l1[skim[ifill]]->Fill(6.5);
1175 }
else if (MONITOR_fired) {
1176 h_psn_effect_to_l1[skim[ifill]]->Fill(7.5);
1178 h_psn_effect_to_l1[skim[ifill]]->Fill(8.5);
1182 h_psn_effect_to_l1[skim[ifill]]->Fill(9.5);
1183 }
else if (fyo_fired) {
1184 h_psn_effect_to_l1[skim[ifill]]->Fill(10.5);
1185 }
else if (c4_fired) {
1186 h_psn_effect_to_l1[skim[ifill]]->Fill(11.5);
1187 }
else if (hie_fired) {
1188 h_psn_effect_to_l1[skim[ifill]]->Fill(12.5);
1189 }
else if (klm_fired) {
1190 h_psn_effect_to_l1[skim[ifill]]->Fill(13.5);
1191 }
else if (klm_match_fired) {
1192 h_psn_effect_to_l1[skim[ifill]]->Fill(14.5);
1193 }
else if (stt_fired) {
1194 h_psn_effect_to_l1[skim[ifill]]->Fill(15.5);
1195 }
else if (short_fired) {
1196 h_psn_effect_to_l1[skim[ifill]]->Fill(16.5);
1197 }
else if (ff30_fired) {
1198 h_psn_effect_to_l1[skim[ifill]]->Fill(17.5);
1199 }
else if (inner_fired) {
1200 h_psn_effect_to_l1[skim[ifill]]->Fill(18.5);
1201 }
else if (lml_fired) {
1202 h_psn_effect_to_l1[skim[ifill]]->Fill(19.5);
1203 }
else if (gg_fired) {
1204 h_psn_effect_to_l1[skim[ifill]]->Fill(20.5);
1205 }
else if (bhabha_fired) {
1206 h_psn_effect_to_l1[skim[ifill]]->Fill(21.5);
1207 }
else if (pid_fired) {
1208 h_psn_effect_to_l1[skim[ifill]]->Fill(22.5);
1209 }
else if (bhamon_fired) {
1210 h_psn_effect_to_l1[skim[ifill]]->Fill(23.5);
1211 }
else if (eclmumu_fired) {
1212 h_psn_effect_to_l1[skim[ifill]]->Fill(24.5);
1213 }
else if (lml1_fired) {
1214 h_psn_effect_to_l1[skim[ifill]]->Fill(25.5);
1215 }
else if (lml4_fired) {
1216 h_psn_effect_to_l1[skim[ifill]]->Fill(26.5);
1217 }
else if (veto_fired) {
1218 h_psn_effect_to_l1[skim[ifill]]->Fill(27.5);
1219 }
else if (random_fired) {
1220 h_psn_effect_to_l1[skim[ifill]]->Fill(28.5);
1221 }
else if (ffz_fired) {
1222 h_psn_effect_to_l1[skim[ifill]]->Fill(29.5);
1223 }
else if (fzo_fired) {
1224 h_psn_effect_to_l1[skim[ifill]]->Fill(30.5);
1225 }
else if (monitor_fired) {
1226 h_psn_effect_to_l1[skim[ifill]]->Fill(31.5);
1228 h_psn_effect_to_l1[skim[ifill]]->Fill(32.5);
1231 if (isFired_quick(
"ffy",
true)) {
1232 h_psn_effect_to_l1[skim[ifill]]->Fill(33.5);
1233 }
else if (isFired_quick(
"fyb",
true)) {
1234 h_psn_effect_to_l1[skim[ifill]]->Fill(34.5);
1235 }
else if (isFired_quick(
"fyo",
true)) {
1236 h_psn_effect_to_l1[skim[ifill]]->Fill(35.5);
1237 }
else if (isFired_quick(
"c4",
true)) {
1238 h_psn_effect_to_l1[skim[ifill]]->Fill(36.5);
1239 }
else if (isFired_quick(
"hie",
true)) {
1240 h_psn_effect_to_l1[skim[ifill]]->Fill(37.5);
1241 }
else if (isFired_quick(
"mu_b2b",
true)) {
1242 h_psn_effect_to_l1[skim[ifill]]->Fill(38.5);
1243 }
else if (isFired_quick(
"mu_eb2b",
true)) {
1244 h_psn_effect_to_l1[skim[ifill]]->Fill(39.5);
1245 }
else if (isFired_quick(
"eklm2",
true)) {
1246 h_psn_effect_to_l1[skim[ifill]]->Fill(40.5);
1247 }
else if (isFired_quick(
"beklm",
true)) {
1248 h_psn_effect_to_l1[skim[ifill]]->Fill(41.5);
1249 }
else if (isFired_quick(
"cdcklm1",
true)) {
1250 h_psn_effect_to_l1[skim[ifill]]->Fill(42.5);
1251 }
else if (isFired_quick(
"cdcklm2",
true)) {
1252 h_psn_effect_to_l1[skim[ifill]]->Fill(43.5);
1253 }
else if (isFired_quick(
"seklm1",
true)) {
1254 h_psn_effect_to_l1[skim[ifill]]->Fill(44.5);
1255 }
else if (isFired_quick(
"seklm2",
true)) {
1256 h_psn_effect_to_l1[skim[ifill]]->Fill(45.5);
1257 }
else if (isFired_quick(
"fwd_seklm",
true)) {
1258 h_psn_effect_to_l1[skim[ifill]]->Fill(46.5);
1259 }
else if (isFired_quick(
"bwd_seklm",
true)) {
1260 h_psn_effect_to_l1[skim[ifill]]->Fill(47.5);
1261 }
else if (isFired_quick(
"ecleklm1",
true)) {
1262 h_psn_effect_to_l1[skim[ifill]]->Fill(48.5);
1263 }
else if (isFired_quick(
"ieklm1",
true)) {
1264 h_psn_effect_to_l1[skim[ifill]]->Fill(49.5);
1265 }
else if (isFired_quick(
"sttecl",
true)) {
1266 h_psn_effect_to_l1[skim[ifill]]->Fill(50.5);
1267 }
else if (isFired_quick(
"stt",
true)) {
1268 h_psn_effect_to_l1[skim[ifill]]->Fill(51.5);
1269 }
else if (isFired_quick(
"syb",
true)) {
1270 h_psn_effect_to_l1[skim[ifill]]->Fill(52.5);
1271 }
else if (isFired_quick(
"syo",
true)) {
1272 h_psn_effect_to_l1[skim[ifill]]->Fill(53.5);
1273 }
else if (isFired_quick(
"yioiecl1",
true)) {
1274 h_psn_effect_to_l1[skim[ifill]]->Fill(54.5);
1275 }
else if (isFired_quick(
"fy30",
true)) {
1276 h_psn_effect_to_l1[skim[ifill]]->Fill(55.5);
1277 }
else if (isFired_quick(
"ioiecl2",
true)) {
1278 h_psn_effect_to_l1[skim[ifill]]->Fill(56.5);
1279 }
else if (isFired_quick(
"lml0",
true)) {
1280 h_psn_effect_to_l1[skim[ifill]]->Fill(57.5);
1281 }
else if (isFired_quick(
"lml2",
true)) {
1282 h_psn_effect_to_l1[skim[ifill]]->Fill(58.5);
1283 }
else if (isFired_quick(
"lml6",
true)) {
1284 h_psn_effect_to_l1[skim[ifill]]->Fill(59.5);
1285 }
else if (isFired_quick(
"lml7",
true)) {
1286 h_psn_effect_to_l1[skim[ifill]]->Fill(60.5);
1287 }
else if (isFired_quick(
"lml8",
true)) {
1288 h_psn_effect_to_l1[skim[ifill]]->Fill(61.5);
1289 }
else if (isFired_quick(
"lml9",
true)) {
1290 h_psn_effect_to_l1[skim[ifill]]->Fill(62.5);
1291 }
else if (isFired_quick(
"lml10",
true)) {
1292 h_psn_effect_to_l1[skim[ifill]]->Fill(63.5);
1293 }
else if (isFired_quick(
"lml12",
true)) {
1294 h_psn_effect_to_l1[skim[ifill]]->Fill(64.5);
1295 }
else if (isFired_quick(
"lml13",
true)) {
1296 h_psn_effect_to_l1[skim[ifill]]->Fill(65.5);
1297 }
else if (isFired_quick(
"lml14",
true)) {
1298 h_psn_effect_to_l1[skim[ifill]]->Fill(66.5);
1299 }
else if (isFired_quick(
"lml15",
true)) {
1300 h_psn_effect_to_l1[skim[ifill]]->Fill(67.5);
1301 }
else if (isFired_quick(
"lml16",
true)) {
1302 h_psn_effect_to_l1[skim[ifill]]->Fill(68.5);
1303 }
else if (isFired_quick(
"ggsel",
true)) {
1304 h_psn_effect_to_l1[skim[ifill]]->Fill(69.5);
1305 }
else if (isFired_quick(
"bhapur",
true)) {
1306 h_psn_effect_to_l1[skim[ifill]]->Fill(70.5);
1307 }
else if (isFired_quick(
"lml3",
true)) {
1308 h_psn_effect_to_l1[skim[ifill]]->Fill(71.5);
1309 }
else if (isFired_quick(
"lml5",
true)) {
1310 h_psn_effect_to_l1[skim[ifill]]->Fill(72.5);
1311 }
else if (isFired_quick(
"bha3d",
true)) {
1312 h_psn_effect_to_l1[skim[ifill]]->Fill(73.5);
1313 }
else if (isFired_quick(
"bhabha",
true)) {
1314 h_psn_effect_to_l1[skim[ifill]]->Fill(74.5);
1315 }
else if (isFired_quick(
"lume",
true)) {
1316 h_psn_effect_to_l1[skim[ifill]]->Fill(75.5);
1317 }
else if (isFired_quick(
"bffo",
true)) {
1318 h_psn_effect_to_l1[skim[ifill]]->Fill(76.5);
1319 }
else if (isFired_quick(
"bhie",
true)) {
1320 h_psn_effect_to_l1[skim[ifill]]->Fill(77.5);
1321 }
else if (isFired_quick(
"eclmumu",
true)) {
1322 h_psn_effect_to_l1[skim[ifill]]->Fill(78.5);
1323 }
else if (isFired_quick(
"lml1",
true)) {
1324 h_psn_effect_to_l1[skim[ifill]]->Fill(79.5);
1325 }
else if (isFired_quick(
"lml4",
true)) {
1326 h_psn_effect_to_l1[skim[ifill]]->Fill(80.5);
1327 }
else if (isFired_quick(
"ssb",
true)) {
1328 h_psn_effect_to_l1[skim[ifill]]->Fill(81.5);
1329 }
else if (isFired_quick(
"eed",
true)) {
1330 h_psn_effect_to_l1[skim[ifill]]->Fill(82.5);
1331 }
else if (isFired_quick(
"fed",
true)) {
1332 h_psn_effect_to_l1[skim[ifill]]->Fill(83.5);
1333 }
else if (isFired_quick(
"yp",
true)) {
1334 h_psn_effect_to_l1[skim[ifill]]->Fill(84.5);
1335 }
else if (isFired_quick(
"fp",
true)) {
1336 h_psn_effect_to_l1[skim[ifill]]->Fill(85.5);
1337 }
else if (isFired_quick(
"shem",
true)) {
1338 h_psn_effect_to_l1[skim[ifill]]->Fill(86.5);
1339 }
else if (isFired_quick(
"ohem",
true)) {
1340 h_psn_effect_to_l1[skim[ifill]]->Fill(87.5);
1341 }
else if (isFired_quick(
"hiev",
true)) {
1342 h_psn_effect_to_l1[skim[ifill]]->Fill(88.5);
1343 }
else if (isFired_quick(
"fffv",
true)) {
1344 h_psn_effect_to_l1[skim[ifill]]->Fill(89.5);
1345 }
else if (isFired_quick(
"bg",
true)) {
1346 h_psn_effect_to_l1[skim[ifill]]->Fill(90.5);
1347 }
else if (isFired_quick(
"poissonv",
true)) {
1348 h_psn_effect_to_l1[skim[ifill]]->Fill(91.5);
1349 }
else if (isFired_quick(
"revolution",
true)) {
1350 h_psn_effect_to_l1[skim[ifill]]->Fill(92.5);
1351 }
else if (isFired_quick(
"random",
true)) {
1352 h_psn_effect_to_l1[skim[ifill]]->Fill(93.5);
1353 }
else if (isFired_quick(
"c2",
true)) {
1354 h_psn_effect_to_l1[skim[ifill]]->Fill(94.5);
1355 }
else if (isFired_quick(
"c3",
true)) {
1356 h_psn_effect_to_l1[skim[ifill]]->Fill(95.5);
1357 }
else if (isFired_quick(
"eklmhit",
true)) {
1358 h_psn_effect_to_l1[skim[ifill]]->Fill(96.5);
1359 }
else if (isFired_quick(
"f",
true)) {
1360 h_psn_effect_to_l1[skim[ifill]]->Fill(97.5);
1361 }
else if (isFired_quick(
"s",
true)) {
1362 h_psn_effect_to_l1[skim[ifill]]->Fill(98.5);
1363 }
else if (isFired_quick(
"y",
true)) {
1364 h_psn_effect_to_l1[skim[ifill]]->Fill(99.5);
1365 }
else if (isFired_quick(
"cdcecl3",
true)) {
1366 h_psn_effect_to_l1[skim[ifill]]->Fill(100.5);
1367 }
else if (isFired_quick(
"cdcecl4",
true)) {
1368 h_psn_effect_to_l1[skim[ifill]]->Fill(101.5);
1369 }
else if (isFired_quick(
"ffz",
true)) {
1370 h_psn_effect_to_l1[skim[ifill]]->Fill(102.5);
1371 }
else if (isFired_quick(
"fzb",
true)) {
1372 h_psn_effect_to_l1[skim[ifill]]->Fill(103.5);
1373 }
else if (isFired_quick(
"fzo",
true)) {
1374 h_psn_effect_to_l1[skim[ifill]]->Fill(104.5);
1375 }
else if (isFired_quick(
"fff",
true)) {
1376 h_psn_effect_to_l1[skim[ifill]]->Fill(105.5);
1377 }
else if (isFired_quick(
"ffb",
true)) {
1378 h_psn_effect_to_l1[skim[ifill]]->Fill(106.5);
1379 }
else if (isFired_quick(
"ffo",
true)) {
1380 h_psn_effect_to_l1[skim[ifill]]->Fill(107.5);
1381 }
else if (isFired_quick(
"fffo",
true)) {
1382 h_psn_effect_to_l1[skim[ifill]]->Fill(108.5);
1383 }
else if (isFired_quick(
"ffs",
true)) {
1384 h_psn_effect_to_l1[skim[ifill]]->Fill(109.5);
1385 }
else if (isFired_quick(
"fss",
true)) {
1386 h_psn_effect_to_l1[skim[ifill]]->Fill(110.5);
1387 }
else if (isFired_quick(
"sss",
true)) {
1388 h_psn_effect_to_l1[skim[ifill]]->Fill(111.5);
1389 }
else if (isFired_quick(
"ff",
true)) {
1390 h_psn_effect_to_l1[skim[ifill]]->Fill(112.5);
1391 }
else if (isFired_quick(
"ss",
true)) {
1392 h_psn_effect_to_l1[skim[ifill]]->Fill(113.5);
1393 }
else if (isFired_quick(
"fso",
true)) {
1394 h_psn_effect_to_l1[skim[ifill]]->Fill(114.5);
1395 }
else if (isFired_quick(
"sso",
true)) {
1396 h_psn_effect_to_l1[skim[ifill]]->Fill(115.5);
1397 }
else if (isFired_quick(
"fsb",
true)) {
1398 h_psn_effect_to_l1[skim[ifill]]->Fill(116.5);
1399 }
else if (isFired_quick(
"ff30",
true)) {
1400 h_psn_effect_to_l1[skim[ifill]]->Fill(117.5);
1401 }
else if (isFired_quick(
"fioiecl1",
true)) {
1402 h_psn_effect_to_l1[skim[ifill]]->Fill(118.5);
1403 }
else if (isFired_quick(
"ioiecl1",
true)) {
1404 h_psn_effect_to_l1[skim[ifill]]->Fill(119.5);
1405 }
else if (isFired_quick(
"cdcecl1",
true)) {
1406 h_psn_effect_to_l1[skim[ifill]]->Fill(120.5);
1407 }
else if (isFired_quick(
"cdcecl2",
true)) {
1408 h_psn_effect_to_l1[skim[ifill]]->Fill(121.5);
1409 }
else if (isFired_quick(
"c2gev1",
true)) {
1410 h_psn_effect_to_l1[skim[ifill]]->Fill(122.5);
1411 }
else if (isFired_quick(
"c2gev2",
true)) {
1412 h_psn_effect_to_l1[skim[ifill]]->Fill(123.5);
1413 }
else if (isFired_quick(
"c2hie",
true)) {
1414 h_psn_effect_to_l1[skim[ifill]]->Fill(124.5);
1415 }
else if (isFired_quick(
"g_high",
true)) {
1416 h_psn_effect_to_l1[skim[ifill]]->Fill(125.5);
1417 }
else if (isFired_quick(
"g_c1",
true)) {
1418 h_psn_effect_to_l1[skim[ifill]]->Fill(126.5);
1419 }
else if (isFired_quick(
"gg",
true)) {
1420 h_psn_effect_to_l1[skim[ifill]]->Fill(127.5);
1421 }
else if (isFired_quick(
"stt6",
true)) {
1422 h_psn_effect_to_l1[skim[ifill]]->Fill(128.5);
1424 h_psn_effect_to_l1[skim[ifill]]->Fill(129.5);
1429 h_psn_raw_rate[skim[ifill]]->Fill(0.5);
1433 h_psn_raw_rate[skim[ifill]]->Fill(1.5);
1434 }
if (B_ECL_fired) {
1435 h_psn_raw_rate[skim[ifill]]->Fill(2.5);
1436 }
if (LOW_KLM_fired) {
1437 h_psn_raw_rate[skim[ifill]]->Fill(3.5);
1438 }
if (LOW_CDC_fired) {
1439 h_psn_raw_rate[skim[ifill]]->Fill(4.5);
1440 }
if (LOW_ECL_fired) {
1441 h_psn_raw_rate[skim[ifill]]->Fill(5.5);
1442 }
if (CALIB_fired) {
1443 h_psn_raw_rate[skim[ifill]]->Fill(6.5);
1444 }
if (MONITOR_fired) {
1445 h_psn_raw_rate[skim[ifill]]->Fill(7.5);
1449 h_psn_raw_rate[skim[ifill]]->Fill(9.5);
1451 h_psn_raw_rate[skim[ifill]]->Fill(10.5);
1453 h_psn_raw_rate[skim[ifill]]->Fill(11.5);
1455 h_psn_raw_rate[skim[ifill]]->Fill(12.5);
1457 h_psn_raw_rate[skim[ifill]]->Fill(13.5);
1458 }
if (klm_match_fired) {
1459 h_psn_raw_rate[skim[ifill]]->Fill(14.5);
1461 h_psn_raw_rate[skim[ifill]]->Fill(15.5);
1462 }
if (short_fired) {
1463 h_psn_raw_rate[skim[ifill]]->Fill(16.5);
1465 h_psn_raw_rate[skim[ifill]]->Fill(17.5);
1466 }
if (inner_fired) {
1467 h_psn_raw_rate[skim[ifill]]->Fill(18.5);
1469 h_psn_raw_rate[skim[ifill]]->Fill(19.5);
1471 h_psn_raw_rate[skim[ifill]]->Fill(20.5);
1472 }
if (bhabha_fired) {
1473 h_psn_raw_rate[skim[ifill]]->Fill(21.5);
1475 h_psn_raw_rate[skim[ifill]]->Fill(22.5);
1476 }
if (bhamon_fired) {
1477 h_psn_raw_rate[skim[ifill]]->Fill(23.5);
1478 }
if (eclmumu_fired) {
1479 h_psn_raw_rate[skim[ifill]]->Fill(24.5);
1481 h_psn_raw_rate[skim[ifill]]->Fill(25.5);
1483 h_psn_raw_rate[skim[ifill]]->Fill(26.5);
1485 h_psn_raw_rate[skim[ifill]]->Fill(27.5);
1486 }
if (random_fired) {
1487 h_psn_raw_rate[skim[ifill]]->Fill(28.5);
1489 h_psn_raw_rate[skim[ifill]]->Fill(29.5);
1491 h_psn_raw_rate[skim[ifill]]->Fill(30.5);
1492 }
if (monitor_fired) {
1493 h_psn_raw_rate[skim[ifill]]->Fill(31.5);
1496 if (isFired_quick(
"ffy",
true)) {
1497 h_psn_raw_rate[skim[ifill]]->Fill(33.5);
1498 }
if (isFired_quick(
"fyb",
true)) {
1499 h_psn_raw_rate[skim[ifill]]->Fill(34.5);
1500 }
if (isFired_quick(
"fyo",
true)) {
1501 h_psn_raw_rate[skim[ifill]]->Fill(35.5);
1502 }
if (isFired_quick(
"c4",
true)) {
1503 h_psn_raw_rate[skim[ifill]]->Fill(36.5);
1504 }
if (isFired_quick(
"hie",
true)) {
1505 h_psn_raw_rate[skim[ifill]]->Fill(37.5);
1506 }
if (isFired_quick(
"mu_b2b",
true)) {
1507 h_psn_raw_rate[skim[ifill]]->Fill(38.5);
1508 }
if (isFired_quick(
"mu_eb2b",
true)) {
1509 h_psn_raw_rate[skim[ifill]]->Fill(39.5);
1510 }
if (isFired_quick(
"eklm2",
true)) {
1511 h_psn_raw_rate[skim[ifill]]->Fill(40.5);
1512 }
if (isFired_quick(
"beklm",
true)) {
1513 h_psn_raw_rate[skim[ifill]]->Fill(41.5);
1514 }
if (isFired_quick(
"cdcklm1",
true)) {
1515 h_psn_raw_rate[skim[ifill]]->Fill(42.5);
1516 }
if (isFired_quick(
"cdcklm2",
true)) {
1517 h_psn_raw_rate[skim[ifill]]->Fill(43.5);
1518 }
if (isFired_quick(
"seklm1",
true)) {
1519 h_psn_raw_rate[skim[ifill]]->Fill(44.5);
1520 }
if (isFired_quick(
"seklm2",
true)) {
1521 h_psn_raw_rate[skim[ifill]]->Fill(45.5);
1522 }
if (isFired_quick(
"fwd_seklm",
true)) {
1523 h_psn_raw_rate[skim[ifill]]->Fill(46.5);
1524 }
if (isFired_quick(
"bwd_seklm",
true)) {
1525 h_psn_raw_rate[skim[ifill]]->Fill(47.5);
1526 }
if (isFired_quick(
"ecleklm1",
true)) {
1527 h_psn_raw_rate[skim[ifill]]->Fill(48.5);
1528 }
if (isFired_quick(
"ieklm1",
true)) {
1529 h_psn_raw_rate[skim[ifill]]->Fill(49.5);
1530 }
if (isFired_quick(
"sttecl",
true)) {
1531 h_psn_raw_rate[skim[ifill]]->Fill(50.5);
1532 }
if (isFired_quick(
"stt",
true)) {
1533 h_psn_raw_rate[skim[ifill]]->Fill(51.5);
1534 }
if (isFired_quick(
"syb",
true)) {
1535 h_psn_raw_rate[skim[ifill]]->Fill(52.5);
1536 }
if (isFired_quick(
"syo",
true)) {
1537 h_psn_raw_rate[skim[ifill]]->Fill(53.5);
1538 }
if (isFired_quick(
"yioiecl1",
true)) {
1539 h_psn_raw_rate[skim[ifill]]->Fill(54.5);
1540 }
if (isFired_quick(
"fy30",
true)) {
1541 h_psn_raw_rate[skim[ifill]]->Fill(55.5);
1542 }
if (isFired_quick(
"ioiecl2",
true)) {
1543 h_psn_raw_rate[skim[ifill]]->Fill(56.5);
1544 }
if (isFired_quick(
"lml0",
true)) {
1545 h_psn_raw_rate[skim[ifill]]->Fill(57.5);
1546 }
if (isFired_quick(
"lml2",
true)) {
1547 h_psn_raw_rate[skim[ifill]]->Fill(58.5);
1548 }
if (isFired_quick(
"lml6",
true)) {
1549 h_psn_raw_rate[skim[ifill]]->Fill(59.5);
1550 }
if (isFired_quick(
"lml7",
true)) {
1551 h_psn_raw_rate[skim[ifill]]->Fill(60.5);
1552 }
if (isFired_quick(
"lml8",
true)) {
1553 h_psn_raw_rate[skim[ifill]]->Fill(61.5);
1554 }
if (isFired_quick(
"lml9",
true)) {
1555 h_psn_raw_rate[skim[ifill]]->Fill(62.5);
1556 }
if (isFired_quick(
"lml10",
true)) {
1557 h_psn_raw_rate[skim[ifill]]->Fill(63.5);
1558 }
if (isFired_quick(
"lml12",
true)) {
1559 h_psn_raw_rate[skim[ifill]]->Fill(64.5);
1560 }
if (isFired_quick(
"lml13",
true)) {
1561 h_psn_raw_rate[skim[ifill]]->Fill(65.5);
1562 }
if (isFired_quick(
"lml14",
true)) {
1563 h_psn_raw_rate[skim[ifill]]->Fill(66.5);
1564 }
if (isFired_quick(
"lml15",
true)) {
1565 h_psn_raw_rate[skim[ifill]]->Fill(67.5);
1566 }
if (isFired_quick(
"lml16",
true)) {
1567 h_psn_raw_rate[skim[ifill]]->Fill(68.5);
1568 }
if (isFired_quick(
"ggsel",
true)) {
1569 h_psn_raw_rate[skim[ifill]]->Fill(69.5);
1570 }
if (isFired_quick(
"bhapur",
true)) {
1571 h_psn_raw_rate[skim[ifill]]->Fill(70.5);
1572 }
if (isFired_quick(
"lml3",
true)) {
1573 h_psn_raw_rate[skim[ifill]]->Fill(71.5);
1574 }
if (isFired_quick(
"lml5",
true)) {
1575 h_psn_raw_rate[skim[ifill]]->Fill(72.5);
1576 }
if (isFired_quick(
"bha3d",
true)) {
1577 h_psn_raw_rate[skim[ifill]]->Fill(73.5);
1578 }
if (isFired_quick(
"bhabha",
true)) {
1579 h_psn_raw_rate[skim[ifill]]->Fill(74.5);
1580 }
if (isFired_quick(
"lume",
true)) {
1581 h_psn_raw_rate[skim[ifill]]->Fill(75.5);
1582 }
if (isFired_quick(
"bffo",
true)) {
1583 h_psn_raw_rate[skim[ifill]]->Fill(76.5);
1584 }
if (isFired_quick(
"bhie",
true)) {
1585 h_psn_raw_rate[skim[ifill]]->Fill(77.5);
1586 }
if (isFired_quick(
"eclmumu",
true)) {
1587 h_psn_raw_rate[skim[ifill]]->Fill(78.5);
1588 }
if (isFired_quick(
"lml1",
true)) {
1589 h_psn_raw_rate[skim[ifill]]->Fill(79.5);
1590 }
if (isFired_quick(
"lml4",
true)) {
1591 h_psn_raw_rate[skim[ifill]]->Fill(80.5);
1592 }
if (isFired_quick(
"ssb",
true)) {
1593 h_psn_raw_rate[skim[ifill]]->Fill(81.5);
1594 }
if (isFired_quick(
"eed",
true)) {
1595 h_psn_raw_rate[skim[ifill]]->Fill(82.5);
1596 }
if (isFired_quick(
"fed",
true)) {
1597 h_psn_raw_rate[skim[ifill]]->Fill(83.5);
1598 }
if (isFired_quick(
"yp",
true)) {
1599 h_psn_raw_rate[skim[ifill]]->Fill(84.5);
1600 }
if (isFired_quick(
"fp",
true)) {
1601 h_psn_raw_rate[skim[ifill]]->Fill(85.5);
1602 }
if (isFired_quick(
"shem",
true)) {
1603 h_psn_raw_rate[skim[ifill]]->Fill(86.5);
1604 }
if (isFired_quick(
"ohem",
true)) {
1605 h_psn_raw_rate[skim[ifill]]->Fill(87.5);
1606 }
if (isFired_quick(
"hiev",
true)) {
1607 h_psn_raw_rate[skim[ifill]]->Fill(88.5);
1608 }
if (isFired_quick(
"fffv",
true)) {
1609 h_psn_raw_rate[skim[ifill]]->Fill(89.5);
1610 }
if (isFired_quick(
"bg",
true)) {
1611 h_psn_raw_rate[skim[ifill]]->Fill(90.5);
1612 }
if (isFired_quick(
"poissonv",
true)) {
1613 h_psn_raw_rate[skim[ifill]]->Fill(91.5);
1614 }
if (isFired_quick(
"revolution",
true)) {
1615 h_psn_raw_rate[skim[ifill]]->Fill(92.5);
1616 }
if (isFired_quick(
"random",
true)) {
1617 h_psn_raw_rate[skim[ifill]]->Fill(93.5);
1618 }
if (isFired_quick(
"c2",
true)) {
1619 h_psn_raw_rate[skim[ifill]]->Fill(94.5);
1620 }
if (isFired_quick(
"c3",
true)) {
1621 h_psn_raw_rate[skim[ifill]]->Fill(95.5);
1622 }
if (isFired_quick(
"eklmhit",
true)) {
1623 h_psn_raw_rate[skim[ifill]]->Fill(96.5);
1624 }
if (isFired_quick(
"f",
true)) {
1625 h_psn_raw_rate[skim[ifill]]->Fill(97.5);
1626 }
if (isFired_quick(
"s",
true)) {
1627 h_psn_raw_rate[skim[ifill]]->Fill(98.5);
1628 }
if (isFired_quick(
"y",
true)) {
1629 h_psn_raw_rate[skim[ifill]]->Fill(99.5);
1630 }
if (isFired_quick(
"cdcecl3",
true)) {
1631 h_psn_raw_rate[skim[ifill]]->Fill(100.5);
1632 }
if (isFired_quick(
"cdcecl4",
true)) {
1633 h_psn_raw_rate[skim[ifill]]->Fill(101.5);
1634 }
if (isFired_quick(
"ffz",
true)) {
1635 h_psn_raw_rate[skim[ifill]]->Fill(102.5);
1636 }
if (isFired_quick(
"fzb",
true)) {
1637 h_psn_raw_rate[skim[ifill]]->Fill(103.5);
1638 }
if (isFired_quick(
"fzo",
true)) {
1639 h_psn_raw_rate[skim[ifill]]->Fill(104.5);
1640 }
if (isFired_quick(
"fff",
true)) {
1641 h_psn_raw_rate[skim[ifill]]->Fill(105.5);
1642 }
if (isFired_quick(
"ffb",
true)) {
1643 h_psn_raw_rate[skim[ifill]]->Fill(106.5);
1644 }
if (isFired_quick(
"ffo",
true)) {
1645 h_psn_raw_rate[skim[ifill]]->Fill(107.5);
1646 }
if (isFired_quick(
"fffo",
true)) {
1647 h_psn_raw_rate[skim[ifill]]->Fill(108.5);
1648 }
if (isFired_quick(
"ffs",
true)) {
1649 h_psn_raw_rate[skim[ifill]]->Fill(109.5);
1650 }
if (isFired_quick(
"fss",
true)) {
1651 h_psn_raw_rate[skim[ifill]]->Fill(110.5);
1652 }
if (isFired_quick(
"sss",
true)) {
1653 h_psn_raw_rate[skim[ifill]]->Fill(111.5);
1654 }
if (isFired_quick(
"ff",
true)) {
1655 h_psn_raw_rate[skim[ifill]]->Fill(112.5);
1656 }
if (isFired_quick(
"ss",
true)) {
1657 h_psn_raw_rate[skim[ifill]]->Fill(113.5);
1658 }
if (isFired_quick(
"fso",
true)) {
1659 h_psn_raw_rate[skim[ifill]]->Fill(114.5);
1660 }
if (isFired_quick(
"sso",
true)) {
1661 h_psn_raw_rate[skim[ifill]]->Fill(115.5);
1662 }
if (isFired_quick(
"fsb",
true)) {
1663 h_psn_raw_rate[skim[ifill]]->Fill(116.5);
1664 }
if (isFired_quick(
"ff30",
true)) {
1665 h_psn_raw_rate[skim[ifill]]->Fill(117.5);
1666 }
if (isFired_quick(
"fioiecl1",
true)) {
1667 h_psn_raw_rate[skim[ifill]]->Fill(118.5);
1668 }
if (isFired_quick(
"ioiecl1",
true)) {
1669 h_psn_raw_rate[skim[ifill]]->Fill(119.5);
1670 }
if (isFired_quick(
"cdcecl1",
true)) {
1671 h_psn_raw_rate[skim[ifill]]->Fill(120.5);
1672 }
if (isFired_quick(
"cdcecl2",
true)) {
1673 h_psn_raw_rate[skim[ifill]]->Fill(121.5);
1674 }
if (isFired_quick(
"c2gev1",
true)) {
1675 h_psn_raw_rate[skim[ifill]]->Fill(122.5);
1676 }
if (isFired_quick(
"c2gev2",
true)) {
1677 h_psn_raw_rate[skim[ifill]]->Fill(123.5);
1678 }
if (isFired_quick(
"c2hie",
true)) {
1679 h_psn_raw_rate[skim[ifill]]->Fill(124.5);
1680 }
if (isFired_quick(
"g_high",
true)) {
1681 h_psn_raw_rate[skim[ifill]]->Fill(125.5);
1682 }
if (isFired_quick(
"g_c1",
true)) {
1683 h_psn_raw_rate[skim[ifill]]->Fill(126.5);
1684 }
if (isFired_quick(
"gg",
true)) {
1685 h_psn_raw_rate[skim[ifill]]->Fill(127.5);
1686 }
if (isFired_quick(
"stt6",
true)) {
1687 h_psn_raw_rate[skim[ifill]]->Fill(128.5);
1694TRGGDLDQMModule::fillOutputExtra(
void)
1696 bool c4_fired = isFired_quick(
"c4");
1697 bool hie_fired = isFired_quick(
"hie");
1698 bool LML_fired = (isFired_quick(
"lml0",
true) || isFired_quick(
"lml1",
true) || isFired_quick(
"lml2",
true)
1699 || isFired_quick(
"lml3",
true) || isFired_quick(
"lml4",
true) || isFired_quick(
"lml5",
true)
1700 || isFired_quick(
"lml6",
true) || isFired_quick(
"lml7",
true) || isFired_quick(
"lml8",
true)
1701 || isFired_quick(
"lml9",
true) || isFired_quick(
"lml10",
true) || isFired_quick(
"eclmumu",
true));
1702 bool CDC_fired = (isFired_quick(
"fff",
true) || isFired_quick(
"ffo",
true) || isFired_quick(
"ffb",
true)
1703 || isFired_quick(
"ffy",
true) || isFired_quick(
"fyo",
true) || isFired_quick(
"fyb",
true));
1704 bool ECL_fired = (isFired_quick(
"c4",
true) || isFired_quick(
"hie",
true));
1705 bool fff_fired = isFired_quick(
"fff");
1706 bool ff_fired = isFired_quick(
"ff");
1707 bool f_fired = isFired_quick(
"f");
1708 bool ffo_fired = isFired_quick(
"ffo");
1709 bool ffb_fired = isFired_quick(
"ffb");
1710 bool ffy_fired = isFired_quick(
"ffy");
1711 bool fyo_fired = isFired_quick(
"fyo");
1712 bool fyb_fired = isFired_quick(
"fyb");
1713 bool aaa_fired = isFired_quick(
"aaa");
1714 bool aay_fired = isFired_quick(
"aay");
1715 bool bha2D_fired = isFired_quick(
"bhabha");
1716 bool bha3D_fired = isFired_quick(
"bha3d");
1717 bool lml0_fired = isFired_quick(
"lml0");
1718 bool lml1_fired = isFired_quick(
"lml1");
1719 bool lml2_fired = isFired_quick(
"lml2");
1720 bool lml3_fired = isFired_quick(
"lml3");
1721 bool lml4_fired = isFired_quick(
"lml4");
1722 bool lml5_fired = isFired_quick(
"lml5");
1723 bool lml6_fired = isFired_quick(
"lml6");
1724 bool lml7_fired = isFired_quick(
"lml7");
1725 bool lml8_fired = isFired_quick(
"lml8");
1726 bool lml9_fired = isFired_quick(
"lml9");
1727 bool lml10_fired = isFired_quick(
"lml10");
1728 bool lml12_fired = isFired_quick(
"lml12");
1729 bool lml13_fired = isFired_quick(
"lml13");
1730 bool eclmumu_fired = isFired_quick(
"eclmumu");
1731 bool mu_b2b_fired = isFired_quick(
"mu_b2b");
1732 bool mu_eb2b_fired = isFired_quick(
"mu_eb2b");
1733 bool cdcklm1_fired = isFired_quick(
"cdcklm1");
1734 bool cdcklm2_fired = isFired_quick(
"cdcklm2");
1735 bool ycdcklm1_fired = isFired_quick(
"ycdcklm1");
1736 bool ycdcklm2_fired = isFired_quick(
"ycdcklm2");
1737 bool klm_hit_fired = isFired_quick(
"klm_hit");
1738 bool eklm_hit_fired = isFired_quick(
"eklm_hit");
1739 bool cdcecl1_fired = isFired_quick(
"cdcecl1");
1740 bool cdcecl2_fired = isFired_quick(
"cdcecl2");
1741 bool cdcecl3_fired = isFired_quick(
"cdcecl3");
1742 bool cdcecl4_fired = isFired_quick(
"cdcecl4");
1743 bool fso_fired = isFired_quick(
"fso");
1744 bool fsb_fired = isFired_quick(
"fsb");
1745 bool syo_fired = isFired_quick(
"syo");
1746 bool syb_fired = isFired_quick(
"syb");
1747 bool syoecl_fired = isFired_quick(
"syoecl");
1748 bool sybecl_fired = isFired_quick(
"sybecl");
1749 bool x_fired = isFired_quick(
"x");
1750 bool fioiecl1_fired = isFired_quick(
"fioiecl1");
1751 bool ecleklm1_fired = isFired_quick(
"ecleklm1");
1752 bool seklm1_fired = isFired_quick(
"seklm1");
1753 bool seklm2_fired = isFired_quick(
"seklm2");
1754 bool ieklm_fired = isFired_quick(
"ieklm");
1755 bool iecl_fired = isFired_quick(
"iecl");
1756 bool yioiecl1_fired = isFired_quick(
"yioiecl1");
1757 bool stt_fired = isFired_quick(
"stt");
1758 bool sttecl_fired = isFired_quick(
"sttecl");
1759 bool ffz_fired = isFired_quick(
"ffz");
1760 bool fzo_fired = isFired_quick(
"fzo");
1761 bool fzb_fired = isFired_quick(
"fzb");
1763 for (
unsigned ifill = 0; ifill < skim.size(); ifill++) {
1765 for (
int i = nsample_fast - 1; i > 0; i--) {
1766 for (
int ibin = 0; ibin < n_output_extra; ibin++) {
1767 array_psn_extra_fast[skim[ifill]][i][ibin] = array_psn_extra_fast[skim[ifill]][i - 1][ibin];
1770 for (
int ibin = 0; ibin < n_output_extra; ibin++) {
1771 array_psn_extra_fast[skim[ifill]][0][ibin] = 0;
1775 h_psn_extra[skim[ifill]]->Fill(0.5);
1776 array_psn_extra_fast[skim[ifill]][0][0] = 1;
1778 if (fff_fired && (ECL_fired)) {
1779 h_psn_extra[skim[ifill]]->Fill(1.5);
1780 array_psn_extra_fast[skim[ifill]][0][1] = 1;
1782 if (ffo_fired && (ECL_fired)) {
1783 h_psn_extra[skim[ifill]]->Fill(2.5);
1784 array_psn_extra_fast[skim[ifill]][0][2] = 1;
1786 if (ffb_fired && (ECL_fired)) {
1787 h_psn_extra[skim[ifill]]->Fill(3.5);
1788 array_psn_extra_fast[skim[ifill]][0][3] = 1;
1791 h_psn_extra[skim[ifill]]->Fill(4.5);
1792 array_psn_extra_fast[skim[ifill]][0][4] = 1;
1795 h_psn_extra[skim[ifill]]->Fill(5.5);
1796 array_psn_extra_fast[skim[ifill]][0][5] = 1;
1799 h_psn_extra[skim[ifill]]->Fill(6.5);
1800 array_psn_extra_fast[skim[ifill]][0][6] = 1;
1802 if ((CDC_fired) && (ECL_fired)) {
1803 h_psn_extra[skim[ifill]]->Fill(7.5);
1804 array_psn_extra_fast[skim[ifill]][0][7] = 1;
1807 h_psn_extra[skim[ifill]]->Fill(8.5);
1808 array_psn_extra_fast[skim[ifill]][0][8] = 1;
1811 h_psn_extra[skim[ifill]]->Fill(9.5);
1812 array_psn_extra_fast[skim[ifill]][0][9] = 1;
1815 h_psn_extra[skim[ifill]]->Fill(10.5);
1816 array_psn_extra_fast[skim[ifill]][0][10] = 1;
1818 if (ff_fired && (LML_fired)) {
1819 h_psn_extra[skim[ifill]]->Fill(11.5);
1820 array_psn_extra_fast[skim[ifill]][0][11] = 1;
1823 h_psn_extra[skim[ifill]]->Fill(12.5);
1824 array_psn_extra_fast[skim[ifill]][0][12] = 1;
1826 if (f_fired && (LML_fired)) {
1827 h_psn_extra[skim[ifill]]->Fill(13.5);
1828 array_psn_extra_fast[skim[ifill]][0][13] = 1;
1831 h_psn_extra[skim[ifill]]->Fill(14.5);
1832 array_psn_extra_fast[skim[ifill]][0][14] = 1;
1834 if (fff_fired && (LML_fired)) {
1835 h_psn_extra[skim[ifill]]->Fill(15.5);
1836 array_psn_extra_fast[skim[ifill]][0][15] = 1;
1838 if (ffo_fired && (LML_fired)) {
1839 h_psn_extra[skim[ifill]]->Fill(16.5);
1840 array_psn_extra_fast[skim[ifill]][0][16] = 1;
1842 if (ffb_fired && (LML_fired)) {
1843 h_psn_extra[skim[ifill]]->Fill(17.5);
1844 array_psn_extra_fast[skim[ifill]][0][17] = 1;
1847 h_psn_extra[skim[ifill]]->Fill(18.5);
1848 array_psn_extra_fast[skim[ifill]][0][18] = 1;
1850 if (ffy_fired && (ECL_fired)) {
1851 h_psn_extra[skim[ifill]]->Fill(19.5);
1852 array_psn_extra_fast[skim[ifill]][0][19] = 1;
1854 if (fyo_fired && (ECL_fired)) {
1855 h_psn_extra[skim[ifill]]->Fill(20.5);
1856 array_psn_extra_fast[skim[ifill]][0][20] = 1;
1858 if (fyb_fired && (ECL_fired)) {
1859 h_psn_extra[skim[ifill]]->Fill(21.5);
1860 array_psn_extra_fast[skim[ifill]][0][21] = 1;
1862 if ((ffy_fired || fyo_fired || fyb_fired) && (ECL_fired)) {
1863 h_psn_extra[skim[ifill]]->Fill(22.5);
1864 array_psn_extra_fast[skim[ifill]][0][22] = 1;
1866 if (ffy_fired && (LML_fired)) {
1867 h_psn_extra[skim[ifill]]->Fill(23.5);
1868 array_psn_extra_fast[skim[ifill]][0][23] = 1;
1870 if (fyo_fired && (LML_fired)) {
1871 h_psn_extra[skim[ifill]]->Fill(24.5);
1872 array_psn_extra_fast[skim[ifill]][0][24] = 1;
1874 if (fyb_fired && (LML_fired)) {
1875 h_psn_extra[skim[ifill]]->Fill(25.5);
1876 array_psn_extra_fast[skim[ifill]][0][25] = 1;
1878 if (c4_fired && (CDC_fired)) {
1879 h_psn_extra[skim[ifill]]->Fill(26.5);
1880 array_psn_extra_fast[skim[ifill]][0][26] = 1;
1882 if (hie_fired && (CDC_fired)) {
1883 h_psn_extra[skim[ifill]]->Fill(27.5);
1884 array_psn_extra_fast[skim[ifill]][0][27] = 1;
1886 if (lml0_fired && (CDC_fired)) {
1887 h_psn_extra[skim[ifill]]->Fill(28.5);
1888 array_psn_extra_fast[skim[ifill]][0][28] = 1;
1890 if (lml1_fired && (CDC_fired)) {
1891 h_psn_extra[skim[ifill]]->Fill(29.5);
1892 array_psn_extra_fast[skim[ifill]][0][29] = 1;
1894 if (lml2_fired && (CDC_fired)) {
1895 h_psn_extra[skim[ifill]]->Fill(30.5);
1896 array_psn_extra_fast[skim[ifill]][0][30] = 1;
1898 if (lml3_fired && (CDC_fired)) {
1899 h_psn_extra[skim[ifill]]->Fill(31.5);
1900 array_psn_extra_fast[skim[ifill]][0][31] = 1;
1902 if (lml4_fired && (CDC_fired)) {
1903 h_psn_extra[skim[ifill]]->Fill(32.5);
1904 array_psn_extra_fast[skim[ifill]][0][32] = 1;
1906 if (lml5_fired && (CDC_fired)) {
1907 h_psn_extra[skim[ifill]]->Fill(33.5);
1908 array_psn_extra_fast[skim[ifill]][0][33] = 1;
1910 if (lml6_fired && (CDC_fired)) {
1911 h_psn_extra[skim[ifill]]->Fill(34.5);
1912 array_psn_extra_fast[skim[ifill]][0][34] = 1;
1914 if (lml7_fired && (CDC_fired)) {
1915 h_psn_extra[skim[ifill]]->Fill(35.5);
1916 array_psn_extra_fast[skim[ifill]][0][35] = 1;
1918 if (lml8_fired && (CDC_fired)) {
1919 h_psn_extra[skim[ifill]]->Fill(36.5);
1920 array_psn_extra_fast[skim[ifill]][0][36] = 1;
1922 if (lml9_fired && (CDC_fired)) {
1923 h_psn_extra[skim[ifill]]->Fill(37.5);
1924 array_psn_extra_fast[skim[ifill]][0][37] = 1;
1926 if (lml10_fired && (CDC_fired)) {
1927 h_psn_extra[skim[ifill]]->Fill(38.5);
1928 array_psn_extra_fast[skim[ifill]][0][38] = 1;
1930 if (lml12_fired && (CDC_fired)) {
1931 h_psn_extra[skim[ifill]]->Fill(39.5);
1932 array_psn_extra_fast[skim[ifill]][0][39] = 1;
1934 if (lml13_fired && (CDC_fired)) {
1935 h_psn_extra[skim[ifill]]->Fill(40.5);
1936 array_psn_extra_fast[skim[ifill]][0][40] = 1;
1938 if (eclmumu_fired && (CDC_fired)) {
1939 h_psn_extra[skim[ifill]]->Fill(41.5);
1940 array_psn_extra_fast[skim[ifill]][0][41] = 1;
1942 if (mu_b2b_fired && (CDC_fired)) {
1943 h_psn_extra[skim[ifill]]->Fill(42.5);
1944 array_psn_extra_fast[skim[ifill]][0][42] = 1;
1946 if (mu_eb2b_fired && (CDC_fired)) {
1947 h_psn_extra[skim[ifill]]->Fill(43.5);
1948 array_psn_extra_fast[skim[ifill]][0][43] = 1;
1950 if (cdcklm1_fired && (CDC_fired)) {
1951 h_psn_extra[skim[ifill]]->Fill(44.5);
1952 array_psn_extra_fast[skim[ifill]][0][44] = 1;
1954 if (cdcklm2_fired && (CDC_fired)) {
1955 h_psn_extra[skim[ifill]]->Fill(45.5);
1956 array_psn_extra_fast[skim[ifill]][0][45] = 1;
1958 if (klm_hit_fired && (CDC_fired)) {
1959 h_psn_extra[skim[ifill]]->Fill(46.5);
1960 array_psn_extra_fast[skim[ifill]][0][46] = 1;
1962 if (eklm_hit_fired && (CDC_fired)) {
1963 h_psn_extra[skim[ifill]]->Fill(47.5);
1964 array_psn_extra_fast[skim[ifill]][0][47] = 1;
1966 if (mu_b2b_fired && LML_fired) {
1967 h_psn_extra[skim[ifill]]->Fill(48.5);
1968 array_psn_extra_fast[skim[ifill]][0][48] = 1;
1970 if (mu_eb2b_fired && LML_fired) {
1971 h_psn_extra[skim[ifill]]->Fill(49.5);
1972 array_psn_extra_fast[skim[ifill]][0][49] = 1;
1974 if (cdcklm1_fired && LML_fired) {
1975 h_psn_extra[skim[ifill]]->Fill(50.5);
1976 array_psn_extra_fast[skim[ifill]][0][50] = 1;
1978 if (cdcklm2_fired && LML_fired) {
1979 h_psn_extra[skim[ifill]]->Fill(51.5);
1980 array_psn_extra_fast[skim[ifill]][0][51] = 1;
1982 if (klm_hit_fired && LML_fired) {
1983 h_psn_extra[skim[ifill]]->Fill(52.5);
1984 array_psn_extra_fast[skim[ifill]][0][52] = 1;
1986 if (eklm_hit_fired && LML_fired) {
1987 h_psn_extra[skim[ifill]]->Fill(53.5);
1988 array_psn_extra_fast[skim[ifill]][0][53] = 1;
1990 if (cdcecl1_fired && (CDC_fired)) {
1991 h_psn_extra[skim[ifill]]->Fill(54.5);
1992 array_psn_extra_fast[skim[ifill]][0][54] = 1;
1994 if (cdcecl2_fired && (CDC_fired)) {
1995 h_psn_extra[skim[ifill]]->Fill(55.5);
1996 array_psn_extra_fast[skim[ifill]][0][55] = 1;
1998 if (cdcecl3_fired && (CDC_fired)) {
1999 h_psn_extra[skim[ifill]]->Fill(56.5);
2000 array_psn_extra_fast[skim[ifill]][0][56] = 1;
2002 if (cdcecl4_fired && (CDC_fired)) {
2003 h_psn_extra[skim[ifill]]->Fill(57.5);
2004 array_psn_extra_fast[skim[ifill]][0][57] = 1;
2006 if (cdcecl1_fired && LML_fired) {
2007 h_psn_extra[skim[ifill]]->Fill(58.5);
2008 array_psn_extra_fast[skim[ifill]][0][58] = 1;
2010 if (cdcecl2_fired && LML_fired) {
2011 h_psn_extra[skim[ifill]]->Fill(59.5);
2012 array_psn_extra_fast[skim[ifill]][0][59] = 1;
2014 if (cdcecl3_fired && LML_fired) {
2015 h_psn_extra[skim[ifill]]->Fill(60.5);
2016 array_psn_extra_fast[skim[ifill]][0][60] = 1;
2018 if (cdcecl4_fired && LML_fired) {
2019 h_psn_extra[skim[ifill]]->Fill(61.5);
2020 array_psn_extra_fast[skim[ifill]][0][61] = 1;
2022 if (fso_fired && LML_fired) {
2023 h_psn_extra[skim[ifill]]->Fill(62.5);
2024 array_psn_extra_fast[skim[ifill]][0][62] = 1;
2026 if (fsb_fired && LML_fired) {
2027 h_psn_extra[skim[ifill]]->Fill(63.5);
2028 array_psn_extra_fast[skim[ifill]][0][63] = 1;
2030 if (syo_fired && LML_fired) {
2031 h_psn_extra[skim[ifill]]->Fill(64.5);
2032 array_psn_extra_fast[skim[ifill]][0][64] = 1;
2034 if (syb_fired && LML_fired) {
2035 h_psn_extra[skim[ifill]]->Fill(65.5);
2036 array_psn_extra_fast[skim[ifill]][0][65] = 1;
2038 if (x_fired && LML_fired) {
2039 h_psn_extra[skim[ifill]]->Fill(66.5);
2040 array_psn_extra_fast[skim[ifill]][0][66] = 1;
2042 if (fioiecl1_fired && LML_fired) {
2043 h_psn_extra[skim[ifill]]->Fill(67.5);
2044 array_psn_extra_fast[skim[ifill]][0][67] = 1;
2046 if (ecleklm1_fired && LML_fired) {
2047 h_psn_extra[skim[ifill]]->Fill(68.5);
2048 array_psn_extra_fast[skim[ifill]][0][68] = 1;
2050 if (seklm1_fired && LML_fired) {
2051 h_psn_extra[skim[ifill]]->Fill(69.5);
2052 array_psn_extra_fast[skim[ifill]][0][69] = 1;
2054 if (seklm2_fired && LML_fired) {
2055 h_psn_extra[skim[ifill]]->Fill(70.5);
2056 array_psn_extra_fast[skim[ifill]][0][70] = 1;
2058 if (ieklm_fired && LML_fired) {
2059 h_psn_extra[skim[ifill]]->Fill(71.5);
2060 array_psn_extra_fast[skim[ifill]][0][71] = 1;
2062 if (iecl_fired && LML_fired) {
2063 h_psn_extra[skim[ifill]]->Fill(72.5);
2064 array_psn_extra_fast[skim[ifill]][0][72] = 1;
2066 if (ecleklm1_fired && CDC_fired) {
2067 h_psn_extra[skim[ifill]]->Fill(73.5);
2068 array_psn_extra_fast[skim[ifill]][0][73] = 1;
2070 if (syo_fired && ECL_fired) {
2071 h_psn_extra[skim[ifill]]->Fill(74.5);
2072 array_psn_extra_fast[skim[ifill]][0][74] = 1;
2074 if (yioiecl1_fired && ECL_fired) {
2075 h_psn_extra[skim[ifill]]->Fill(75.5);
2076 array_psn_extra_fast[skim[ifill]][0][75] = 1;
2078 if (stt_fired && ECL_fired) {
2079 h_psn_extra[skim[ifill]]->Fill(76.5);
2080 array_psn_extra_fast[skim[ifill]][0][76] = 1;
2082 if (ffz_fired && (ECL_fired)) {
2083 h_psn_extra[skim[ifill]]->Fill(77.5);
2084 array_psn_extra_fast[skim[ifill]][0][77] = 1;
2086 if (fzo_fired && (ECL_fired)) {
2087 h_psn_extra[skim[ifill]]->Fill(78.5);
2088 array_psn_extra_fast[skim[ifill]][0][78] = 1;
2090 if (fzb_fired && (ECL_fired)) {
2091 h_psn_extra[skim[ifill]]->Fill(79.5);
2092 array_psn_extra_fast[skim[ifill]][0][79] = 1;
2094 if (ffy_fired && ffz_fired && (ECL_fired)) {
2095 h_psn_extra[skim[ifill]]->Fill(80.5);
2096 array_psn_extra_fast[skim[ifill]][0][80] = 1;
2098 if (fyo_fired && fzo_fired && (ECL_fired)) {
2099 h_psn_extra[skim[ifill]]->Fill(81.5);
2100 array_psn_extra_fast[skim[ifill]][0][81] = 1;
2102 if (fyb_fired && fzb_fired && (ECL_fired)) {
2103 h_psn_extra[skim[ifill]]->Fill(82.5);
2104 array_psn_extra_fast[skim[ifill]][0][82] = 1;
2106 if ((ffy_fired || ffz_fired) && (ECL_fired)) {
2107 h_psn_extra[skim[ifill]]->Fill(83.5);
2108 array_psn_extra_fast[skim[ifill]][0][83] = 1;
2110 if ((fyo_fired || fzo_fired) && (ECL_fired)) {
2111 h_psn_extra[skim[ifill]]->Fill(84.5);
2112 array_psn_extra_fast[skim[ifill]][0][84] = 1;
2114 if ((fyb_fired || fzb_fired) && (ECL_fired)) {
2115 h_psn_extra[skim[ifill]]->Fill(85.5);
2116 array_psn_extra_fast[skim[ifill]][0][85] = 1;
2118 if (ffy_fired && ffz_fired) {
2119 h_psn_extra[skim[ifill]]->Fill(86.5);
2120 array_psn_extra_fast[skim[ifill]][0][86] = 1;
2122 if (fyo_fired && fzo_fired) {
2123 h_psn_extra[skim[ifill]]->Fill(87.5);
2124 array_psn_extra_fast[skim[ifill]][0][87] = 1;
2126 if (fyb_fired && fzb_fired) {
2127 h_psn_extra[skim[ifill]]->Fill(88.5);
2128 array_psn_extra_fast[skim[ifill]][0][88] = 1;
2130 if (ffy_fired || ffz_fired) {
2131 h_psn_extra[skim[ifill]]->Fill(89.5);
2132 array_psn_extra_fast[skim[ifill]][0][89] = 1;
2134 if (fyo_fired || fzo_fired) {
2135 h_psn_extra[skim[ifill]]->Fill(90.5);
2136 array_psn_extra_fast[skim[ifill]][0][90] = 1;
2138 if (fyb_fired || fzb_fired) {
2139 h_psn_extra[skim[ifill]]->Fill(91.5);
2140 array_psn_extra_fast[skim[ifill]][0][91] = 1;
2143 h_psn_extra[skim[ifill]]->Fill(92.5);
2144 array_psn_extra_fast[skim[ifill]][0][92] = 1;
2147 h_psn_extra[skim[ifill]]->Fill(93.5);
2148 array_psn_extra_fast[skim[ifill]][0][93] = 1;
2150 if (aaa_fired && ECL_fired) {
2151 h_psn_extra[skim[ifill]]->Fill(94.5);
2152 array_psn_extra_fast[skim[ifill]][0][94] = 1;
2154 if (aay_fired && ECL_fired) {
2155 h_psn_extra[skim[ifill]]->Fill(95.5);
2156 array_psn_extra_fast[skim[ifill]][0][95] = 1;
2158 if (ycdcklm1_fired && (CDC_fired)) {
2159 h_psn_extra[skim[ifill]]->Fill(96.5);
2160 array_psn_extra_fast[skim[ifill]][0][96] = 1;
2162 if (ycdcklm2_fired && (CDC_fired)) {
2163 h_psn_extra[skim[ifill]]->Fill(97.5);
2164 array_psn_extra_fast[skim[ifill]][0][97] = 1;
2166 if (ycdcklm1_fired && LML_fired) {
2167 h_psn_extra[skim[ifill]]->Fill(98.5);
2168 array_psn_extra_fast[skim[ifill]][0][98] = 1;
2170 if (ycdcklm2_fired && LML_fired) {
2171 h_psn_extra[skim[ifill]]->Fill(99.5);
2172 array_psn_extra_fast[skim[ifill]][0][99] = 1;
2174 if (sttecl_fired && ECL_fired) {
2175 h_psn_extra[skim[ifill]]->Fill(100.5);
2176 array_psn_extra_fast[skim[ifill]][0][100] = 1;
2178 if (syoecl_fired && LML_fired) {
2179 h_psn_extra[skim[ifill]]->Fill(101.5);
2180 array_psn_extra_fast[skim[ifill]][0][101] = 1;
2182 if (sybecl_fired && LML_fired) {
2183 h_psn_extra[skim[ifill]]->Fill(102.5);
2184 array_psn_extra_fast[skim[ifill]][0][102] = 1;
2186 if (syoecl_fired && ECL_fired) {
2187 h_psn_extra[skim[ifill]]->Fill(103.5);
2188 array_psn_extra_fast[skim[ifill]][0][103] = 1;
2190 if (sybecl_fired && ECL_fired) {
2191 h_psn_extra[skim[ifill]]->Fill(104.5);
2192 array_psn_extra_fast[skim[ifill]][0][104] = 1;
2196 for (
int ibin = 0; ibin < n_output_extra; ibin++) {
2197 int sum_psn_extra_fast = 0;
2198 for (
int i = 0; i < nsample_fast; i++) {
2199 sum_psn_extra_fast += array_psn_extra_fast[skim[ifill]][i][ibin];
2201 h_psn_extra_fast[skim[ifill]]->SetBinContent(ibin + 1, sum_psn_extra_fast);
2207const char* TRGGDLDQMModule::output_extra[n_output_extra] = {
2208 "all",
"fff&(c4|hie)",
"ffo&(c4|hie)",
"ffb&(c4|hie)",
"fff",
"c4|hie",
"fff|ffo|ffb",
"(fff|ffo|ffb)&(c4|hie)",
"bha2D",
"bha3D",
2209 "ff",
"ff&(lml|eclmumu)",
"f",
"f&(lml|eclmumu)",
"lml|eclmumu",
"fff&(lml|eclmumu)",
"ffo&(lml|eclmumu)",
"ffb&(lml|eclmumu)",
"ffy",
"ffy&(c4|hie)",
2210 "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)",
2211 "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)",
2212 "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)",
2213 "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)",
2214 "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)",
2215 "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)",
2216 "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)",
2217 "(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)",
2218 "sttecl&(c4|hie)",
"syoecl&(lml|eclmumu)",
"sybecl&(lml|eclmumu)",
"syoecl&(c4|hie)",
"sybecl&(c4|hie)"
2224const char* TRGGDLDQMModule::output_overlap[n_output_overlap] = {
2225 "all",
"B_CDC",
"B_ECL",
"L_KLM",
"L_CDC",
"L_ECL",
"CALIB",
"MONITOR",
"OTHER",
"B_ffy",
2226 "B_fyo",
"B_c4",
"B_hie",
"L_klm",
"L_klm_match",
"L_stt",
"L_short",
"L_fy30",
"L_inner",
"L_lml",
2227 "CALIB_gg",
"CALIB_bhapur",
"CALIB_pid",
"CALIB_wo_bhaveto",
"CALIB_eclmumu",
"CALIB_lml1",
"CALIB_lml4",
"CALIB_noveto",
"CALIB_random",
"MON_ffz",
2228 "MON_fzo",
"MONITOR_all",
"OTHER_all",
2331TRGGDLDQMModule::fillOutputPureExtra(
void)
2334 int n_fulltrack = 0;
2336 float phi_list[100];
2337 for (
int itrack = 0; itrack < Tracks.getEntries(); itrack++) {
2339 if (tfr ==
nullptr)
continue;
2341 float z0 = tfr->
getZ0();
2342 float d0 = tfr->
getD0();
2343 float phi = tfr->
getPhi();
2348 if (z0 > -1 && z0 < 1 && d0 > -1 && d0 < 1 && flayer < 8 && llayer > 50
2350 phi_list[n_fulltrack] = phi;
2354 for (
int i = 0; i < n_fulltrack; i++) {
2355 for (
int j = 0; j < n_fulltrack; j++) {
2356 float dphi = phi_list[i] - phi_list[j];
2357 if (dphi < 0) dphi = -dphi;
2358 if (dphi > 3.14) dphi = 2 * 3.14 - dphi;
2359 if (dphi > max_dphi) max_dphi = dphi;
2370 int ecl_timing_threshold_low = -200;
2371 int ecl_timing_threshold_high = 200;
2372 double ecl_xtcid_energy_sum[576] = {0};
2373 double total_energy = 0;
2375 for (
const auto& eclcalhit : m_ECLCalDigitData) {
2378 if (!eclcalhit.isCalibrated()) {
continue;}
2379 if (eclcalhit.isFailedFit()) {
continue;}
2380 if (eclcalhit.isTimeResolutionFailed()) {
continue;}
2383 int ecl_cid = (double) eclcalhit.getCellId();
2386 int ecl_quality = -1;
2387 for (
const auto& eclhit : m_ECLDigitData) {
2388 if (ecl_cid == eclhit.getCellId()) {
2389 ecl_quality = (int) eclhit.getQuality();
2392 if (ecl_quality != 0) {
continue;}
2395 double ecl_xtal_energy = eclcalhit.getEnergy();
2399 int ecl_timing = eclcalhit.getTime();
2400 if (ecl_timing < ecl_timing_threshold_low ||
2401 ecl_timing > ecl_timing_threshold_high) {
continue;}
2407 if (ecl_tcid >= 0 && ecl_tcid < 576 && ecl_thetaid >= 2 && ecl_thetaid <= 15) {
2408 ecl_xtcid_energy_sum[ecl_tcid] = ecl_xtcid_energy_sum[ecl_tcid] + ecl_xtal_energy;
2413 for (
int i = 0; i < 576; i++) {
2414 if (ecl_xtcid_energy_sum[i] > 0.1) {
2415 total_energy += ecl_xtcid_energy_sum[i];
2424 if (n_fulltrack > 2) {
2425 bool fff_fired = isFired_quick(
"fff");
2426 bool ffy_fired = isFired_quick(
"ffy");
2427 bool c4_fired = isFired_quick(
"c4");
2428 bool hie_fired = isFired_quick(
"hie");
2429 if (c4_fired || hie_fired) {
2430 h_psn_pure_extra[0]->Fill(0.5);
2432 if (fff_fired && (c4_fired || hie_fired)) {
2433 h_psn_pure_extra[0]->Fill(1.5);
2435 if (ffy_fired && (c4_fired || hie_fired)) {
2436 h_psn_pure_extra[0]->Fill(2.5);
2440 if (n_fulltrack > 1 && max_dphi > 3.14 / 2.) {
2441 bool ffo_fired = isFired_quick(
"ffo");
2442 bool fyo_fired = isFired_quick(
"fyo");
2443 bool c4_fired = isFired_quick(
"c4");
2444 bool hie_fired = isFired_quick(
"hie");
2445 if (c4_fired || hie_fired) {
2446 h_psn_pure_extra[0]->Fill(3.5);
2448 if (ffo_fired && (c4_fired || hie_fired)) {
2449 h_psn_pure_extra[0]->Fill(4.5);
2451 if (fyo_fired && (c4_fired || hie_fired)) {
2452 h_psn_pure_extra[0]->Fill(5.5);
2456 if (n_fulltrack > 1 && max_dphi > 3.14 * 5 / 6.) {
2457 bool ffb_fired = isFired_quick(
"ffb");
2458 bool fyb_fired = isFired_quick(
"fyb");
2459 bool c4_fired = isFired_quick(
"c4");
2460 bool hie_fired = isFired_quick(
"hie");
2461 if (c4_fired || hie_fired) {
2462 h_psn_pure_extra[0]->Fill(6.5);
2464 if (ffb_fired && (c4_fired || hie_fired)) {
2465 h_psn_pure_extra[0]->Fill(7.5);
2467 if (fyb_fired && (c4_fired || hie_fired)) {
2468 h_psn_pure_extra[0]->Fill(8.5);
2473 if (total_energy > 1) {
2474 bool fff_fired = isFired_quick(
"fff");
2475 bool ffo_fired = isFired_quick(
"ffo");
2476 bool ffb_fired = isFired_quick(
"ffb");
2477 bool hie_fired = isFired_quick(
"hie");
2478 if (fff_fired || ffo_fired || ffb_fired) {
2479 h_psn_pure_extra[0]->Fill(9.5);
2481 if (hie_fired && (fff_fired || ffo_fired || ffb_fired)) {
2482 h_psn_pure_extra[0]->Fill(10.5);
2488 bool fff_fired = isFired_quick(
"fff");
2489 bool ffo_fired = isFired_quick(
"ffo");
2490 bool ffb_fired = isFired_quick(
"ffb");
2491 bool c4_fired = isFired_quick(
"c4");
2492 if (fff_fired || ffo_fired || ffb_fired) {
2493 h_psn_pure_extra[0]->Fill(11.5);
2495 if (c4_fired && (fff_fired || ffo_fired || ffb_fired)) {
2496 h_psn_pure_extra[0]->Fill(12.5);
2502const char* TRGGDLDQMModule::output_pure_extra[n_output_pure_extra] = {
2503 "c4|hie offline_fff",
"fff&(c4|hie) offline_fff",
"ffy&(c4|hie) offline_fff",
2504 "c4|hie offline_ffo",
"ffo&(c4|hie) offline_ffo",
"fyo&(c4|hie) offline_ffo",
2505 "c4|hie offline_ffb",
"ffb&(c4|hie) offline_ffb",
"fyb&(c4|hie) offline_ffb",
2506 "fff|ffb|ffo offline_hie",
"hie&(fff|ffb|ffo) offline_hie",
2507 "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
TRGGDLDQMModule()
Costructor.
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.