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/sPHENIX/Core/include/Acts/EventData/MultiTrajectory.hpp>

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

Public Types

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

Public Member Functions

 MultiTrajectory ()=default
 Create an empty trajectory.
 
size_t addTrackState (TrackStatePropMask 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)
 

Private Attributes

std::vector< detail_lt::IndexDatam_index
 index to map track states to the corresponding
 
detail_lt::Types< eBoundSize >
::StorageCoefficients 
m_params
 
detail_lt::Types< eBoundSize >
::StorageCovariance 
m_cov
 
detail_lt::Types
< MeasurementSizeMax >
::StorageCoefficients 
m_meas
 
detail_lt::Types
< MeasurementSizeMax >
::StorageCovariance 
m_measCov
 
detail_lt::Types< eBoundSize >
::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, MeasurementSizeMax, true >
 
class detail_lt::TrackStateProxy< SourceLink, 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 601 of file MultiTrajectory.hpp.

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

Member Typedef Documentation

template<typename source_link_t>
using Acts::MultiTrajectory< source_link_t >::ConstTrackStateProxy = detail_lt::TrackStateProxy<SourceLink, MeasurementSizeMax, true>

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>
using Acts::MultiTrajectory< source_link_t >::ProjectorBitset = std::bitset<eBoundSize * MeasurementSizeMax>

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>
using Acts::MultiTrajectory< source_link_t >::SourceLink = source_link_t

Definition at line 606 of file MultiTrajectory.hpp.

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

template<typename source_link_t>
using Acts::MultiTrajectory< source_link_t >::TrackStateProxy = detail_lt::TrackStateProxy<SourceLink, MeasurementSizeMax, false>

Definition at line 610 of file MultiTrajectory.hpp.

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

Member Enumeration Documentation

template<typename source_link_t>
anonymous enum
Enumerator:
MeasurementSizeMax 

Definition at line 603 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 603 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 SL >
size_t MultiTrajectory< SL >::addTrackState ( TrackStatePropMask  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 162 of file MultiTrajectory.ipp.

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

References ACTS_CHECK_BIT, 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, and p.

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

+ Here is the caller graph for this function:

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 250 of file MultiTrajectory.ipp.

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

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

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and Acts::GainMatrixSmoother::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 629 of file MultiTrajectory.hpp.

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

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::detail::globalTrackParametersCovariance(), and Acts::GainMatrixSmoother::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 636 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 636 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 223 of file MultiTrajectory.ipp.

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

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

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::EventDataView3D::drawMultiTrajectory(), Acts::detail::globalTrackParametersCovariance(), ActsExamples::SimMultiTrajectory::identifyMajorityParticle(), and Acts::MultiTrajectoryHelpers::trajectoryState().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

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

Definition at line 674 of file MultiTrajectory.hpp.

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

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

Definition at line 672 of file MultiTrajectory.hpp.

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

Member Data Documentation

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

Definition at line 659 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 659 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 657 of file MultiTrajectory.hpp.

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

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

Definition at line 662 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 662 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 660 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 660 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 661 of file MultiTrajectory.hpp.

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

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

Definition at line 658 of file MultiTrajectory.hpp.

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

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

Definition at line 664 of file MultiTrajectory.hpp.

View newest version in sPHENIX GitHub at line 664 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 670 of file MultiTrajectory.hpp.

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

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

Definition at line 663 of file MultiTrajectory.hpp.

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


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