ECCE @ 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, input_converter_t, output_converter_t > Class Template Reference

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

#include <acts/blob/master/Core/include/Acts/TrackFinder/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.
 

Public Member 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.
 
template<typename source_link_t , typename start_parameters_t , typename comb_kalman_filter_options_t , typename parameters_t = BoundParameters>
Result
< CombinatorialKalmanFilterResult
< source_link_t > > 
findTracks (const std::vector< source_link_t > &sourcelinks, const start_parameters_t &sParameters, const comb_kalman_filter_options_t &tfOptions) const
 

Private Member Functions

const Loggerlogger () const
 Logger getter to support macros.
 

Private Attributes

propagator_t m_propagator
 The propgator for the transport and material update.
 
input_converter_t m_inputConverter
 The input converter to Fittable measurements.
 
output_converter_t m_outputConverter
 The output converter into a given format.
 
std::shared_ptr< const Loggerm_logger
 Owned logging instance.
 

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, typename input_converter_t = VoidKalmanComponents, typename output_converter_t = VoidKalmanComponents>
class Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_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
input_converter_tType of the input converter class
output_converter_tType of the output converter 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 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.

Definition at line 218 of file CombinatorialKalmanFilter.hpp.

View newest version in sPHENIX GitHub at line 218 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, typename input_converter_t = VoidKalmanComponents, typename output_converter_t = VoidKalmanComponents>
using Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_t >::MeasurementSurfaces = std::multimap<const Layer*, const Surface*>

Shorthand definition.

Definition at line 221 of file CombinatorialKalmanFilter.hpp.

View newest version in sPHENIX GitHub at line 221 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, typename input_converter_t = VoidKalmanComponents, typename output_converter_t = VoidKalmanComponents>
Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_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, typename input_converter_t = VoidKalmanComponents, typename output_converter_t = VoidKalmanComponents>
Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_t >::CombinatorialKalmanFilter ( propagator_t  pPropagator,
std::unique_ptr< const Logger logger = getDefaultLogger("CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_t >", Logging::INFO),
input_converter_t  pInputCnv = input_converter_t(),
output_converter_t  pOutputCnv = output_converter_t() 
)
inline

Constructor from arguments.

Definition at line 227 of file CombinatorialKalmanFilter.hpp.

View newest version in sPHENIX GitHub at line 227 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, typename input_converter_t = VoidKalmanComponents, typename output_converter_t = VoidKalmanComponents>
template<typename source_link_t , typename start_parameters_t , typename comb_kalman_filter_options_t , typename parameters_t = BoundParameters>
Result<CombinatorialKalmanFilterResult<source_link_t> > Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_t >::findTracks ( const std::vector< source_link_t > &  sourcelinks,
const start_parameters_t &  sParameters,
const comb_kalman_filter_options_t &  tfOptions 
) const
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
comb_kalman_filter_options_tType of the CombinatorialKalmanFilter options
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

It could happen that propagation reaches max step size before the track finding is finished.

Definition at line 1107 of file CombinatorialKalmanFilter.hpp.

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

References Acts::PropagatorOptions< action_list_t, aborter_list_t >::actionList, ACTS_ERROR, ACTS_VERBOSE, Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_t >::m_logger, Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_t >::m_outputConverter, Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_t >::m_propagator, and Acts::PropagatorOptions< action_list_t, aborter_list_t >::maxSteps.

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

+ Here is the caller graph for this function:

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>
const Logger& Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_t >::logger ( ) const
inlineprivate

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, typename input_converter_t = VoidKalmanComponents, typename output_converter_t = VoidKalmanComponents>
input_converter_t Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_t >::m_inputConverter
private

The input converter to Fittable measurements.

Definition at line 243 of file CombinatorialKalmanFilter.hpp.

View newest version in sPHENIX GitHub at line 243 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, typename input_converter_t = VoidKalmanComponents, typename output_converter_t = VoidKalmanComponents>
std::shared_ptr<const Logger> Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_t >::m_logger
private
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>
output_converter_t Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_t >::m_outputConverter
private
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>
propagator_t Acts::CombinatorialKalmanFilter< propagator_t, updater_t, smoother_t, source_link_selector_t, branch_stopper_t, calibrator_t, input_converter_t, output_converter_t >::m_propagator
private

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