Class Acts::KalmanFitter::Actor

template<typename parameters_t>
class Actor

Propagator Actor plugin for the KalmanFilter.

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

Template Parameters
  • parameters_t – The type of parameters used for “local” parameters.

  • calibrator_t – The type of calibrator

  • outlier_finder_t – Type of the outlier finder class

Public Types

using result_type = KalmanFitterResult<traj_t>

Broadcast the result_type.

Public Functions

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

Kalman actor operation : update.

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

inline const Logger &logger() const

Logger helper.

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

Kalman 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 Logger&) const

Kalman 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>
inline Result<void> reverse(propagator_state_t &state, stepper_t &stepper, result_type &result) const

Kalman actor operation : reverse direction.

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 objecte

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

Kalman actor operation : update in reversed direction.

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

Public Members

const Logger *actorLogger = {nullptr}

The logger instance.

bool energyLoss = true

Whether to consider energy loss.

KalmanFitterExtensions<traj_t> extensions
FreeToBoundCorrection freeToBoundCorrection

Whether to include non-linear correction during global to local transformation.

const std::map<GeometryIdentifier, SourceLink> *inputMeasurements = nullptr

Allows retrieving measurements for a surface.

bool multipleScattering = true

Whether to consider multiple scattering.

std::shared_ptr<MultiTrajectory<traj_t>> outputStates

Input MultiTrajectory.

bool reversedFiltering = false

Whether run reversed filtering.

double reversedFilteringCovarianceScaling = 1.0
SurfaceReached targetReached

The Surface beeing.

const Surface *targetSurface = nullptr

The target surface.