Further refactoring and cleanup of TrkGlobalChi2Fitter
In this merge request, we do some further refactoring and cleaning up of the TrkGlobalChi2Fitter
class. In short, we make the following changes:
- We migrate several instances of
std::vector<double>
and evenstd::vector<std::vector<double>>
toAmg::VectorX
andAmg::MatrixX
, respectively. The point of that is to improve readability, performance, and interoperability with Eigen classes and methods. - Replacement of some naively implemented matrix-matrix methods to use Eigen, which is possible now do the previous point.
- Deduplication of the
calculateDerivative
method, as well as the track making code, to reduce its code volume and improve clarity. - Removal of some mysterious and unused method declarations.
I've done my best to validate this change, and the results seem to be unchanged on a q431 test.
Merge request reports
Activity
This merge request affects 1 package:
- Tracking/TrkFitter/TrkGlobalChi2Fitter
Adding @amorley as watcher
added Tracking master review-pending-level-1 labels
CI Result SUCCESS (hash 4e0db628)Athena AthSimulation AthGeneration AnalysisBase 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
AthGeneration: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 17861]indeed this is another instance of ATLINFR-3652; I shall approve this as a sensible translation of the original code, but would like to be sure also that the timing has not suffered as a result.
added review-approved label and removed review-pending-level-1 label
To guard against performance regressions I ran q431 with this version of the code as well as ac6c952e (tag
nightly/master/2020-07-27T0451
from which this branches off) and the results are that PerfMon reports a runtime of 923 milliseconds in theInDetSiSpTrackFinder
for the old version and 913 milliseconds for this merge request. That's a speed-up of 1%, probably just a product of timing fluctuation.mentioned in commit 4ccfcc8f
added sweep:ignore label
- Resolved by Rafal Bielski
mentioned in merge request !35247 (merged)