262 B2INFO(
"trgrawdata: event() started.");
266 int _exp = bevt->getExperiment();
267 int _run = bevt->getRun();
268 unsigned _eve = bevt->getEvent();
270 std::cout <<
"**************_eve(" << _eve
272 <<
"), m_nclk_cdctrg(" << m_nclk_cdctrg
273 <<
"), _exp(" << _exp
274 <<
"), _run(" << _run
275 <<
"), _eve(" << _eve
276 <<
"), _Form(" << Form(
"he%010d", (
int)_eve)
279 TH2D* h_0 =
new TH2D(Form(
"he%010d", (
int)_eve),
280 Form(
"e%02dr%04d ev %08d", _exp, _run, (
int)_eve),
282 m_nclk_cdctrg, 0, m_nclk_cdctrg);
285 h_0->GetXaxis()->SetBinLabel(4 * i + 1, Form(
"%s hdevt", moduleNames[i]));
286 h_0->GetXaxis()->SetBinLabel(4 * i + 2, Form(
"%s dtevt", moduleNames[i]));
287 h_0->GetXaxis()->SetBinLabel(4 * i + 3, Form(
"%s L1rvc", moduleNames[i]));
288 h_0->GetXaxis()->SetBinLabel(4 * i + 4, Form(
"%s cc", moduleNames[i]));
294 unsigned gdlrvc12 = -1;
295 for (
int i = 0; i < raw_trgarray.
getEntries(); i++) {
296 for (
int j = 0; j < raw_trgarray[i]->GetNumEntries(); j++) {
297 int cprid = (int)raw_trgarray[i]->GetNodeID(j);
298 unsigned eve20 = (_eve & 0xfffff);
299 for (
int hslb = 0; hslb < 2; hslb++) {
300 int nword = raw_trgarray[i]->GetDetectorNwords(j, hslb);
301 int* buf = raw_trgarray[i]->GetDetectorBuffer(j, hslb);
302 if (0x15000001 == cprid && hslb == 0) {
305 printf(
"aa:GDL start: 0x%x%c exp(%d), run(%d), eve(%u), eve(0x%x), nword(%d)\n",
306 cprid,
'a' + hslb, _exp, _run, _eve, _eve, nword);
310 if (nword > 0) buf0 = (unsigned)buf[0];
312 if (nword > 1) buf1 = (unsigned)buf[1];
314 if (nword > 2) buf2 = (unsigned)buf[2];
319 m_cntr_nwe_badnwd[e_gdl]++;
320 printf(
"ab:GDL(0x%x%c) exp(%d), run(%d), eve(%u), eve(0x%x), nword(%d), ",
321 cprid,
'a' + hslb, _exp, _run, _eve, _eve, nword);
322 printf(
"buf0(0x%x), buf1(0x%x), buf2(0x%x)\n", buf0, buf1, buf2);
327 printf(
"ad:GDL(0x%x%c) exp(%d), run(%d), eve(%u), eve(0x%x), nword(%d)\n",
328 cprid,
'a' + hslb, _exp, _run, _eve, _eve, nword);
329 m_cntr_nwe_badnwd[e_gdl]++;
331 unsigned buf5 = (unsigned)buf[m_hdr_nwd_gdl - 1];
333 unsigned buf6 = (unsigned)buf[626];
334 unsigned buf7 = (unsigned)buf[627];
335 unsigned lastdd = (buf6 >> 24) & 0xff;
336 unsigned last_rvc = (buf6 >> 4) & 0xfff;
337 unsigned cnttrg_data_15to12 = buf6 & (0xf);
338 unsigned cnttrg_data_12 = (buf7 >> 20) & (0xfff);
339 gdlrvc12 = (buf5 & 0xfff);
340 unsigned gdlhdrcnttrg20 = (buf5 >> 12) & 0xfffff;
347 unsigned cnttrg_data_16 = (cnttrg_data_15to12 << 12) + cnttrg_data_12;
348 unsigned eve16 = (_eve & 0xffff);
350 h_0->SetBinContent(4 * (
int)e_gdl + 1, m_nclk_gdl, gdlhdrcnttrg20);
351 h_0->SetBinContent(4 * (
int)e_gdl + 2, m_nclk_gdl, cnttrg_data_16);
352 h_0->SetBinContent(4 * (
int)e_gdl + 3, m_nclk_gdl, gdlrvc12);
354 if (nword != m_nwd_gdl || buf0 != m_fmid_gdl || lastdd != 0xdd ||
355 gdlhdrcnttrg20 != eve20 ||
356 !(eve16 == cnttrg_data_16 + 1 || (eve16 == 0 && cnttrg_data_16 == 0xffff))
360 diag |= (nword != m_nwd_gdl) ? 1 : 0;
361 diag |= (buf0 != m_fmid_gdl) ? 2 : 0;
362 diag |= (lastdd != 0xdd) ? 4 : 0;
363 diag |= (gdlhdrcnttrg20 != eve20) ? 8 : 0;
364 diag |= !(eve16 == cnttrg_data_16 + 1 || (eve16 == 0 && cnttrg_data_16 == 0xffff)) ? 16 : 0;
365 printf(
"ae:GDL(0x%x%c) exp(%d), run(%d), evedaq(%u=0x%x), gdlhdrcnttrg20(%u,0x%x), "
366 "cnttrg_data16(%u=0x%x), l1rvc(%u)-lastrvc(%u)=%u, nword(%d), diag(%u)\n",
367 cprid,
'a' + hslb, _exp, _run, _eve, _eve, gdlhdrcnttrg20, gdlhdrcnttrg20,
368 cnttrg_data_16, cnttrg_data_16, gdlrvc12, last_rvc, gdlrvc12 - last_rvc, nword, diag);
370 m_cntr_nwn_badtrg[e_gdl]++;
381 for (
int i = 0; i < raw_trgarray.
getEntries(); i++) {
382 for (
int j = 0; j < raw_trgarray[i]->GetNumEntries(); j++) {
383 unsigned cprid = raw_trgarray[i]->GetNodeID(j);
385 unsigned eve20 = (_eve & 0xfffff);
386 for (
int hslb = 0; hslb < 2; hslb++) {
389 unsigned _scale = -1;
391 unsigned _hdr_nwd = 3;
392 if (m_cpr_2d0 == cprid && hslb == 0 && m_on_2d0) {
393 e_mdl = e_2d0; _nwd = m_nwd_2ds; _scale = m_scale_2ds; _nclk = m_nclk_2ds; _hdr_nwd = m_hdr_nwd_2d0;
394 }
else if (m_cpr_2d1 == cprid && hslb == 1 && m_on_2d1) {
395 e_mdl = e_2d1; _nwd = m_nwd_2ds; _scale = m_scale_2ds; _nclk = m_nclk_2ds; _hdr_nwd = m_hdr_nwd_2d1;
396 }
else if (m_cpr_2d2 == cprid && hslb == 0 && m_on_2d2) {
397 e_mdl = e_2d2; _nwd = m_nwd_2ds; _scale = m_scale_2ds; _nclk = m_nclk_2ds; _hdr_nwd = m_hdr_nwd_2d2;
398 }
else if (m_cpr_2d3 == cprid && hslb == 1 && m_on_2d3) {
399 e_mdl = e_2d3; _nwd = m_nwd_2ds; _scale = m_scale_2ds; _nclk = m_nclk_2ds; _hdr_nwd = m_hdr_nwd_2d3;
400 }
else if (m_cpr_3d0 == cprid && hslb == 0 && m_on_3d0) {
401 e_mdl = e_3d0; _nwd = m_nwd_3ds; _scale = m_scale_3ds; _nclk = m_nclk_3ds; _hdr_nwd = m_hdr_nwd_3d0;
402 }
else if (m_cpr_3d1 == cprid && hslb == 1 && m_on_3d1) {
403 e_mdl = e_3d1; _nwd = m_nwd_3ds; _scale = m_scale_3ds; _nclk = m_nclk_3ds; _hdr_nwd = m_hdr_nwd_3d1;
404 }
else if (m_cpr_3d2 == cprid && hslb == 0 && m_on_3d2) {
405 e_mdl = e_3d2; _nwd = m_nwd_3ds; _scale = m_scale_3ds; _nclk = m_nclk_3ds; _hdr_nwd = m_hdr_nwd_3d2;
406 }
else if (m_cpr_3d3 == cprid && hslb == 1 && m_on_3d3) {
407 e_mdl = e_3d3; _nwd = m_nwd_3ds; _scale = m_scale_3ds; _nclk = m_nclk_3ds; _hdr_nwd = m_hdr_nwd_3d3;
408 }
else if (m_cpr_nn0 == cprid && hslb == 0 && m_on_nn0) {
409 e_mdl = e_nn0; _nwd = m_nwd_nns; _scale = m_scale_nns; _nclk = m_nclk_nns; _hdr_nwd = m_hdr_nwd_nn0;
410 }
else if (m_cpr_nn1 == cprid && hslb == 1 && m_on_nn1) {
411 e_mdl = e_nn1; _nwd = m_nwd_nns; _scale = m_scale_nns; _nclk = m_nclk_nns; _hdr_nwd = m_hdr_nwd_nn1;
412 }
else if (m_cpr_nn2 == cprid && hslb == 0 && m_on_nn2) {
413 e_mdl = e_nn2; _nwd = m_nwd_nns; _scale = m_scale_nns; _nclk = m_nclk_nns; _hdr_nwd = m_hdr_nwd_nn2;
414 }
else if (m_cpr_nn3 == cprid && hslb == 1 && m_on_nn3) {
415 e_mdl = e_nn3; _nwd = m_nwd_nns; _scale = m_scale_nns; _nclk = m_nclk_nns; _hdr_nwd = m_hdr_nwd_nn3;
416 }
else if (m_cpr_sl0 == cprid && hslb == 0 && m_on_sl0) {
417 e_mdl = e_sl0; _nwd = m_nwd_sl0; _scale = m_scale_sl0; _nclk = m_nclk_sl0; _hdr_nwd = m_hdr_nwd_sl0;
418 }
else if (m_cpr_sl1 == cprid && hslb == 0 && m_on_sl1) {
419 e_mdl = e_sl1; _nwd = m_nwd_sl1; _scale = m_scale_sl1; _nclk = m_nclk_sl1; _hdr_nwd = m_hdr_nwd_sl1;
420 }
else if (m_cpr_sl2 == cprid && hslb == 0 && m_on_sl2) {
421 e_mdl = e_sl2; _nwd = m_nwd_sl2; _scale = m_scale_sl2; _nclk = m_nclk_sl2; _hdr_nwd = m_hdr_nwd_sl2;
422 }
else if (m_cpr_sl3 == cprid && hslb == 1 && m_on_sl3) {
423 e_mdl = e_sl3; _nwd = m_nwd_sl3; _scale = m_scale_sl3; _nclk = m_nclk_sl3; _hdr_nwd = m_hdr_nwd_sl3;
424 }
else if (m_cpr_sl4 == cprid && hslb == 1 && m_on_sl4) {
425 e_mdl = e_sl4; _nwd = m_nwd_sl4; _scale = m_scale_sl4; _nclk = m_nclk_sl4; _hdr_nwd = m_hdr_nwd_sl4;
426 }
else if (m_cpr_sl5 == cprid && hslb == 1 && m_on_sl5) {
427 e_mdl = e_sl5; _nwd = m_nwd_sl5; _scale = m_scale_sl5; _nclk = m_nclk_sl5; _hdr_nwd = m_hdr_nwd_sl5;
428 }
else if (m_cpr_sl6 == cprid && hslb == 0 && m_on_sl6) {
429 e_mdl = e_sl6; _nwd = m_nwd_sl6; _scale = m_scale_sl6; _nclk = m_nclk_sl6; _hdr_nwd = m_hdr_nwd_sl6;
430 }
else if (m_cpr_sl8 == cprid && hslb == 0 && m_on_sl8) {
431 e_mdl = e_sl8; _nwd = m_nwd_sl8; _scale = m_scale_sl8; _nclk = m_nclk_sl8; _hdr_nwd = m_hdr_nwd_sl8;
432 }
else if (m_cpr_etf == cprid && hslb == 1 && m_on_etf) {
433 e_mdl = e_etf; _nwd = m_nwd_etf; _scale = m_scale_etf; _nclk = m_nclk_etf; _hdr_nwd = m_hdr_nwd_etf;
434 }
else if (m_cpr_top == cprid && hslb == 0 && m_on_top) {
435 e_mdl = e_top; _nwd = m_nwd_top; _scale = m_scale_top; _nclk = m_nclk_top; _hdr_nwd = m_hdr_nwd_top;
440 unsigned nword = raw_trgarray[i]->GetDetectorNwords(j, hslb);
441 int* buf = raw_trgarray[i]->GetDetectorBuffer(j, hslb);
443 if (nword > 0) buf0 = (unsigned)buf[0];
445 if (nword > 1) buf1 = (unsigned)buf[1];
447 if (nword > 2) buf2 = (unsigned)buf[2];
448 unsigned buf2cnttrg20 = (buf2 >> 12) & 0xfffff;
449 unsigned buf2rvc12 = (buf2 & 0xfff);
453 m_cntr_nwe_badnwd[e_mdl]++;
454 printf(
"ah:%s(0x%x%c) exp(%d), run(%d), eve(%u), eve(0x%x), nword(%u), ",
455 moduleNames[e_mdl], cprid,
'a' + hslb, _exp, _run, _eve, _eve, nword);
456 printf(
"buf0(0x%x), buf1(0x%x), buf2(0x%x)\n", buf0, buf1, buf2);
458 }
else if (nword == _hdr_nwd) {
460 if (gdlrvc12 != buf2rvc12) {
461 printf(
"ai:%s(0x%x%c) exp(%d), run(%d), eve(%u,0x%x), nword(%u), gdlrvc12(0x%x), buf2rvc12(0x%x)\n",
462 moduleNames[e_mdl], cprid,
'a' + hslb, _exp, _run, _eve, _eve, nword, gdlrvc12, buf2rvc12);
463 m_cntr_nw3_badrvc[e_mdl]++;
464 }
else if (eve20 != buf2cnttrg20) {
465 printf(
"aj:%s(0x%x%c) exp(%d), run(%d), eve(%u,0x%x), nword(%u), cnttrg20(0x%x)\n",
466 moduleNames[e_mdl], cprid,
'a' + hslb, _exp, _run, _eve, _eve, nword, buf2cnttrg20);
467 m_cntr_nw3_badtrg[e_mdl]++;
468 }
else if ((_eve % _scale) == 0) {
469 m_cntr_nw3_badvet[e_mdl]++;
474 }
else if (nword != _nwd) {
476 printf(
"bo:wrong nword: %s(0x%x%c) exp(%d), run(%d), eve(%u,0x%x), nword(%u), buf0(0x%x), buf2(0x%x)\n",
477 moduleNames[e_mdl], cprid,
'a' + hslb, _exp, _run, _eve, _eve, nword, buf0, buf2);
478 m_cntr_nwe_badnwd[e_mdl]++;
482 unsigned buf3 = (unsigned)buf[_hdr_nwd];
483 unsigned buf3dddd = ((buf3 >> 16) & 0xffff);
484 unsigned buf4 = (unsigned)buf[_hdr_nwd + 1];
485 unsigned buf5 = (unsigned)buf[_hdr_nwd + 2];
486 unsigned wdperclk = (_nwd - _hdr_nwd) / _nclk;
488 unsigned ibuf_lastclk_msw = _nwd - wdperclk;
490 unsigned buf_lastclk_msw2 = (unsigned)buf[ibuf_lastclk_msw + 1];
491 unsigned buf_lastclk_msw3 = (unsigned)buf[ibuf_lastclk_msw + 2];
493 unsigned datacnttrg32 = 0;
494 unsigned buf4_msb16 = (buf4 & 0xffff);
495 unsigned buf5_lsb16 = ((buf5 >> 16) & 0xffff);
498 printf(
"af:Debug0: %s(0x%x%c) exp(%d), run(%d), eve(%u), eve(0x%x), nword(%u)\n",
499 moduleNames[e_mdl], cprid,
'a' + hslb, _exp, _run, _eve, _eve, nword);
509 if ((0x11000009 == cprid && hslb == 0) ||
510 (0x11000008 == cprid && hslb == 1) ||
511 (0x11000009 == cprid && hslb == 1)
522 }
else if ((0x11000007 == cprid && hslb == 0) ||
523 (0x11000007 == cprid && hslb == 1) ||
524 (0x1100000a == cprid && hslb == 0)
535 datacnttrg32 = (buf4_msb16 << 16) + buf5_lsb16;
537 }
else if ((m_cpr_2d0 == cprid && hslb == 0 && m_on_2d0) ||
538 (m_cpr_2d1 == cprid && hslb == 1 && m_on_2d1) ||
539 (m_cpr_2d2 == cprid && hslb == 0 && m_on_2d2) ||
540 (m_cpr_2d3 == cprid && hslb == 1 && m_on_2d3)) {
545 unsigned buf_lastclk_lsb = (unsigned)buf[_nwd - 1];
546 unsigned buf_lastclk_lsb2 = (unsigned)buf[_nwd - 2];
550 datacnttrg32 = ((buf_lastclk_lsb2 & 0xff) << 24) + (buf_lastclk_lsb >> 8);
552 }
else if ((m_cpr_3d0 == cprid && hslb == 0 && m_on_3d0) ||
553 (m_cpr_3d1 == cprid && hslb == 1 && m_on_3d1) ||
554 (m_cpr_3d2 == cprid && hslb == 0 && m_on_3d2) ||
555 (m_cpr_3d3 == cprid && hslb == 1 && m_on_3d3)) {
565 unsigned datacnttrg_msb16 = (buf_lastclk_msw2 & 0xffff);
566 unsigned datacnttrg_lsb16 = ((buf_lastclk_msw3 >> 16) & 0xffff);
567 datacnttrg32 = (datacnttrg_msb16 << 16) + datacnttrg_lsb16;
569 }
else if ((m_cpr_nn0 == cprid && hslb == 0 && m_on_nn0) ||
570 (m_cpr_nn1 == cprid && hslb == 1 && m_on_nn1) ||
571 (m_cpr_nn2 == cprid && hslb == 0 && m_on_nn2) ||
572 (m_cpr_nn3 == cprid && hslb == 1 && m_on_nn3)) {
594 unsigned datacnttrg_msb16 = (buf_lastclk_msw2 & 0xffff);
595 unsigned datacnttrg_lsb16 = ((buf_lastclk_msw3 >> 16) & 0xffff);
596 datacnttrg32 = (datacnttrg_msb16 << 16) + datacnttrg_lsb16;
597 }
else if (m_cpr_top == cprid && hslb == 0 && m_on_top) {
601 bool something_bad =
false;
602 h_0->SetBinContent(4 * e_mdl + 1, _nclk, buf2cnttrg20);
603 h_0->SetBinContent(4 * e_mdl + 2, _nclk, datacnttrg32);
604 h_0->SetBinContent(4 * e_mdl + 3, _nclk, buf2rvc12);
605 if (gdlrvc12 != buf2rvc12) {
606 printf(
"ba:%s(0x%x%c) exp(%d), run(%d), eve(%u,0x%x), nword(%u), gdlrvc12(0x%x), buf2rvc12(0x%x)\n",
607 moduleNames[e_mdl], cprid,
'a' + hslb, _exp, _run, _eve, _eve, nword, gdlrvc12, buf2rvc12);
608 m_cntr_nwn_badrvc[e_mdl]++;
609 something_bad =
true;
611 if (buf3dddd == 0xbbbb) {
612 m_cntr_nwn_badbbb[e_mdl]++;
613 printf(
"bv:%s(0x%x%c) exp(%d), run(%d), eve(%u,0x%x), nword(%u), cnttrg20(0x%x), dddd(0x%x), datacnttrg32(0x%x)\n",
614 moduleNames[e_mdl], cprid,
'a' + hslb, _exp, _run, _eve, _eve, nword, buf2cnttrg20, buf3dddd, datacnttrg32);
615 something_bad =
true;
617 if (buf3dddd != 0xdddd) {
618 m_cntr_nwn_badddd[e_mdl]++;
619 printf(
"bb:%s(0x%x%c) exp(%d), run(%d), eve(%u,0x%x), nword(%u), cnttrg20(0x%x), dddd(0x%x), datacnttrg32(0x%x)\n",
620 moduleNames[e_mdl], cprid,
'a' + hslb, _exp, _run, _eve, _eve, nword, buf2cnttrg20, buf3dddd, datacnttrg32);
621 something_bad =
true;
623 if (datacnttrg32 + 1 != _eve) {
625 (m_cpr_top == cprid) ||
626 (m_cpr_3d0 <= cprid && cprid <= m_cpr_3d3)
629 printf(
"bc:%s(0x%x%c) exp(%d), run(%d), eve(%u,0x%x), nword(%u), cnttrg20(0x%x), dddd(0x%x), datacnttrg32(0x%x)\n",
630 moduleNames[e_mdl], cprid,
'a' + hslb, _exp, _run, _eve, _eve, nword, buf2cnttrg20, buf3dddd, datacnttrg32);
631 m_cntr_nwn_badtrg[e_mdl]++;
632 something_bad =
true;
635 if (! something_bad) m_cntr_nwn[e_mdl]++;
642 for (
int i = 0; i < raw_trgarray.
getEntries(); i++) {
643 for (
int j = 0; j < raw_trgarray[i]->GetNumEntries(); j++) {
644 unsigned cprid = raw_trgarray[i]->GetNodeID(j);
647 unsigned _eveRaw = raw_trgarray[i]->GetEveNo(j);
648 if ((0x11000001 <= cprid && cprid <= 0x1100000a) ||
649 (0x15000001 <= cprid && cprid <= 0x15000002) ||
650 (0x12000001 == cprid)
655 for (
int hslb = 0; hslb < 2; hslb++) {
656 int nclks = m_nclk_cdctrg;
657 unsigned _hdr_nwd = 3;
660 if (m_cpr_top == cprid && hslb == 0 && m_on_top) {
661 e_mdl = e_top; _nwd = m_nwd_top;
662 nclks = m_nclk_top; _hdr_nwd = m_hdr_nwd_top;
663 }
else if (m_cpr_2d0 == cprid && hslb == 0 && m_on_2d0) {
664 e_mdl = e_2d0; _nwd = m_nwd_2ds; _hdr_nwd = m_hdr_nwd_2d0;
665 }
else if (m_cpr_2d1 == cprid && hslb == 1 && m_on_2d1) {
666 e_mdl = e_2d1; _nwd = m_nwd_2ds; _hdr_nwd = m_hdr_nwd_2d1;
667 }
else if (m_cpr_2d2 == cprid && hslb == 0 && m_on_2d2) {
668 e_mdl = e_2d2; _nwd = m_nwd_2ds; _hdr_nwd = m_hdr_nwd_2d2;
669 }
else if (m_cpr_2d3 == cprid && hslb == 1 && m_on_2d3) {
670 e_mdl = e_2d3; _nwd = m_nwd_2ds; _hdr_nwd = m_hdr_nwd_2d3;
671 }
else if (m_cpr_3d0 == cprid && hslb == 0 && m_on_3d0) {
672 e_mdl = e_3d0; _nwd = m_nwd_3ds; _hdr_nwd = m_hdr_nwd_3d0;
673 }
else if (m_cpr_3d1 == cprid && hslb == 1 && m_on_3d1) {
674 e_mdl = e_3d1; _nwd = m_nwd_3ds; _hdr_nwd = m_hdr_nwd_3d1;
675 }
else if (m_cpr_3d2 == cprid && hslb == 0 && m_on_3d2) {
676 e_mdl = e_3d2; _nwd = m_nwd_3ds; _hdr_nwd = m_hdr_nwd_3d2;
677 }
else if (m_cpr_3d3 == cprid && hslb == 1 && m_on_3d3) {
678 e_mdl = e_3d3; _nwd = m_nwd_3ds; _hdr_nwd = m_hdr_nwd_3d3;
679 }
else if (m_cpr_nn0 == cprid && hslb == 0 && m_on_nn0) {
680 e_mdl = e_nn0; _nwd = m_nwd_nns; _hdr_nwd = m_hdr_nwd_nn0;
681 }
else if (m_cpr_nn1 == cprid && hslb == 1 && m_on_nn1) {
682 e_mdl = e_nn1; _nwd = m_nwd_nns; _hdr_nwd = m_hdr_nwd_nn1;
683 }
else if (m_cpr_nn2 == cprid && hslb == 0 && m_on_nn2) {
684 e_mdl = e_nn2; _nwd = m_nwd_nns; _hdr_nwd = m_hdr_nwd_nn2;
685 }
else if (m_cpr_nn3 == cprid && hslb == 1 && m_on_nn3) {
686 e_mdl = e_nn3; _nwd = m_nwd_nns; _hdr_nwd = m_hdr_nwd_nn3;
687 }
else if (m_cpr_sl0 == cprid && hslb == 0 && m_on_sl0) {
688 e_mdl = e_sl0; _nwd = m_nwd_sl0; _hdr_nwd = m_hdr_nwd_sl0;
689 }
else if (m_cpr_sl1 == cprid && hslb == 0 && m_on_sl1) {
690 e_mdl = e_sl1; _nwd = m_nwd_sl1; _hdr_nwd = m_hdr_nwd_sl1;
691 }
else if (m_cpr_sl2 == cprid && hslb == 0 && m_on_sl2) {
692 e_mdl = e_sl2; _nwd = m_nwd_sl2; _hdr_nwd = m_hdr_nwd_sl2;
693 }
else if (m_cpr_sl3 == cprid && hslb == 1 && m_on_sl3) {
694 e_mdl = e_sl3; _nwd = m_nwd_sl3; _hdr_nwd = m_hdr_nwd_sl3;
695 }
else if (m_cpr_sl4 == cprid && hslb == 1 && m_on_sl4) {
696 e_mdl = e_sl4; _nwd = m_nwd_sl4; _hdr_nwd = m_hdr_nwd_sl4;
697 }
else if (m_cpr_sl5 == cprid && hslb == 1 && m_on_sl5) {
698 e_mdl = e_sl5; _nwd = m_nwd_sl5; _hdr_nwd = m_hdr_nwd_sl5;
699 }
else if (m_cpr_sl6 == cprid && hslb == 0 && m_on_sl6) {
700 e_mdl = e_sl6; _nwd = m_nwd_sl6; _hdr_nwd = m_hdr_nwd_sl6;
701 }
else if (m_cpr_sl8 == cprid && hslb == 0 && m_on_sl8) {
702 e_mdl = e_sl8; _nwd = m_nwd_sl8; _hdr_nwd = m_hdr_nwd_sl8;
703 }
else if (m_cpr_etf == cprid && hslb == 1 && m_on_etf) {
704 e_mdl = e_etf; _nwd = m_nwd_etf; _hdr_nwd = m_hdr_nwd_etf;
705 }
else if (m_cpr_gdl == cprid && hslb == 0 && m_on_gdl) {
706 e_mdl = e_gdl; _nwd = m_nwd_gdl;
707 nclks = m_nclk_gdl; _hdr_nwd = 6;
711 unsigned nword = raw_trgarray[i]->GetDetectorNwords(j, hslb);
712 if (nword == _hdr_nwd)
continue;
714 printf(
"bu:Nword mismatch:nword(%u),expected(%u). eve(%u), %s(0x%x%c), nword(%u)\n",
715 nword, _nwd, _eveRaw, moduleNames[e_mdl], cprid,
'a' + hslb, nword);
717 int* buf = raw_trgarray[i]->GetDetectorBuffer(j, hslb);
718 int i47 = _hdr_nwd + (nclks - 1) * (_nwd - _hdr_nwd) / nclks;
719 if (i47 >
int(nword) - 1) {
720 if (m_print_clkcyc_err)
721 printf(
"bp:data truncation. eve(%u), %s(0x%x%c), nword(%u)\n",
722 _eveRaw, moduleNames[e_mdl], cprid,
'a' + hslb, nword);
725 unsigned buf47 = buf[i47];
726 bool break_this_module =
false;
727 bool cc_disorder =
false;
729 unsigned prev_cc = buf47 & 0xffff;
730 if (e_mdl == e_gdl) {
731 prev_cc = (buf47 >> 4) & 0xfff;
734 sprintf(ccc,
"i47(%d),buf47(0x%x),%x", i47, buf47, prev_cc);
735 std::string ccs(ccc);
736 for (
int clk = 0; clk < nclks; clk++) {
737 unsigned ibuf = _hdr_nwd + clk * (nword - _hdr_nwd) / nclks;
738 if (ibuf > nword - 1) {
739 if (m_print_clkcyc_err)
740 printf(
"bq:data truncation. eve(%u), %s(0x%x%c), nword(%u)\n",
741 _eveRaw, moduleNames[e_mdl], cprid,
'a' + hslb, nword);
742 break_this_module =
true;
743 m_cntr_bad_nwd[e_mdl]++;
746 unsigned ddddcc = buf[ibuf];
747 unsigned dddd = (ddddcc >> 16) & 0xffff;
748 unsigned cc = ddddcc & 0xffff;
749 if (e_mdl == e_gdl) {
750 cc = (ddddcc >> 4) & 0xfff;
752 h_0->SetBinContent(4 * e_mdl + 4, clk + 1, cc);
753 sprintf(ccc,
",%x", cc);
754 if ((
int)e_2d0 <= (
int)e_mdl && (
int)e_mdl <= (
int)e_2d3 &&
767 int i_addr = ibuf + 79;
768 int val_addr = buf[i_addr];
769 int addr_o = (val_addr >> 8) & 0xff;
770 int addr_i = val_addr & 0xff;
771 sprintf(ccc,
",%x(%d,%d)", cc, addr_i, addr_o);
774 if (e_mdl == e_gdl) {
775 dddd = (ddddcc >> 24);
777 if (m_print_clkcyc_err)
778 printf(
"br:dddd not found. eve(%u), %s(0x%x%c), nword(%u)\n",
779 _eveRaw, moduleNames[e_mdl], cprid,
'a' + hslb, nword);
780 break_this_module =
true;
781 m_cntr_bad_ddd[e_mdl]++;
784 }
else if (dddd != 0xdddd) {
785 if (m_print_clkcyc_err)
786 printf(
"bs:dddd not found. eve(%u), %s(0x%x%c), nword(%u)\n",
787 _eveRaw, moduleNames[e_mdl], cprid,
'a' + hslb, nword);
788 break_this_module =
true;
789 m_cntr_bad_ddd[e_mdl]++;
793 if (!(cc == prev_cc + 4 || prev_cc == cc + 4 * (nclks - 1) || prev_cc + 0x500 == cc + 4 * (nclks - 1)
794 || cc + 0x500 == prev_cc + 4)) {
800 if (break_this_module)
continue;
802 m_cntr_bad_odr[e_mdl]++;
804 printf(
"bt:ccdisorder: eve(%u), %s(0x%x%c), nword(%u), %s\n",
805 _eveRaw, moduleNames[e_mdl], cprid,
'a' + hslb, nword, ccs.c_str());
808 m_cntr_good_odr[e_mdl]++;
815 if (! m_histRecord) {