Template Class CombinatorialKalmanFilter::Actor

Nested Relationships

This class is a nested type of Template Class CombinatorialKalmanFilter.

Class Documentation

template<typename source_link_t, typename parameters_t>
class Acts::CombinatorialKalmanFilter::Actor

Propagator Actor plugin for the CombinatorialKalmanFilter.

The CombinatorialKalmanFilterActor does not rely on the measurements to be sorted along the track.

Template Parameters
  • source_link_t: is an type fulfilling the SourceLinkConcept

  • parameters_t: The type of parameters used for “local” paremeters.

Public Types

using BoundState = std::tuple<BoundParameters, BoundMatrix, double>
using CurvilinearState = std::tuple<CurvilinearParameters, BoundMatrix, double>
using result_type = CombinatorialKalmanFilterResult<source_link_t>

Broadcast the result_type.

using TipState = CombinatorialKalmanFilterTipState
using TrackStateType = TrackState<source_link_t, parameters_t>

Public Functions

Explicit constructor with updater and calibrator.

size_t addHoleState(const TrackStatePropMask &stateMask, const BoundState &boundState, result_type &result, size_t prevTip = SIZE_MAX) const

CombinatorialKalmanFilter actor operation : add hole track state.

Return

The tip of added state

Parameters
  • stateMask: The bitmask that instructs which components to allocate

  • boundState: The bound state on current surface

  • result: is the mutable result state object and which to leave invalid

  • prevTip: The index of the previous state

size_t addPassiveState(const TrackStatePropMask &stateMask, const CurvilinearState &curvilinearState, result_type &result, size_t prevTip = SIZE_MAX) const

CombinatorialKalmanFilter actor operation : add passive track state.

Return

The tip of added state

Parameters
  • stateMask: The bitmask that instructs which components to allocate

  • curvilinearState: The curvilinear state on in-sensive material surface

  • result: is the mutable result state object and which to leave invalid

  • prevTip: The index of the previous state

CombinatorialKalmanFilter actor operation : add track state with source link: measurement or outlier.

Return

The tip of added state and its state

Parameters
  • stateMask: The bitmask that instructs which components to allocate and which to leave invalid

  • boundState: The bound state on current surface

  • sourcelink: The source link to be stored

  • isOutlier: Indicator for outlier or not

  • result: is the mutable result state object

  • geoContext: The geometry context (needed for Kalman update)

  • neighborTip: The neighbor state tip on this surface (the predicted parameters could be shared between neighbors)

  • sharedTip: The tip of state with shared source link

template<typename propagator_state_t, typename stepper_t>
Result<void> filter(const Surface *surface, propagator_state_t &state, const stepper_t &stepper, result_type &result) const

CombinatorialKalmanFilter actor operation :

  • filtering for all measurement(s) on surface

  • store selected track states in multiTrajectory

  • update propagator state to the (last) selected track state

Template Parameters
  • propagator_state_t: is the type of Propagagor state

  • stepper_t: Type of the stepper

Parameters
  • surface: The surface where the update happens

  • state: The mutable propagator state object

  • stepper: The stepper in use

  • result: The mutable result state object

template<typename propagator_state_t, typename stepper_t>
Result<void> finalize(propagator_state_t &state, const stepper_t &stepper, result_type &result) const

Kalman actor operation : finalize.

Template Parameters
  • propagator_state_t: is the type of Propagagor state

  • stepper_t: Type of the stepper

Parameters
  • state: is the mutable propagator state object

  • stepper: The stepper in use

  • result: is the mutable result state object

const Logger &logger() const

Getter for the logger, to support logging macros.

template<typename propagator_state_t, typename stepper_t>
void materialInteractor(const Surface *surface, propagator_state_t &state, stepper_t &stepper, const MaterialUpdateStage &updateStage = fullUpdate) const

CombinatorialKalmanFilter actor operation : material interaction.

Template Parameters
  • propagator_state_t: is the type of Propagagor state

  • stepper_t: Type of the stepper

Parameters
  • surface: The surface where the material interaction happens

  • state: The mutable propagator state object

  • stepper: The stepper in use

  • updateStage: The materal update stage

template<typename propagator_state_t, typename stepper_t>
void operator()(propagator_state_t &state, const stepper_t &stepper, result_type &result) const

CombinatorialKalmanFilter actor operation.

Template Parameters
  • propagator_state_t: is the type of Propagagor state

  • stepper_t: Type of the stepper

Parameters
  • state: is the mutable propagator state object

  • stepper: The stepper in use

  • result: is the mutable result state object

template<typename propagator_state_t, typename stepper_t>
void reset(propagator_state_t &state, stepper_t &stepper, result_type &result) const

Kalman actor operation : reset propagation.

Template Parameters
  • propagator_state_t: is the type of Propagagor state

  • stepper_t: Type of the stepper

Parameters
  • state: is the mutable propagator state object

  • stepper: The stepper in use

  • result: is the mutable result state object

Public Members

bool energyLoss = true

Whether to consider energy loss.

std::unordered_map<const Surface*, std::vector<source_link_t>> inputMeasurements

Allows retrieving measurements for a surface.

branch_stopper_t m_branchStopper

The branch propagation stopper.

calibrator_t m_calibrator

The Measuremetn calibrator.

const Logger *m_logger

Pointer to a logger that is owned by the parent, CombinatorialKalmanFilter.

smoother_t m_smoother

The CombinatorialKalmanFilter smoother.

source_link_selector_t m_sourcelinkSelector

The source link selector.

updater_t m_updater

The CombinatorialKalmanFilter updater.

bool multipleScattering = true

Whether to consider multiple scattering.

bool smoothing = true

Whether to run smoothing to get fitted parameter.

SurfaceReached targetReached

The Surface beeing.

const Surface *targetSurface = nullptr

The target surface.