1245 std::string sFolder =
"eTofMoni";
1247 LOG(info) <<
"create Histos for eTOF monitoring ";
1254 const Int_t iNbDecadesLog = 4;
1255 const Int_t iNbStepsDecade = 9;
1256 const Int_t iNbSubStepsInStep = 1;
1257 const Int_t iNbBinsLog = iNbStepsDecade + iNbStepsDecade * iNbSubStepsInStep * iNbDecadesLog + 1;
1258 Double_t dBinsLog[iNbBinsLog];
1260 for (
Int_t iSubU = 0; iSubU < iNbStepsDecade; iSubU++)
1261 dBinsLog[iSubU] = 0.1 * (1 + iSubU);
1262 std::cout << std::endl;
1264 Double_t dSubstepSize = 1.0 / iNbSubStepsInStep;
1265 for (
Int_t iDecade = 0; iDecade < iNbDecadesLog; iDecade++) {
1266 Double_t dBase = std::pow(10, iDecade);
1267 Int_t iDecadeIdx = iNbStepsDecade + iDecade * iNbStepsDecade * iNbSubStepsInStep;
1268 for (
Int_t iStep = 0; iStep < iNbStepsDecade; iStep++) {
1269 Int_t iStepIdx = iDecadeIdx + iStep * iNbSubStepsInStep;
1270 for (
Int_t iSubStep = 0; iSubStep < iNbSubStepsInStep; iSubStep++) {
1271 dBinsLog[iStepIdx + iSubStep] = dBase * (1 + iStep) + dBase * dSubstepSize * iSubStep;
1275 dBinsLog[iNbBinsLog - 1] = std::pow(10, iNbDecadesLog);
1296 fhGet4MessType =
new TH2I(
"hGet4MessType",
"Nb of message for each type per GET4; GET4 chip # ; Type",
fuNrOfGet4, 0.,
1305 fhGet4ChanScm =
new TH2I(
"hGet4ChanScm",
"SC messages per GET4 channel; GET4 channel # ; SC type",
1313 fhGet4ChanErrors =
new TH2I(
"hGet4ChanErrors",
"Error messages per GET4 channel; GET4 channel # ; Error",
1338 new TH2I(
"hGet4EpochFlags",
"Epoch flags per GET4; GET4 chip # ; Type",
fuNrOfGet4, 0.,
fuNrOfGet4, 4, 0., 4.);
1344 Double_t dSectorMin = -0.5 +
fUnpackPar->GetGdpbToSectorOffset();
1347 new TH2I(
"hGdpbAsicSpiCounts",
"SPI messages count per Sector and ASIC; ASIC Idx []; Sector []; SPI msg[]",
1351 new TH2I(
"hGdpbMessageType",
"Nb of message for each type per Sector; Type; Sector []",
1363 new TH2I(
"hGdpbSysMessType",
"Nb of system message for each type per Sector; System Type; Sector []",
1371 new TH2I(
"hGdpbSysMessPattType",
"Nb of pattern message for each type per Sector; Pattern Type; Sector []",
1378 dSectorMax, 4, 0., 4.);
1384 fhGdpbEpochSyncEvo =
new TH2D(
"hGdpbEpochSyncEvo",
"Epoch SYNC per second and Sector; Time[s]; Sector #; SYNC Nb",
1388 new TH2D(
"hGdpbEpochMissEvo",
"Epoch Missmatch per second and Sector; Time[s]; Sector #; Missmatch Nb",
1392 new TH1D(
"hGdpbEndMsBufferNotEmpty",
"MS where buffer is not empty at end, per Sector; Sector #; Bad MS",
1396 "Amount of lost data when buffer not empty at end, per MS and "
1397 "Sector; Sector #; Lost Data per bad MS []; Bad MS",
1398 fuNrOfGdpbs, dSectorMin, dSectorMax, iNbBinsLog - 1, dBinsLog);
1402 "Nb of missmatch pattern per MS for each sector; Number of "
1403 "pattern messages []; sector []; MS",
1404 1000, -0.5, 999.5,
fuNrOfGdpbs, dSectorMin, dSectorMax);
1407 new TH2I(
"hPatternMissmatch",
"Missmatch pattern integral per Sector; ASIC Pattern []; Sector []",
1410 fhPatternEnable =
new TH2I(
"hPatternEnable",
"Enable pattern integral per Sector; ASIC Pattern []; Sector []",
1413 fhPatternResync =
new TH2I(
"hPatternResync",
"Resync pattern integral per Sector; ASIC Pattern []; Sector []",
1445 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1446 UInt_t uSectorIndex = uGdpb +
fUnpackPar->GetGdpbToSectorOffset();
1449 std::string sFolderSector = Form(
"sector%02u", uSectorIndex);
1450 std::string sFolderSectorPatt = Form(
"sector%02u/Pattern", uSectorIndex);
1451 std::string sFolderSectorTrig = Form(
"sector%02u/Trigger", uSectorIndex);
1454 Form(
"Nb of message for each type per GET4 in Sector %02u; GET4 "
1464 new TH2I(Form(
"hGdpbGet4ChanScm_%02u", uGdpb),
1465 Form(
"SC messages per GET4 channel in Sector %02u; GET4 channel # ; SC type", uSectorIndex),
1474 Form(
"Error messages per GET4 channel in Sector %02u; GET4 "
1475 "channel # ; Error",
1503 fvhRawFt_gDPB.push_back(
new TH2I(Form(
"RawFt_gDPB_%02u", uSectorIndex),
1504 Form(
"Raw FineTime Sector %02u Plot 0; channel; FineTime [bin]", uSectorIndex),
1508 new TH2I(Form(
"RawCt_gDPB_%02u", uSectorIndex),
1509 Form(
"Raw CoarseTime Sector %02u Plot 0; channel; CoarseTime [bin]", uSectorIndex),
1513 fvhRemapTot_gDPB.push_back(
new TH2I(Form(
"RemapTot_gDPB_%02u", uSectorIndex),
1514 Form(
"Raw TOT Sector %02u remapped; PADI channel; TOT [bin]", uSectorIndex),
1518 new TH1I(Form(
"RemapChCount_gDPB_%02u", uSectorIndex),
1519 Form(
"Channel counts Sector %02u remapped; PADI channel; Hits", uSectorIndex),
1523 Form(
"PADI channel rate Sector %02u; Time in run [s]; PADI "
1524 "channel; Rate [1/s]",
1533 Form(
"Missmatch pattern vs TS index in Sector %02u; TS # ; "
1539 new TH2I(Form(
"hGdpbPatternEnableEvo_%02u", uSectorIndex),
1540 Form(
"Enable pattern vs TS index in Sector %02u; TS # ; ASIC Pattern []", uSectorIndex), 10000, 0.,
1544 new TH2I(Form(
"hGdpbPatternResyncEvo%02u", uSectorIndex),
1545 Form(
"Resync pattern vs TS index in Sector %02u; TS # ; ASIC Pattern []", uSectorIndex), 10000, 0.,
1549 new TH2I(Form(
"hGdpbMissmatchEvoPerTs%02u", uSectorIndex),
1550 Form(
"Missmatch vs TS index in Sector %02u; TS # ; Asic []; Missmatch? []", uSectorIndex), 10000, 0.,
1554 Form(
"Enable+Missmatch vs TS index in Sector %02u; TS # ; "
1555 "Asic []; Enabled & Missmatch? []",
1560 new TH2I(Form(
"hGdpbEnableEvoPerTs%02u", uSectorIndex),
1561 Form(
"Enable vs TS index in Sector %02u; TS # ; Asic []; Enabled? []", uSectorIndex), 100000, 0.,
1565 new TH2I(Form(
"hGdpbResyncEvoPerTs%02u", uSectorIndex),
1566 Form(
"Resync vs TS index in Sector %02u; TS # ; Asic []; Resync? []", uSectorIndex), 10000, 0., 100000,
1570 Form(
"Enable+Resync vs TS index in Sector %02u; TS # ; Asic "
1571 "[]; Enabled & Resync? []",
1576 Form(
"ASIC State vs TS index in Sector %02u; TS # ; Asic []; 0 = Off, "
1577 "1 = OK, 2 = Miss, 3 = Resync, 4 = Miss + Resync []",
1584 fvhTokenMsgType.push_back(
new TH1F(Form(
"hTokenMsgType_gDPB_%02u", uSectorIndex),
1585 Form(
"STAR trigger Messages type Sector %02u; Type ; Counts", uSectorIndex), 4,
1593 new TH1F(Form(
"hTriggerRate_gDPB_%02u", uSectorIndex),
1594 Form(
"STAR trigger signals per second Sector %02u; Time[s] ; Counts", uSectorIndex),
fuHistoryHistoSize,
1598 Form(
"hCmdDaqVsTrig_gDPB_%02u", uSectorIndex),
1599 Form(
"STAR daq command VS STAR trigger command Sector %02u; DAQ ; TRIGGER", uSectorIndex), 16, 0, 16, 16, 0, 16));
1606 5,
"0x4: trigg. 0");
1637 fvhStarTokenEvo.push_back(
new TH2I(Form(
"hStarTokenEvo_gDPB_%02u", uSectorIndex),
1638 Form(
"STAR token value VS time Sector %02u; Time in Run [s] ; "
1639 "STAR Token; Counts",
1643 fvhStarTrigGdpbTsEvo.push_back(
new TProfile(Form(
"hStarTrigGdpbTsEvo_gDPB_%02u", uSectorIndex),
1644 Form(
"gDPB TS in STAR triger tokens for Sector %02u; Time "
1645 "in Run [s] ; gDPB TS;",
1649 fvhStarTrigStarTsEvo.push_back(
new TProfile(Form(
"hStarTrigStarTsEvo_gDPB_%02u", uSectorIndex),
1650 Form(
"STAR TS in STAR triger tokens for Sector %02u; Time "
1651 "in Run [s] ; STAR TS;",
1693 "Evolution of Hit & error msgs counts vs time in run; "
1694 "Time in run [s]; Msgs Count []",
1696 fhHitCntEvo =
new TH1I(
"hHitCntEvo",
"Evolution of Hit counts vs time in run; Time in run [s]; Hits Count []",
1698 fhErrorCntEvo =
new TH1I(
"hErrorCntEvo",
"Evolution of Error counts vs time in run; Time in run [s]; Error Count []",
1701 "Evolution of LostEvent counts vs time in run; "
1702 "Time in run [s]; LostEvent Count []",
1706 "Evolution of Error Fraction vs time in run; "
1707 "Time in run [s]; Error Fract []",
1710 "Evolution of LostEvent Fraction vs time in "
1711 "run; Time in run [s]; LostEvent Fract []",
1715 "Evolution of Hit & error msgs counts, per MS vs time in run; "
1716 "Time in run [s]; Hits Count/MS []; MS",
1719 "Evolution of Hit counts, per MS vs time in run; "
1720 "Time in run [s]; Hits Count/MS []; MS",
1723 "Evolution of Error counts, per MS vs time in "
1724 "run; Time in run [s]; Error Count/MS []; MS",
1727 "Evolution of LostEvent, per MS counts vs time in run; Time in "
1728 "run [s]; LostEvent Count/MS []; MS",
1732 "Evolution of Error Fraction, per MS vs time in run; Time in run "
1733 "[s]; Error Fract/MS []; MS",
1736 "Evolution of LostEvent Fraction, per MS vs time in run; Time in "
1737 "run [s]; LostEvent Fract/MS []; MS",
1760 fcSummary =
new TCanvas(
"cSummary",
"gDPB Monitoring Summary");
1804 fcSummaryGdpb =
new TCanvas(
"cSummaryGdpb",
"gDPB Monitoring Summary");
1844 fcStarTrigTokenType =
new TCanvas(
"cStarTrigTokenType",
"STAR trigger token message type per sector");
1845 fcStarTriggerRate =
new TCanvas(
"cStarTriggerRate",
"STAR trigger rate per sector");
1847 fcStarTrigStarTokenEvo =
new TCanvas(
"cStarTrigStarTokenEvo",
"STAR trigger token evolution per sector");
1848 fcStarTrigGdpbTsEvo =
new TCanvas(
"cStarTrigGdpbTsEvo",
"STAR trigger gDPB TS evo per sector");
1849 fcStarTrigStarTsEvo =
new TCanvas(
"cStarTrigStarTsEvo",
"STAR trigger STAR TS evo per sector");
1865 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1866 UInt_t uSectorIndex = uGdpb +
fUnpackPar->GetGdpbToSectorOffset();
1869 fvcSumGdpbGet4.push_back(
new TCanvas(Form(
"cSumSector%02u", uSectorIndex),
1870 Form(
"Summary per GET4 or channel for sector %02u", uSectorIndex)));