Reduce vertexing template arguments and introduce linearizer
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 thelinearizer_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