Class Acts::MultiTrajectory¶
-
template<typename derived_t>
class MultiTrajectory¶ Store a trajectory of track states with multiple components.
This container supports both simple, sequential trajectories as well as combinatorial or multi-component trajectories. Each point can store a parent point such that the trajectory forms a directed, acyclic graph of sub-trajectories. From a set of endpoints, all possible sub-components can be easily identified. Some functionality is provided to simplify iterating over specific sub-components.
Public Types
-
using ConstTrackStateProxy = detail_lt::TrackStateProxy<Derived, MeasurementSizeMax, true>¶
-
using IndexType = typename TrackStateProxy::IndexType¶
-
using TrackStateProxy = detail_lt::TrackStateProxy<Derived, MeasurementSizeMax, false>¶
Public Functions
-
template<typename T>
inline constexpr void addColumn(const std::string &key)¶ Add a column to the
MultiTrajectory
.Note
This takes a string argument rather than a hashed string to maintain compatibility with backends.
- Template Parameters
T – Type of the column values to add
-
inline constexpr IndexType addTrackState(TrackStatePropMask mask = TrackStatePropMask::All, IndexType iprevious = kInvalid)¶
Add a track state without providing explicit information.
Which components of the track state are initialized/allocated can be controlled via
mask
- Parameters
mask – The bitmask that instructs which components to allocate and which to leave invalid
iprevious – index of the previous state, kInvalid if first
- Returns
Index of the newly added track state
-
template<typename F>
void applyBackwards(IndexType iendpoint, F &&callable)¶ Apply a function to all previous states starting at a given endpoint.
Warning
If the trajectory contains multiple components with common points, this can have an impact on the other components.
- Parameters
iendpoint – index of the last state
callable – modifying functor to be called with each point
-
inline constexpr void clear()¶
Clear the
MultiTrajectory
. Leaves the underlying storage untouched.
-
inline ConstTrackStateProxy getTrackState(IndexType istate) const¶
Access a read-only point on the trajectory by index.
- Parameters
istate – The index to access
- Returns
Read only proxy to the stored track state
-
inline TrackStateProxy getTrackState(IndexType istate)¶
Access a writable point on the trajectory by index.
- Parameters
istate – The index to access
- Returns
Read-write proxy to the stored track state
-
inline constexpr bool hasColumn(HashedString key) const¶
Check if a column with a key
key
exists.- Parameters
key – Key to check for a column with
- Returns
True if the column exists, false if not.
Public Static Attributes
-
static constexpr IndexType kInvalid = TrackStateProxy::kInvalid¶
-
static constexpr unsigned int MeasurementSizeMax = MultiTrajectoryTraits::MeasurementSizeMax¶
Friends
- friend class detail_lt::TrackStateProxy< Derived, MeasurementSizeMax, false >
- friend class detail_lt::TrackStateProxy< Derived, MeasurementSizeMax, true >
-
using ConstTrackStateProxy = detail_lt::TrackStateProxy<Derived, MeasurementSizeMax, true>¶