@@ -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