Skip to content

Commit a3a082e

Browse files
authored
[DPG] Update detectorOccupancyQa.cxx - fix PID column bug on the fly (#10683)
1 parent e2bcb35 commit a3a082e

File tree

1 file changed

+36
-3
lines changed

1 file changed

+36
-3
lines changed

DPG/Tasks/AOTEvent/detectorOccupancyQa.cxx

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,19 @@ struct DetectorOccupancyQaTask {
191191
histos.add("fraction_tpcNClsFindableMinusPID_vs_occup_lowPt", "", kTH2D, {axisOccupancyForDeDxStudies, axisFractionNclsFindableMinusPID});
192192
histos.add("fraction_tpcNClsFindableMinusPID_vs_occup_highPt", "", kTH2D, {axisOccupancyForDeDxStudies, axisFractionNclsFindableMinusPID});
193193

194+
// more QA for TPC cls counting
195+
histos.add("tpcNClsFindable", "", kTH1D, {{601, -300.5, 300.5}});
196+
histos.add("tpcNClsFindableMinusFound", "", kTH1D, {{601, -300.5, 300.5}});
197+
histos.add("tpcNClsFindableMinusCrossedRows", "", kTH1D, {{601, -300.5, 300.5}});
198+
histos.add("tpcNClsShared", "", kTH1D, {{601, -300.5, 300.5}});
199+
histos.add("tpcNClsFindableMinusPID", "", kTH1D, {{601, -300.5, 300.5}});
200+
histos.add("tpcNClsFindableMinusPID_CORRECTED", "", kTH1D, {{601, -300.5, 300.5}});
201+
histos.add("tpcNClUsedForPID", "", kTH1D, {{601, -300.5, 300.5}});
202+
203+
histos.add("tpcNClsUsedForPID_vs_Findable", ";tpcNClsFindable;tpcNClUsedForPID", kTH2D, {{601, -300.5, 300.5}, {601, -300.5, 300.5}});
204+
histos.add("tpcNClsShared_vs_Findable", ";tpcNClsFindable;tpcNClsShared", kTH2D, {{601, -300.5, 300.5}, {601, -300.5, 300.5}});
205+
histos.add("tpcNClsUsedForPID_vs_Shared", ";tpcNClsShared;tpcNClUsedForPID", kTH2D, {{601, -300.5, 300.5}, {601, -300.5, 300.5}});
206+
194207
// ### kinematic distributions for events with high occupancy at specified dt ranges
195208
histos.add("track_distr_nITStrThisEv_10_200/hEventCount", ";delta-time bin id;n events", kTH1D, {{5, -0.5, 4.5}});
196209
histos.add("track_distr_nITStrThisEv_above_2000/hEventCount", ";delta-time bin id;n events", kTH1D, {{5, -0.5, 4.5}});
@@ -895,9 +908,29 @@ struct DetectorOccupancyQaTask {
895908
if (track.eta() > -0.4 && track.eta() < -0.2)
896909
histos.fill(HIST("dEdx_vs_Momentum_vs_occup_eta_04_02"), signedP, track.tpcSignal(), occupancy);
897910
}
898-
899-
// check ratio tpcNClsFindableMinusPID / tpcNClsFindable (https://github.com/AliceO2Group/AliceO2/blob/dev/Framework/Core/include/Framework/AnalysisDataModel.h#L242)
900-
float fractionTPCcls = (1.0 * track.tpcNClsFindableMinusPID()) / track.tpcNClsFindable();
911+
// more QA for TPC cls counting
912+
histos.fill(HIST("tpcNClsFindable"), track.tpcNClsFindable());
913+
histos.fill(HIST("tpcNClsFindableMinusFound"), track.tpcNClsFindableMinusFound());
914+
histos.fill(HIST("tpcNClsFindableMinusCrossedRows"), track.tpcNClsFindableMinusCrossedRows());
915+
histos.fill(HIST("tpcNClsShared"), track.tpcNClsShared());
916+
histos.fill(HIST("tpcNClsFindableMinusPID"), track.tpcNClsFindableMinusPID());
917+
int tpcNClUsedForPID = track.tpcNClsFindable() - track.tpcNClsFindableMinusPID();
918+
histos.fill(HIST("tpcNClUsedForPID"), tpcNClUsedForPID);
919+
920+
histos.fill(HIST("tpcNClsUsedForPID_vs_Findable"), track.tpcNClsFindable(), tpcNClUsedForPID);
921+
histos.fill(HIST("tpcNClsShared_vs_Findable"), track.tpcNClsFindable(), track.tpcNClsShared());
922+
histos.fill(HIST("tpcNClsUsedForPID_vs_Shared"), tpcNClUsedForPID, track.tpcNClsShared());
923+
924+
int tpcNClsCorrectedFindableMinusPID = track.tpcNClsFindableMinusPID();
925+
// correct for a buggy behaviour due to int8 and uint8 difference:
926+
if (tpcNClsCorrectedFindableMinusPID < -70)
927+
tpcNClsCorrectedFindableMinusPID += 256;
928+
histos.fill(HIST("tpcNClsFindableMinusPID_CORRECTED"), tpcNClsCorrectedFindableMinusPID);
929+
930+
// check ratio tpcNClsFindableMinusPID / tpcNClsFindable
931+
// https://github.com/AliceO2Group/AliceO2/blob/dev/Framework/Core/include/Framework/AnalysisDataModel.h#L242)
932+
// https://github.com/AliceO2Group/AliceO2/blob/dev/Detectors/AOD/src/AODProducerWorkflowSpec.cxx#L2553C21-L2553C44
933+
float fractionTPCcls = (1.0 * tpcNClsCorrectedFindableMinusPID) / track.tpcNClsFindable();
901934
histos.fill(HIST("fraction_tpcNClsFindableMinusPID_vs_occup"), occupancy, fractionTPCcls);
902935
if (fractionTPCcls >= 0 && fractionTPCcls < 0.8)
903936
histos.fill(HIST("nTrackCounter_after_cuts_QA"), 8);

0 commit comments

Comments
 (0)