KalmanVertexUpdator performance tuning for use in AMVF
This MR significantly speeds up the KalmanVertexUpdator
's update
method by replacing a temporarily created and subsequently destroyed xAOD::Vertex
object by a slim struct. This is also done in the IVertexUpdator
and propagated to all clients.
This, together with local caching of a matrix inversion result, yields a factor of up to 4 speed improvement for the Adaptive multi vertex fitter (see https://its.cern.ch/jira/browse/ATLIDTRKCP-245).
In addition to this performance tuning, some clean-up to the code is performed (removal of commented lines, attempt to clean up indentation to a consistent scheme, uniform use of messaging macros, use of std algorithms where possible, fix of potential memory leak).
The changes were tested to not change the reco output (except for CPU/timings) compared to running the AMVF in an unchanged master.
Adding @sroe and @npetters who are also working on improving the AMVF performance.
Merge request reports
Activity
added Tracking label
This merge request affects 1 package:
- Tracking/TrkVertexFitter/TrkVertexFitterUtils
Adding @amorley as watcher
added master review-pending-level-1 labels
removed review-pending-level-1 label
added 2 commits
CI Result SUCCESS (hash 41494daf)Athena AthSimulation externals cmake make required tests optional tests Full details available on this CI monitor view
Athena: number of compilation errors 0, warnings 0
AthSimulation: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 10071]- Resolved by Maximilian Emanuel Goblirsch-Kolb
- Resolved by Maximilian Emanuel Goblirsch-Kolb
I just noticed that the
KalmanVertexTrackUpdator
calls the (slow)positionUpdate
method via theIVertexUpdator
interface, resulting in another performance hit on the AMVF.To solve this, we would need to move our struct out of this class into the interface and make the
positionUpdateFast
method public - or alternatively changepositionUpdate
itself and adapt all callers?Edited by Maximilian Emanuel Goblirsch-Kolbadded 188 commits
-
1f431c0f...cd6feeb6 - 186 commits from branch
atlas:master
- 62c70dda - Merge remote-tracking branch 'upstream/master' into KalmanVertexUpdatorTuning_cleanedUp
- 56f1a4a2 - Optimize IVertexUpdator interface and update clients to avoid temporary...
-
1f431c0f...cd6feeb6 - 186 commits from branch