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...
This class is not to needed in AthSimulation.