@@ -42,7 +42,7 @@ using namespace o2;
4242using namespace o2 ::framework;
4343using namespace o2 ::aod::evsel;
4444
45- using BCsRun2 = soa::Join<aod::BCs, aod::Run2BCInfos, aod::Timestamps, aod::BcSels, aod::Run2MatchedToBCSparse>;
45+ // using BCsRun2 = soa::Join<aod::BCs, aod::Run2BCInfos, aod::Timestamps, aod::BcSels, aod::Run2MatchedToBCSparse>;
4646using BCsRun3 = soa::Join<aod::BCs, aod::Timestamps, aod::BcSels, aod::Run3MatchedToBCSparse>;
4747// using ColEvSels = soa::Join<aod::Collisions, aod::EvSels, aod::Mults>;
4848using ColEvSels = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Cs>;
@@ -197,12 +197,18 @@ struct DetectorOccupancyQaTask {
197197 histos.add (" tpcNClsFindableMinusCrossedRows" , " " , kTH1D , {{601 , -300.5 , 300.5 }});
198198 histos.add (" tpcNClsShared" , " " , kTH1D , {{601 , -300.5 , 300.5 }});
199199 histos.add (" tpcNClsFindableMinusPID" , " " , kTH1D , {{601 , -300.5 , 300.5 }});
200- histos.add (" tpcNClsFindableMinusPID_CORRECTED" , " " , kTH1D , {{601 , -300.5 , 300.5 }});
201200 histos.add (" tpcNClUsedForPID" , " " , kTH1D , {{601 , -300.5 , 300.5 }});
201+ histos.add (" tpcNClsFound" , " " , kTH1D , {{601 , -300.5 , 300.5 }});
202+ histos.add (" tpcNClsFoundAsDiffByHand" , " " , kTH1D , {{601 , -300.5 , 300.5 }});
203+ histos.add (" tpcNClsFindableMinusPID_CORRECTED" , " " , kTH1D , {{601 , -300.5 , 300.5 }});
204+ histos.add (" tpcNClsFoundMinusPID_BY_HAND" , " " , kTH1D , {{601 , -300.5 , 300.5 }});
202205
203206 histos.add (" tpcNClsUsedForPID_vs_Findable" , " ;tpcNClsFindable;tpcNClUsedForPID" , kTH2D , {{601 , -300.5 , 300.5 }, {601 , -300.5 , 300.5 }});
207+ histos.add (" tpcNClsUsedForPID_vs_Findable_CORRECTED" , " ;tpcNClsFindable;tpcNClUsedForPID" , kTH2D , {{601 , -300.5 , 300.5 }, {601 , -300.5 , 300.5 }});
204208 histos.add (" tpcNClsShared_vs_Findable" , " ;tpcNClsFindable;tpcNClsShared" , kTH2D , {{601 , -300.5 , 300.5 }, {601 , -300.5 , 300.5 }});
209+ histos.add (" tpcNClsFound_vs_Findable" , " ;tpcNClsFindable;tpcNClsFound" , kTH2D , {{601 , -300.5 , 300.5 }, {601 , -300.5 , 300.5 }});
205210 histos.add (" tpcNClsUsedForPID_vs_Shared" , " ;tpcNClsShared;tpcNClUsedForPID" , kTH2D , {{601 , -300.5 , 300.5 }, {601 , -300.5 , 300.5 }});
211+ histos.add (" tpcNClsUsedForPID_vs_Found" , " ;tpcNClsFound;tpcNClUsedForPID" , kTH2D , {{601 , -300.5 , 300.5 }, {601 , -300.5 , 300.5 }});
206212
207213 // ### kinematic distributions for events with high occupancy at specified dt ranges
208214 histos.add (" track_distr_nITStrThisEv_10_200/hEventCount" , " ;delta-time bin id;n events" , kTH1D , {{5 , -0.5 , 4.5 }});
@@ -864,6 +870,21 @@ struct DetectorOccupancyQaTask {
864870 int occupancy = col.trackOccupancyInTimeRange ();
865871
866872 auto tracksGrouped = tracks.sliceBy (perCollision, col.globalIndex ());
873+
874+ // pre-calc nPV
875+ for (const auto & track : tracksGrouped) {
876+ if (!track.isPVContributor ())
877+ continue ;
878+ if (track.pt () < confCutPtMinThisEvent || track.pt () > confCutPtMaxThisEvent)
879+ continue ;
880+ if (track.eta () < confCutEtaMinTracksThisEvent || track.eta () > confCutEtaMaxTracksThisEvent)
881+ continue ;
882+ if (track.itsNCls () < 5 )
883+ continue ;
884+ nPV++;
885+ }
886+
887+ // main loop for dE/dx
867888 for (const auto & track : tracksGrouped) {
868889 histos.fill (HIST (" nTrackCounter_after_cuts_QA" ), 0 );
869890 if (!track.isPVContributor ())
@@ -878,7 +899,7 @@ struct DetectorOccupancyQaTask {
878899 if (track.itsNCls () < 5 )
879900 continue ;
880901 histos.fill (HIST (" nTrackCounter_after_cuts_QA" ), 4 );
881- nPV++;
902+ // nPV++;
882903
883904 if (track.isGlobalTrack () && track.tpcNClsFound () >= confCutMinTPCcls) {
884905 nGlobalTracks++;
@@ -917,18 +938,26 @@ struct DetectorOccupancyQaTask {
917938 int tpcNClUsedForPID = track.tpcNClsFindable () - track.tpcNClsFindableMinusPID ();
918939 histos.fill (HIST (" tpcNClUsedForPID" ), tpcNClUsedForPID);
919940
941+ histos.fill (HIST (" tpcNClsFound" ), track.tpcNClsFound ());
942+ histos.fill (HIST (" tpcNClsFoundAsDiffByHand" ), track.tpcNClsFindable () - track.tpcNClsFindableMinusFound ());
943+
920944 histos.fill (HIST (" tpcNClsUsedForPID_vs_Findable" ), track.tpcNClsFindable (), tpcNClUsedForPID);
921945 histos.fill (HIST (" tpcNClsShared_vs_Findable" ), track.tpcNClsFindable (), track.tpcNClsShared ());
922- histos.fill (HIST (" tpcNClsUsedForPID_vs_Shared" ), tpcNClUsedForPID, track.tpcNClsShared ());
946+ histos.fill (HIST (" tpcNClsUsedForPID_vs_Shared" ), track.tpcNClsShared (), tpcNClUsedForPID);
947+ histos.fill (HIST (" tpcNClsFound_vs_Findable" ), track.tpcNClsFindable (), track.tpcNClsFound ());
948+ histos.fill (HIST (" tpcNClsUsedForPID_vs_Found" ), track.tpcNClsFound (), tpcNClUsedForPID);
923949
924950 int tpcNClsCorrectedFindableMinusPID = track.tpcNClsFindableMinusPID ();
925951 // correct for a buggy behaviour due to int8 and uint8 difference:
926952 if (tpcNClsCorrectedFindableMinusPID < -70 )
927953 tpcNClsCorrectedFindableMinusPID += 256 ;
928954 histos.fill (HIST (" tpcNClsFindableMinusPID_CORRECTED" ), tpcNClsCorrectedFindableMinusPID);
955+ histos.fill (HIST (" tpcNClsUsedForPID_vs_Findable_CORRECTED" ), track.tpcNClsFindable (), track.tpcNClsFindable () - tpcNClsCorrectedFindableMinusPID);
956+
957+ histos.fill (HIST (" tpcNClsFoundMinusPID_BY_HAND" ), (track.tpcNClsFindable () - track.tpcNClsFindableMinusFound ()) - (track.tpcNClsFindable () - tpcNClsCorrectedFindableMinusPID));
929958
930959 // check ratio tpcNClsFindableMinusPID / tpcNClsFindable
931- // https://github.com/AliceO2Group/AliceO2/blob/dev/Framework/Core/include/Framework/AnalysisDataModel.h#L242)
960+ // https://github.com/AliceO2Group/AliceO2/blob/dev/Framework/Core/include/Framework/AnalysisDataModel.h#L242
932961 // https://github.com/AliceO2Group/AliceO2/blob/dev/Detectors/AOD/src/AODProducerWorkflowSpec.cxx#L2553C21-L2553C44
933962 float fractionTPCcls = (1.0 * tpcNClsCorrectedFindableMinusPID) / track.tpcNClsFindable ();
934963 histos.fill (HIST (" fraction_tpcNClsFindableMinusPID_vs_occup" ), occupancy, fractionTPCcls);
@@ -977,7 +1006,7 @@ struct DetectorOccupancyQaTask {
9771006 }
9781007 }
9791008 }
980- }
1009+ } // end of track loop
9811010
9821011 if (confAddTracksVsFwdHistos)
9831012 histos.fill (HIST (" nTracksGlobal_vs_nPV_QA_onlyVzCut_noTFROFborderCuts" ), nPV, nGlobalTracks);
0 commit comments