Skip to content

Commit bb80f53

Browse files
committed
ITS-TPC matching: add tolerance parameter on constrained TPC track time
1 parent 7763497 commit bb80f53

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

Detectors/GlobalTracking/include/GlobalTracking/MatchTPCITSParams.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ struct MatchTPCITSParams : public o2::conf::ConfigurableParamHelper<MatchTPCITSP
4444

4545
int maxMatchCandidates = 5; ///< max allowed matching candidates per TPC track
4646

47+
float safeMarginTimeCorrErr = 0; ///< safety marging (in \mus) for TPC track time corrected by ITS constraint
48+
4749
float safeMarginTPCITSTimeBin = 1.f; ///< safety margin (in TPC time bins) for ITS-TPC tracks time (in TPC time bins!) comparison
4850

4951
float safeMarginTPCTimeEdge = 20.f; ///< safety margin in cm when estimating TPC track tMin and tMax from assigned time0 and its track Z position

Detectors/GlobalTracking/src/MatchTPCITS.cxx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -715,6 +715,7 @@ void MatchTPCITS::doMatching(int sec)
715715
for (auto iits = iits0; iits < nTracksITS; iits++) {
716716
auto& trefITS = mITSWork[cacheITS[iits]];
717717
// compare if the ITS and TPC tracks may overlap in time
718+
LOG(DEBUG) << "TPC bracket: " << trefTPC.tBracket.asString() << " ITS bracket: " << trefITS.tBracket.asString() << " TPCtgl: " << trefTPC.getTgl() << " ITStgl: " << trefITS.getTgl();
718719
if (trefTPC.tBracket < trefITS.tBracket) { // since TPC tracks are sorted in timeMax and ITS tracks are sorted in timeMin all following ITS tracks also will not match
719720
break;
720721
}
@@ -725,11 +726,12 @@ void MatchTPCITS::doMatching(int sec)
725726
// is corrected TPC track time compatible with ITS ROF expressed
726727
auto deltaT = (trefITS.getZ() - trefTPC.getZ()) * mTPCVDrift0Inv; // drift time difference corresponding to Z differences
727728
auto timeCorr = trefTPC.getCorrectedTime(deltaT); // TPC time required to match to Z of ITS track
728-
auto timeCorrErr = std::sqrt(trefITS.getSigmaZ2() + trefTPC.getSigmaZ2()) * t2nbs; // nsigma*error
729+
auto timeCorrErr = std::sqrt(trefITS.getSigmaZ2() + trefTPC.getSigmaZ2()) * t2nbs + mParams->safeMarginTimeCorrErr; // nsigma*error
729730
if (mVDriftCalibOn) {
730731
timeCorrErr += vdErrT * (250. - abs(trefITS.getZ())); // account for the extra error from TPC VDrift uncertainty
731732
}
732733
o2::math_utils::Bracketf_t trange(timeCorr - timeCorrErr, timeCorr + timeCorrErr);
734+
LOG(DEBUG) << "TPC range: " << trange.asString() << " ITS bracket: " << trefITS.tBracket.asString() << " DZ: " << (trefITS.getZ() - trefTPC.getZ()) << " DT: " << timeCorr;
733735
if (trefITS.tBracket.isOutside(trange)) {
734736
continue;
735737
}

0 commit comments

Comments
 (0)