Skip to content

Commit 9d0acdc

Browse files
committed
Check for ITS clusters ordering
1 parent 65e6d36 commit 9d0acdc

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

Detectors/Align/src/AlignableDetectorITS.cxx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,19 @@ int AlignableDetectorITS::processPoints(GIndex gid, int npntCut, bool inv)
156156
const auto& clusIdx = recoData->getITSTracksClusterRefs();
157157
// do we want to apply some cuts?
158158
int clEntry = track.getFirstClusterEntry();
159+
int preevSensID = -1;
160+
bool errReported = false;
159161
for (int icl = track.getNumberOfClusters(); icl--;) { // clusters refs are stored from outer to inner layers, we loop in inner -> outer direction
160162
const auto& clus = mITSClustersArray[(clusIDs[npoints] = clusIdx[clEntry + icl])];
163+
if (clus.getSensorID() < preevSensID && !errReported) { // clusters are ordered from outer to inner layer, hence decreasing sensorID
164+
std::string errstr{};
165+
for (int ie = track.getNumberOfClusters(); ie--;) {
166+
errstr += fmt::format(" {}", mITSClustersArray[clusIdx[clEntry + ie]].getSensorID());
167+
}
168+
LOGP(error, "wrong ITS clusters order? : chips {}", errstr);
169+
errReported = true;
170+
}
171+
preevSensID = clus.getSensorID();
161172
if (clus.getBits()) { // overlapping clusters will have bit set
162173
if (clus.isBitSet(EdgeFlags::Biased)) {
163174
continue;

0 commit comments

Comments
 (0)