55 , fvMsComponentsList()
58 , fbIgnoreOverlapMs(kFALSE)
59 , fuMsAcceptsPercent(100)
64 , fdTsCoreSizeInNs(0.0)
71 , fuNrOfChannelsPerGet4(0)
72 , fuNrOfChannelsPerFee(0)
74 , fuNrOfGet4PerGdpb(0)
75 , fuNrOfChannelsPerGdpb(0)
76 , fuRawDataPrintMsgNb(100000)
77 , fuRawDataPrintMsgIdx(fuRawDataPrintMsgNb)
78 , fbPrintAllHitsEnable(kFALSE)
79 , fbPrintAllEpochsEnable(kFALSE)
80 , fbPulserModeEnable(kFALSE)
81 , fbCoincMapsEnable(kFALSE)
82 , fulCurrentTsIndex(0)
90 , fviMsgCounter(11, 0)
96 , fvulGdpbTsFullLast()
97 , fvulStarTsFullLast()
100 , fvuStarTrigCmdLast()
102 , fvbFirstEpochSeen()
103 , fvulCurrentEpochCycle()
104 , fvulCurrentEpochFull()
105 , fulCurrentEpochTime(0)
108 , fvuFeeNbHitsLastMs()
109 , fdTsLastPulserHit()
110 , fvuCoincNbHitsLastMs()
111 , fvdCoincTsLastHit()
112 , dMinDt(-1. * (kuNbBinsDt *
gdpbv100::kdBinSize / 2.) -
gdpbv100::kdBinSize / 2.)
113 , dMaxDt(1. * (kuNbBinsDt *
gdpbv100::kdBinSize / 2.) +
gdpbv100::kdBinSize / 2.)
115 , fuNbFeePlotsPerGdpb(0)
117 , fdStartTimeLong(-1.)
118 , fdStartTimeMsSz(-1.)
119 , fuHistoryHistoSize(1800)
120 , fuHistoryHistoSizeLong(600)
121 , fdLastRmsUpdateTime(0.0)
122 , fdFitZoomWidthPs(0.0)
124 , fvhMsSzPerLink(12, NULL)
125 , fvhMsSzTimePerLink(12, NULL)
127 , fhSysMessType(NULL)
128 , fhGet4MessType(NULL)
129 , fhGet4ChanScm(NULL)
130 , fhGet4ChanErrors(NULL)
131 , fhGet4EpochFlags(NULL)
132 , fhGdpbMessType(NULL)
133 , fhGdpbSysMessType(NULL)
134 , fhGdpbSysMessPattType(NULL)
135 , fhGdpbEpochFlags(NULL)
136 , fhGdpbEpochSyncEvo(NULL)
137 , fhGdpbEpochMissEvo(NULL)
138 , fvhGdpbGet4MessType()
139 , fvhGdpbGet4ChanScm()
140 , fvhGdpbGet4ChanErrors()
141 , fhScmScalerCounters(NULL)
142 , fhScmDeadtimeCounters(NULL)
143 , fhScmSeuCounters(NULL)
144 , fhScmSeuCountersEvo(NULL)
145 , fhPatternMissmatch(NULL)
146 , fhPatternEnable(NULL)
147 , fhPatternResync(NULL)
148 , fvhGdpbPatternMissmatchEvo()
149 , fvhGdpbPatternEnableEvo()
150 , fvhGdpbPatternResyncEvo()
154 , fvhChannelRate_gDPB()
156 , fvhRemapChCount_gDPB()
157 , fvhRemapChRate_gDPB()
159 , fvhFeeErrorRate_gDPB()
160 , fvhFeeErrorRatio_gDPB()
161 , fvhFeeRateLong_gDPB()
162 , fvhFeeErrorRateLong_gDPB()
163 , fvhFeeErrorRatioLong_gDPB()
164 , fvhRemapTotSideA_mod()
165 , fvhRemapTotSideB_mod()
173 , fvhStarTrigGdpbTsEvo()
174 , fvhStarTrigStarTsEvo()
175 , fvhTimeDiffPulser()
176 , fhTimeMeanPulser(NULL)
177 , fhTimeRmsPulser(NULL)
178 , fhTimeRmsZoomFitPuls(NULL)
179 , fhTimeResFitPuls(NULL)
180 , fvhPulserTimeDiffEvoGbtxGbtx()
181 , fvvhPulserTimeDiffEvoGdpbGdpb()
186 , fTimeLastHistoSaving()
232 LOG(info) <<
"ReInit parameter containers for " << GetName();
262 LOG(info) <<
"GDPB Id of TOF " << i <<
" : " << std::hex <<
fUnpackPar->
GetGdpbId(i) << std::dec;
275 for (UInt_t uGbtx = 0; uGbtx <
fuNrOfGbtx; ++uGbtx) {
282 LOG(info) <<
"Nr. of RPCs per GBTx: ";
283 std::stringstream ss;
284 for (UInt_t uGbtx = 0; uGbtx <
fuNrOfGbtx; ++uGbtx)
286 LOG(info) << ss.str();
288 LOG(info) <<
"RPC type per GBTx: ";
289 std::stringstream ss;
290 for (UInt_t uGbtx = 0; uGbtx <
fuNrOfGbtx; ++uGbtx)
292 LOG(info) << ss.str();
294 LOG(info) <<
"RPC side per GBTx: ";
295 std::stringstream ss;
296 for (UInt_t uGbtx = 0; uGbtx <
fuNrOfGbtx; ++uGbtx)
298 LOG(info) << ss.str();
300 LOG(info) <<
"Module ID per GBTx: ";
301 std::stringstream ss;
302 for (UInt_t uGbtx = 0; uGbtx <
fuNrOfGbtx; ++uGbtx)
304 LOG(info) << ss.str();
324 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
348 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
369 UInt_t uGet4topadi[32] = {4, 3, 2, 1,
370 8, 7, 6, 5, 12, 11, 10, 9, 16, 15, 14, 13, 20, 19,
371 18, 17, 24, 23, 22, 21, 28, 27, 26, 25, 32, 31, 30, 29};
373 UInt_t uPaditoget4[32] = {4, 3, 2, 1,
374 12, 11, 10, 9, 20, 19, 18, 17, 28, 27, 26, 25, 32, 31,
375 30, 29, 8, 7, 6, 5, 16, 15, 14, 13, 24, 23, 22, 21};
386 UInt_t kuElinkToGet4[
kuNbGet4PerGbtx] = {27, 2, 7, 3, 31, 26, 30, 1, 33, 37, 32, 13, 9, 14,
387 10, 15, 17, 21, 16, 35, 34, 38, 25, 24, 0, 6, 20, 23,
388 18, 22, 28, 4, 29, 5, 19, 36, 39, 8, 12, 11};
389 UInt_t kuGet4ToElink[
kuNbGet4PerGbtx] = {24, 7, 1, 3, 31, 33, 25, 2, 37, 12, 14, 39, 38, 11,
390 13, 15, 18, 16, 28, 34, 26, 17, 29, 27, 23, 22, 5, 0,
391 30, 32, 6, 4, 10, 8, 20, 19, 35, 9, 21, 36};
444 LOG(info) <<
"create Histos for " <<
fuNrOfGdpbs <<
" gDPBs ";
446 THttpServer* server = FairRunOnline::Instance()->GetHttpServer();
455 Double_t dBinSzG4v2 = (6250. / 112.);
460 name =
"hMessageType";
461 title =
"Nb of message for each type; Type";
474 name =
"hSysMessType";
475 title =
"Nb of system message for each type; System Type";
483 name =
"hGet4MessType";
484 title =
"Nb of message for each type per GET4; GET4 chip # ; Type";
494 name =
"hGet4ChanScm";
495 title =
"SC messages per GET4 channel; GET4 channel # ; SC type";
505 name =
"hGet4ChanErrors";
506 title =
"Error messages per GET4 channel; GET4 channel # ; Error";
532 name =
"hGet4EpochFlags";
533 title =
"Epoch flags per GET4; GET4 chip # ; Type";
541 name =
"hGdpbMessageType";
542 title =
"Nb of message for each type per Gdpb; Type; Gdpb Idx []";
556 name =
"hGdpbSysMessType";
557 title =
"Nb of system message for each type per Gdpb; System Type; Gdpb Idx []";
566 name =
"hGdpbSysMessPattType";
567 title =
"Nb of pattern message for each type per Gdpb; Pattern Type; Gdpb Idx []";
575 name =
"hGdpbEpochFlags";
576 title =
"Epoch flags per gDPB; gDPB # ; Type";
584 name = Form(
"hGdpbEpochSyncEvo");
585 title = Form(
"Epoch SYNC per second and gDPB; Time[s]; gDPB #; SYNC Nb");
590 name = Form(
"hGdpbEpochMissEvo");
591 title = Form(
"Epoch Missmatch per second and gDPB; Time[s]; gDPB #; Missmatch Nb");
597 name =
"hScmScalerCounters";
598 title =
"Content of Scaler counter SC messages; Scaler counter [hit]; Channel []";
602 name =
"hScmDeadtimeCounters";
603 title =
"Content of Deadtime counter SC messages; Deadtime [Clk Cycles]; "
608 name =
"hScmSeuCounters";
609 title =
"Content of SEU counter SC messages; SEU []; Channel []";
613 name =
"hScmSeuCountersEvo";
614 title =
"SEU counter rate from SC messages; Time in Run [s]; Channel []; SEU []";
619 name =
"hPatternMissmatch";
620 title =
"Missmatch pattern integral per Gdpb; ASIC Pattern []; Gdpb Idx []";
623 name =
"hPatternEnable";
624 title =
"Enable pattern integral per Gdpb; ASIC Pattern []; Gdpb Idx []";
627 name =
"hPatternResync";
628 title =
"Resync pattern integral per Gdpb; ASIC Pattern []; Gdpb Idx []";
634 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
637 name = Form(
"hGdpbGet4MessType_%02u", uGdpb);
638 title = Form(
"Nb of message for each type per GET4 in gDPB %02u; GET4 chip # ; Type", uGdpb);
646 name = Form(
"hGdpbGet4ChanScm_%02u", uGdpb);
647 title = Form(
"SC messages per GET4 channel in gDPB %02u; GET4 channel # ; SC type", uGdpb);
657 name = Form(
"hGdpbGet4ChanErrors_%02u", uGdpb);
658 title = Form(
"Error messages per GET4 channel in gDPB %02u; GET4 channel # ; Error", uGdpb);
685 name = Form(
"hGdpbPatternMissmatchEvo_%02u", uGdpb);
686 title = Form(
"Missmatch pattern vs TS index in gDPB %02u; TS # ; ASIC Pattern []", uGdpb);
690 name = Form(
"hGdpbPatternEnableEvo_%02u", uGdpb);
691 title = Form(
"Enable pattern vs TS index in gDPB %02u; TS # ; ASIC Pattern []", uGdpb);
695 name = Form(
"hGdpbPatternResyncEvo%02u", uGdpb);
696 title = Form(
"Resync pattern vs TS index in gDPB %02u; TS # ; ASIC Pattern []", uGdpb);
701 name = Form(
"RawFt_gDPB_%02u", uGdpb);
702 title = Form(
"Raw FineTime gDPB %02u Plot 0; channel; FineTime [bin]", uGdpb);
707 name = Form(
"RawTot_gDPB_%02u", uGdpb);
708 title = Form(
"Raw TOT gDPB %02u; channel; TOT [bin]", uGdpb);
713 name = Form(
"ChCount_gDPB_%02u", uGdpb);
714 title = Form(
"Channel counts gDPB %02u; channel; Hits", uGdpb);
719 name = Form(
"ChRate_gDPB_%02u", uGdpb);
720 title = Form(
"Channel rate gDPB %02u; Time in run [s]; channel; Rate [1/s]", uGdpb);
726 name = Form(
"RemapTot_gDPB_%02u", uGdpb);
727 title = Form(
"Raw TOT gDPB %02u remapped; PADI channel; TOT [bin]", uGdpb);
732 name = Form(
"RemapChCount_gDPB_%02u", uGdpb);
733 title = Form(
"Channel counts gDPB %02u remapped; PADI channel; Hits", uGdpb);
738 name = Form(
"RemapChRate_gDPB_%02u", uGdpb);
739 title = Form(
"PADI channel rate gDPB %02u; Time in run [s]; PADI channel; Rate [1/s]", uGdpb);
746 name = Form(
"FeeRate_gDPB_g%02u_f%1u", uGdpb, uFee);
747 title = Form(
"Counts per second in Fee %1u of gDPB %02u; Time[s] ; Counts", uFee, uGdpb);
750 name = Form(
"FeeErrorRate_gDPB_g%02u_f%1u", uGdpb, uFee);
751 title = Form(
"Error Counts per second in Fee %1u of gDPB %02u; Time[s] ; "
756 name = Form(
"FeeErrorRatio_gDPB_g%02u_f%1u", uGdpb, uFee);
757 title = Form(
"Error to data ratio per second in Fee %1u of gDPB %02u; "
758 "Time[s] ; Error ratio[]",
763 name = Form(
"FeeRateLong_gDPB_g%02u_f%1u", uGdpb, uFee);
764 title = Form(
"Counts per minutes in Fee %1u of gDPB %02u; Time[min] ; Counts", uFee, uGdpb);
768 name = Form(
"FeeErrorRateLong_gDPB_g%02u_f%1u", uGdpb, uFee);
769 title = Form(
"Error Counts per minutes in Fee %1u of gDPB %02u; "
770 "Time[min] ; Error Counts",
775 name = Form(
"FeeErrorRatioLong_gDPB_g%02u_f%1u", uGdpb, uFee);
776 title = Form(
"Error to data ratio per minutes in Fee %1u of gDPB %02u; "
777 "Time[min] ; Error ratio[]",
785 name = Form(
"hTokenMsgType_gDPB_%02u", uGdpb);
786 title = Form(
"STAR trigger Messages type gDPB %02u; Type ; Counts", uGdpb);
794 name = Form(
"hTriggerRate_gDPB_%02u", uGdpb);
795 title = Form(
"STAR trigger signals per second gDPB %02u; Time[s] ; Counts", uGdpb);
799 name = Form(
"hCmdDaqVsTrig_gDPB_%02u", uGdpb);
800 title = Form(
"STAR daq command VS STAR trigger command gDPB %02u; DAQ ; TRIGGER", uGdpb);
801 fvhCmdDaqVsTrig.push_back(
new TH2I(name, title, 16, 0, 16, 16, 0, 16));
840 name = Form(
"hStarTokenEvo_gDPB_%02u", uGdpb);
841 title = Form(
"STAR token value VS time gDPB %02u; Time in Run [s] ; STAR "
847 name = Form(
"hStarTrigGdpbTsEvo_gDPB_%02u", uGdpb);
848 title = Form(
"gDPB TS in STAR triger tokens for gDPB %02u; Time in Run [s] ; gDPB TS;", uGdpb);
851 name = Form(
"hStarTrigStarTsEvo_gDPB_%02u", uGdpb);
852 title = Form(
"STAR TS in STAR triger tokens for gDPB %02u; Time in Run [s] ; STAR TS;", uGdpb);
859 name = Form(
"RemapTotSideA_mod_%02u", uMod);
860 title = Form(
"Raw TOT module %02u Side A; PADI channel; TOT [bin]", uMod);
863 name = Form(
"RemapTotSideB_mod_%02u", uMod);
864 title = Form(
"Raw TOT module %02u Side B; PADI channel; TOT [bin]", uMod);
868 name = Form(
"ModRate_gDPB_m%02u", uMod);
869 title = Form(
"Counts per second in Module %02u; Time[s] ; Counts", uMod);
872 name = Form(
"ModErrorRate_m%02u", uMod);
873 title = Form(
"Error Counts per second in Module %02u; Time[s] ; Error Counts", uMod);
876 name = Form(
"ModErrorRatio_m%02u", uMod);
877 title = Form(
"Error to data ratio per second in Module %02u; Time[s] ; Error ratio[]", uMod);
894 new TH1I(Form(
"hTimeDiffPulser_g%02u_f%1u_g%02u_f%1u", uGdpbA, uFeeIdA, uGdpbB, uFeeIdB),
895 Form(
"Time difference for pulser on gDPB %02u FEE %1u and "
896 "gDPB %02u FEE %1u; DeltaT [ps]; Counts",
897 uGdpbA, uFeeIdA, uGdpbB, uFeeIdB),
905 name =
"hTimeMeanPulser";
906 fhTimeMeanPulser =
new TH2D(name.Data(),
"Time difference Mean for each FEE pairs; FEE A; FEE B ; Mean [ps]",
910 name =
"hTimeRmsPulser";
911 fhTimeRmsPulser =
new TH2D(name.Data(),
"Time difference RMS for each FEE pairs; FEE A; FEE B ; RMS [ps]",
915 name =
"hTimeRmsZoomFitPuls";
917 "Time difference RMS after zoom for each "
918 "FEE pairs; FEE A; FEE B ; RMS [ps]",
922 name =
"hTimeResFitPuls";
924 "Time difference Res from fit for each FEE "
925 "pairs; FEE A; FEE B ; Sigma [ps]",
931 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
933 name = Form(
"hPulserTimeDiffEvoGdpb%02uGbtx00Gbtx%02u", uGdpb, uGbtx + 1);
935 new TProfile(name.Data(),
936 Form(
"Time difference of the 1st FEE in the 1st GBTx of gDPB %02u "
937 "vs GBTx %02u; time in run [min]; dt [ps]",
943 for (UInt_t uGdpbB = uGdpb + 1; uGdpbB <
fuNrOfGdpbs; ++uGdpbB) {
944 name = Form(
"hPulserTimeDiffEvoGdpb%02uGdpb%02u", uGdpb, uGdpbB);
946 new TProfile(name.Data(),
947 Form(
"Time difference of the 1st FEE in the 1st GBTx of "
948 "gDPB %02u vs %02u; time in run [min]; dt [ps]",
957 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
958 name = Form(
"hCoincMapAllChanGdpb%02u", uGdpb);
960 Form(
"Coincidence map of all channels of gDPB %02u; Chan A "
961 "[]; Chan B[]; Coinc. []",
966 name = Form(
"hCoincMeanAllChanGdpb%02u", uGdpb);
968 Form(
"Coincidence mean of all channels of gDPB %02u; "
969 "Chan A []; Chan B[]; Mean dt [ps]",
1000 for (UInt_t uTotPlot = 0; uTotPlot <
fvhRawTot_gDPB.size(); ++uTotPlot)
1009 server->Register(
"/TofMod",
fvhModRate[uMod]);
1014 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1056 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1061 for (UInt_t uGdpbB = uGdpb + 1; uGdpbB <
fuNrOfGdpbs; ++uGdpbB)
1067 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1073 server->RegisterCommand(
"/Reset_All_eTOF",
"bMcbmMoniTofResetHistos=kTRUE");
1074 server->RegisterCommand(
"/Save_All_eTof",
"bMcbmMoniTofSaveHistos=kTRUE");
1075 server->RegisterCommand(
"/Update_PulsFit",
"bMcbmMoniTofUpdateZoomedFit=kTRUE");
1076 server->RegisterCommand(
"/Print_Raw_Data",
"bMcbmMoniTofRawDataPrint=kTRUE");
1077 server->RegisterCommand(
"/Print_AllHits",
"bMcbmMoniTofPrintAllHitsEna=kTRUE");
1078 server->RegisterCommand(
"/Print_AllEps",
"bMcbmMoniTofPrintAllEpochsEna=kTRUE");
1080 server->Restrict(
"/Reset_All_eTof",
"allow=admin");
1081 server->Restrict(
"/Save_All_eTof",
"allow=admin");
1082 server->Restrict(
"/Update_PulsFit",
"allow=admin");
1083 server->Restrict(
"/Print_Raw_Data",
"allow=admin");
1084 server->Restrict(
"/Print_AllHits",
"allow=admin");
1085 server->Restrict(
"/Print_AllEps",
"allow=admin");
1091 TCanvas* cSummary =
new TCanvas(
"cSummary",
"gDPB Monitoring Summary", w,
h);
1092 cSummary->Divide(2, 3);
1121 TCanvas* cSummaryGdpb =
new TCanvas(
"cSummaryGdpb",
"gDPB Monitoring Summary", w,
h);
1122 cSummaryGdpb->Divide(2, 3);
1124 cSummaryGdpb->cd(1);
1128 cSummaryGdpb->cd(3);
1132 cSummaryGdpb->cd(5);
1136 cSummaryGdpb->cd(4);
1139 cSummaryGdpb->cd(6);
1145 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1146 TCanvas* cSumGdpbGet4 =
1147 new TCanvas(Form(
"cSumGdpbGet4_g%02u", uGdpb), Form(
"Summary per GET4 or channel for gDPB %02u", uGdpb), w,
h);
1148 cSumGdpbGet4->Divide(2, 2);
1150 cSumGdpbGet4->cd(1);
1154 cSumGdpbGet4->cd(2);
1158 cSumGdpbGet4->cd(3);
1165 TCanvas* cFeeRates =
new TCanvas(
"cFeeRates",
"gDPB Monitoring FEE rates", w,
h);
1168 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1181 TCanvas* cFeeErrRatio =
new TCanvas(
"cFeeErrRatio",
"gDPB Monitoring FEE error ratios", w,
h);
1184 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1195 TCanvas* cFeeRatesLong =
new TCanvas(
"cFeeRatesLong",
"gDPB Monitoring FEE rates", w,
h);
1198 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1211 TCanvas* cFeeErrRatioLong =
new TCanvas(
"cFeeErrRatioLong",
"gDPB Monitoring FEE error ratios", w,
h);
1214 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1224 TCanvas* cGdpbChannelCount =
new TCanvas(
"cGdpbChannelCount",
"Integrated Get4 channel counts per gDPB", w,
h);
1226 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1227 cGdpbChannelCount->cd(1 + uGdpb);
1236 TCanvas* cGdpbRemapChCount =
new TCanvas(
"cGdpbRemapChCount",
"Integrated PADI channel counts per gDPB", w,
h);
1238 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1239 cGdpbRemapChCount->cd(1 + uGdpb);
1248 TCanvas* cGdpbChannelRate =
new TCanvas(
"cGdpbChannelRate",
"Get4 channel rate per gDPB", w,
h);
1250 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1251 cGdpbChannelRate->cd(1 + uGdpb);
1260 TCanvas* cGdpbRemapChRate =
new TCanvas(
"cGdpbRemapChRate",
"PADI channel rate per gDPB", w,
h);
1262 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1263 cGdpbRemapChRate->cd(1 + uGdpb);
1272 TCanvas* cTotPnt = NULL;
1273 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1274 cTotPnt =
new TCanvas(Form(
"cTot_g%02u", uGdpb), Form(
"gDPB %02u TOT distributions", uGdpb), w,
h);
1283 cTotPnt =
new TCanvas(
"cTot_all",
"TOT distributions", w,
h);
1285 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1286 cTotPnt->cd(1 + uGdpb);
1298 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1299 cTotPnt =
new TCanvas(Form(
"cTotRemap_g%02u", uGdpb), Form(
"PADI ch gDPB %02u TOT distributions", uGdpb), w,
h);
1308 cTotPnt =
new TCanvas(
"cTotRemap_all",
"TOT distributions", w,
h);
1310 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; ++uGdpb) {
1311 cTotPnt->cd(1 + uGdpb);
1325 new TCanvas(Form(
"cTotRemapSides_m%02u", uMod), Form(
"Sides ch module %02u TOT distributions", uMod), w,
h);
1326 cTotPnt->Divide(1, 2);
1345 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; uGdpb++) {
1346 TCanvas* cStarToken =
1347 new TCanvas(Form(
"cStarToken_g%02u", uGdpb), Form(
"STAR token detection info for gDPB %02u", uGdpb), w,
h);
1348 cStarToken->Divide(2, 2);
1369 new TCanvas(
"cPulser",
"Time difference RMS for pulser channels when FEE pulser mode is ON", w,
h);
1370 cPulser->Divide(2, 2);
1394 TCanvas* cPulserEvo =
1395 new TCanvas(
"cPulserEvo",
"Time difference evolution between 1st FEE of 1st GBTx of gDPB pairs", w,
h);
1397 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs - 1; uGdpb++) {
1398 cPulserEvo->cd(1 + uGdpb);
1407 for (UInt_t uGdpb = 0; uGdpb <
fuNrOfGdpbs; uGdpb++) {
1408 TCanvas* cPulserEvoGbtx =
new TCanvas(Form(
"cPulserEvoGbtx%02u", uGdpb),
1409 Form(
"Time difference evolution between 1st FEE of GBTx "
1410 "pairs in gDPB %02u",
1416 cPulserEvoGbtx->cd(1 + uGbtx);
1429 TCanvas* cModRates =
1430 new TCanvas(Form(
"cModRate_m%02u", uMod), Form(
"Hit and error Rates for module %02u", uMod), w,
h);
1443 fcMsSizeAll =
dynamic_cast<TCanvas*
>(gROOT->FindObject(
"cMsSizeAll"));
1445 fcMsSizeAll =
new TCanvas(
"cMsSizeAll",
"Evolution of MS size in last 300 s", w,
h);
1447 LOG(info) <<
"Created MS size canvas in TOF monitor";
1450 LOG(info) <<
"Recovered MS size canvas in TOF monitor";
1452 LOG(info) <<
"Leaving CreateHistograms";
1987 if (0 < ulCurEpochGdpbGet4) ulCurEpochGdpbGet4--;
2063 for( UInt_t uFeeB = 0; uFeeB < uFeeNrInSys; uFeeB++)
2064 if( NULL != fvhTimeDiffPulser[uFeeB][uFeeNrInSys] )
2066 Double_t dTimeDiff = 1e3 * ( fdTsLastPulserHit[ uFeeNrInSys ] - fdTsLastPulserHit[ uFeeB ] );
2067 if( TMath::Abs( dTimeDiff ) < kdMaxDtPulserPs )
2069 fvhTimeDiffPulser[uFeeB][uFeeNrInSys]->Fill( dTimeDiff );
2072 if( 0 == uFeeInGbtx && 0 == uFeeB % kuNbFeePerGbtx )
2075 if( fuGdpbNr == uFeeB / fuNrOfFeePerGdpb )
2077 if( 0 == uFeeB / kuNbFeePerGbtx )
2079 UInt_t uPlotIdx = fuGdpbNr * ( kuNbGbtxPerGdpb - 1) + uGbtxNr - 1;
2080 fvhPulserTimeDiffEvoGbtxGbtx[ uPlotIdx ]->Fill( 1e-9 / 60.0 * (dHitTime - fdStartTime), dTimeDiff );
2082 } // if( fuGdpbNr == uFeeB / fuNrOfFeePerGdpb )
2083 else // if( NULL != fvvhPulserTimeDiffEvoGdpbGdpb[ uFeeB / fuNrOfFeePerGdpb ][ fuGdpbNr ] )
2086 if( 0 == uGbtxNr && 0 == uFeeB / kuNbFeePerGbtx )
2087 fvvhPulserTimeDiffEvoGdpbGdpb[ uFeeB / fuNrOfFeePerGdpb ][ fuGdpbNr ]->Fill(
2088 1e-9 / 60.0 * (dHitTime - fdStartTime), dTimeDiff );
2089 } // else of if( fuGdpbNr == uFeeB / fuNrOfFeePerGdpb )
2090 } // if( 0 == uFeeInGbtx && 0 == uFeeB % kuNbFeePerGbtx )
2091 } // if( TMath::Abs( dTimeDiff ) < kdMaxDtPulserPs )
2092 // else if( 10 == uFeeB && 20 == uFeeNrInSys )
2093 // LOG(info) << "new in 20 " << dTimeDiff;
2094 } // if( NULL != fvhTimeDiffPulser[uFeeB][uFeeB] )
2097 for( UInt_t uFeeB = uFeeNrInSys + 1; uFeeB < fuNrOfFeePerGdpb * fuNrOfGdpbs; uFeeB++)
2098 if( NULL != fvhTimeDiffPulser[uFeeNrInSys][uFeeB] )
2100 Double_t dTimeDiff = 1e3 * ( fdTsLastPulserHit[ uFeeB ] - fdTsLastPulserHit[ uFeeNrInSys ] );
2101 if( TMath::Abs( dTimeDiff ) < kdMaxDtPulserPs )
2103 fvhTimeDiffPulser[uFeeNrInSys][uFeeB]->Fill( dTimeDiff );
2106 if( 0 == uFeeInGbtx && 0 == uFeeB % kuNbFeePerGbtx )
2109 if( fuGdpbNr == uFeeB / fuNrOfFeePerGdpb )
2113 UInt_t uPlotIdx = fuGdpbNr * ( kuNbGbtxPerGdpb - 1)
2114 + ( uFeeB - fuGdpbNr * fuNrOfFeePerGdpb) / kuNbFeePerGbtx - 1;
2115 fvhPulserTimeDiffEvoGbtxGbtx[ uPlotIdx ]->Fill( 1e-9 / 60.0 * (dHitTime - fdStartTime), dTimeDiff );
2116 } // if( 0 == uGbtxNr )
2117 } // if( fuGdpbNr == uFeeB / fuNrOfFeePerGdpb )
2118 else // if( NULL != fvvhPulserTimeDiffEvoGdpbGdpb[ uFeeB / fuNrOfFeePerGdpb ][ fuGdpbNr ] )
2121 if( 0 == uGbtxNr && 0 == uFeeB / kuNbFeePerGbtx )
2122 fvvhPulserTimeDiffEvoGdpbGdpb[ fuGdpbNr ][ uFeeB / fuNrOfFeePerGdpb ]->Fill(
2123 1e-9 / 60.0 * (dHitTime - fdStartTime), dTimeDiff );
2124 } // else of if( fuGdpbNr == uFeeB / fuNrOfFeePerGdpb )
2125 } // if( 0 == uFeeInGbtx && 0 == uFeeB % kuNbFeePerGbtx )
2126 } // if( TMath::Abs( dTimeDiff ) < kdMaxDtPulserPs )
2127 // else if( 10 == uFeeNrInSys && 20 == uFeeB )
2128 // LOG(info) << "new in 10 " << dTimeDiff;
2129 } // if( NULL != fvhTimeDiffPulser[uFeeNrInSys][uFeeB] )
2133 else if (
fuGdpbNr == fuDiamondDpbIdx && 0 == uChannelNrInFee) {
2163 LOG(info) <<
"Hit: " << Form(
"0x%08x ",
fuGdpbId) <<
", " << std::setw(2) <<
fuGet4Nr <<
", " << std::setw(3)
2164 << uChannel <<
", " << std::setw(3) << uTot <<
", epoch " << std::setw(3) << ulCurEpochGdpbGet4
2165 <<
", FullTime Clk " << Form(
"%12lu ", ulHitTime) <<
", FullTime s " << Form(
"%12.9f ", dHitTime / 1e9)
2166 <<
", FineTime " << uFts;