Skip to content

Alignment with PrKalmanFilter

Jakub Kubat requested to merge jakub-UsePrKalman into master

Adapt AlignAlgorithm, TrackResidualHelper, VertexResidualTool, AlResiduals and more to be compatible with PrKalmanFitResult and PrFitNode and make alignment work with PrKalmanFilter in general. Depends on Rec!2671 (merged).

Addresses #16

The code contains some rough spots due to how LHCb::FitNode and new PrFitNode work internally in a different way, suggestions for improvements are welcome.

The parts of AlignAlgorithm which are common for both fitters are now defined by AlignAlgorithmBase. The AlignAlgorithm then inherits from the base class and is templated on the fit node type and fit result type. AlignAlgorithmBase is also used in AlignAlgorithmHelper to access methods of AlignAlgorithm outside of the main execution, this is used in gaudiiter.py.

Note that the configuration for VELO alignment in Humboldt was also adapted - one has to use AlignAlgorithm_PrKalman to run alignment and the VELO backward tracks have to be fitted separately as they are not provided by the make_fastest_reco function.

Potential issues I found during testing:

  • The problem with backward VELO tracks fit with PrKalmanFilter will be addressed on track fit side by Rec!2734 (merged). However, when running the alignment with this change there are still error messages regarding bad offdiagonal elements for number of VELO backward tracks. The warning is produced here.
  • To carry out the test Wouter suggested, where we align the whole detector as a single unit with no external constraints, we need the "Tracker" alignable which is outdated a.t.m.
    • Trying to modify the Tracker alignable and using it for the test with the old fitter results in "no alignable degrees of freedom" error message, see the alignment log
    • Same happens when aligning the VP as a whole using the old fitter and 'Long' tracks while ignoring UT and FT hits with the measurement provider
    • Followed up in #24

@ausachov, @graven, @wouter, @gunther, @freiss, @sborghi

Edited by Jakub Kubat

Merge request reports