EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::KalmanFitter< propagator_t, updater_t, smoother_t, outlier_finder_t, calibrator_t > Class Template Reference

Kalman fitter implementation of Acts as a plugin. More...

#include <acts/blob/sPHENIX/Core/include/Acts/TrackFitting/KalmanFitter.hpp>

Classes

class  Aborter
 
class  Actor
 Propagator Actor plugin for the KalmanFilter. More...
 

Public Types

using MeasurementSurfaces = std::multimap< const Layer *, const Surface * >
 Shorthand definition.
 
using KalmanNavigator = typename propagator_t::Navigator
 The navigator type.
 

Public Member Functions

 KalmanFitter ()=delete
 Default constructor is deleted.
 
 KalmanFitter (propagator_t pPropagator)
 Constructor from arguments.
 
template<typename source_link_t , typename start_parameters_t , typename parameters_t = BoundTrackParameters>
auto fit (const std::vector< source_link_t > &sourcelinks, const start_parameters_t &sParameters, const KalmanFitterOptions< outlier_finder_t > &kfOptions) const -> std::enable_if_t<!isDirectNavigator, Result< KalmanFitterResult< source_link_t >>>
 
template<typename source_link_t , typename start_parameters_t , typename parameters_t = BoundTrackParameters>
auto fit (const std::vector< source_link_t > &sourcelinks, const start_parameters_t &sParameters, const KalmanFitterOptions< outlier_finder_t > &kfOptions, const std::vector< const Surface * > &sSequence) const -> std::enable_if_t< isDirectNavigator, Result< KalmanFitterResult< source_link_t >>>
 

Static Public Attributes

static constexpr bool isDirectNavigator
 The navigator has DirectNavigator type or not.
 

Private Attributes

propagator_t m_propagator
 The propgator for the transport and material update.
 

Detailed Description

template<typename propagator_t, typename updater_t = VoidKalmanUpdater, typename smoother_t = VoidKalmanSmoother, typename outlier_finder_t = VoidOutlierFinder, typename calibrator_t = VoidMeasurementCalibrator>
class Acts::KalmanFitter< propagator_t, updater_t, smoother_t, outlier_finder_t, calibrator_t >

Kalman fitter implementation of Acts as a plugin.

to the Propgator

Template Parameters
propagator_tType of the propagation class
updater_tType of the kalman updater class
smoother_tType of the kalman smoother class
outlier_finder_tType of the outlier finder class
calibrator_tType of the calibrator class

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 forward fit by the Actor.
  • The outlier finder is called during the filtering by the Actor. It determines if the measurement is an outlier
  • The Calibrator is a dedicated calibration algorithm that allows to calibrate measurements using track information, this could be e.g. sagging for wires, module deformations, etc.

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.

Definition at line 195 of file KalmanFitter.hpp.

View newest version in sPHENIX GitHub at line 195 of file KalmanFitter.hpp

Member Typedef Documentation

template<typename propagator_t , typename updater_t = VoidKalmanUpdater, typename smoother_t = VoidKalmanSmoother, typename outlier_finder_t = VoidOutlierFinder, typename calibrator_t = VoidMeasurementCalibrator>
using Acts::KalmanFitter< propagator_t, updater_t, smoother_t, outlier_finder_t, calibrator_t >::KalmanNavigator = typename propagator_t::Navigator

The navigator type.

Definition at line 200 of file KalmanFitter.hpp.

View newest version in sPHENIX GitHub at line 200 of file KalmanFitter.hpp

template<typename propagator_t , typename updater_t = VoidKalmanUpdater, typename smoother_t = VoidKalmanSmoother, typename outlier_finder_t = VoidOutlierFinder, typename calibrator_t = VoidMeasurementCalibrator>
using Acts::KalmanFitter< propagator_t, updater_t, smoother_t, outlier_finder_t, calibrator_t >::MeasurementSurfaces = std::multimap<const Layer*, const Surface*>

Shorthand definition.

Definition at line 198 of file KalmanFitter.hpp.

View newest version in sPHENIX GitHub at line 198 of file KalmanFitter.hpp

Constructor & Destructor Documentation

template<typename propagator_t , typename updater_t = VoidKalmanUpdater, typename smoother_t = VoidKalmanSmoother, typename outlier_finder_t = VoidOutlierFinder, typename calibrator_t = VoidMeasurementCalibrator>
Acts::KalmanFitter< propagator_t, updater_t, smoother_t, outlier_finder_t, calibrator_t >::KalmanFitter ( )
delete

Default constructor is deleted.

template<typename propagator_t , typename updater_t = VoidKalmanUpdater, typename smoother_t = VoidKalmanSmoother, typename outlier_finder_t = VoidOutlierFinder, typename calibrator_t = VoidMeasurementCalibrator>
Acts::KalmanFitter< propagator_t, updater_t, smoother_t, outlier_finder_t, calibrator_t >::KalmanFitter ( propagator_t  pPropagator)
inline

Constructor from arguments.

Definition at line 210 of file KalmanFitter.hpp.

View newest version in sPHENIX GitHub at line 210 of file KalmanFitter.hpp

Member Function Documentation

template<typename propagator_t , typename updater_t = VoidKalmanUpdater, typename smoother_t = VoidKalmanSmoother, typename outlier_finder_t = VoidOutlierFinder, typename calibrator_t = VoidMeasurementCalibrator>
template<typename source_link_t , typename start_parameters_t , typename parameters_t = BoundTrackParameters>
auto Acts::KalmanFitter< propagator_t, updater_t, smoother_t, outlier_finder_t, calibrator_t >::fit ( const std::vector< source_link_t > &  sourcelinks,
const start_parameters_t &  sParameters,
const KalmanFitterOptions< outlier_finder_t > &  kfOptions 
) const -> std::enable_if_t<!isDirectNavigator, Result<KalmanFitterResult<source_link_t>>>
inline

Fit implementation of the foward filter, calls the the forward filter and backward smoother

Template Parameters
source_link_tSource link type identifying uncalibrated input measurements.
start_parameters_tType of the initial parameters
parameters_tType of parameters used for local parameters
Parameters
sourcelinksThe fittable uncalibrated measurements
sParametersThe initial track parameters
kfOptionsKalmanOptions steering the fit
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

Get the result of the fit

It could happen that the fit ends in zero processed states. The result gets meaningless so such case is regarded as fit failure.

Definition at line 943 of file KalmanFitter.hpp.

View newest version in sPHENIX GitHub at line 943 of file KalmanFitter.hpp

References Acts::PropagatorOptions< action_list_t, aborter_list_t >::actionList, ACTS_VERBOSE, Acts::GeometryObject::geometryId(), and Acts::PropagatorOptions< action_list_t, aborter_list_t >::setPlainOptions().

Referenced by fdilut(), mkf2(), r1998(), and Acts::EventDataView3DTest::testMultiTrajectory().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename propagator_t , typename updater_t = VoidKalmanUpdater, typename smoother_t = VoidKalmanSmoother, typename outlier_finder_t = VoidOutlierFinder, typename calibrator_t = VoidMeasurementCalibrator>
template<typename source_link_t , typename start_parameters_t , typename parameters_t = BoundTrackParameters>
auto Acts::KalmanFitter< propagator_t, updater_t, smoother_t, outlier_finder_t, calibrator_t >::fit ( const std::vector< source_link_t > &  sourcelinks,
const start_parameters_t &  sParameters,
const KalmanFitterOptions< outlier_finder_t > &  kfOptions,
const std::vector< const Surface * > &  sSequence 
) const -> std::enable_if_t<isDirectNavigator, Result<KalmanFitterResult<source_link_t>>>
inline

Fit implementation of the foward filter, calls the the forward filter and backward smoother

Template Parameters
source_link_tSource link type identifying uncalibrated input measurements.
start_parameters_tType of the initial parameters
parameters_tType of parameters used for local parameters
Parameters
sourcelinksThe fittable uncalibrated measurements
sParametersThe initial track parameters
kfOptionsKalmanOptions steering the fit
sSequencesurface sequence used to initialize a DirectNavigator
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

Get the result of the fit

It could happen that the fit ends in zero processed states. The result gets meaningless so such case is regarded as fit failure.

Definition at line 1037 of file KalmanFitter.hpp.

View newest version in sPHENIX GitHub at line 1037 of file KalmanFitter.hpp

References Acts::PropagatorOptions< action_list_t, aborter_list_t >::actionList, ACTS_ERROR, ACTS_VERBOSE, and Acts::PropagatorOptions< action_list_t, aborter_list_t >::setPlainOptions().

+ Here is the call graph for this function:

Member Data Documentation

template<typename propagator_t , typename updater_t = VoidKalmanUpdater, typename smoother_t = VoidKalmanSmoother, typename outlier_finder_t = VoidOutlierFinder, typename calibrator_t = VoidMeasurementCalibrator>
constexpr bool Acts::KalmanFitter< propagator_t, updater_t, smoother_t, outlier_finder_t, calibrator_t >::isDirectNavigator
static
template<typename propagator_t , typename updater_t = VoidKalmanUpdater, typename smoother_t = VoidKalmanSmoother, typename outlier_finder_t = VoidOutlierFinder, typename calibrator_t = VoidMeasurementCalibrator>
propagator_t Acts::KalmanFitter< propagator_t, updater_t, smoother_t, outlier_finder_t, calibrator_t >::m_propagator
private

The propgator for the transport and material update.

Definition at line 215 of file KalmanFitter.hpp.

View newest version in sPHENIX GitHub at line 215 of file KalmanFitter.hpp


The documentation for this class was generated from the following file: