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, typename calibrator_t, typename source_link_selector_t>
class Acts::CombinatorialKalmanFilter::Actor

Propagator Actor plugin for the CombinatorialKalmanFilter.

  • 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.

Template Parameters
  • source_link_t: is an type fulfilling the SourceLinkConcept

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

  • calibrator_t: The type of source link calibrator.

  • source_link_selector_t: The type of compatible source links selector.

The Sourcelink selector is called during the filtering by the Actor.

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

Public Types

using BoundState = std::tuple<BoundTrackParameters, BoundMatrix, double>
using CurvilinearState = std::tuple<CurvilinearTrackParameters, BoundMatrix, double>
using result_type = CombinatorialKalmanFilterResult<source_link_t>

Broadcast the result_type.

using TipState = CombinatorialKalmanFilterTipState

Public Functions

size_t addHoleState(const TrackStatePropMask &stateMask, const BoundState &boundState, result_type &result, size_t prevTip = SIZE_MAX, LoggerWrapper logger = getDummyLogger()) 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, LoggerWrapper logger = getDummyLogger()) 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

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<GeometryIdentifier, 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 measurement calibrator.

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.