46 fbDebugMonitorMode(kFALSE)
47 , fbIgnoreCriticalErrors(kFALSE)
48 , fvbMaskedComponents()
55 , fuNrOfChannelsPerGet4(0)
56 , fuNrOfChannelsPerFee(0)
58 , fuNrOfGet4PerGdpb(0)
59 , fuNrOfChannelsPerGdpb(0)
65 , fdTsStopTimeCore(-1.0)
69 , fuCurrentEquipmentId(0)
73 , fiRunStartDateTimeSec(-1)
74 , fiBinSizeDatePlots(-1)
78 , fvulCurrentEpochCycle()
79 , fvulCurrentEpochFull()
83 , fdStartTimeMsSz(0.0)
84 , ftStartTimeUnix(
std::chrono::steady_clock::now())
89 , fvulGdpbTsFullLast()
90 , fvulStarTsFullLast()
93 , fvuStarTrigCmdLast()
94 , fbEpochSinceLastHit(kTRUE)
95 , fuDuplicatesCount(0)
97 , fuHistoryHistoSize(3600)
99 , fhSysMessType(nullptr)
100 , fhGet4MessType(nullptr)
101 , fhGet4ChanScm(nullptr)
102 , fhGet4ChanErrors(nullptr)
103 , fhGet4EpochFlags(nullptr)
104 , fhGdpbAsicSpiCounts(nullptr)
105 , fhGdpbMessType(nullptr)
106 , fhGdpbSysMessType(nullptr)
107 , fhGdpbSysMessPattType(nullptr)
108 , fhGdpbEpochFlags(nullptr)
109 , fhGdpbEpochSyncEvo(nullptr)
110 , fhGdpbEpochMissEvo(nullptr)
111 , fhGdpbEndMsBufferNotEmpty(nullptr)
112 , fhGdpbEndMsDataLost(nullptr)
113 , fvhGdpbGet4MessType()
114 , fvhGdpbGet4ChanScm()
115 , fvhGdpbGet4ChanErrors()
116 , fhMsgCntEvo(nullptr)
117 , fhHitCntEvo(nullptr)
118 , fhErrorCntEvo(nullptr)
119 , fhLostEvtCntEvo(nullptr)
120 , fhErrorFractEvo(nullptr)
121 , fhLostEvtFractEvo(nullptr)
122 , fhMsgCntPerMsEvo(nullptr)
123 , fhHitCntPerMsEvo(nullptr)
124 , fhErrorCntPerMsEvo(nullptr)
125 , fhLostEvtCntPerMsEvo(nullptr)
126 , fhErrorFractPerMsEvo(nullptr)
127 , fhLostEvtFractPerMsEvo(nullptr)
131 , fvhRemapChCount_gDPB()
132 , fvhRemapChRate_gDPB()
133 , fuNbMissmatchPattern()
134 , fhNbMissPatternPerMs(nullptr)
135 , fhPatternMissmatch(nullptr)
136 , fhPatternEnable(nullptr)
137 , fhPatternResync(nullptr)
138 , fvhGdpbPatternMissmatchEvo()
139 , fvhGdpbPatternEnableEvo()
140 , fvhGdpbPatternResyncEvo()
141 , fvvbGdpbLastMissmatchPattern()
142 , fvvbGdpbLastEnablePattern()
143 , fvvbGdpbLastResyncPattern()
144 , fvhGdpbMissmatchEvoPerTs()
145 , fvhGdpbMissmatchEnaEvoPerTs()
146 , fvhGdpbEnableEvoPerTs()
147 , fvhGdpbResyncEvoPerTs()
148 , fvhGdpbResyncEnaEvoPerTs()
149 , fvhGdpbStateEvoPerTs()
154 , fvhStarTrigGdpbTsEvo()
155 , fvhStarTrigStarTsEvo()
157 , fcSummaryGdpb(nullptr)
159 , fcStarTrigTokenType(nullptr)
160 , fcStarTriggerRate(nullptr)
161 , fcStarTrigCmdDaqVsTrig(nullptr)
162 , fcStarTrigStarTokenEvo(nullptr)
163 , fcStarTrigGdpbTsEvo(nullptr)
164 , fcStarTrigStarTsEvo(nullptr)
1246 std::string sFolder =
"eTofMoni";
1248 LOG(info) <<
"create Histos for eTOF monitoring ";
1255 const Int_t iNbDecadesLog = 4;
1256 const Int_t iNbStepsDecade = 9;
1257 const Int_t iNbSubStepsInStep = 1;
1258 const Int_t iNbBinsLog = iNbStepsDecade + iNbStepsDecade * iNbSubStepsInStep * iNbDecadesLog + 1;
1259 Double_t dBinsLog[iNbBinsLog];
1261 for (
Int_t iSubU = 0; iSubU < iNbStepsDecade; iSubU++)
1262 dBinsLog[iSubU] = 0.1 * (1 + iSubU);
1263 std::cout << std::endl;
1265 Double_t dSubstepSize = 1.0 / iNbSubStepsInStep;
1266 for (
Int_t iDecade = 0; iDecade < iNbDecadesLog; iDecade++) {
1267 Double_t dBase = std::pow(10, iDecade);
1268 Int_t iDecadeIdx = iNbStepsDecade + iDecade * iNbStepsDecade * iNbSubStepsInStep;
1269 for (
Int_t iStep = 0; iStep < iNbStepsDecade; iStep++) {
1270 Int_t iStepIdx = iDecadeIdx + iStep * iNbSubStepsInStep;
1271 for (
Int_t iSubStep = 0; iSubStep < iNbSubStepsInStep; iSubStep++) {
1272 dBinsLog[iStepIdx + iSubStep] = dBase * (1 + iStep) + dBase * dSubstepSize * iSubStep;
1276 dBinsLog[iNbBinsLog - 1] = std::pow(10, iNbDecadesLog);
1297 fhGet4MessType =
new TH2I(
"hGet4MessType",
"Nb of message for each type per GET4; GET4 chip # ; Type",
fuNrOfGet4, 0.,
1306 fhGet4ChanScm =
new TH2I(
"hGet4ChanScm",
"SC messages per GET4 channel; GET4 channel # ; SC type",
1314 fhGet4ChanErrors =
new TH2I(
"hGet4ChanErrors",
"Error messages per GET4 channel; GET4 channel # ; Error",
1339 new TH2I(
"hGet4EpochFlags",
"Epoch flags per GET4; GET4 chip # ; Type",
fuNrOfGet4, 0.,
fuNrOfGet4, 4, 0., 4.);
1348 new TH2I(
"hGdpbAsicSpiCounts",
"SPI messages count per Sector and ASIC; ASIC Idx []; Sector []; SPI msg[]",
1352 new TH2I(
"hGdpbMessageType",
"Nb of message for each type per Sector; Type; Sector []",
1364 new TH2I(
"hGdpbSysMessType",
"Nb of system message for each type per Sector; System Type; Sector []",
1372 new TH2I(
"hGdpbSysMessPattType",
"Nb of pattern message for each type per Sector; Pattern Type; Sector []",
1379 dSectorMax, 4, 0., 4.);
1385 fhGdpbEpochSyncEvo =
new TH2D(
"hGdpbEpochSyncEvo",
"Epoch SYNC per second and Sector; Time[s]; Sector #; SYNC Nb",
1389 new TH2D(
"hGdpbEpochMissEvo",
"Epoch Missmatch per second and Sector; Time[s]; Sector #; Missmatch Nb",
1393 new TH1D(
"hGdpbEndMsBufferNotEmpty",
"MS where buffer is not empty at end, per Sector; Sector #; Bad MS",
1397 "Amount of lost data when buffer not empty at end, per MS and "
1398 "Sector; Sector #; Lost Data per bad MS []; Bad MS",
1399 fuNrOfGdpbs, dSectorMin, dSectorMax, iNbBinsLog - 1, dBinsLog);
1403 "Nb of missmatch pattern per MS for each sector; Number of "
1404 "pattern messages []; sector []; MS",
1405 1000, -0.5, 999.5,
fuNrOfGdpbs, dSectorMin, dSectorMax);
1408 new TH2I(
"hPatternMissmatch",
"Missmatch pattern integral per Sector; ASIC Pattern []; Sector []",
1411 fhPatternEnable =
new TH2I(
"hPatternEnable",
"Enable pattern integral per Sector; ASIC Pattern []; Sector []",
1414 fhPatternResync =
new TH2I(
"hPatternResync",
"Resync pattern integral per Sector; ASIC Pattern []; Sector []",
1446 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1450 std::string sFolderSector = Form(
"sector%02u", uSectorIndex);
1451 std::string sFolderSectorPatt = Form(
"sector%02u/Pattern", uSectorIndex);
1452 std::string sFolderSectorTrig = Form(
"sector%02u/Trigger", uSectorIndex);
1455 Form(
"Nb of message for each type per GET4 in Sector %02u; GET4 "
1465 new TH2I(Form(
"hGdpbGet4ChanScm_%02u", uGdpb),
1466 Form(
"SC messages per GET4 channel in Sector %02u; GET4 channel # ; SC type", uSectorIndex),
1475 Form(
"Error messages per GET4 channel in Sector %02u; GET4 "
1476 "channel # ; Error",
1504 fvhRawFt_gDPB.push_back(
new TH2I(Form(
"RawFt_gDPB_%02u", uSectorIndex),
1505 Form(
"Raw FineTime Sector %02u Plot 0; channel; FineTime [bin]", uSectorIndex),
1509 new TH2I(Form(
"RawCt_gDPB_%02u", uSectorIndex),
1510 Form(
"Raw CoarseTime Sector %02u Plot 0; channel; CoarseTime [bin]", uSectorIndex),
1514 fvhRemapTot_gDPB.push_back(
new TH2I(Form(
"RemapTot_gDPB_%02u", uSectorIndex),
1515 Form(
"Raw TOT Sector %02u remapped; PADI channel; TOT [bin]", uSectorIndex),
1519 new TH1I(Form(
"RemapChCount_gDPB_%02u", uSectorIndex),
1520 Form(
"Channel counts Sector %02u remapped; PADI channel; Hits", uSectorIndex),
1524 Form(
"PADI channel rate Sector %02u; Time in run [s]; PADI "
1525 "channel; Rate [1/s]",
1534 Form(
"Missmatch pattern vs TS index in Sector %02u; TS # ; "
1540 new TH2I(Form(
"hGdpbPatternEnableEvo_%02u", uSectorIndex),
1541 Form(
"Enable pattern vs TS index in Sector %02u; TS # ; ASIC Pattern []", uSectorIndex), 10000, 0.,
1545 new TH2I(Form(
"hGdpbPatternResyncEvo%02u", uSectorIndex),
1546 Form(
"Resync pattern vs TS index in Sector %02u; TS # ; ASIC Pattern []", uSectorIndex), 10000, 0.,
1550 new TH2I(Form(
"hGdpbMissmatchEvoPerTs%02u", uSectorIndex),
1551 Form(
"Missmatch vs TS index in Sector %02u; TS # ; Asic []; Missmatch? []", uSectorIndex), 10000, 0.,
1555 Form(
"Enable+Missmatch vs TS index in Sector %02u; TS # ; "
1556 "Asic []; Enabled & Missmatch? []",
1561 new TH2I(Form(
"hGdpbEnableEvoPerTs%02u", uSectorIndex),
1562 Form(
"Enable vs TS index in Sector %02u; TS # ; Asic []; Enabled? []", uSectorIndex), 100000, 0.,
1566 new TH2I(Form(
"hGdpbResyncEvoPerTs%02u", uSectorIndex),
1567 Form(
"Resync vs TS index in Sector %02u; TS # ; Asic []; Resync? []", uSectorIndex), 10000, 0., 100000,
1571 Form(
"Enable+Resync vs TS index in Sector %02u; TS # ; Asic "
1572 "[]; Enabled & Resync? []",
1577 Form(
"ASIC State vs TS index in Sector %02u; TS # ; Asic []; 0 = Off, "
1578 "1 = OK, 2 = Miss, 3 = Resync, 4 = Miss + Resync []",
1585 fvhTokenMsgType.push_back(
new TH1F(Form(
"hTokenMsgType_gDPB_%02u", uSectorIndex),
1586 Form(
"STAR trigger Messages type Sector %02u; Type ; Counts", uSectorIndex), 4,
1594 new TH1F(Form(
"hTriggerRate_gDPB_%02u", uSectorIndex),
1595 Form(
"STAR trigger signals per second Sector %02u; Time[s] ; Counts", uSectorIndex),
fuHistoryHistoSize,
1599 Form(
"hCmdDaqVsTrig_gDPB_%02u", uSectorIndex),
1600 Form(
"STAR daq command VS STAR trigger command Sector %02u; DAQ ; TRIGGER", uSectorIndex), 16, 0, 16, 16, 0, 16));
1607 5,
"0x4: trigg. 0");
1638 fvhStarTokenEvo.push_back(
new TH2I(Form(
"hStarTokenEvo_gDPB_%02u", uSectorIndex),
1639 Form(
"STAR token value VS time Sector %02u; Time in Run [s] ; "
1640 "STAR Token; Counts",
1644 fvhStarTrigGdpbTsEvo.push_back(
new TProfile(Form(
"hStarTrigGdpbTsEvo_gDPB_%02u", uSectorIndex),
1645 Form(
"gDPB TS in STAR triger tokens for Sector %02u; Time "
1646 "in Run [s] ; gDPB TS;",
1650 fvhStarTrigStarTsEvo.push_back(
new TProfile(Form(
"hStarTrigStarTsEvo_gDPB_%02u", uSectorIndex),
1651 Form(
"STAR TS in STAR triger tokens for Sector %02u; Time "
1652 "in Run [s] ; STAR TS;",
1694 "Evolution of Hit & error msgs counts vs time in run; "
1695 "Time in run [s]; Msgs Count []",
1697 fhHitCntEvo =
new TH1I(
"hHitCntEvo",
"Evolution of Hit counts vs time in run; Time in run [s]; Hits Count []",
1699 fhErrorCntEvo =
new TH1I(
"hErrorCntEvo",
"Evolution of Error counts vs time in run; Time in run [s]; Error Count []",
1702 "Evolution of LostEvent counts vs time in run; "
1703 "Time in run [s]; LostEvent Count []",
1707 "Evolution of Error Fraction vs time in run; "
1708 "Time in run [s]; Error Fract []",
1711 "Evolution of LostEvent Fraction vs time in "
1712 "run; Time in run [s]; LostEvent Fract []",
1716 "Evolution of Hit & error msgs counts, per MS vs time in run; "
1717 "Time in run [s]; Hits Count/MS []; MS",
1720 "Evolution of Hit counts, per MS vs time in run; "
1721 "Time in run [s]; Hits Count/MS []; MS",
1724 "Evolution of Error counts, per MS vs time in "
1725 "run; Time in run [s]; Error Count/MS []; MS",
1728 "Evolution of LostEvent, per MS counts vs time in run; Time in "
1729 "run [s]; LostEvent Count/MS []; MS",
1733 "Evolution of Error Fraction, per MS vs time in run; Time in run "
1734 "[s]; Error Fract/MS []; MS",
1737 "Evolution of LostEvent Fraction, per MS vs time in run; Time in "
1738 "run [s]; LostEvent Fract/MS []; MS",
1761 fcSummary =
new TCanvas(
"cSummary",
"gDPB Monitoring Summary");
1805 fcSummaryGdpb =
new TCanvas(
"cSummaryGdpb",
"gDPB Monitoring Summary");
1845 fcStarTrigTokenType =
new TCanvas(
"cStarTrigTokenType",
"STAR trigger token message type per sector");
1846 fcStarTriggerRate =
new TCanvas(
"cStarTriggerRate",
"STAR trigger rate per sector");
1848 fcStarTrigStarTokenEvo =
new TCanvas(
"cStarTrigStarTokenEvo",
"STAR trigger token evolution per sector");
1849 fcStarTrigGdpbTsEvo =
new TCanvas(
"cStarTrigGdpbTsEvo",
"STAR trigger gDPB TS evo per sector");
1850 fcStarTrigStarTsEvo =
new TCanvas(
"cStarTrigStarTsEvo",
"STAR trigger STAR TS evo per sector");
1866 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1870 fvcSumGdpbGet4.push_back(
new TCanvas(Form(
"cSumSector%02u", uSectorIndex),
1871 Form(
"Summary per GET4 or channel for sector %02u", uSectorIndex)));