Template Class CombinatorialKalmanFilter

Class Documentation

template<typename propagator_t, typename updater_t = VoidKalmanUpdater, typename smoother_t = VoidKalmanSmoother, typename source_link_selector_t = CKFSourceLinkSelector, typename branch_stopper_t = VoidBranchStopper, typename calibrator_t = VoidMeasurementCalibrator, typename input_converter_t = VoidKalmanComponents, typename output_converter_t = VoidKalmanComponents>
class Acts::CombinatorialKalmanFilter

CombinatorialKalmanFilter implementation of Acts as a plugin.

to the Propgator

The CombinatorialKalmanFilter 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.

Template Parameters
  • propagator_t: Type of the propagation class

  • updater_t: Type of the kalman updater class

  • smoother_t: Type of the kalman smoother class

  • source_link_selector_t: Type of the source link selector class

  • branch_stopper_t: Type of the branch stopper class

  • calibrator_t: Type of the calibrator class

  • input_converter_t: Type of the input converter class

  • output_converter_t: Type of the output converter class

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 track finding by the Actor.

  • The Sourcelink selector is called during the filtering by the Actor.

  • 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 CombinatorialKalmanFilter, measurement ordering needs to be figured out by the navigation of the propagator.

The Input converter is a converter that transforms the input measurement/track/segments into a set of FittableMeasurements

The Output converter is a converter that transforms the set of track states into a given track/track particle class

The void components are provided mainly for unit testing.

Public Types

using KalmanNavigator = typename propagator_t::Navigator

The navigator type.

using MeasurementSurfaces = std::multimap<const Layer*, const Surface*>

Shorthand definition.

Public Functions

CombinatorialKalmanFilter() = delete

Default constructor is deleted.

CombinatorialKalmanFilter(propagator_t pPropagator, std::unique_ptr<const Logger> logger = getDefaultLogger("CombinatorialKalmanFilter", Logging::INFO), input_converter_t pInputCnv = input_converter_t(), output_converter_t pOutputCnv = output_converter_t())

Constructor from arguments.

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

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 track finding.

Return

the output as an output track

Template Parameters
  • source_link_container_t: Source link container type

  • start_parameters_t: Type of the initial parameters

  • comb_kalman_filter_options_t: Type of the CombinatorialKalmanFilter options

  • parameters_t: Type of parameters used for local parameters

Parameters
  • sourcelinks: The fittable uncalibrated measurements

  • sParameters: The initial track parameters

  • tfOptions: CombinatorialKalmanFilterOptions steering the track finding