12 #include <trg/top/modules/trgtopUnpacker/trgtopUnpackerModule.h>
29 string TRGTOPUnpackerModule::version()
const
31 return string(
"1.00");
38 TRGTOPUnpackerModule::TRGTOPUnpackerModule()
39 :
Module::
Module(), m_eventNumber(0), m_trigType(0), m_nodeId(0), m_nWords(0)
44 string desc =
"TRGTOPUnpackerModule(" +
version() +
")";
48 B2DEBUG(20,
"TRGTOPUnpacker: Constructor done.");
55 TRGTOPUnpackerModule::~TRGTOPUnpackerModule()
74 for (
int i = 0; i < raw_trgarray.
getEntries(); i++) {
75 for (
int j = 0; j < raw_trgarray[i]->GetNumEntries(); j++) {
77 m_nodeId = raw_trgarray[i]->GetNodeID(j);
81 m_nWords = raw_trgarray[i]->GetDetectorNwords(j, 0);
82 m_eventNumber = raw_trgarray[i]->GetEveNo(j);
118 int l1_revo = rdat[2] & 0x7ff;
121 int trgtag = (rdat[2] >> 12) & 0xfffff;
126 bool dataFormatKnown =
false;
129 int numberOfWindows = -1;
131 int dataFormatVersionExpected = -1;
132 int revoClockDeltaExpected = 4;
133 int cntr127DeltaExpected = 4;
143 dataFormatKnown =
true;
144 dataFormatVersionExpected = 0;
147 numberOfWindows = 24;
148 dataFormatKnown =
true;
149 dataFormatVersionExpected = 2;
152 numberOfWindows = 48;
153 dataFormatKnown =
true;
154 dataFormatVersionExpected = 1;
157 if (!dataFormatKnown) {
158 B2INFO(
"Unknown data format / error / exiting");
173 unsigned int testPattern;
175 int revoClockLast = -1;
176 int cntr127Last = -1;
179 unsigned int errorCountEvent = 0;
182 int t0CombinedDecisionLast = -1;
184 bool performBufferAnalysis =
true;
185 bool reportAllErrors =
true;
186 bool reportSummaryErrors =
true;
189 int counterDummyWindows = 0;
190 unsigned int testPatternDummyEvent = 0xbbbb;
191 for (
int iWindow = 0; iWindow < numberOfWindows; iWindow++) {
192 int index = iWindow * windowSize + 3;
193 testPattern = (rdat[index] >> 16) & 0xffff;
194 if (testPattern == testPatternDummyEvent) {
195 counterDummyWindows++;
199 testPattern = (rdat[index + 2] >> 29) & 0x7;
200 if (testPattern & 0x1) performBufferAnalysis =
false;
201 if (testPattern & 0x2) reportAllErrors =
false;
202 if (testPattern & 0x4) reportSummaryErrors =
false;
206 if (counterDummyWindows == numberOfWindows) {
207 performBufferAnalysis =
false;
209 if (counterDummyWindows != 0) {
210 if (reportAllErrors) B2ERROR(
"Corrupted data? numberOfWindows = " << numberOfWindows <<
", counterDummyWindows = " <<
211 counterDummyWindows);
212 performBufferAnalysis =
false;
218 int iWindowFirst = 0;
222 int numberRvcJumps = 0;
223 int numberCntr127Jumps = 0;
224 int windowRvcJumpFirst = -1;
225 int windowCntr127JumpFirst = -1;
226 int clocksRvcJumpFirst = -1;
227 int clocksCntr127JumpFirst = -1;
229 if (performBufferAnalysis) {
230 for (
int iWindow = 0; iWindow < numberOfWindows; iWindow++) {
231 int index = iWindow * windowSize + 3;
234 int revoClockNow = rdat[index] & 0x7ff;
237 if (revoClockLast != -1) {
239 int revoClockDeltaNow = revoClockNow - revoClockLast;
240 if (revoClockDeltaNow != revoClockDeltaExpected) {
242 if (revoClockDeltaNow == 1188 || revoClockDeltaNow == -92) {
244 if (iWindowFirst == 0) {
245 iWindowFirst = iWindow;
247 }
else if (revoClockDeltaNow != -1276) {
248 if (reportAllErrors) B2ERROR(
"rvc changed by an unexpected number of units: " << revoClockDeltaNow <<
", last rvc = " <<
250 ", current rvc = " << revoClockNow <<
", window " << iWindow <<
", index = " << index);
252 if (windowRvcJumpFirst < 0) {
253 windowRvcJumpFirst = iWindow;
254 clocksRvcJumpFirst = revoClockDeltaNow;
259 revoClockLast = revoClockNow;
261 int cntr127Now = (rdat[index + 1] >> 16) & 0xffff;
264 if (cntr127Last != -1) {
266 int cntr127DeltaNow = cntr127Now - cntr127Last;
267 if (cntr127DeltaNow != cntr127DeltaExpected) {
269 if (cntr127DeltaNow != 65444 && cntr127DeltaNow != -92 && cntr127DeltaNow != -65532) {
270 if (reportAllErrors) B2ERROR(
"cntr127 changed by an unexpected number of units: " << cntr127DeltaNow <<
", cntr127 last = " <<
272 ", cntr127 now = " << cntr127Now <<
", window " << iWindow <<
", index = " << index + 1);
273 numberCntr127Jumps++;
274 if (windowCntr127JumpFirst < 0) {
275 windowCntr127JumpFirst = iWindow;
276 clocksCntr127JumpFirst = cntr127DeltaNow;
281 cntr127Last = cntr127Now;
333 if (performBufferAnalysis) {
336 for (
int iWindowProvisional = 0; iWindowProvisional < numberOfWindows; iWindowProvisional++) {
339 int iWindow = iWindowProvisional + iWindowFirst;
341 if (iWindow >= numberOfWindows) {
342 iWindow = iWindow - numberOfWindows;
348 unsigned int errorCountWindowMinor = 0;
349 unsigned int errorCountWindowMajor = 0;
352 int index = iWindow * windowSize + 3;
354 unsigned int testPatternExpected = 0;
355 if (dataFormatVersionExpected == 1) testPatternExpected = 0xbbba;
356 else if (dataFormatVersionExpected == 2 || dataFormatVersionExpected == 3) testPatternExpected = 0xdddd;
358 testPattern = (rdat[index] >> 16) & 0xffff;
360 if (testPattern != testPatternExpected) {
362 if (reportAllErrors) B2ERROR(
"Unexpected test pattern 1: " << std::hex << testPattern << std::dec <<
", window " << iWindow <<
363 ", index = " << index);
364 errorCountWindowMajor++;
367 int dataFormatVersionNow = (rdat[index] >> 11) & 0x1f;
369 if (dataFormatVersionNow == 3 && dataFormatVersionExpected == 2) {
370 dataFormatVersionExpected = 3;
373 if (dataFormatVersionNow != dataFormatVersionExpected) {
374 if (reportAllErrors) B2ERROR(
"Unexpected data format version: " << dataFormatVersionNow <<
", window " << iWindow <<
", index = " <<
376 errorCountWindowMajor++;
380 int revoClockNow = rdat[index] & 0x7ff;
383 if (revoClockLast != -1) {
385 int revoClockDeltaNow = revoClockNow - revoClockLast;
386 if (revoClockDeltaNow != revoClockDeltaExpected) {
387 if (revoClockDeltaNow != 1188 && revoClockDeltaNow != -92 && revoClockDeltaNow != -1276) {
388 if (reportAllErrors) B2ERROR(
"rvc changed by an unexpected number of units: " << revoClockDeltaNow <<
", last rvc = " <<
390 ", current rvc = " << revoClockNow <<
", window " << iWindow <<
", index = " << index);
391 errorCountWindowMinor++;
395 if (revoClockNow > 1279) {
396 if (reportAllErrors) B2ERROR(
"Unexpected rvc value = " << revoClockNow <<
", window " << iWindow <<
", index = " << index);
397 errorCountWindowMajor++;
399 revoClockLast = revoClockNow;
401 int cntr127Now = (rdat[index + 1] >> 16) & 0xffff;
404 if (cntr127Last != -1) {
406 int cntr127DeltaNow = cntr127Now - cntr127Last;
407 if (cntr127DeltaNow != cntr127DeltaExpected) {
409 if (cntr127DeltaNow != 65444 && cntr127DeltaNow != -92 && cntr127DeltaNow != -65532) {
410 if (reportAllErrors) B2ERROR(
"cntr127 changed by an unexpected number of units: " << cntr127DeltaNow <<
", cntr127 last = " <<
412 ", cntr127 now = " << cntr127Now <<
", window " << iWindow <<
", index = " << index + 1);
413 errorCountWindowMinor++;
417 cntr127Last = cntr127Now;
419 testPattern = (rdat[index + 1]) & 0x0000ffff;
421 if (testPattern != 0) {
422 if (reportAllErrors) B2ERROR(
"Unexpected test pattern 2: " << testPattern <<
", window " << iWindow <<
", index = " << index + 1);
423 errorCountWindowMajor++;
427 int t0CombinedDecisionNow = (rdat[index + 2]) & 0x3ffff;
428 int t0CombinedDecisionNowEstimated = 0;
432 int revoClockGDL = (rdat[index + 2] >> 18) & 0x7ff;
443 int t0CombinedSegments[16];
445 t0CombinedSegments[15] = (rdat[index + 11] >> 28) & 0xf;
446 t0CombinedSegments[14] = (rdat[index + 11] >> 24) & 0xf;
447 t0CombinedSegments[13] = (rdat[index + 11] >> 20) & 0xf;
448 t0CombinedSegments[12] = (rdat[index + 11] >> 16) & 0xf;
449 t0CombinedSegments[11] = (rdat[index + 11] >> 12) & 0xf;
450 t0CombinedSegments[10] = (rdat[index + 11] >> 8) & 0xf;
451 t0CombinedSegments[9] = (rdat[index + 11] >> 4) & 0xf;
452 t0CombinedSegments[8] = (rdat[index + 11]) & 0xf;
454 t0CombinedSegments[7] = (rdat[index + 12] >> 28) & 0xf;
455 t0CombinedSegments[6] = (rdat[index + 12] >> 24) & 0xf;
456 t0CombinedSegments[5] = (rdat[index + 12] >> 20) & 0xf;
457 t0CombinedSegments[4] = (rdat[index + 12] >> 16) & 0xf;
458 t0CombinedSegments[3] = (rdat[index + 12] >> 12) & 0xf;
459 t0CombinedSegments[2] = (rdat[index + 12] >> 8) & 0xf;
460 t0CombinedSegments[1] = (rdat[index + 12] >> 4) & 0xf;
461 t0CombinedSegments[0] = (rdat[index + 12]) & 0xf;
463 int nSegmentsCombinedDecision = 0;
465 for (
int iSlot = 0; iSlot < NUMBER_OF_SLOTS; iSlot++) {
466 if (t0CombinedSegments[iSlot] != 0) {
469 nSegmentsCombinedDecision++;
473 int t0CombinedSlots[16];
475 t0CombinedSlots[0] = (rdat[index + 3] >> 16) & 0xffff;
476 t0CombinedSlots[1] = (rdat[index + 3]) & 0xffff;
477 t0CombinedSlots[2] = (rdat[index + 4] >> 16) & 0xffff;
478 t0CombinedSlots[3] = (rdat[index + 4]) & 0xffff;
479 t0CombinedSlots[4] = (rdat[index + 5] >> 16) & 0xffff;
480 t0CombinedSlots[5] = (rdat[index + 5]) & 0xffff;
481 t0CombinedSlots[6] = (rdat[index + 6] >> 16) & 0xffff;
482 t0CombinedSlots[7] = (rdat[index + 6]) & 0xffff;
483 t0CombinedSlots[8] = (rdat[index + 7] >> 16) & 0xffff;
484 t0CombinedSlots[9] = (rdat[index + 7]) & 0xffff;
485 t0CombinedSlots[10] = (rdat[index + 8] >> 16) & 0xffff;
486 t0CombinedSlots[11] = (rdat[index + 8]) & 0xffff;
487 t0CombinedSlots[12] = (rdat[index + 9] >> 16) & 0xffff;
488 t0CombinedSlots[13] = (rdat[index + 9]) & 0xffff;
489 t0CombinedSlots[14] = (rdat[index + 10] >> 16) & 0xffff;
490 t0CombinedSlots[15] = (rdat[index + 10]) & 0xffff;
492 int nSlotsCombinedDecision = 0;
494 int nSegmentErrors = 0;
496 for (
int iSlot = 0; iSlot < NUMBER_OF_SLOTS; iSlot++) {
497 if (t0CombinedSegments[iSlot] != 0) {
499 t0CombinedDecisionNowEstimated = t0CombinedDecisionNowEstimated + 2 * t0CombinedSlots[iSlot];
500 nSlotsCombinedDecision++;
501 }
else if (t0CombinedSlots[iSlot] != 0) {
502 if (reportAllErrors) B2ERROR(
"Segment==0 for Slot " << iSlot + 1 <<
", t0 (raw ns) = " << 2 * t0CombinedSlots[iSlot] <<
503 ", nSegmentsCombinedDecision = " << nSegmentsCombinedDecision <<
", combined t0 decision (FW) = " << t0CombinedDecisionNow <<
504 ", window " << iWindow);
505 errorCountWindowMajor++;
514 nHitsSlots[0] = (rdat[index + 13] >> 16) & 0x3ff;
515 nHitsSlots[1] = (rdat[index + 13]) & 0x3ff;
516 nHitsSlots[2] = (rdat[index + 14] >> 16) & 0x3ff;
517 nHitsSlots[3] = (rdat[index + 14]) & 0x3ff;
518 nHitsSlots[4] = (rdat[index + 15] >> 16) & 0x3ff;
519 nHitsSlots[5] = (rdat[index + 15]) & 0x3ff;
520 nHitsSlots[6] = (rdat[index + 16] >> 16) & 0x3ff;
521 nHitsSlots[7] = (rdat[index + 16]) & 0x3ff;
522 nHitsSlots[8] = (rdat[index + 17] >> 16) & 0x3ff;
523 nHitsSlots[9] = (rdat[index + 17]) & 0x3ff;
524 nHitsSlots[10] = (rdat[index + 18] >> 16) & 0x3ff;
525 nHitsSlots[11] = (rdat[index + 18]) & 0x3ff;
526 nHitsSlots[12] = (rdat[index + 19] >> 16) & 0x3ff;
527 nHitsSlots[13] = (rdat[index + 19]) & 0x3ff;
528 nHitsSlots[14] = (rdat[index + 20] >> 16) & 0x3ff;
529 nHitsSlots[15] = (rdat[index + 20]) & 0x3ff;
531 int nHitsCombinedDecision = 0;
532 int nSlotsHitsCombinedDecision = 0;
534 for (
int iSlot = 0; iSlot < NUMBER_OF_SLOTS; iSlot++) {
535 if (t0CombinedSegments[iSlot] != 0) {
537 nSlotsHitsCombinedDecision++;
538 nHitsCombinedDecision = nHitsCombinedDecision + nHitsSlots[iSlot];
539 }
else if (nHitsSlots[iSlot] != 0) {
540 if (reportAllErrors) B2ERROR(
"Unexpected nHit (via segments) = " << nHitsSlots[iSlot] <<
" for slot " << iSlot + 1 <<
541 ", nSegmentsCombinedDecision = " << nSegmentsCombinedDecision <<
", combined t0 decision (FW) = " << t0CombinedDecisionNow <<
542 ", window " << iWindow);
543 errorCountWindowMajor++;
548 for (
int iWord = 0; iWord < NUMBER_OF_SLOTS / 2; iWord++) {
549 testPattern = (rdat[index + 13 + iWord]) & 0xfc00fc00;
551 if (testPattern != 0) {
552 if (reportAllErrors) B2ERROR(
"Unexpected test pattern 4: " << testPattern <<
", window " << iWindow <<
", index = " << index + 13 +
554 errorCountWindowMajor++;
558 int logLikelihoodsSlots[16];
560 if (dataFormatVersionExpected == 2 || dataFormatVersionExpected == 3) {
561 logLikelihoodsSlots[0] = (rdat[index + 21]) & 0xffff;
562 logLikelihoodsSlots[1] = (rdat[index + 21] >> 16) & 0xffff;
563 logLikelihoodsSlots[2] = (rdat[index + 22]) & 0xffff;
564 logLikelihoodsSlots[3] = (rdat[index + 22] >> 16) & 0xffff;
565 logLikelihoodsSlots[4] = (rdat[index + 23]) & 0xffff;
566 logLikelihoodsSlots[5] = (rdat[index + 23] >> 16) & 0xffff;
567 logLikelihoodsSlots[6] = (rdat[index + 24]) & 0xffff;
568 logLikelihoodsSlots[7] = (rdat[index + 24] >> 16) & 0xffff;
569 logLikelihoodsSlots[8] = (rdat[index + 25]) & 0xffff;
570 logLikelihoodsSlots[9] = (rdat[index + 25] >> 16) & 0xffff;
571 logLikelihoodsSlots[10] = (rdat[index + 26]) & 0xffff;
572 logLikelihoodsSlots[11] = (rdat[index + 26] >> 16) & 0xffff;
573 logLikelihoodsSlots[12] = (rdat[index + 27]) & 0xffff;
574 logLikelihoodsSlots[13] = (rdat[index + 27] >> 16) & 0xffff;
575 logLikelihoodsSlots[14] = (rdat[index + 28]) & 0xffff;
576 logLikelihoodsSlots[15] = (rdat[index + 28] >> 16) & 0xffff;
577 }
else if (dataFormatVersionExpected == 1) {
578 logLikelihoodsSlots[0] = (rdat[index + 21]);
579 logLikelihoodsSlots[1] = (rdat[index + 22]);
580 logLikelihoodsSlots[2] = (rdat[index + 23]);
581 logLikelihoodsSlots[3] = (rdat[index + 24]);
582 logLikelihoodsSlots[4] = (rdat[index + 25]);
583 logLikelihoodsSlots[5] = (rdat[index + 26]);
584 logLikelihoodsSlots[6] = (rdat[index + 27]);
585 logLikelihoodsSlots[7] = (rdat[index + 28]);
586 logLikelihoodsSlots[8] = (rdat[index + 29]);
587 logLikelihoodsSlots[9] = (rdat[index + 30]);
588 logLikelihoodsSlots[10] = (rdat[index + 31]);
589 logLikelihoodsSlots[11] = (rdat[index + 32]);
590 logLikelihoodsSlots[12] = (rdat[index + 33]);
591 logLikelihoodsSlots[13] = (rdat[index + 34]);
592 logLikelihoodsSlots[14] = (rdat[index + 35]);
593 logLikelihoodsSlots[15] = (rdat[index + 36]);
596 int nLogLikelihoodsCombinedDecision = 0;
598 for (
int iSlot = 0; iSlot < NUMBER_OF_SLOTS; iSlot++) {
599 if (t0CombinedSegments[iSlot] != 0) {
601 nLogLikelihoodsCombinedDecision++;
602 }
else if (logLikelihoodsSlots[iSlot] != 0) {
603 if (reportAllErrors) B2ERROR(
"Unexpected log likelihood (via segments) = " << logLikelihoodsSlots[iSlot] <<
" for slot " << iSlot +
604 1 <<
", nSegmentsCombinedDecision = " << nSegmentsCombinedDecision <<
", combined t0 decision (FW) = " << t0CombinedDecisionNow <<
605 ", window " << iWindow);
606 errorCountWindowMajor++;
610 if (nSlotsCombinedDecision != 0) {
611 t0CombinedDecisionNowEstimated = t0CombinedDecisionNowEstimated / nSlotsCombinedDecision;
613 t0CombinedDecisionNowEstimated = -1;
614 if (reportAllErrors) B2ERROR(
"nSlotsCombinedDecision (via segments) is zero! FW t0 decision = " << t0CombinedDecisionNow <<
615 ", window " << iWindow);
616 errorCountWindowMajor++;
619 if (reportAllErrors) {
620 if (nSegmentErrors != 0) {
621 B2ERROR(
"nSegmentErrors = " << nSegmentErrors <<
", nSegmentsCombinedDecision = " << nSegmentsCombinedDecision <<
622 ", combined t0 decision (FW) = " << t0CombinedDecisionNow <<
", window " << iWindow);
623 for (
int iSlot = 0; iSlot < NUMBER_OF_SLOTS; iSlot++) {
624 if (t0CombinedSegments[iSlot] == 0 && logLikelihoodsSlots[iSlot] != 0) {
625 B2ERROR(
"Segment==0, t0Combined (ns) = " << 2 * t0CombinedSlots[iSlot] <<
" for slot " << iSlot + 1);
626 B2ERROR(
"Segment==0, nHits = " << nHitsSlots[iSlot] <<
" for slot " << iSlot + 1);
627 B2ERROR(
"Segment==0, logLikelihood = " << logLikelihoodsSlots[iSlot] <<
" for slot " << iSlot + 1);
628 B2ERROR(
"Segment==0, t0CombinedSegment = " << t0CombinedSegments[iSlot] <<
" for slot " << iSlot + 1);
635 if (dataFormatVersionExpected == 1) index = index + 37;
636 else if (dataFormatVersionExpected == 2 || dataFormatVersionExpected == 3) index = index + 29;
637 else index = index + 29;
643 int revoClockT0CombinedDecisionPrev = -1;
644 int revoClockT0CombinedDecisionNow = -1;
647 if (dataFormatVersionExpected == 2 || dataFormatVersionExpected == 3) index++;
649 if (dataFormatVersionExpected == 2) {
651 testPatternExpected = 0xfeedbeef;
652 testPattern = rdat[index];
654 if (testPattern != testPatternExpected) {
655 if (reportAllErrors) B2ERROR(
"Unexpected test pattern 5: " << std::hex << testPattern << std::dec <<
", window " << iWindow <<
656 ", index = " << index);
657 errorCountWindowMajor++;
659 }
else if (dataFormatVersionExpected == 3) {
660 revoClockT0CombinedDecisionPrev = (rdat[index]) & 0x7ff;
661 revoClockT0CombinedDecisionNow = (rdat[index] >> 11) & 0x7ff;
667 int cnttrgNow = rdat[index];
671 if (t0CombinedDecisionNow != t0CombinedDecisionLast) {
673 t0CombinedDecisionLast = t0CombinedDecisionNow;
675 int t0Residual = t0CombinedDecisionNow - t0CombinedDecisionNowEstimated;
744 double logLSum_d = 0;
745 double logLSum2_d = 0;
747 double timingSum_d = 0;
748 double timingSum2_d = 0;
750 for (
int iSlot = 0; iSlot < NUMBER_OF_SLOTS; iSlot++) {
753 if (t0CombinedSegments[iSlot] == 0 && nHitsSlots[iSlot] != 0) slotNErrors++;
755 if (t0CombinedSegments[iSlot] != 0 || nHitsSlots[iSlot] != 0) {
758 nHitSum = nHitSum + nHitsSlots[iSlot];
760 logLSum_d = logLSum_d + logLikelihoodsSlots[iSlot];
761 logLSum2_d = logLSum2_d + logLikelihoodsSlots[iSlot] * logLikelihoodsSlots[iSlot];
763 int timingNow = (2 * t0CombinedSlots[iSlot] % 10240);
767 timingSum_d = timingSum_d + timingNow;
768 timingSum2_d = timingSum2_d + pow(timingNow, 2);
771 slotTiming.setSlotTiming(2 * t0CombinedSlots[iSlot]);
772 slotTiming.setSlotSegment(t0CombinedSegments[iSlot]);
773 slotTiming.setSlotNHits(nHitsSlots[iSlot]);
774 slotTiming.setSlotLogL(logLikelihoodsSlots[iSlot]);
775 slotTiming.setSlotNErrors(slotNErrors);
781 if (nSlots == 0) nSlots = 1;
783 double logLVar_d = logLSum2_d / nSlots - pow(logLSum_d / nSlots, 2);
784 int logLVar = (int)(logLVar_d + 0.5);
785 int logLSum = (int)(logLSum_d + 0.5);
787 double timingVar_d = timingSum2_d / nSlots - pow(timingSum_d / nSlots, 2);
788 int timingVar = (int)(timingVar_d + 0.5);
831 errorCountEvent = errorCountEvent + errorCountWindowMinor + errorCountWindowMajor;
839 if (reportSummaryErrors) {
840 if (errorCountEvent != 0) {
841 B2INFO(
"Number of instances of unexpected data diagnozed during unpacking = " << errorCountEvent);
844 if (numberRvcJumps > 0) {
845 B2INFO(
"The number of rvc jumps = " << numberRvcJumps);
846 B2INFO(
"The window of the first rvc jump = " << windowRvcJumpFirst);
847 B2INFO(
"The number of clock cycles associated with the first rvc jump = " << clocksRvcJumpFirst);
851 if (numberCntr127Jumps > 0) {
852 B2INFO(
"The number of cntr127 jumps = " << numberCntr127Jumps);
853 B2INFO(
"The window of the first cntr127 jump = " << windowCntr127JumpFirst);
854 B2INFO(
"The number of clock cycles associated with the first cntr127 jump = " << clocksCntr127JumpFirst);