ATLAS Offline Software
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
ActsTrk::GenUncalibSourceLinkAccessor< T_MeasurementRangeList > Class Template Reference

Accessor for the above source link container. More...

#include <AtlasUncalibSourceLinkAccessor.h>

Collaboration diagram for ActsTrk::GenUncalibSourceLinkAccessor< T_MeasurementRangeList >:

Classes

class  BaseIterator
 

Public Types

using MeasurementContainer = typename T_MeasurementRangeList::MeasurementContainer
 
using Iterator = Acts::SourceLinkAdapterIterator< BaseIterator >
 

Public Member Functions

 GenUncalibSourceLinkAccessor (const std::vector< Acts::GeometryIdentifier > &ordered_geoIds, const T_MeasurementRangeList &measurement_ranges)
 
std::pair< Iterator, Iteratorrange (const Acts::Surface &surface) const
 
const MeasurementContainercontainer (unsigned index) const
 
const std::vector< MeasurementContainer > & measurementContainerList () const
 

Private Attributes

const std::vector< Acts::GeometryIdentifier > * m_orderedGeoIds
 
const T_MeasurementRangeList * m_measurementRanges
 

Detailed Description

template<typename T_MeasurementRangeList>
class ActsTrk::GenUncalibSourceLinkAccessor< T_MeasurementRangeList >

Accessor for the above source link container.

It wraps up a few lookup methods to be used in the Combinatorial Kalman Filter

Definition at line 91 of file AtlasUncalibSourceLinkAccessor.h.

Member Typedef Documentation

◆ Iterator

template<typename T_MeasurementRangeList >
using ActsTrk::GenUncalibSourceLinkAccessor< T_MeasurementRangeList >::Iterator = Acts::SourceLinkAdapterIterator<BaseIterator>

Definition at line 143 of file AtlasUncalibSourceLinkAccessor.h.

◆ MeasurementContainer

template<typename T_MeasurementRangeList >
using ActsTrk::GenUncalibSourceLinkAccessor< T_MeasurementRangeList >::MeasurementContainer = typename T_MeasurementRangeList::MeasurementContainer

Definition at line 98 of file AtlasUncalibSourceLinkAccessor.h.

Constructor & Destructor Documentation

◆ GenUncalibSourceLinkAccessor()

template<typename T_MeasurementRangeList >
ActsTrk::GenUncalibSourceLinkAccessor< T_MeasurementRangeList >::GenUncalibSourceLinkAccessor ( const std::vector< Acts::GeometryIdentifier > &  ordered_geoIds,
const T_MeasurementRangeList &  measurement_ranges 
)
inline

Definition at line 144 of file AtlasUncalibSourceLinkAccessor.h.

146  : m_orderedGeoIds(&ordered_geoIds),
147  m_measurementRanges(&measurement_ranges)
148  {
149  }

Member Function Documentation

◆ container()

template<typename T_MeasurementRangeList >
const MeasurementContainer& ActsTrk::GenUncalibSourceLinkAccessor< T_MeasurementRangeList >::container ( unsigned  index) const
inline

Definition at line 169 of file AtlasUncalibSourceLinkAccessor.h.

169 { return m_measurementRanges->container(index); }

◆ measurementContainerList()

template<typename T_MeasurementRangeList >
const std::vector< MeasurementContainer >& ActsTrk::GenUncalibSourceLinkAccessor< T_MeasurementRangeList >::measurementContainerList ( ) const
inline

Definition at line 170 of file AtlasUncalibSourceLinkAccessor.h.

170 { return m_measurementRanges->measurementContainerList(); }

◆ range()

template<typename T_MeasurementRangeList >
std::pair<Iterator, Iterator> ActsTrk::GenUncalibSourceLinkAccessor< T_MeasurementRangeList >::range ( const Acts::Surface &  surface) const
inline

Definition at line 151 of file AtlasUncalibSourceLinkAccessor.h.

152  {
153  std::vector<Acts::GeometryIdentifier>::const_iterator
154  geo_iter = std::lower_bound(m_orderedGeoIds->begin(), m_orderedGeoIds->end(), surface.geometryId());
155  if (geo_iter == m_orderedGeoIds->end() || *geo_iter != surface.geometryId() || (*m_measurementRanges).at(geo_iter - m_orderedGeoIds->begin()).empty())
156  {
157  return {Iterator(BaseIterator(nullptr, 0u, 0u)),
158  Iterator(BaseIterator(nullptr, 0u, 0u))};
159  }
160 
161  assert(static_cast<std::size_t>(geo_iter - m_orderedGeoIds->begin()) < m_measurementRanges->size());
162  const MeasurementRange &range = (*m_measurementRanges).at(geo_iter - m_orderedGeoIds->begin());
163  // const xAOD::UncalibratedMeasurementContainer *container
164  // = std::visit( [](const auto &a) -> const xAOD::UncalibratedMeasurementContainer * { return a},
165  // m_measurementRanges->container(range.containerIndex()));
166  return {Iterator(BaseIterator(&measurementContainerList(), range.containerIndex(), range.elementBeginIndex())),
167  Iterator(BaseIterator(&measurementContainerList(), range.containerIndex(), range.elementEndIndex()))};
168  }

Member Data Documentation

◆ m_measurementRanges

template<typename T_MeasurementRangeList >
const T_MeasurementRangeList* ActsTrk::GenUncalibSourceLinkAccessor< T_MeasurementRangeList >::m_measurementRanges
private

Definition at line 95 of file AtlasUncalibSourceLinkAccessor.h.

◆ m_orderedGeoIds

template<typename T_MeasurementRangeList >
const std::vector<Acts::GeometryIdentifier>* ActsTrk::GenUncalibSourceLinkAccessor< T_MeasurementRangeList >::m_orderedGeoIds
private

Definition at line 94 of file AtlasUncalibSourceLinkAccessor.h.


The documentation for this class was generated from the following file:
index
Definition: index.py:1
ActsTrk::GenUncalibSourceLinkAccessor::m_orderedGeoIds
const std::vector< Acts::GeometryIdentifier > * m_orderedGeoIds
Definition: AtlasUncalibSourceLinkAccessor.h:94
ActsTrk::GenUncalibSourceLinkAccessor::Iterator
Acts::SourceLinkAdapterIterator< BaseIterator > Iterator
Definition: AtlasUncalibSourceLinkAccessor.h:143
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
ActsTrk::GenUncalibSourceLinkAccessor::measurementContainerList
const std::vector< MeasurementContainer > & measurementContainerList() const
Definition: AtlasUncalibSourceLinkAccessor.h:170
ActsTrk::GenUncalibSourceLinkAccessor::range
std::pair< Iterator, Iterator > range(const Acts::Surface &surface) const
Definition: AtlasUncalibSourceLinkAccessor.h:151
ActsTrk::GenUncalibSourceLinkAccessor::m_measurementRanges
const T_MeasurementRangeList * m_measurementRanges
Definition: AtlasUncalibSourceLinkAccessor.h:95