refactor: Backport navigation rewrite changes
Backporting more changes from https://github.com/acts-project/acts/pull/2625 to main. This is a followup to #2768
Summary
- remove overstepping from steppers
- use surface tolerance for geometry lookups
- add self consistency navigation test
Codecov Report
Attention: Patch coverage is 40.65934% with 54 lines in your changes missing coverage. Please review.
Project coverage is 47.42%. Comparing base (
24f3582) to head (8b80a34). Report is 251 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #2846 +/- ##
==========================================
- Coverage 47.51% 47.42% -0.09%
==========================================
Files 499 499
Lines 28292 28278 -14
Branches 13832 13831 -1
==========================================
- Hits 13442 13410 -32
- Misses 4970 4989 +19
+ Partials 9880 9879 -1
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
📊: Physics performance monitoring for 8b80a3468d7592da804081199b03cbcfd9e46037
physmon summary
- ✅ CKF truth_smeared
- ✅ IVF truth_smeared
- ✅ AMVF truth_smeared
- ✅ Track Summary CKF truth_smeared
- ✅ Seeding truth_estimated
- ✅ CKF truth_estimated
- ✅ IVF truth_estimated
- ✅ AMVF truth_estimated
- ✅ Track Summary CKF truth_estimated
- ✅ Seeding seeded
- ✅ CKF seeded
- ✅ IVF seeded
- ✅ AMVF seeded
- ✅ AMVF (+grid seeder) seeded
- ✅ Track Summary CKF seeded
- ✅ Seeding orthogonal
- ✅ CKF orthogonal
- ✅ IVF orthogonal
- ✅ AMVF orthogonal
- ✅ Track Summary CKF orthogonal
- ✅ Ambisolver seeded
- ✅ Ambisolver orthogonal
- ✅ Seeding ttbar
- ✅ CKF ttbar
- ✅ Ambisolver
- ✅ Track Summary CKF ttbar
- ✅ AMVF ttbar
- ✅ AMVF (+grid seeder) ttbar
- ✅ Truth tracking (GSF)
- ✅ Truth tracking
- ✅ Truth tracking (GX2F)
- ✅ Particles fatras
- ✅ Particles geant4
measured performance - no significant/measurable change
error logs need to be addressed
Took a quick look into a failing propagation and it looks like these are tracks which start to loop in the solenoid. Before my change these were filtered based on the far limit.
Using the far limit to discard intersections seems more like a hack to me. A proper solution would be to stop the propagation after the long strips IMO. But I am not sure how we can achieve this easily.
Alternatively I can also backport the far limit which should give us the current results.
After reintroducing the farLimit based on the aborter step size the physmon diff is calmed down and it looks like there are some minor efficiency improvements hinting that this fixed the navigation a bit.
What is left to do for me is to check if this has any performance implications.
performance looks mostly identical