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

CombinatorialKalmanFilter implementation of Acts as a plugin. More...

#include <acts/blob/sPHENIX/Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp>

Classes

class  Aborter
 
class  Actor
 Propagator Actor plugin for the CombinatorialKalmanFilter. 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

 CombinatorialKalmanFilter ()=delete
 Default constructor is deleted.
 
 CombinatorialKalmanFilter (propagator_t pPropagator)
 Constructor from arguments.
 
template<typename source_link_container_t , typename start_parameters_t , typename parameters_t = BoundTrackParameters>
Result
< CombinatorialKalmanFilterResult
< typename
source_link_container_t::value_type > > 
findTracks (const source_link_container_t &sourcelinks, const start_parameters_t &sParameters, const CombinatorialKalmanFilterOptions< source_link_selector_t > &tfOptions) const
 

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 source_link_selector_t = CKFSourceLinkSelector, typename branch_stopper_t = VoidBranchStopper, typename calibrator_t = VoidMeasurementCalibrator>
class Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t >

CombinatorialKalmanFilter 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
source_link_selector_tType of the source link selector class
branch_stopper_tType of the branch stopper class
calibrator_tType of the calibrator class

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 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 void components are provided mainly for unit testing.

Definition at line 225 of file CombinatorialKalmanFilter.hpp.

View newest version in sPHENIX GitHub at line 225 of file CombinatorialKalmanFilter.hpp

Member Typedef 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>
using Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t >::KalmanNavigator = typename propagator_t::Navigator

The navigator type.

Definition at line 230 of file CombinatorialKalmanFilter.hpp.

View newest version in sPHENIX GitHub at line 230 of file CombinatorialKalmanFilter.hpp

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>
using Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t >::MeasurementSurfaces = std::multimap<const Layer*, const Surface*>

Shorthand definition.

Definition at line 228 of file CombinatorialKalmanFilter.hpp.

View newest version in sPHENIX GitHub at line 228 of file CombinatorialKalmanFilter.hpp

Constructor & Destructor 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>
Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t >::CombinatorialKalmanFilter ( )
delete

Default constructor is deleted.

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>
Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t >::CombinatorialKalmanFilter ( propagator_t  pPropagator)
inline

Constructor from arguments.

Definition at line 236 of file CombinatorialKalmanFilter.hpp.

View newest version in sPHENIX GitHub at line 236 of file CombinatorialKalmanFilter.hpp

Member Function 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>
template<typename source_link_container_t , typename start_parameters_t , typename parameters_t = BoundTrackParameters>
Result<CombinatorialKalmanFilterResult< typename source_link_container_t::value_type> > Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t >::findTracks ( const source_link_container_t &  sourcelinks,
const start_parameters_t &  sParameters,
const CombinatorialKalmanFilterOptions< source_link_selector_t > &  tfOptions 
) const
inline

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

Template Parameters
source_link_container_tSource link container type
start_parameters_tType of the initial parameters
parameters_tType of parameters used for local parameters
Parameters
sourcelinksThe fittable uncalibrated measurements
sParametersThe initial track parameters
tfOptionsCombinatorialKalmanFilterOptions steering the track finding
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.
Returns
the output as an output track

Get the result of the CombinatorialKalmanFilter

The propagation could already reach max step size before the track finding is finished during two phases:

Definition at line 1105 of file CombinatorialKalmanFilter.hpp.

View newest version in sPHENIX GitHub at line 1105 of file CombinatorialKalmanFilter.hpp

References Acts::PropagatorOptions< action_list_t, aborter_list_t >::actionList, ACTS_ERROR, ACTS_VERBOSE, Acts::CombinatorialKalmanFilterOptions< source_link_selector_t >::energyLoss, Acts::CombinatorialKalmanFilterOptions< source_link_selector_t >::geoContext, Acts::GeometryObject::geometryId(), Acts::CombinatorialKalmanFilterOptions< source_link_selector_t >::logger, Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t >::m_propagator, Acts::CombinatorialKalmanFilterOptions< source_link_selector_t >::magFieldContext, Acts::CombinatorialKalmanFilterOptions< source_link_selector_t >::multipleScattering, Acts::CombinatorialKalmanFilterOptions< source_link_selector_t >::propagatorPlainOptions, Acts::CombinatorialKalmanFilterOptions< source_link_selector_t >::referenceSurface, Acts::CombinatorialKalmanFilterResult< source_link_t >::result, Acts::PropagatorOptions< action_list_t, aborter_list_t >::setPlainOptions(), Acts::CombinatorialKalmanFilterOptions< source_link_selector_t >::smoothing, and Acts::CombinatorialKalmanFilterOptions< source_link_selector_t >::sourcelinkSelectorConfig.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data 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>
propagator_t Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t >::m_propagator
private

The propgator for the transport and material update.

Definition at line 241 of file CombinatorialKalmanFilter.hpp.

View newest version in sPHENIX GitHub at line 241 of file CombinatorialKalmanFilter.hpp

Referenced by Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t >::findTracks().


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