Class Acts::CombinatorialKalmanFilter::Actor

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.

tparam source_link_accessor_t

The type of source link accessor

tparam parameters_t

The type of parameters used for “local” paremeters.

tparam calibrator_t

The type of source link calibrator.

tparam 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

inline size_t addNonSourcelinkState(const TrackStatePropMask &stateMask, const BoundState &boundState, result_type &result, bool isSensitive, size_t prevTip = SIZE_MAX, LoggerWrapper logger = getDummyLogger()) const

CombinatorialKalmanFilter actor operation : add hole or material track 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

  • isSensitive – The surface is sensitive or passive

  • prevTip – The index of the previous state

  • logger – The logger wrapper

Returns

The tip of added state

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

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)

  • prevTip – Previous tip index

  • prevTipState – Previous tip state

  • 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

Returns

The tip of added state and its state

template<typename propagator_state_t, typename stepper_t>
inline 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>
inline 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>
inline 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>
inline 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>
inline 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.