Class Acts::CombinatorialKalmanFilter::Actor¶
-
template<typename source_link_accessor_t, typename parameters_t>
class Acts::CombinatorialKalmanFilter::Actor¶ Propagator Actor plugin for the CombinatorialKalmanFilter.
The CombinatorialKalmanFilter Actor does not rely on the measurements to be sorted along the track.
- tparam source_link_accessor_t
The type of source link accessor
- tparam parameters_t
The type of parameters used for “local” paremeters.
Public Types
-
using BoundState = std::tuple<parameters_t, BoundMatrix, double>¶
-
using CurvilinearState = std::tuple<CurvilinearTrackParameters, BoundMatrix, double>¶
-
using result_type = CombinatorialKalmanFilterResult¶
Broadcast the result_type.
-
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 void createSourceLinkTrackStates(const Acts::GeometryContext &gctx, const Surface *surface, result_type &result, const BoundState &boundState, size_t prevTip) const¶
Create and fill track states for all source links.
- Parameters
gctx – The current geometry context
surface – The surface currently being processed
result – Reference to the result struct of the actor
boundState – Bound state from the propagation on this surface
prevTip – Index pointing at previous trajectory state (i.e. tip)
-
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
-
inline Result<void> processSelectedTrackStates(const Acts::GeometryContext &gctx, std::vector<MultiTrajectory::TrackStateProxy>::const_iterator begin, std::vector<MultiTrajectory::TrackStateProxy>::const_iterator end, result_type &result, bool isOutlier, const TipState &prevTipState, size_t &nBranchesOnSurface, LoggerWrapper logger) const¶
Handle the list of selected track states.
- Parameters
gctx – The current geometry context
begin – The start iterator for selected track states
end – The end iterator for selected track states
result – Reference to the actor result struct
isOutlier – If this track state is a single outlier one
prevTipState – Tip state prior to this surface
nBranchesOnSurface – [inout] Number of branches on surface, will be updated
logger – A logging instance
-
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.
-
CombinatorialKalmanFilterExtensions m_extensions¶
-
source_link_accessor_t m_sourcelinkAccessor¶
The source link accesor.
-
bool multipleScattering = true¶
Whether to consider multiple scattering.
-
bool smoothing = true¶
Whether to run smoothing to get fitted parameter.
-
SurfaceReached targetReached¶
The Surface being targeted.