5#ifndef ACTSTRKEVENT_SEEDCONTAINER_H
6#define ACTSTRKEVENT_SEEDCONTAINER_H 1
12#include "Acts/EventData/Seed.hpp"
13#include "Acts/EventData/SeedContainer2.hpp"
30 using Base = std::span<const xAOD::SpacePoint* const>;
35 if (
index >= size()) {
36 throw std::out_of_range(
"SpacePointRange index out of range");
38 return Base::operator[](
index);
73 void reserve(std::size_t
size,
float averageSpacePoints = 3) noexcept {
92 throw std::out_of_range(
"SeedContainer index out of range");
106 Acts::detail::ContainerIterator<SeedContainer, Seed, Index, true>;
120 template <
typename arbitrary_sp_range_t,
typename xaod_sp_ptr_projector_t>
122 const xaod_sp_ptr_projector_t& xAODspProjector,
float quality,
126 std::views::transform(arbitrarySpacePoints, xAODspProjector),
132 const Acts::ConstSeedProxy2& seed) {
136 template <
typename xaod_sp_ptr_projector_t>
138 const xaod_sp_ptr_projector_t& xAODspProjector) {
139 return push_back(seed.spacePointIndices(), xAODspProjector, seed);
142 template <
typename arbitrary_sp_range_t,
typename xaod_sp_ptr_projector_t>
144 const xaod_sp_ptr_projector_t& xAODspProjector,
145 const Acts::ConstSeedProxy2& seed) {
146 return push_back(arbitrarySpacePoints, xAODspProjector, seed.quality(),
152 template <
typename sp_proxy_t, std::
size_t N>
156 [](
const sp_proxy_t*
sp) { return &sp->externalSpacePoint(); },
157 pSeed.seedQuality(), pSeed.z());
170 const std::uint32_t offset =
172 const std::uint8_t
count =
static_cast<std::uint8_t
>(nSpacePoints);
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
int count(std::string s, const std::string ®x)
count how many occurances of a regx are in a string
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Seed at(Index index) const
std::vector< std::uint8_t > m_spacePointCounts
Seed push_back(const Acts::ConstSeedProxy2 &seed, const xaod_sp_ptr_projector_t &xAODspProjector)
std::vector< const xAOD::SpacePoint * > m_spacePoints
Seed push_back(SpacePointRange spacePoints, const Acts::ConstSeedProxy2 &seed)
std::vector< float > m_qualities
bool empty() const noexcept
SpacePointRange spacePoints(Index index) const noexcept
Seed push_back(const arbitrary_sp_range_t &arbitrarySpacePoints, const xaod_sp_ptr_projector_t &xAODspProjector, float quality, float vertexZ)
void push_back_(std::size_t nSpacePoints, float quality, float vertexZ)
Seed push_back(SpacePointRange spacePoints, float quality, float vertexZ)
Seed operator[](Index index) const noexcept
Seed push_back(const Acts::Seed< sp_proxy_t, N > &pSeed)
void reserve(std::size_t size, float averageSpacePoints=3) noexcept
float quality(Index index) const noexcept
const_iterator begin() const noexcept
Acts::detail::ContainerIterator< SeedContainer, Seed, Index, true > const_iterator
std::vector< float > m_vertexZs
Seed push_back(const arbitrary_sp_range_t &arbitrarySpacePoints, const xaod_sp_ptr_projector_t &xAODspProjector, const Acts::ConstSeedProxy2 &seed)
std::size_t size() const noexcept
float vertexZ(Index index) const noexcept
const_iterator end() const noexcept
std::vector< std::uint32_t > m_spacePointOffsets
Index index() const noexcept
float vertexZ() const noexcept
const SeedContainer & container() const noexcept
float seedQuality() const noexcept
float quality() const noexcept
SpacePointRange sp() const noexcept
Seed(const SeedContainer &container, Index index)
const SeedContainer * m_container
SpacePointRange spacePoints() const noexcept
std::span< const xAOD::SpacePoint *const > Base
const xAOD::SpacePoint * at(std::size_t index) const