Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::KalmanFitter< propagator_t, traj_t > Class Template Reference

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

+ Collaboration diagram for Acts::KalmanFitter< propagator_t, traj_t >:

Classes

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

Public Member Functions

 KalmanFitter (propagator_t pPropagator, std::unique_ptr< const Logger > _logger=getDefaultLogger("KalmanFitter", Logging::INFO))
 
const Loggerlogger () const
 
template<typename source_link_iterator_t , typename start_parameters_t , typename parameters_t = BoundTrackParameters, typename track_container_t , template< typename > class holder_t, bool _isdn = isDirectNavigator>
auto fit (source_link_iterator_t it, source_link_iterator_t end, const start_parameters_t &sParameters, const KalmanFitterOptions< traj_t > &kfOptions, TrackContainer< track_container_t, traj_t, holder_t > &trackContainer) const -> std::enable_if_t< !_isdn, Result< typename TrackContainer< track_container_t, traj_t, holder_t >::TrackProxy >>
 
template<typename source_link_iterator_t , typename start_parameters_t , typename parameters_t = BoundTrackParameters, typename track_container_t , template< typename > class holder_t, bool _isdn = isDirectNavigator>
auto fit (source_link_iterator_t it, source_link_iterator_t end, const start_parameters_t &sParameters, const KalmanFitterOptions< traj_t > &kfOptions, const std::vector< const Surface * > &sSequence, TrackContainer< track_container_t, traj_t, holder_t > &trackContainer) const -> std::enable_if_t< _isdn, Result< typename TrackContainer< track_container_t, traj_t, holder_t >::TrackProxy >>
 

Public Attributes

 m_actorLogger
 
std::unique_ptr< const Loggerm_logger
 The logger instance.
 
std::unique_ptr< const Loggerm_actorLogger
 

Private Types

using KalmanNavigator = typename propagator_t::Navigator
 The navigator type.
 

Static Private Attributes

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

Detailed Description

template<typename propagator_t, typename traj_t>
class Acts::KalmanFitter< propagator_t, traj_t >

Kalman fitter implementation.

Template Parameters
propagator_tType of the propagation 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 filtering by the Actor.

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 267 of file KalmanFitter.hpp.

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

Member Typedef Documentation

template<typename propagator_t , typename traj_t >
using Acts::KalmanFitter< propagator_t, traj_t >::KalmanNavigator = typename propagator_t::Navigator
private

The navigator type.

Definition at line 269 of file KalmanFitter.hpp.

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

Constructor & Destructor Documentation

template<typename propagator_t , typename traj_t >
Acts::KalmanFitter< propagator_t, traj_t >::KalmanFitter ( propagator_t  pPropagator,
std::unique_ptr< const Logger _logger = getDefaultLogger("KalmanFitter< propagator_t, traj_t >", Logging::INFO) 
)
inline

Definition at line 276 of file KalmanFitter.hpp.

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

References testing::internal::move().

+ Here is the call graph for this function:

Member Function Documentation

template<typename propagator_t , typename traj_t >
template<typename source_link_iterator_t , typename start_parameters_t , typename parameters_t = BoundTrackParameters, typename track_container_t , template< typename > class holder_t, bool _isdn = isDirectNavigator>
auto Acts::KalmanFitter< propagator_t, traj_t >::fit ( source_link_iterator_t  it,
source_link_iterator_t  end,
const start_parameters_t &  sParameters,
const KalmanFitterOptions< traj_t > &  kfOptions,
TrackContainer< track_container_t, traj_t, holder_t > &  trackContainer 
) const -> std::enable_if_t< !_isdn, Result<typename TrackContainer<track_container_t, traj_t, holder_t>::TrackProxy>>
inline

Fit implementation of the forward filter, calls the the filter and smoother/reversed filter

Template Parameters
source_link_iterator_tIterator type used to pass source links
start_parameters_tType of the initial parameters
parameters_tType of parameters used for local parameters
track_container_tType of the track container backend
holder_tType defining track container backend ownership
Parameters
itBegin iterator for the fittable uncalibrated measurements
endEnd iterator for the fittable uncalibrated measurements
sParametersThe initial track parameters
kfOptionsKalmanOptions steering the fit
trackContainerInput track container storage to append into
Note
The input measurements are given in the form of SourceLink s. It's the calibrators 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 measurement states. The result gets meaningless so such case is regarded as fit failure.

Definition at line 1098 of file KalmanFitter.hpp.

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

References Acts::PropagatorOptions< action_list_t, aborter_list_t >::actionList, ACTS_ERROR, ACTS_VERBOSE, Acts::calculateTrackQuantities(), distance(), end, Acts::GeometryObject::geometryId(), Acts::hashString(), it, testing::internal::move(), physmon_track_finding_ttbar::r, Acts::PropagatorOptions< action_list_t, aborter_list_t >::setPlainOptions(), and writeMapConfig::surface.

Referenced by Acts::EventDataView3DTest::testMultiTrajectory().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename propagator_t , typename traj_t >
template<typename source_link_iterator_t , typename start_parameters_t , typename parameters_t = BoundTrackParameters, typename track_container_t , template< typename > class holder_t, bool _isdn = isDirectNavigator>
auto Acts::KalmanFitter< propagator_t, traj_t >::fit ( source_link_iterator_t  it,
source_link_iterator_t  end,
const start_parameters_t &  sParameters,
const KalmanFitterOptions< traj_t > &  kfOptions,
const std::vector< const Surface * > &  sSequence,
TrackContainer< track_container_t, traj_t, holder_t > &  trackContainer 
) const -> std::enable_if_t< _isdn, Result<typename TrackContainer<track_container_t, traj_t, holder_t>::TrackProxy>>
inline

Fit implementation of the forward filter, calls the the filter and smoother/reversed filter

Template Parameters
source_link_iterator_tIterator type used to pass source links
start_parameters_tType of the initial parameters
parameters_tType of parameters used for local parameters
track_container_tType of the track container backend
holder_tType defining track container backend ownership
Parameters
itBegin iterator for the fittable uncalibrated measurements
endEnd iterator for the fittable uncalibrated measurements
sParametersThe initial track parameters
kfOptionsKalmanOptions steering the fit
sSequencesurface sequence used to initialize a DirectNavigator
trackContainerInput track container storage to append into
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 measurement states. The result gets meaningless so such case is regarded as fit failure.

Definition at line 1232 of file KalmanFitter.hpp.

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

References Acts::PropagatorOptions< action_list_t, aborter_list_t >::actionList, ACTS_ERROR, ACTS_VERBOSE, Acts::calculateTrackQuantities(), distance(), end, Acts::GeometryObject::geometryId(), Acts::hashString(), it, testing::internal::move(), physmon_track_finding_ttbar::r, Acts::PropagatorOptions< action_list_t, aborter_list_t >::setPlainOptions(), and writeMapConfig::surface.

+ Here is the call graph for this function:

template<typename propagator_t , typename traj_t >
const Logger& Acts::KalmanFitter< propagator_t, traj_t >::logger ( ) const
inline

Definition at line 291 of file KalmanFitter.hpp.

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

References Acts::KalmanFitter< propagator_t, traj_t >::m_logger.

Referenced by Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::filter(), and Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::reversedFilter().

+ Here is the caller graph for this function:

Member Data Documentation

template<typename propagator_t , typename traj_t >
constexpr bool Acts::KalmanFitter< propagator_t, traj_t >::isDirectNavigator
staticprivate
Initial value:

The navigator has DirectNavigator type or not.

Definition at line 272 of file KalmanFitter.hpp.

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

Referenced by Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::operator()().

template<typename propagator_t , typename traj_t >
Acts::KalmanFitter< propagator_t, traj_t >::m_actorLogger
Initial value:
{m_logger->cloneWithSuffix("Actor")} {}
private:
propagator_t m_propagator

Definition at line 281 of file KalmanFitter.hpp.

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

template<typename propagator_t , typename traj_t >
std::unique_ptr<const Logger> Acts::KalmanFitter< propagator_t, traj_t >::m_actorLogger

Definition at line 289 of file KalmanFitter.hpp.

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

template<typename propagator_t , typename traj_t >
std::unique_ptr<const Logger> Acts::KalmanFitter< propagator_t, traj_t >::m_logger

The logger instance.

Definition at line 288 of file KalmanFitter.hpp.

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

Referenced by Acts::KalmanFitter< propagator_t, traj_t >::logger().


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