ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::MultiTrajectory< source_link_t > Class Template Reference

#include <acts/blob/master/Core/include/Acts/EventData/MultiTrajectory.hpp>

+ Collaboration diagram for Acts::MultiTrajectory< source_link_t >:

Public Types

enum  { ParametersSize = eBoundParametersSize, MeasurementSizeMax = eBoundParametersSize }
 
using SourceLink = source_link_t
 
using ConstTrackStateProxy = detail_lt::TrackStateProxy< SourceLink, ParametersSize, MeasurementSizeMax, true >
 
using TrackStateProxy = detail_lt::TrackStateProxy< SourceLink, ParametersSize, MeasurementSizeMax, false >
 
using ProjectorBitset = std::bitset< ParametersSize *MeasurementSizeMax >
 

Public Member Functions

 MultiTrajectory ()=default
 Create an empty trajectory.
 
template<typename parameters_t >
size_t addTrackState (const TrackState< SourceLink, parameters_t > &ts, size_t iprevious=SIZE_MAX)
 
size_t addTrackState (const TrackStatePropMask::Type &mask=TrackStatePropMask::All, size_t iprevious=SIZE_MAX)
 
ConstTrackStateProxy getTrackState (size_t istate) const
 
TrackStateProxy getTrackState (size_t istate)
 
template<typename F >
void visitBackwards (size_t iendpoint, F &&callable) const
 
template<typename F >
void applyBackwards (size_t iendpoint, F &&callable)
 
template<typename parameters_t >
size_t addTrackState (const TrackState< SL, parameters_t > &ts, size_t iprevious)
 

Private Attributes

std::vector< detail_lt::IndexDatam_index
 index to map track states to the corresponding
 
detail_lt::Types
< ParametersSize >
::StorageCoefficients 
m_params
 
detail_lt::Types
< ParametersSize >
::StorageCovariance 
m_cov
 
detail_lt::Types
< MeasurementSizeMax >
::StorageCoefficients 
m_meas
 
detail_lt::Types
< MeasurementSizeMax >
::StorageCovariance 
m_measCov
 
detail_lt::Types
< ParametersSize >
::StorageCovariance 
m_jac
 
std::vector< SourceLinkm_sourceLinks
 
std::vector< ProjectorBitsetm_projectors
 
std::vector< std::shared_ptr
< const Surface > > 
m_referenceSurfaces
 

Friends

class detail_lt::TrackStateProxy< SourceLink, ParametersSize, MeasurementSizeMax, true >
 
class detail_lt::TrackStateProxy< SourceLink, ParametersSize, MeasurementSizeMax, false >
 

Detailed Description

template<typename source_link_t>
class Acts::MultiTrajectory< source_link_t >

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.

Template Parameters
source_link_tType to link back to an original measurement

Definition at line 537 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 537 of file MultiTrajectory.hpp

Member Typedef Documentation

Definition at line 546 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 546 of file MultiTrajectory.hpp

template<typename source_link_t>
using Acts::MultiTrajectory< source_link_t >::ProjectorBitset = std::bitset<ParametersSize * MeasurementSizeMax>

Definition at line 550 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 550 of file MultiTrajectory.hpp

template<typename source_link_t>
using Acts::MultiTrajectory< source_link_t >::SourceLink = source_link_t

Definition at line 543 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 543 of file MultiTrajectory.hpp

Definition at line 548 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 548 of file MultiTrajectory.hpp

Member Enumeration Documentation

template<typename source_link_t>
anonymous enum
Enumerator:
ParametersSize 
MeasurementSizeMax 

Definition at line 539 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 539 of file MultiTrajectory.hpp

Constructor & Destructor Documentation

template<typename source_link_t>
Acts::MultiTrajectory< source_link_t >::MultiTrajectory ( )
default

Create an empty trajectory.

Member Function Documentation

template<typename source_link_t>
template<typename parameters_t >
size_t Acts::MultiTrajectory< source_link_t >::addTrackState ( const TrackState< SL, parameters_t > &  ts,
size_t  iprevious 
)
inline

Definition at line 165 of file MultiTrajectory.ipp.

View newest version in sPHENIX GitHub at line 165 of file MultiTrajectory.ipp

References Acts::TrackState< source_link_t, parameters_t >::calibrated, Acts::TrackState< source_link_t, parameters_t >::chi2, Acts::detail_lt::TrackStateProxy< source_link_t, N, M, ReadOnly >::chi2(), Acts::TrackState< source_link_t, parameters_t >::filtered, Acts::Surface::getSharedPtr(), Acts::detail_lt::IndexData::ifiltered, Acts::detail_lt::IndexData::ijacobian, Acts::detail_lt::IndexData::ipredicted, Acts::detail_lt::IndexData::iprevious, Acts::detail_lt::IndexData::irefsurface, Acts::detail_lt::IndexData::ismoothed, Acts::detail_lt::IndexData::iuncalibrated, Acts::TrackState< source_link_t, parameters_t >::jacobian, m, Acts::TrackState< source_link_t, parameters_t >::measurement, Acts::TrackState< source_link_t, parameters_t >::parameter, Acts::TrackState< source_link_t, parameters_t >::pathLength, Acts::detail_lt::TrackStateProxy< source_link_t, N, M, ReadOnly >::pathLength(), Acts::TrackState< source_link_t, parameters_t >::predicted, Acts::TrackState< source_link_t, parameters_t >::referenceSurface(), Acts::detail_lt::TrackStateProxy< source_link_t, N, M, ReadOnly >::resetCalibrated(), Acts::TrackState< source_link_t, parameters_t >::smoothed, Acts::TrackState< source_link_t, parameters_t >::type(), Acts::detail_lt::TrackStateProxy< source_link_t, N, M, ReadOnly >::typeFlags(), and Acts::TrackState< source_link_t, parameters_t >::uncalibrated.

+ Here is the call graph for this function:

template<typename source_link_t>
template<typename parameters_t >
size_t Acts::MultiTrajectory< source_link_t >::addTrackState ( const TrackState< SourceLink, parameters_t > &  ts,
size_t  iprevious = SIZE_MAX 
)

Add a track state using information from a separate track state object.

Template Parameters
parameters_tThe parameter type used for the trackstate
Parameters
trackParametersat the local point
ipreviousindex of the previous state, SIZE_MAX if first
Note
The parameter type from parameters_t is not currently stored in MultiTrajectory.
Returns
Index of the newly added track state

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

template<typename SL >
size_t MultiTrajectory< SL >::addTrackState ( const TrackStatePropMask::Type mask = TrackStatePropMask::All,
size_t  iprevious = SIZE_MAX 
)
inline

Add a track state without providing explicit information. Which components of the track state are initialized/allocated can be controlled via mask

Parameters
maskThe bitmask that instructs which components to allocate and which to leave invalid
ipreviousindex of the previous state, SIZE_MAX if first
Returns
Index of the newly added track state

Definition at line 231 of file MultiTrajectory.ipp.

View newest version in sPHENIX GitHub at line 231 of file MultiTrajectory.ipp

References ACTS_CHECK_BIT, Acts::TrackStatePropMask::Calibrated, Acts::TrackStatePropMask::Filtered, Acts::detail_lt::IndexData::icalibrated, Acts::detail_lt::IndexData::icalibratedsourcelink, Acts::detail_lt::IndexData::ifiltered, Acts::detail_lt::IndexData::ijacobian, Acts::detail_lt::IndexData::ipredicted, Acts::detail_lt::IndexData::iprevious, Acts::detail_lt::IndexData::iprojector, Acts::detail_lt::IndexData::irefsurface, Acts::detail_lt::IndexData::ismoothed, Acts::detail_lt::IndexData::iuncalibrated, Acts::TrackStatePropMask::Predicted, Acts::TrackStatePropMask::Smoothed, and Acts::TrackStatePropMask::Uncalibrated.

template<typename SL >
template<typename F >
void MultiTrajectory< SL >::applyBackwards ( size_t  iendpoint,
F &&  callable 
)

Apply a function to all previous states starting at a given endpoint.

Parameters
iendpointindex of the last state
callablemodifying functor to be called with each point
Warning
If the trajectory contains multiple components with common points, this can have an impact on the other components.

Definition at line 319 of file MultiTrajectory.ipp.

View newest version in sPHENIX GitHub at line 319 of file MultiTrajectory.ipp

References Acts::detail_lt::IndexData::kInvalid.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and Acts::GainMatrixSmoother< parameters_t >::operator()().

+ Here is the caller graph for this function:

template<typename source_link_t>
ConstTrackStateProxy Acts::MultiTrajectory< source_link_t >::getTrackState ( size_t  istate) const
inline

Access a read-only point on the trajectory by index.

Parameters
istateThe index to access
Returns
Read only proxy to the stored track state

Definition at line 580 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 580 of file MultiTrajectory.hpp

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and Acts::GainMatrixSmoother< parameters_t >::operator()().

+ Here is the caller graph for this function:

template<typename source_link_t>
TrackStateProxy Acts::MultiTrajectory< source_link_t >::getTrackState ( size_t  istate)
inline

Access a writable point on the trajectory by index.

Parameters
istateThe index to access
Returns
Read-write proxy to the stored track state

Definition at line 587 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 587 of file MultiTrajectory.hpp

template<typename SL >
template<typename F >
void MultiTrajectory< SL >::visitBackwards ( size_t  iendpoint,
F &&  callable 
) const

Visit all previous states starting at a given endpoint.

Parameters
iendpointindex of the last state
callablenon-modifying functor to be called with each point

Definition at line 292 of file MultiTrajectory.ipp.

View newest version in sPHENIX GitHub at line 292 of file MultiTrajectory.ipp

References Acts::detail_lt::IndexData::kInvalid.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

template<typename source_link_t>
friend class detail_lt::TrackStateProxy< SourceLink, ParametersSize,MeasurementSizeMax, false >
friend

Definition at line 626 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 626 of file MultiTrajectory.hpp

template<typename source_link_t>
friend class detail_lt::TrackStateProxy< SourceLink, ParametersSize,MeasurementSizeMax, true >
friend

Definition at line 624 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 624 of file MultiTrajectory.hpp

Member Data Documentation

template<typename source_link_t>
detail_lt::Types<ParametersSize>::StorageCovariance Acts::MultiTrajectory< source_link_t >::m_cov
private

Definition at line 610 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 610 of file MultiTrajectory.hpp

template<typename source_link_t>
std::vector<detail_lt::IndexData> Acts::MultiTrajectory< source_link_t >::m_index
private

index to map track states to the corresponding

Definition at line 608 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 608 of file MultiTrajectory.hpp

template<typename source_link_t>
detail_lt::Types<ParametersSize>::StorageCovariance Acts::MultiTrajectory< source_link_t >::m_jac
private

Definition at line 613 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 613 of file MultiTrajectory.hpp

template<typename source_link_t>
detail_lt::Types<MeasurementSizeMax>::StorageCoefficients Acts::MultiTrajectory< source_link_t >::m_meas
private

Definition at line 611 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 611 of file MultiTrajectory.hpp

template<typename source_link_t>
detail_lt::Types<MeasurementSizeMax>::StorageCovariance Acts::MultiTrajectory< source_link_t >::m_measCov
private

Definition at line 612 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 612 of file MultiTrajectory.hpp

template<typename source_link_t>
detail_lt::Types<ParametersSize>::StorageCoefficients Acts::MultiTrajectory< source_link_t >::m_params
private

Definition at line 609 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 609 of file MultiTrajectory.hpp

template<typename source_link_t>
std::vector<ProjectorBitset> Acts::MultiTrajectory< source_link_t >::m_projectors
private

Definition at line 615 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 615 of file MultiTrajectory.hpp

template<typename source_link_t>
std::vector<std::shared_ptr<const Surface> > Acts::MultiTrajectory< source_link_t >::m_referenceSurfaces
private

Definition at line 621 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 621 of file MultiTrajectory.hpp

template<typename source_link_t>
std::vector<SourceLink> Acts::MultiTrajectory< source_link_t >::m_sourceLinks
private

Definition at line 614 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 614 of file MultiTrajectory.hpp


The documentation for this class was generated from the following files: