4#ifndef ACTSEVENT_TRACKSUMMARYCONTAINER_H
5#define ACTSEVENT_TRACKSUMMARYCONTAINER_H
9#include "Acts/EventData/TrackContainer.hpp"
10#include "Acts/Surfaces/Surface.hpp"
11#include "Acts/Utilities/HashedString.hpp"
51using Parameters = Acts::TrackStateTraits<3, false>::Parameters;
52using Covariance = Acts::TrackStateTraits<3, false>::Covariance;
59 static constexpr auto kInvalid = Acts::MultiTrajectoryTraits::kInvalid;
115 std::vector<std::shared_ptr<const Acts::Surface>>
m_surfaces;
139 template <
typename T>
146 Acts::HashedString key,
147 const std::any& src_ptr);
190 std::shared_ptr<const Acts::Surface> surface);
197 const Acts::ParticleHypothesis& particleHypothesis);
215 Acts::HashedString key)
const {
216 using namespace Acts::HashedStringLiteral;
220 case "nMeasurements"_hash:
225 case "nOutliers"_hash:
226 case "hSharedHits"_hash:
227 case "tipIndex"_hash:
228 case "stemIndex"_hash:
245 std::string_view name) {
247 throw std::runtime_error(
248 "TrackSummaryContainer::addColumn_impl: "
249 "unsupported decoration type");
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
void reserve(ActsTrk::IndexType size)
preallocate number of track objects
MutableTrackSummaryContainer(const MutableTrackSummaryContainer &)=delete
ActsTrk::IndexType addTrack_impl()
adds new track to the tail of the container
std::unique_ptr< xAOD::TrackSummaryAuxContainer > m_mutableTrackBackendAux
std::any component_impl(Acts::HashedString key, ActsTrk::IndexType itrack)
write access to decorations
void setParticleHypothesis_impl(ActsTrk::IndexType itrack, const Acts::ParticleHypothesis &particleHypothesis)
sets particle hypothesis
void copyDynamicFrom_impl(ActsTrk::IndexType itrack, Acts::HashedString key, const std::any &src_ptr)
copies decorations from other container
xAOD::TrackSummaryContainer * trackBackend()
void ensureDynamicColumns_impl(const MutableTrackSummaryContainer &other)
synchronizes decorations
std::unique_ptr< xAOD::TrackSummaryContainer > m_mutableTrackBackend
void removeTrack_impl(ActsTrk::IndexType itrack)
clears track data under index
constexpr void addColumn_impl(std::string_view key)
enables the container to support decoration of given name and type
MutableTrackSummaryContainer()
MutableTrackSummaryContainer operator=(const MutableTrackSummaryContainer &)=delete
void setReferenceSurface_impl(ActsTrk::IndexType itrack, std::shared_ptr< const Acts::Surface > surface)
point given track to surface The surface ownership is shared
void encodeSurfaces(xAOD::TrackSurfaceAuxContainer *dest, const Acts::GeometryContext &)
void clear()
zeroes container
ActsTrk::Covariance covariance(ActsTrk::IndexType itrack)
write access to covariance
ActsTrk::Parameters parameters(ActsTrk::IndexType itrack)
write access to parameters
const Acts::Surface * referenceSurface_impl(ActsTrk::IndexType itrack) const
return pointer to reference surface
Acts::ParticleHypothesis particleHypothesis_impl(IndexType itrack) const
return pointer to reference surface
static const std::set< std::string > staticVariables
std::any component_impl(Acts::HashedString key, ActsTrk::IndexType itrack) const
access to components by pointer with type
ActsTrk::ConstParameters parameters(ActsTrk::IndexType itrack) const
parameters of the track
constexpr bool hasColumn_impl(Acts::HashedString key) const
return true if the container has specific decoration
std::size_t size_impl() const
returns number of stored tracks
friend class MutableTrackSummaryContainer
std::vector< Acts::HashedString > dynamicKeys_impl() const
ActsTrk::ConstCovariance covariance(ActsTrk::IndexType itrack) const
covariance of the track fit
friend class MutableTrackContainerHandle
static const std::set< Acts::HashedString > staticVariableHashes
void fillFrom(ActsTrk::MutableTrackSummaryContainer &mtb)
std::vector< std::shared_ptr< const Acts::Surface > > m_surfaces
std::vector< ActsTrk::detail::Decoration > m_decorations
void decodeSurfaces(const xAOD::TrackSurfaceContainer *src)
TrackSummaryContainer(const DataLink< xAOD::TrackSummaryContainer > &lin=nullptr)
static constexpr auto kInvalid
void restoreDecorations()
DataLink< xAOD::TrackSummaryContainer > m_trackBackend
Object reference supporting deferred reading from StoreGate.
void decorationCopier(SG::IAuxStore *dst, ActsTrk::IndexType dst_idx, SG::auxid_t decorationId, const std::any &src_ptr)
const std::any constDecorationGetter(const SG::IConstAuxStore *container, ActsTrk::IndexType idx, SG::auxid_t decorationId)
static Decoration decoration(std::string_view n, GetterType g, CopierType c, SetterType s=static_cast< SetterType >(nullptr))
std::any decorationSetter(SG::IAuxStore *container, ActsTrk::IndexType idx, SG::auxid_t decorationId)
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Acts::TrackStateTraits< 3 >::Covariance ConstCovariance
Acts::TrackStateTraits< 3, false >::Covariance Covariance
Acts::TrackStateTraits< 3, false >::Parameters Parameters
Acts::TrackStateTraits< 3 >::Parameters ConstParameters
TrackSurfaceAuxContainer_v1 TrackSurfaceAuxContainer
TrackSurfaceContainer_v1 TrackSurfaceContainer
TrackSummaryContainer_v1 TrackSummaryContainer
static constexpr bool value