feat: Variable size measurement for Examples
This is an attempt to implement a variable size measurement as an alternative to the fixed size measurement. Currently our Examples framework is using a variant over fixed size measurements to cope with measurements of different dimensions. This obfuscates the code a bit since accessing the actual measurement requires a visitor pattern to acquire the dimensional typed measurement.
Here I propose to switch this out for a variable size measurement which allocates the same amount of memory but stores the dimension as a direct member instead of pushing this detail to std::variant.
blocked by
- https://github.com/acts-project/acts/pull/3192
- https://github.com/acts-project/acts/pull/3331
I saw a minor performance improvement with that but not as much as I hoped for. It is still not clear to me how we end up spending so much time in the pass through calibrator.
@paulgessinger suggested to tweak the calibrator to avoid the virtual function dispatch
📊: Physics performance monitoring for d82cfd9dd148c7fb0963279127ddce19a4c01ef1
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
- ✅ Particles ttbar
- ✅ Vertices ttbar
- ✅ Truth tracking (GSF)
- ✅ Truth tracking
- ✅ Truth tracking (GX2F)
- ✅ Particles fatras
- ✅ Particles geant4
Codecov Report
Attention: Patch coverage is 72.56637% with 31 lines in your changes missing coverage. Please review.
Project coverage is 47.68%. Comparing base (
cf9d872) to head (f2a1acb). Report is 20 commits behind head on main.
:exclamation: Current head f2a1acb differs from pull request most recent head 5f373bf
Please upload reports for the commit 5f373bf to get more accurate results.
Additional details and impacted files
@@ Coverage Diff @@
## main #3107 +/- ##
==========================================
+ Coverage 47.24% 47.68% +0.44%
==========================================
Files 508 507 -1
Lines 30041 29214 -827
Branches 14586 14013 -573
==========================================
- Hits 14192 13932 -260
+ Misses 5375 5262 -113
+ Partials 10474 10020 -454
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Are we moving forward with this after #3282?
I think this might still be worth to be put into the examples and use it by default since it less complicated than the variant thingy. I have another branch somewhere where I built a container similar to what you did with the track EDM. That one needs a bit more time.
Ok up to you. I'm just wondering how much effort we should put into the examples EDM at this point.
no performance changes observed
Quality Gate failed
Failed conditions
0.0% Coverage on New Code (required ≥ 25%)
0.0% Line Coverage on New Code (required ≥ 50%)