Skip to content

Commit aa17340

Browse files
authored
Update detectorOccupancyQa.cxx
fix an issue with nPV counter
1 parent 35023fb commit aa17340

File tree

1 file changed

+35
-6
lines changed

1 file changed

+35
-6
lines changed

DPG/Tasks/AOTEvent/detectorOccupancyQa.cxx

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ using namespace o2;
4242
using namespace o2::framework;
4343
using 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>;
4646
using BCsRun3 = soa::Join<aod::BCs, aod::Timestamps, aod::BcSels, aod::Run3MatchedToBCSparse>;
4747
// using ColEvSels = soa::Join<aod::Collisions, aod::EvSels, aod::Mults>;
4848
using 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

Comments
 (0)