Template Class CombinatorialKalmanFilter::Actor

Nested Relationships

This class is a nested type of Template Class CombinatorialKalmanFilter.

Class Documentation

template<typename source_link_accessor_t, typename parameters_t, typename calibrator_t, typename measurement_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.

  • The measurement selector is called during the filtering by the Actor.

Template Parameters
  • source_link_accessor_t: The type of source link accessor

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

  • calibrator_t: The type of source link calibrator.

  • measurement_selector_t: The type of the measurement selector.

The CombinatorialKalmanFilter Actor 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<SourceLink>

Broadcast the result_type.

using SourceLink = typename source_link_accessor_t::Value
using SourceLinkContainer = typename source_link_accessor_t::Container
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

  • logger: The logger wrapper

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

  • logger: The logger wrapper

Result<std::pair<size_t, TipState>> addSourcelinkState(const TrackStatePropMask &stateMask, const BoundState &boundState, const SourceLink &sourcelink, const BoundVariantMeasurement<SourceLink> &measurement, bool isOutlier, result_type &result, const GeometryContext &geoContext, const size_t &prevTip, const TipState &prevTipState, size_t neighborTip = SIZE_MAX, size_t sharedTip = SIZE_MAX, LoggerWrapper logger = getDummyLogger()) const

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

  • measurement: The calibrated measurement 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

  • logger: The logger wrapper

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: Type of the 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: Type of the Propagagor state

  • stepper_t: Type of the stepper

Parameters
  • state: is the mutable propagator state object

  • stepper: is 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: Type of Propagagor state

  • stepper_t: Type of the stepper

Parameters
  • state: is the mutable propagator state object

  • stepper: is the stepper in use

  • result: is the mutable result state object

Public Members

bool energyLoss = true

Whether to consider energy loss.

branch_stopper_t m_branchStopper

The branch propagation stopper.

calibrator_t m_calibrator

The source link calibrator.

measurement_selector_t m_measurementSelector

The measurement selector.

smoother_t m_smoother

The CombinatorialKalmanFilter smoother.

source_link_accessor_t m_sourcelinkAccessor

The source link accesor.

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.