diff --git a/Detectors/GlobalTracking/CMakeLists.txt b/Detectors/GlobalTracking/CMakeLists.txt index ecf77ea741e21..729d066f103ab 100644 --- a/Detectors/GlobalTracking/CMakeLists.txt +++ b/Detectors/GlobalTracking/CMakeLists.txt @@ -55,6 +55,9 @@ o2_add_library(GlobalTracking O2::Steer $<$:O2::ITS3Reconstruction>) +target_compile_options(${targetName} PRIVATE -fsanitize=address -fno-omit-frame-pointer) +target_link_options(${targetName} PRIVATE -fsanitize=address) + o2_target_root_dictionary(GlobalTracking HEADERS include/GlobalTracking/MatchTPCITSParams.h include/GlobalTracking/MatchGlobalFwd.h diff --git a/Detectors/GlobalTracking/src/MatchTPCITS.cxx b/Detectors/GlobalTracking/src/MatchTPCITS.cxx index 1457790c7c531..20f05c4426195 100644 --- a/Detectors/GlobalTracking/src/MatchTPCITS.cxx +++ b/Detectors/GlobalTracking/src/MatchTPCITS.cxx @@ -880,7 +880,6 @@ void MatchTPCITS::doMatching(int sec) int idxMinTPC = timeStartTPC[minROFITS]; // index of 1st cached TPC track within cached ITS ROFrames auto t2nbs = tpcTimeBin2MUS(mZ2TPCBin * mParams->tpcTimeICMatchingNSigma); bool checkInteractionCandidates = mUseFT0 && mParams->validateMatchByFIT != MatchTPCITSParams::Disable; - int itsROBin = 0; for (int itpc = idxMinTPC; itpc < nTracksTPC; itpc++) { auto& trefTPC = mTPCWork[cacheTPC[itpc]]; @@ -893,6 +892,11 @@ void MatchTPCITS::doMatching(int sec) break; } int iits0 = timeStartITS[itsROBin]; + if (iits0 < 0) { + LOGP(alarm, "doMatching sec={} itpc={} itsROBin={} timeStartITS.size={} iits0={} tmn={} triggered={}", + sec, itpc, itsROBin, timeStartITS.size(), iits0, tmn, mITSTriggered); + continue; // no ITS tracks start at this ROF bin + } nCheckTPCControl++; for (auto iits = iits0; iits < nTracksITS; iits++) { auto& trefITS = mITSWork[cacheITS[iits]];