5#ifndef ACTSTRK_SPACEPOINT_COLLECTOR_H
6#define ACTSTRK_SPACEPOINT_COLLECTOR_H
15#include "Acts/EventData/SpacePointContainer.hpp"
16#include "Acts/Definitions/Algebra.hpp"
22 friend Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>;
46 using namespace Acts::HashedStringLiteral;
51 throw std::runtime_error(
"no such component " + std::to_string(key) +
" for this space point");
55 case "TopStripVector"_hash:
56 return Acts::Vector3(
sp.topHalfStripLength() *
sp.topStripDirection().cast<
double>() );
57 case "BottomStripVector"_hash:
58 return Acts::Vector3(
sp.bottomHalfStripLength() *
sp.bottomStripDirection().cast<
double>() );
59 case "StripCenterDistance"_hash:
60 return Acts::Vector3(
sp.stripCenterDistance().cast<
double>() );
61 case "TopStripCenterPosition"_hash:
62 return Acts::Vector3(
sp.topStripCenter().cast<
double>() );
64 throw std::runtime_error(
"no such component " + std::to_string(key));
69 const std::vector<const ValueType*>&
storage()
const;
70 std::vector<const ValueType*>&
storage();
95 {
return storage()[idx]->varianceR(); }
99 {
return storage()[idx]->varianceZ(); }
107 inline const std::vector<const typename SpacePointCollector::ValueType*>&
111 inline std::vector<const typename SpacePointCollector::ValueType*>&
SpacePointCollector(SpacePointCollector &&) noexcept=default
const ValueType & get_impl(std::size_t idx) const
std::vector< const ValueType * > * m_storage
std::any component_impl(Acts::HashedString key, std::size_t n) const
float z_impl(std::size_t idx) const
SpacePointCollector(const SpacePointCollector &)=delete
const std::vector< const ValueType * > & storage() const
float y_impl(std::size_t idx) const
float x_impl(std::size_t idx) const
SpacePointCollector(std::vector< const ValueType * > &externalStorage)
float varianceZ_impl(std::size_t idx) const
xAOD::SpacePoint ValueType
float varianceR_impl(std::size_t idx) const
std::size_t size_impl() const
Helper class to provide constant type-safe access to aux data.
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...