ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::TrackStateCreator< source_link_iterator_t, track_container_t > Struct Template Reference

Create track states for selected measurements associated to a surface. More...

#include <Acts/TrackFinding/TrackStateCreator.hpp>

Collaboration diagram for Acts::TrackStateCreator< source_link_iterator_t, track_container_t >:
[legend]

Public Types

using BoundState = std::tuple<BoundTrackParameters, BoundMatrix, double>
 Type alias for bound state tuple containing parameters, jacobian and path length.
using Calibrator
 Type alias for calibrator delegate to process measurements from source links.
using candidate_container_t
 Type alias for container of candidate track state proxies.
using MeasurementSelector
 Type alias for delegate to select measurements from track state candidates.
using SourceLinkAccessor
 Type alias for delegate to access source link ranges for a surface.
using TrackProxy = typename track_container_t::TrackProxy
 Type alias for track proxy from track container.
using TrackStateContainerBackend
 Type alias for track state container backend from track container.
using TrackStateProxy = typename track_container_t::TrackStateProxy
 Type alias for track state proxy from track container.
using TrackStatesResult
 Type alias for result of track states creation operation.

Public Member Functions

Result< CkfTypes::BranchVector< TrackIndexType > > createSourceLinkTrackStates (const GeometryContext &gctx, const CalibrationContext &calibrationContext, const Surface &surface, const BoundState &boundState, source_link_iterator_t slBegin, source_link_iterator_t slEnd, TrackIndexType prevTip, std::vector< TrackStateProxy > &trackStateCandidates, TrackStateContainerBackend &trajectory, const Logger &logger) const
 Create track states for selected measurements given by the source links.
Result< CkfTypes::BranchVector< TrackIndexType > > createTrackStates (const GeometryContext &gctx, const CalibrationContext &calibrationContext, const Surface &surface, const BoundState &boundState, TrackIndexType prevTip, std::vector< TrackStateProxy > &trackStateCandidates, TrackStateContainerBackend &trajectory, const Logger &logger) const
 extend the trajectory onto the given surface.
Result< CkfTypes::BranchVector< TrackIndexType > > processSelectedTrackStates (typename std::vector< TrackStateProxy >::const_iterator begin, typename std::vector< TrackStateProxy >::const_iterator end, TrackStateContainerBackend &trackStates, bool isOutlier, const Logger &logger) const
 Create track states for the given trajectory from candidate track states.

Static Public Member Functions

static Result< std::pair< typename std::vector< TrackStateProxy >::iterator, typename std::vector< TrackStateProxy >::iterator > > voidMeasurementSelector (typename std::vector< TrackStateProxy > &candidates, bool &, const Logger &)
 Default measurement selector which will return all measurements.

Public Attributes

Calibrator calibrator
 The Calibrator is a dedicated calibration algorithm that allows to calibrate measurements using track information, this could be e.g.
MeasurementSelector measurementSelector
 Delegate for measurement selection on surfaces.
SourceLinkAccessor sourceLinkAccessor
 The source link accessor will return an source link range for a surface which link to the associated measurements.

Detailed Description

template<typename source_link_iterator_t, typename track_container_t>
struct Acts::TrackStateCreator< source_link_iterator_t, track_container_t >

Create track states for selected measurements associated to a surface.

  • First get a source link range covering relevant measurements associated to the given surface. This task is delegated to a SourceLinkAccessor.
  • Then create temporary track states for all measurements defined by a source link range, calibrate the measurements and fill the the calibrated data of these track states using a dedicated calibrator
  • The measurement selection is delegated to a dedicated measurement selector.
  • Finally add branches to the given trajectory for the selected, temporary track states. The track states of these branches still lack the filtered data which is to be filled by the next stage e.g. the CombinatorialKalmanFilter. All track states, the temporary track states and track states for selected measurements, are created in the given trajectory. The resulting container may become big. Thus, it is advisable to copy selected tracks and their track states to a separate container after each track finding step.

Member Typedef Documentation

◆ BoundState

template<typename source_link_iterator_t, typename track_container_t>
using Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::BoundState = std::tuple<BoundTrackParameters, BoundMatrix, double>

Type alias for bound state tuple containing parameters, jacobian and path length.

◆ Calibrator

template<typename source_link_iterator_t, typename track_container_t>
using Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::Calibrator
Initial value:
Delegate< void(const GeometryContext &, const CalibrationContext &, const SourceLink &, TrackStateProxy)> Calibrator
Type alias for measurement calibrator delegate.
Definition KalmanFitter.hpp:54

Type alias for calibrator delegate to process measurements from source links.

◆ candidate_container_t

template<typename source_link_iterator_t, typename track_container_t>
using Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::candidate_container_t
Initial value:
typename std::vector<typename track_container_t::TrackStateProxy>

Type alias for container of candidate track state proxies.

◆ MeasurementSelector

template<typename source_link_iterator_t, typename track_container_t>
using Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::MeasurementSelector
Initial value:
Delegate<Result<std::pair<typename candidate_container_t::iterator,
typename candidate_container_t::iterator>>(
candidate_container_t& trackStates, bool&, const Logger&)>
Definition Delegate.hpp:29
class for printing debug output
Definition Logger.hpp:691
Class which encapsulates either a valid result, or an error.
Definition Result.hpp:26
typename std::vector< typename track_container_t::TrackStateProxy > candidate_container_t
Type alias for container of candidate track state proxies.
Definition TrackStateCreator.hpp:51

Type alias for delegate to select measurements from track state candidates.

◆ SourceLinkAccessor

template<typename source_link_iterator_t, typename track_container_t>
using Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::SourceLinkAccessor
Initial value:
const Surface&)>
Abstract Base Class for tracking surfaces.
Definition Surface.hpp:53

Type alias for delegate to access source link ranges for a surface.

◆ TrackProxy

template<typename source_link_iterator_t, typename track_container_t>
using Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::TrackProxy = typename track_container_t::TrackProxy

Type alias for track proxy from track container.

◆ TrackStateContainerBackend

template<typename source_link_iterator_t, typename track_container_t>
using Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::TrackStateContainerBackend
Initial value:
typename track_container_t::TrackStateContainerBackend

Type alias for track state container backend from track container.

◆ TrackStateProxy

template<typename source_link_iterator_t, typename track_container_t>
using Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::TrackStateProxy = typename track_container_t::TrackStateProxy

Type alias for track state proxy from track container.

◆ TrackStatesResult

template<typename source_link_iterator_t, typename track_container_t>
using Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::TrackStatesResult
Initial value:

Type alias for result of track states creation operation.

Member Function Documentation

◆ createSourceLinkTrackStates()

template<typename source_link_iterator_t, typename track_container_t>
Result< CkfTypes::BranchVector< TrackIndexType > > Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::createSourceLinkTrackStates ( const GeometryContext & gctx,
const CalibrationContext & calibrationContext,
const Surface & surface,
const BoundState & boundState,
source_link_iterator_t slBegin,
source_link_iterator_t slEnd,
TrackIndexType prevTip,
std::vector< TrackStateProxy > & trackStateCandidates,
TrackStateContainerBackend & trajectory,
const Logger & logger ) const

Create track states for selected measurements given by the source links.

Parameters
gctxThe current geometry context
calibrationContextpointer to the current calibration context
surfacethe surface the sourceLinks are associated to
boundStateBound state from the propagation on this surface
slBeginBegin iterator for sourceLinks
slEndEnd iterator for sourceLinks
prevTipIndex pointing at previous trajectory state (i.e. tip)
trackStateCandidatesa temporary buffer which can be used to to keep track of newly created temporary track states.
trajectorythe trajectory to which new track states for selected measurements will be added
loggerthe logger for messages.
Returns
Result containing vector of track state indices or error

◆ createTrackStates()

template<typename source_link_iterator_t, typename track_container_t>
Result< CkfTypes::BranchVector< TrackIndexType > > Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::createTrackStates ( const GeometryContext & gctx,
const CalibrationContext & calibrationContext,
const Surface & surface,
const BoundState & boundState,
TrackIndexType prevTip,
std::vector< TrackStateProxy > & trackStateCandidates,
TrackStateContainerBackend & trajectory,
const Logger & logger ) const

extend the trajectory onto the given surface.

Parameters
gctxThe geometry context to be used for this task
calibrationContextThe calibration context used to fill the calibrated data
surfaceThe surface onto which the trajectory is extended
boundStatethe predicted bound state on the given surface
prevTipthe tip of the trajectory which is to be extended
trackStateCandidatesa temporary buffer which can be used to to keep track of newly created temporary track states.
trajectorythe trajectory to be extended.
loggera logger for messages.
Returns
a list of indices of newly created track states which extend the trajectory onto the given surface and match the bound state, or an error.

Extend or branch the trajectory onto the given surface. This may create new track states using measurements which match the predicted bound state. This may create multiple branches. The new track states still miss the "filtered" data.

◆ processSelectedTrackStates()

template<typename source_link_iterator_t, typename track_container_t>
Result< CkfTypes::BranchVector< TrackIndexType > > Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::processSelectedTrackStates ( typename std::vector< TrackStateProxy >::const_iterator begin,
typename std::vector< TrackStateProxy >::const_iterator end,
TrackStateContainerBackend & trackStates,
bool isOutlier,
const Logger & logger ) const

Create track states for the given trajectory from candidate track states.

Parameters
beginbegin iterator of the list of candidate track states
endend iterator of the list of candidate track states
trackStatesthe trajectory to which the new track states are added
isOutliertrue if the candidate(s) is(are) an outlier(s).
loggerthe logger for messages
Returns
Result containing vector of track state indices or error

◆ voidMeasurementSelector()

template<typename source_link_iterator_t, typename track_container_t>
Result< std::pair< typename std::vector< TrackStateProxy >::iterator, typename std::vector< TrackStateProxy >::iterator > > Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::voidMeasurementSelector ( typename std::vector< TrackStateProxy > & candidates,
bool & ,
const Logger &  )
static

Default measurement selector which will return all measurements.

Parameters
candidatesMeasurement track state candidates
Returns
Iterator pair representing the range of all candidates

Member Data Documentation

◆ calibrator

template<typename source_link_iterator_t, typename track_container_t>
Calibrator Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::calibrator
Initial value:
detail::voidFitterCalibrator<TrackStateContainerBackend>>{}}
Definition Delegate.hpp:23

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.

◆ measurementSelector

template<typename source_link_iterator_t, typename track_container_t>
MeasurementSelector Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::measurementSelector
Initial value:

Delegate for measurement selection on surfaces.

◆ sourceLinkAccessor

template<typename source_link_iterator_t, typename track_container_t>
SourceLinkAccessor Acts::TrackStateCreator< source_link_iterator_t, track_container_t >::sourceLinkAccessor

The source link accessor will return an source link range for a surface which link to the associated measurements.