Skip to content

Reduce vertexing template arguments and introduce linearizer

Bastian Schlag requested to merge prepare_linearizer into master

In order to be able to use different track linearizer for vertex fitters in the future (see #634), the vertex fitters need to accept different linearizers. Currently only one linearizer based on a helical track model (LinearizedTrackFactory) is implemented. This MR:

  • renames the current linearizer LinearizedTrackFactory -> HelicalTrackLinearizer
  • introduces the template parameter linearizer_t for vertex fitters together with a linearizer concept
  • removes bfield_t template argument from vertex fitter
  • removes the propagator_t template argument from the vertex fitter since this type can be deduced from the linearizer_t

In addition:

  • All template parameters except for vfitter_t are removed from the vertex finders since all previously templated types can now be deduced from the fitter
  • Introduces seed finder template argument for vertex finder

Change of ownership:

  • Propagator shared_ptr (and for current linearizer also BField) now held by linearizer itself
  • Finder holds linearizer and passes to fitter in fit() method

Additionally: Updates IterativeVertexFinder by replacing naked for loop by std::find_if

Edited by Bastian Schlag

Merge request reports