ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::KalmanFitter< propagator_t, traj_t > Class Template Reference

Kalman fitter implementation. More...

#include <Acts/TrackFitting/KalmanFitter.hpp>

Public Member Functions

 KalmanFitter (propagator_t pPropagator, std::unique_ptr< const Logger > _logger=getDefaultLogger("KalmanFitter", Logging::INFO))
 Constructor with propagator and logger.
template<typename source_link_iterator_t, TrackContainerFrontend track_container_t>
requires (isDirectNavigator)
Result< typename track_container_t::TrackProxy > fit (source_link_iterator_t it, source_link_iterator_t end, const BoundTrackParameters &sParameters, const KalmanFitterOptions< traj_t > &kfOptions, const std::vector< const Surface * > &sSequence, track_container_t &trackContainer) const
 Fit implementation of the forward filter, calls the the filter and smoother/reversed filter.
template<typename source_link_iterator_t, TrackContainerFrontend track_container_t>
Result< typename track_container_t::TrackProxy > fit (source_link_iterator_t it, source_link_iterator_t end, const BoundTrackParameters &sParameters, const KalmanFitterOptions< traj_t > &kfOptions, track_container_t &trackContainer) const
 Fit implementation of the forward filter, calls the the filter and smoother/reversed filter.

Detailed Description

template<typename propagator_t, typename traj_t>
class Acts::KalmanFitter< propagator_t, traj_t >

Kalman fitter implementation.

Template Parameters
propagator_tType of the propagation class, usually an instance of Acts::Propagator

The Kalman filter contains an Actor and a Sequencer sub-class. The Sequencer has to be part of the Navigator of the Propagator in order to initialize and provide the measurement surfaces.

The Actor is part of the Propagation call and does the Kalman update and eventually the smoothing. Updater, Smoother and Calibrator are given to the Actor for further use:

  • The Updater is the implemented kalman updater formalism, it runs via a visitor pattern through the measurements.
  • The Smoother is called at the end of the filtering by the Actor.

Measurements are not required to be ordered for the KalmanFilter, measurement ordering needs to be figured out by the navigation of the propagator.

The void components are provided mainly for unit testing.

Constructor & Destructor Documentation

◆ KalmanFitter()

template<typename propagator_t, typename traj_t>
Acts::KalmanFitter< propagator_t, traj_t >::KalmanFitter ( propagator_t pPropagator,
std::unique_ptr< const Logger > _logger = getDefaultLogger("KalmanFitter< propagator_t, traj_t >", Logging::INFO) )
explicit

Constructor with propagator and logger.

Parameters
pPropagatorPropagator instance for track propagation
_loggerLogger for diagnostic output

Member Function Documentation

◆ fit() [1/2]

template<typename propagator_t, typename traj_t>
template<typename source_link_iterator_t, TrackContainerFrontend track_container_t>
requires (isDirectNavigator)
Result< typename track_container_t::TrackProxy > Acts::KalmanFitter< propagator_t, traj_t >::fit ( source_link_iterator_t it,
source_link_iterator_t end,
const BoundTrackParameters & sParameters,
const KalmanFitterOptions< traj_t > & kfOptions,
const std::vector< const Surface * > & sSequence,
track_container_t & trackContainer ) const

Fit implementation of the forward filter, calls the the filter and smoother/reversed filter.

Template Parameters
source_link_iterator_tIterator type used to pass source links
track_container_tType of the track container
Parameters
itBegin iterator for the fittable uncalibrated measurements
endEnd iterator for the fittable uncalibrated measurements
sParametersThe initial track parameters
kfOptionsKalmanOptions steering the fit
sSequencesurface sequence used to initialize a DirectNavigator
trackContainerInput track container storage to append into
Note
The input measurements are given in the form of SourceLinks. It's calibrator_t's job to turn them into calibrated measurements used in the fit.
Returns
the output as an output track

◆ fit() [2/2]

template<typename propagator_t, typename traj_t>
template<typename source_link_iterator_t, TrackContainerFrontend track_container_t>
Result< typename track_container_t::TrackProxy > Acts::KalmanFitter< propagator_t, traj_t >::fit ( source_link_iterator_t it,
source_link_iterator_t end,
const BoundTrackParameters & sParameters,
const KalmanFitterOptions< traj_t > & kfOptions,
track_container_t & trackContainer ) const

Fit implementation of the forward filter, calls the the filter and smoother/reversed filter.

Template Parameters
source_link_iterator_tIterator type used to pass source links
track_container_tType of the track container
Parameters
itBegin iterator for the fittable uncalibrated measurements
endEnd iterator for the fittable uncalibrated measurements
sParametersThe initial track parameters
kfOptionsKalmanOptions steering the fit
trackContainerInput track container storage to append into
Note
The input measurements are given in the form of SourceLink s. It's the calibrators job to turn them into calibrated measurements used in the fit.
Returns
the output as an output track