Class Acts::CombinatorialKalmanFilter¶
-
template<typename propagator_t, typename traj_t>
class CombinatorialKalmanFilter¶ Combinatorial Kalman filter to find tracks.
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.
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 (track finding) by the Actor.
Measurements are not required to be ordered for the CombinatorialKalmanFilter, measurement ordering needs to be figured out by the navigation of the propagator.
The void components are provided mainly for unit testing.
- Template Parameters
propagator_t – Type of the propagator
Public Functions
-
CombinatorialKalmanFilter() = delete¶
Default constructor is deleted.
-
inline CombinatorialKalmanFilter(propagator_t pPropagator, std::unique_ptr<const Logger> _logger = getDefaultLogger("CKF", Logging::INFO))¶
Constructor from arguments.
-
template<typename source_link_iterator_t, typename start_parameters_t, typename track_container_t, template<typename> class holder_t, typename parameters_t = BoundTrackParameters>
inline auto findTracks(const start_parameters_t &initialParameters, const CombinatorialKalmanFilterOptions<source_link_iterator_t, traj_t> &tfOptions, TrackContainer<track_container_t, traj_t, holder_t> &trackContainer) const -> Result<std::vector<typename std::decay_t<decltype(trackContainer)>::TrackProxy>>¶ Combinatorial Kalman Filter implementation, calls the Kalman filter and smoother.
Note
The input measurements are given in the form of
SourceLinks
. It’scalibrator_t's
job to turn them into calibrated measurements used in the track finding.- Template Parameters
source_link_iterator_t – Type of the source link iterator
start_parameters_container_t – Type of the initial parameters container
calibrator_t – Type of the source link calibrator
measurement_selector_t – Type of the measurement selector
track_container_t – Type of the track container backend
holder_t – Type defining track container backend ownership
parameters_t – Type of parameters used for local parameters
- Parameters
initialParameters – The initial track parameters
tfOptions – CombinatorialKalmanFilterOptions steering the track finding
trackContainer – Input track container to use
- Returns
a container of track finding result for all the initial track parameters