From 1432c4b740493e20967a5dd35f1ddb64f83d733c Mon Sep 17 00:00:00 2001 From: Maximiliano Puccio Date: Wed, 11 Dec 2024 14:25:51 +0100 Subject: [PATCH] Add additional selections on ITS tracks (#13779) --- .../ITSMFT/ITS/tracking/include/ITStracking/Configuration.h | 2 ++ Detectors/ITSMFT/ITS/tracking/src/TrackerTraits.cxx | 5 ++++- Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/Configuration.h b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/Configuration.h index 976d01f1d476b..82d737153c827 100644 --- a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/Configuration.h +++ b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/Configuration.h @@ -94,6 +94,8 @@ struct TrackingParameters { unsigned long MaxMemory = 12000000000UL; float MaxChi2ClusterAttachment = 60.f; float MaxChi2NDF = 30.f; + float MinPt = 0.f; + unsigned char StartLayerMask = 0x7F; bool FindShortTracks = false; bool PerPrimaryVertexProcessing = false; bool SaveTimeBenchmarks = false; diff --git a/Detectors/ITSMFT/ITS/tracking/src/TrackerTraits.cxx b/Detectors/ITSMFT/ITS/tracking/src/TrackerTraits.cxx index c7367b781ba5b..b39d2f5b32d4f 100644 --- a/Detectors/ITSMFT/ITS/tracking/src/TrackerTraits.cxx +++ b/Detectors/ITSMFT/ITS/tracking/src/TrackerTraits.cxx @@ -573,6 +573,9 @@ void TrackerTraits::findRoads(const int iteration) const int minimumLayer{startLevel - 1}; std::vector trackSeeds; for (int startLayer{mTrkParams[iteration].CellsPerRoad() - 1}; startLayer >= minimumLayer; --startLayer) { + if ((mTrkParams[iteration].StartLayerMask & (1 << (startLayer + 2))) == 0) { + continue; + } CA_DEBUGGER(std::cout << "\t\t > Starting processing layer " << startLayer << std::endl); std::vector lastCellId, updatedCellId; std::vector lastCellSeed, updatedCellSeed; @@ -615,7 +618,7 @@ void TrackerTraits::findRoads(const int iteration) temporaryTrack.resetCovariance(); temporaryTrack.setChi2(0); fitSuccess = fitTrack(temporaryTrack, mTrkParams[0].NLayers - 1, -1, -1, mTrkParams[0].MaxChi2ClusterAttachment, mTrkParams[0].MaxChi2NDF, 50.f); - if (!fitSuccess) { + if (!fitSuccess || temporaryTrack.getPt() < mTrkParams[iteration].MinPt) { continue; } tracks[trackIndex++] = temporaryTrack; diff --git a/Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx b/Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx index 5b8a9bb1cb0f2..89ec83d0f6527 100644 --- a/Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx +++ b/Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx @@ -47,6 +47,8 @@ void ITSTrackingInterface::initialise() trackParams[2].TrackletMinPt = 0.1f; trackParams[2].CellDeltaTanLambdaSigma *= 4.; trackParams[2].MinTrackLength = 4; + trackParams[2].MinPt = 0.2f; + trackParams[2].StartLayerMask = (1 << 6) + (1 << 3); if (o2::its::TrackerParamConfig::Instance().doUPCIteration) { trackParams[3].TrackletMinPt = 0.1f; trackParams[3].CellDeltaTanLambdaSigma *= 4.;