254 LOG(info) <<
"ReInit parameter containers for " << GetName();
284 LOG(info) <<
"GDPB Id of TOF " << i <<
" : " << std::hex <<
fUnpackPar->GetGdpbId(i) << std::dec;
297 for (UInt_t uGbtx = 0; uGbtx <
fuNrOfGbtx; ++uGbtx) {
304 TString sPrintoutLine =
"Nr. of RPCs per GBTx: ";
305 for (UInt_t uGbtx = 0; uGbtx <
fuNrOfGbtx; ++uGbtx)
306 sPrintoutLine += Form(
" %2d",
fviNrOfRpc[uGbtx]);
307 LOG(info) << sPrintoutLine;
309 sPrintoutLine =
"RPC type per GBTx: ";
310 for (UInt_t uGbtx = 0; uGbtx <
fuNrOfGbtx; ++uGbtx)
311 sPrintoutLine += Form(
" %2d",
fviRpcType[uGbtx]);
312 LOG(info) << sPrintoutLine;
314 sPrintoutLine =
"RPC side per GBTx: ";
315 for (UInt_t uGbtx = 0; uGbtx <
fuNrOfGbtx; ++uGbtx)
316 sPrintoutLine += Form(
" %2d",
fviRpcSide[uGbtx]);
317 LOG(info) << sPrintoutLine;
319 sPrintoutLine =
"Module ID per GBTx: ";
320 for (UInt_t uGbtx = 0; uGbtx <
fuNrOfGbtx; ++uGbtx)
322 LOG(info) << sPrintoutLine;
342 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
366 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
388 UInt_t uGet4topadi[32] = {4, 3, 2, 1,
389 8, 7, 6, 5, 12, 11, 10, 9, 16, 15, 14, 13, 20, 19,
390 18, 17, 24, 23, 22, 21, 28, 27, 26, 25, 32, 31, 30, 29};
393 UInt_t uPaditoget4[32] = {4, 3, 2, 1,
394 12, 11, 10, 9, 20, 19, 18, 17, 28, 27, 26, 25, 32, 31,
395 30, 29, 8, 7, 6, 5, 16, 15, 14, 13, 24, 23, 22, 21};
406 UInt_t kuElinkToGet4[
kuNbGet4PerGbtx] = {27, 2, 7, 3, 31, 26, 30, 1, 33, 37, 32, 13, 9, 14,
407 10, 15, 17, 21, 16, 35, 34, 38, 25, 24, 0, 6, 20, 23,
408 18, 22, 28, 4, 29, 5, 19, 36, 39, 8, 12, 11};
409 UInt_t kuGet4ToElink[
kuNbGet4PerGbtx] = {24, 7, 1, 3, 31, 33, 25, 2, 37, 12, 14, 39, 38, 11,
410 13, 15, 18, 16, 28, 34, 26, 17, 29, 27, 23, 22, 5, 0,
411 30, 32, 6, 4, 10, 8, 20, 19, 35, 9, 21, 36};
464 LOG(info) <<
"create Histos for " <<
fuNrOfGdpbs <<
" gDPBs ";
466 THttpServer* server = FairRunOnline::Instance()->GetHttpServer();
475 Double_t dBinSzG4v2 = (6250. / 112.);
480 name =
"hMessageType";
481 title =
"Nb of message for each type; Type";
494 name =
"hSysMessType";
495 title =
"Nb of system message for each type; System Type";
503 name =
"hGet4MessType";
504 title =
"Nb of message for each type per GET4; GET4 chip # ; Type";
514 name =
"hGet4ChanScm";
515 title =
"SC messages per GET4 channel; GET4 channel # ; SC type";
525 name =
"hGet4ChanErrors";
526 title =
"Error messages per GET4 channel; GET4 channel # ; Error";
552 name =
"hGet4EpochFlags";
553 title =
"Epoch flags per GET4; GET4 chip # ; Type";
561 name =
"hGdpbMessageType";
562 title =
"Nb of message for each type per Gdpb; Type; Gdpb Idx []";
576 name =
"hGdpbSysMessType";
577 title =
"Nb of system message for each type per Gdpb; System Type; Gdpb Idx []";
586 name =
"hGdpbSysMessPattType";
587 title =
"Nb of pattern message for each type per Gdpb; Pattern Type; Gdpb Idx []";
595 name =
"hGdpbEpochFlags";
596 title =
"Epoch flags per gDPB; gDPB # ; Type";
604 name = Form(
"hGdpbEpochSyncEvo");
605 title = Form(
"Epoch SYNC per second and gDPB; Time[s]; gDPB #; SYNC Nb");
610 name = Form(
"hGdpbEpochMissEvo");
611 title = Form(
"Epoch Missmatch per second and gDPB; Time[s]; gDPB #; Missmatch Nb");
617 name =
"hScmScalerCounters";
618 title =
"Content of Scaler counter SC messages; Scaler counter [hit]; Channel []";
622 name =
"hScmDeadtimeCounters";
623 title =
"Content of Deadtime counter SC messages; Deadtime [Clk Cycles]; "
628 name =
"hScmSeuCounters";
629 title =
"Content of SEU counter SC messages; SEU []; Channel []";
633 name =
"hScmSeuCountersEvo";
634 title =
"SEU counter rate from SC messages; Time in Run [s]; Channel []; SEU []";
639 name =
"hPatternMissmatch";
640 title =
"Missmatch pattern integral per Gdpb; ASIC Pattern []; Gdpb Idx []";
643 name =
"hPatternEnable";
644 title =
"Enable pattern integral per Gdpb; ASIC Pattern []; Gdpb Idx []";
647 name =
"hPatternResync";
648 title =
"Resync pattern integral per Gdpb; ASIC Pattern []; Gdpb Idx []";
659 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
662 name = Form(
"hGdpbGet4MessType_%02u", uGdpb);
663 title = Form(
"Nb of message for each type per GET4 in gDPB %02u; GET4 chip # ; Type", uGdpb);
671 name = Form(
"hGdpbGet4ChanScm_%02u", uGdpb);
672 title = Form(
"SC messages per GET4 channel in gDPB %02u; GET4 channel # ; SC type", uGdpb);
682 name = Form(
"hGdpbGet4ChanErrors_%02u", uGdpb);
683 title = Form(
"Error messages per GET4 channel in gDPB %02u; GET4 channel # ; Error", uGdpb);
710 name = Form(
"hGdpbPatternMissmatchEvo_%02u", uGdpb);
711 title = Form(
"Missmatch pattern vs TS index in gDPB %02u; TS # ; ASIC Pattern []", uGdpb);
715 name = Form(
"hGdpbPatternEnableEvo_%02u", uGdpb);
716 title = Form(
"Enable pattern vs TS index in gDPB %02u; TS # ; ASIC Pattern []", uGdpb);
720 name = Form(
"hGdpbPatternResyncEvo%02u", uGdpb);
721 title = Form(
"Resync pattern vs TS index in gDPB %02u; TS # ; ASIC Pattern []", uGdpb);
729 name = Form(
"hGdpbMissmatchEvoPerTs%02u", uGdpb);
730 title = Form(
"Missmatch vs TS index in gDPB %02u; TS # ; Asic []; Missmatch? []", uGdpb);
733 name = Form(
"hGdpbMissmatchEnaEvoPerTs%02u", uGdpb);
734 title = Form(
"Enable+Missmatch vs TS index in gDPB %02u; TS # ; Asic []; "
735 "Enabled & Missmatch? []",
740 name = Form(
"hGdpbEnableEvoPerTs%02u", uGdpb);
741 title = Form(
"Enable vs TS index in gDPB %02u; TS # ; Asic []; Enabled? []", uGdpb);
745 name = Form(
"hGdpbResyncEvoPerTs%02u", uGdpb);
746 title = Form(
"Resync vs TS index in gDPB %02u; TS # ; Asic []; Resync? []", uGdpb);
748 name = Form(
"hGdpbResyncEnaEvoPerTs%02u", uGdpb);
749 title = Form(
"Enable+Resync vs TS index in gDPB %02u; TS # ; Asic []; "
750 "Enabled & Resync? []",
755 name = Form(
"hGdpbStateEvoPerTs%02u", uGdpb);
756 title = Form(
"ASIC State vs TS index in gDPB %02u; TS # ; Asic []; 0 = "
757 "Off, 1 = OK, 2 = Miss, 3 = Resync, 4 = Miss + Resync []",
762 name = Form(
"RawFt_gDPB_%02u", uGdpb);
763 title = Form(
"Raw FineTime gDPB %02u Plot 0; channel; FineTime [bin]", uGdpb);
768 name = Form(
"RawTot_gDPB_%02u", uGdpb);
769 title = Form(
"Raw TOT gDPB %02u; channel; TOT [bin]", uGdpb);
774 name = Form(
"ChCount_gDPB_%02u", uGdpb);
775 title = Form(
"Channel counts gDPB %02u; channel; Hits", uGdpb);
780 name = Form(
"ChRate_gDPB_%02u", uGdpb);
781 title = Form(
"Channel rate gDPB %02u; Time in run [s]; channel; Rate [1/s]", uGdpb);
787 name = Form(
"RemapTot_gDPB_%02u", uGdpb);
788 title = Form(
"Raw TOT gDPB %02u remapped; PADI channel; TOT [bin]", uGdpb);
793 name = Form(
"RemapChCount_gDPB_%02u", uGdpb);
794 title = Form(
"Channel counts gDPB %02u remapped; PADI channel; Hits", uGdpb);
799 name = Form(
"RemapChRate_gDPB_%02u", uGdpb);
800 title = Form(
"PADI channel rate gDPB %02u; Time in run [s]; PADI channel; Rate [1/s]", uGdpb);
807 name = Form(
"FeeRate_gDPB_g%02u_f%1u", uGdpb, uFee);
808 title = Form(
"Counts per second in Fee %1u of gDPB %02u; Time[s] ; Counts", uFee, uGdpb);
811 name = Form(
"FeeErrorRate_gDPB_g%02u_f%1u", uGdpb, uFee);
812 title = Form(
"Error Counts per second in Fee %1u of gDPB %02u; Time[s] ; "
817 name = Form(
"FeeErrorRatio_gDPB_g%02u_f%1u", uGdpb, uFee);
818 title = Form(
"Error to data ratio per second in Fee %1u of gDPB %02u; "
819 "Time[s] ; Error ratio[]",
824 name = Form(
"FeeRateLong_gDPB_g%02u_f%1u", uGdpb, uFee);
825 title = Form(
"Counts per minutes in Fee %1u of gDPB %02u; Time[min] ; Counts", uFee, uGdpb);
829 name = Form(
"FeeErrorRateLong_gDPB_g%02u_f%1u", uGdpb, uFee);
830 title = Form(
"Error Counts per minutes in Fee %1u of gDPB %02u; "
831 "Time[min] ; Error Counts",
836 name = Form(
"FeeErrorRatioLong_gDPB_g%02u_f%1u", uGdpb, uFee);
837 title = Form(
"Error to data ratio per minutes in Fee %1u of gDPB %02u; "
838 "Time[min] ; Error ratio[]",
846 Form(
"Hit Counts per MS in first channel in gDPB %02u; TS []; "
847 "Hits/MS []; MS nb[]",
849 10000, 0, 10000, 150, -0.5, 149.5));
851 Form(
"Mean Hit count per MS and channel vs Time in gDPB "
852 "%02u; TS []; Channel []; <Hits/Ms> []",
859 name = Form(
"hTokenMsgType_gDPB_%02u", uGdpb);
860 title = Form(
"STAR trigger Messages type gDPB %02u; Type ; Counts", uGdpb);
868 name = Form(
"hTriggerRate_gDPB_%02u", uGdpb);
869 title = Form(
"STAR trigger signals per second gDPB %02u; Time[s] ; Counts", uGdpb);
873 name = Form(
"hCmdDaqVsTrig_gDPB_%02u", uGdpb);
874 title = Form(
"STAR daq command VS STAR trigger command gDPB %02u; DAQ ; TRIGGER", uGdpb);
875 fvhCmdDaqVsTrig.push_back(
new TH2I(name, title, 16, 0, 16, 16, 0, 16));
914 name = Form(
"hStarTokenEvo_gDPB_%02u", uGdpb);
915 title = Form(
"STAR token value VS time gDPB %02u; Time in Run [s] ; STAR "
921 name = Form(
"hStarTrigGdpbTsEvo_gDPB_%02u", uGdpb);
922 title = Form(
"gDPB TS in STAR triger tokens for gDPB %02u; Time in Run [s] ; gDPB TS;", uGdpb);
925 name = Form(
"hStarTrigStarTsEvo_gDPB_%02u", uGdpb);
926 title = Form(
"STAR TS in STAR triger tokens for gDPB %02u; Time in Run [s] ; STAR TS;", uGdpb);
974 new TH1I(Form(
"hTimeDiffPulser_g%02u_f%1u_g%02u_f%1u", uGdpbA, uFeeIdA, uGdpbB, uFeeIdB),
975 Form(
"Time difference for pulser on gDPB %02u FEE %1u and "
976 "gDPB %02u FEE %1u; DeltaT [ps]; Counts",
977 uGdpbA, uFeeIdA, uGdpbB, uFeeIdB),
985 name =
"hTimeMeanPulser";
986 fhTimeMeanPulser =
new TH2D(name.Data(),
"Time difference Mean for each FEE pairs; FEE A; FEE B ; Mean [ps]",
990 name =
"hTimeRmsPulser";
991 fhTimeRmsPulser =
new TH2D(name.Data(),
"Time difference RMS for each FEE pairs; FEE A; FEE B ; RMS [ps]",
995 name =
"hTimeRmsZoomFitPuls";
997 "Time difference RMS after zoom for each "
998 "FEE pairs; FEE A; FEE B ; RMS [ps]",
1002 name =
"hTimeResFitPuls";
1004 "Time difference Res from fit for each FEE "
1005 "pairs; FEE A; FEE B ; Sigma [ps]",
1011 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1013 name = Form(
"hPulserTimeDiffEvoGdpb%02uGbtx00Gbtx%02u", uGdpb, uGbtx + 1);
1015 new TProfile(name.Data(),
1016 Form(
"Time difference of the 1st FEE in the 1st GBTx of gDPB %02u "
1017 "vs GBTx %02u; time in run [min]; dt [ps]",
1023 for (UInt_t uGdpbB = uGdpb + 1; uGdpbB <
fuNrOfGdpbs; ++uGdpbB) {
1024 name = Form(
"hPulserTimeDiffEvoGdpb%02uGdpb%02u", uGdpb, uGdpbB);
1026 new TProfile(name.Data(),
1027 Form(
"Time difference of the 1st FEE in the 1st GBTx of "
1028 "gDPB %02u vs %02u; time in run [min]; dt [ps]",
1037 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1038 name = Form(
"hCoincMapAllChanGdpb%02u", uGdpb);
1040 Form(
"Coincidence map of all channels of gDPB %02u; Chan A "
1041 "[]; Chan B[]; Coinc. []",
1046 name = Form(
"hCoincMeanAllChanGdpb%02u", uGdpb);
1048 Form(
"Coincidence mean of all channels of gDPB %02u; "
1049 "Chan A []; Chan B[]; Mean dt [ps]",
1080 for (UInt_t uTotPlot = 0; uTotPlot <
fvhRawTot_gDPB.size(); ++uTotPlot)
1095 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1147 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1152 for (UInt_t uGdpbB = uGdpb + 1; uGdpbB <
fuNrOfGdpbs; ++uGdpbB)
1158 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1164 server->RegisterCommand(
"/Reset_All_eTOF",
"bMcbmMoniTofResetHistos=kTRUE");
1165 server->RegisterCommand(
"/Save_All_eTof",
"bMcbmMoniTofSaveHistos=kTRUE");
1166 server->RegisterCommand(
"/Update_PulsFit",
"bMcbmMoniTofUpdateZoomedFit=kTRUE");
1167 server->RegisterCommand(
"/Print_Raw_Data",
"bMcbmMoniTofRawDataPrint=kTRUE");
1168 server->RegisterCommand(
"/Print_AllHits",
"bMcbmMoniTofPrintAllHitsEna=kTRUE");
1169 server->RegisterCommand(
"/Print_AllEps",
"bMcbmMoniTofPrintAllEpochsEna=kTRUE");
1171 server->Restrict(
"/Reset_All_eTof",
"allow=admin");
1172 server->Restrict(
"/Save_All_eTof",
"allow=admin");
1173 server->Restrict(
"/Update_PulsFit",
"allow=admin");
1174 server->Restrict(
"/Print_Raw_Data",
"allow=admin");
1175 server->Restrict(
"/Print_AllHits",
"allow=admin");
1176 server->Restrict(
"/Print_AllEps",
"allow=admin");
1182 fcSummary =
new TCanvas(
"cSummary",
"gDPB Monitoring Summary");
1210 server->Register(
"/canvases",
fcSummary);
1214 fcSummaryGdpb =
new TCanvas(
"cSummaryGdpb",
"gDPB Monitoring Summary");
1240 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1241 TCanvas* cSumGdpbGet4 =
1242 new TCanvas(Form(
"cSumGdpbGet4_g%02u", uGdpb), Form(
"Summary per GET4 or channel for gDPB %02u", uGdpb), w,
h);
1243 cSumGdpbGet4->Divide(2, 2);
1245 cSumGdpbGet4->cd(1);
1249 cSumGdpbGet4->cd(2);
1253 cSumGdpbGet4->cd(3);
1257 server->Register(
"/canvases", cSumGdpbGet4);
1262 TCanvas* cFeeRates =
new TCanvas(
"cFeeRates",
"gDPB Monitoring FEE rates", w,
h);
1265 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1276 server->Register(
"/canvases", cFeeRates);
1280 TCanvas* cFeeErrRatio =
new TCanvas(
"cFeeErrRatio",
"gDPB Monitoring FEE error ratios", w,
h);
1283 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1291 server->Register(
"/canvases", cFeeErrRatio);
1296 TCanvas* cFeeRatesLong =
new TCanvas(
"cFeeRatesLong",
"gDPB Monitoring FEE rates", w,
h);
1299 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1310 server->Register(
"/canvases", cFeeRatesLong);
1314 TCanvas* cFeeErrRatioLong =
new TCanvas(
"cFeeErrRatioLong",
"gDPB Monitoring FEE error ratios", w,
h);
1317 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1325 server->Register(
"/canvases", cFeeErrRatioLong);
1329 fcGdpbChannelCount =
new TCanvas(
"cGdpbChannelCount",
"Integrated Get4 channel counts per gDPB");
1331 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1343 fcGdpbRemapChCount =
new TCanvas(
"cGdpbRemapChCount",
"Integrated PADI channel counts per gDPB");
1345 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1357 fcGdpbChannelRate =
new TCanvas(
"cGdpbChannelRate",
"Get4 channel rate per gDPB");
1359 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1371 fcGdpbRemapChRate =
new TCanvas(
"cGdpbRemapChRate",
"PADI channel rate per gDPB");
1373 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1385 TCanvas* cTotPnt = NULL;
1386 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1387 cTotPnt =
new TCanvas(Form(
"cTot_g%02u", uGdpb), Form(
"gDPB %02u TOT distributions", uGdpb), w,
h);
1396 server->Register(
"/canvases", cTotPnt);
1399 cTotPnt =
new TCanvas(
"cTot_all",
"TOT distributions", w,
h);
1401 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1402 cTotPnt->cd(1 + uGdpb);
1410 server->Register(
"/canvases", cTotPnt);
1415 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1416 cTotPnt =
new TCanvas(Form(
"cTotRemap_g%02u", uGdpb), Form(
"PADI ch gDPB %02u TOT distributions", uGdpb), w,
h);
1425 server->Register(
"/canvases", cTotPnt);
1427 cTotPnt =
new TCanvas(
"cTotRemap_all",
"TOT distributions", w,
h);
1429 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1430 cTotPnt->cd(1 + uGdpb);
1438 server->Register(
"/canvases", cTotPnt);
1470 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; uGdpb++) {
1471 TCanvas* cStarToken =
1472 new TCanvas(Form(
"cStarToken_g%02u", uGdpb), Form(
"STAR token detection info for gDPB %02u", uGdpb), w,
h);
1473 cStarToken->Divide(2, 2);
1494 new TCanvas(
"cPulser",
"Time difference RMS for pulser channels when FEE pulser mode is ON", w,
h);
1495 cPulser->Divide(2, 2);
1517 server->Register(
"/canvases", cPulser);
1521 TCanvas* cPulserEvo =
1522 new TCanvas(
"cPulserEvo",
"Time difference evolution between 1st FEE of 1st GBTx of gDPB pairs", w,
h);
1524 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs - 1; uGdpb++) {
1525 cPulserEvo->cd(1 + uGdpb);
1533 server->Register(
"/canvases", cPulserEvo);
1536 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; uGdpb++) {
1537 TCanvas* cPulserEvoGbtx =
new TCanvas(Form(
"cPulserEvoGbtx%02u", uGdpb),
1538 Form(
"Time difference evolution between 1st FEE of GBTx "
1539 "pairs in gDPB %02u",
1545 cPulserEvoGbtx->cd(1 + uGbtx);
1553 server->Register(
"/canvases", cPulserEvoGbtx);
1580 fcMsSizeAll =
dynamic_cast<TCanvas*
>(gROOT->FindObject(
"cMsSizeAll"));
1582 fcMsSizeAll =
new TCanvas(
"cMsSizeAll",
"Evolution of MS size in last 300 s", w,
h);
1584 LOG(info) <<
"Created MS size canvas in TOF monitor";
1587 LOG(info) <<
"Recovered MS size canvas in TOF monitor";
1591 LOG(info) <<
"Leaving CreateHistograms";
2187 if (0 < ulCurEpochGdpbGet4) ulCurEpochGdpbGet4--;
2267 for( UInt_t uFeeB = 0; uFeeB < uFeeNrInSys; uFeeB++)
2268 if( NULL != fvhTimeDiffPulser[uFeeB][uFeeNrInSys] )
2270 Double_t dTimeDiff = 1e3 * ( fdTsLastPulserHit[ uFeeNrInSys ] - fdTsLastPulserHit[ uFeeB ] );
2271 if( TMath::Abs( dTimeDiff ) < kdMaxDtPulserPs )
2273 fvhTimeDiffPulser[uFeeB][uFeeNrInSys]->Fill( dTimeDiff );
2276 if( 0 == uFeeInGbtx && 0 == uFeeB % kuNbFeePerGbtx )
2279 if( fuGdpbNr == uFeeB / fuNrOfFeePerGdpb )
2281 if( 0 == uFeeB / kuNbFeePerGbtx )
2283 UInt_t uPlotIdx = fuGdpbNr * ( kuNbGbtxPerGdpb - 1) + uGbtxNr - 1;
2284 fvhPulserTimeDiffEvoGbtxGbtx[ uPlotIdx ]->Fill( 1e-9 / 60.0 * (dHitTime - fdStartTime), dTimeDiff );
2286 } // if( fuGdpbNr == uFeeB / fuNrOfFeePerGdpb )
2287 else // if( NULL != fvvhPulserTimeDiffEvoGdpbGdpb[ uFeeB / fuNrOfFeePerGdpb ][ fuGdpbNr ] )
2290 if( 0 == uGbtxNr && 0 == uFeeB / kuNbFeePerGbtx )
2291 fvvhPulserTimeDiffEvoGdpbGdpb[ uFeeB / fuNrOfFeePerGdpb ][ fuGdpbNr ]->Fill(
2292 1e-9 / 60.0 * (dHitTime - fdStartTime), dTimeDiff );
2293 } // else of if( fuGdpbNr == uFeeB / fuNrOfFeePerGdpb )
2294 } // if( 0 == uFeeInGbtx && 0 == uFeeB % kuNbFeePerGbtx )
2295 } // if( TMath::Abs( dTimeDiff ) < kdMaxDtPulserPs )
2296 // else if( 10 == uFeeB && 20 == uFeeNrInSys )
2297 // LOG(info) << "new in 20 " << dTimeDiff;
2298 } // if( NULL != fvhTimeDiffPulser[uFeeB][uFeeB] )
2301 for( UInt_t uFeeB = uFeeNrInSys + 1; uFeeB < fuNrOfFeePerGdpb * fuNrOfGdpbs; uFeeB++)
2302 if( NULL != fvhTimeDiffPulser[uFeeNrInSys][uFeeB] )
2304 Double_t dTimeDiff = 1e3 * ( fdTsLastPulserHit[ uFeeB ] - fdTsLastPulserHit[ uFeeNrInSys ] );
2305 if( TMath::Abs( dTimeDiff ) < kdMaxDtPulserPs )
2307 fvhTimeDiffPulser[uFeeNrInSys][uFeeB]->Fill( dTimeDiff );
2310 if( 0 == uFeeInGbtx && 0 == uFeeB % kuNbFeePerGbtx )
2313 if( fuGdpbNr == uFeeB / fuNrOfFeePerGdpb )
2317 UInt_t uPlotIdx = fuGdpbNr * ( kuNbGbtxPerGdpb - 1)
2318 + ( uFeeB - fuGdpbNr * fuNrOfFeePerGdpb) / kuNbFeePerGbtx - 1;
2319 fvhPulserTimeDiffEvoGbtxGbtx[ uPlotIdx ]->Fill( 1e-9 / 60.0 * (dHitTime - fdStartTime), dTimeDiff );
2320 } // if( 0 == uGbtxNr )
2321 } // if( fuGdpbNr == uFeeB / fuNrOfFeePerGdpb )
2322 else // if( NULL != fvvhPulserTimeDiffEvoGdpbGdpb[ uFeeB / fuNrOfFeePerGdpb ][ fuGdpbNr ] )
2325 if( 0 == uGbtxNr && 0 == uFeeB / kuNbFeePerGbtx )
2326 fvvhPulserTimeDiffEvoGdpbGdpb[ fuGdpbNr ][ uFeeB / fuNrOfFeePerGdpb ]->Fill(
2327 1e-9 / 60.0 * (dHitTime - fdStartTime), dTimeDiff );
2328 } // else of if( fuGdpbNr == uFeeB / fuNrOfFeePerGdpb )
2329 } // if( 0 == uFeeInGbtx && 0 == uFeeB % kuNbFeePerGbtx )
2330 } // if( TMath::Abs( dTimeDiff ) < kdMaxDtPulserPs )
2331 // else if( 10 == uFeeNrInSys && 20 == uFeeB )
2332 // LOG(info) << "new in 10 " << dTimeDiff;
2333 } // if( NULL != fvhTimeDiffPulser[uFeeNrInSys][uFeeB] )
2369 LOG(info) <<
"Hit: " << Form(
"0x%08x ",
fuGdpbId) <<
", " << std::setw(2) <<
fuGet4Nr <<
", " << std::setw(3)
2370 << uChannel <<
", " << std::setw(3) << uTot <<
", epoch " << std::setw(3) << ulCurEpochGdpbGet4
2371 <<
", FullTime Clk " << Form(
"%12lu ", ulHitTime) <<
", FullTime s " << Form(
"%12.9f ", dHitTime / 1e9)
2372 <<
", FineTime " << uFts;