Skip to content

Commit 0938451

Browse files
committed
Bound the event ID in the MC track QC tasks
This skips MC labels whose event ID is outside the event range of the kinematics in ITSTrackSimTask and QcMFTTrackMCTask. - Such labels would index the per-event arrays out of range.
1 parent 82d3987 commit 0938451

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

‎Modules/ITS/src/ITSTrackSimTask.cxx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ void ITSTrackSimTask::monitorData(o2::framework::ProcessingContext& ctx)
155155
std::vector<int> nTracks(nEvents, 0);
156156
for (int iCluster = 0; iCluster < (int)clusArr.size(); iCluster++) {
157157
auto lab = (clusLabArr->getLabels(iCluster))[0];
158-
if (!lab.isValid() || lab.getSourceID() != 0 || lab.getTrackID() < 0 || !lab.isCorrect()) {
158+
if (!lab.isValid() || lab.getSourceID() != 0 || lab.getTrackID() < 0 || lab.getEventID() >= nEvents || !lab.isCorrect()) {
159159
continue;
160160
}
161161
nTracks[lab.getEventID()] = std::max(nTracks[lab.getEventID()], lab.getTrackID() + 1);
@@ -166,7 +166,7 @@ void ITSTrackSimTask::monitorData(o2::framework::ProcessingContext& ctx)
166166
}
167167
for (int iCluster = 0; iCluster < (int)clusArr.size(); iCluster++) {
168168
auto lab = (clusLabArr->getLabels(iCluster))[0];
169-
if (!lab.isValid() || lab.getSourceID() != 0 || lab.getTrackID() < 0 || !lab.isCorrect()) {
169+
if (!lab.isValid() || lab.getSourceID() != 0 || lab.getTrackID() < 0 || lab.getEventID() >= nEvents || !lab.isCorrect()) {
170170
continue;
171171
}
172172
const auto layer = mGeom->getLayer(clusArr[iCluster].getSensorID());

‎Modules/MFT/src/QcMFTTrackMCTask.cxx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ void QcMFTTrackMCTask::monitorData(o2::framework::ProcessingContext& ctx)
132132
std::vector<std::vector<int>> wanted(nEvents);
133133
for (int itrack = 0; itrack < (int)trackArr.size(); itrack++) {
134134
const auto& MCinfo = MCTruth[itrack];
135-
if (MCinfo.isNoise() || !MCinfo.isValid()) {
135+
if (MCinfo.isNoise() || !MCinfo.isValid() || MCinfo.getEventID() >= nEvents) {
136136
continue;
137137
}
138138
wanted[MCinfo.getEventID()].push_back(MCinfo.getTrackID());
@@ -181,7 +181,7 @@ void QcMFTTrackMCTask::monitorData(o2::framework::ProcessingContext& ctx)
181181
for (int itrack = 0; itrack < (int)trackArr.size(); itrack++) {
182182
const auto& track = trackArr[itrack];
183183
const auto& MCinfo = MCTruth[itrack];
184-
if (MCinfo.isNoise() || !MCinfo.isValid())
184+
if (MCinfo.isNoise() || !MCinfo.isValid() || MCinfo.getEventID() >= nEvents)
185185
continue;
186186

187187
const auto& w = wanted[MCinfo.getEventID()];

0 commit comments

Comments
 (0)