@@ -679,10 +679,11 @@ void TrackerTraits::extendTracks(const int iteration)
679679 for (auto & track : mTimeFrame ->getTracks (rof)) {
680680 auto backup{track};
681681 bool success{false };
682- if (track.getLastClusterLayer () != mTrkParams [iteration].NLayers - 1 ) {
682+ // the order here biases towards top extension, tracks should probably be fitted separately in the directions and then compared.
683+ if ((mTrkParams [iteration].UseTrackFollowerMix || mTrkParams [iteration].UseTrackFollowerTop ) && track.getLastClusterLayer () != mTrkParams [iteration].NLayers - 1 ) {
683684 success = success || trackFollowing (&track, rof, true , iteration);
684685 }
685- if (track.getFirstClusterLayer () != 0 ) {
686+ if (( mTrkParams [iteration]. UseTrackFollowerMix || ( mTrkParams [iteration]. UseTrackFollowerBot && !success)) && track.getFirstClusterLayer () != 0 ) {
686687 success = success || trackFollowing (&track, rof, false , iteration);
687688 }
688689 if (success) {
@@ -888,7 +889,7 @@ bool TrackerTraits::trackFollowing(TrackITSExt* track, int rof, bool outward, co
888889 const float ePhi{o2::gpu::CAMath::Sqrt (hypoParam.getSigmaSnp2 () / hypoParam.getCsp2 ())};
889890 const float z{hypoParam.getZ ()};
890891 const float eZ{o2::gpu::CAMath::Sqrt (hypoParam.getSigmaZ2 ())};
891- const int4 selectedBinsRect{getBinsRect (iLayer, phi, mTrkParams [iteration].NSigmaCut * ePhi, z, mTrkParams [iteration].NSigmaCut * eZ)};
892+ const int4 selectedBinsRect{getBinsRect (iLayer, phi, mTrkParams [iteration].TrackFollowerNSigmaCutPhi * ePhi, z, mTrkParams [iteration].TrackFollowerNSigmaCutZ * eZ)};
892893 if (selectedBinsRect.x == 0 && selectedBinsRect.y == 0 && selectedBinsRect.z == 0 && selectedBinsRect.w == 0 ) {
893894 continue ;
894895 }
@@ -905,7 +906,6 @@ bool TrackerTraits::trackFollowing(TrackITSExt* track, int rof, bool outward, co
905906 }
906907
907908 // check all clusters in search windows for possible new hypotheses
908- #pragma omp parallel for num_threads(mNThreads) shared(hypotheses)
909909 for (int iPhiCount = 0 ; iPhiCount < phiBinsNum; iPhiCount++) {
910910 int iPhiBin = (selectedBinsRect.y + iPhiCount) % mTrkParams [iteration].PhiBins ;
911911 const int firstBinIndex{mTimeFrame ->mIndexTableUtils .getBinIndex (selectedBinsRect.x , iPhiBin)};
@@ -946,10 +946,7 @@ bool TrackerTraits::trackFollowing(TrackITSExt* track, int rof, bool outward, co
946946 }
947947 tbupdated.setChi2 (tbupdated.getChi2 () + predChi2); // / This is wrong for outward propagation as the chi2 refers to inward parameters
948948 tbupdated.setExternalClusterIndex (iLayer, nextCluster.clusterId , true );
949- #pragma omp critical
950- {
951- hypotheses.emplace_back (tbupdated);
952- }
949+ hypotheses.emplace_back (tbupdated);
953950 }
954951 }
955952 }
0 commit comments