5#ifndef ACTSTRKEVENT_SEEDCONTAINER_H
6#define ACTSTRKEVENT_SEEDCONTAINER_H 1
8#include "Acts/EventData/SeedContainer2.hpp"
10#include "Acts/EventData/Seed.hpp"
19 using Base = Acts::SeedContainer2;
21 using const_iterator = Acts::detail::ContainerIterator<SeedContainer, value_type, Index, true>;
35 Acts::MutableSeedProxy2
push_back(Acts::SpacePointIndexSubset2 sp) {
36 Acts::MutableSeedProxy2 seed = createSeed();
37 seed.assignSpacePointIndices(sp);
41 Acts::MutableSeedProxy2
push_back(Acts::MutableSeedProxy2 seed) {
42 Acts::MutableSeedProxy2 newseed =
push_back(seed.spacePointIndices());
43 newseed.vertexZ() = seed.vertexZ();
44 newseed.quality() = seed.quality();
49 template <
typename SpacePo
intProxy_t, std::
size_t N>
50 Acts::MutableSeedProxy2
push_back(
const Acts::Seed<SpacePointProxy_t, N>* pSeed) {
51 return push_back_helper(pSeed, [
this](
const SpacePointProxy_t* sp) -> Acts::SpacePointIndex2 {
53 assert(
m_spacePoints[sp->index()] == &sp->externalSpacePoint());
60 Acts::MutableSeedProxy2
push_back(
const Acts::Seed<xAOD::SpacePoint, 3ul>* pSeed) {
74 template <
typename seed_type,
typename spindex_fun>
76 std::vector<Acts::SpacePointIndex2> spacePointIndices;
77 spacePointIndices.reserve(pSeed->sp().size());
78 for (
auto sp2 : pSeed->sp()) {
79 Acts::SpacePointIndex2 ind = spindex(sp2);
80 spacePointIndices.push_back(ind);
82 Acts::MutableSeedProxy2 seed = createSeed();
83 seed.assignSpacePointIndices(spacePointIndices);
84 seed.vertexZ() = pSeed->z();
85 seed.quality() = pSeed->seedQuality();
94 struct Seed :
public Acts::ConstSeedProxy2 {
95 using Base = Acts::ConstSeedProxy2;
102 float z()
const noexcept {
return vertexZ(); }
110 using Base = Acts::SpacePointIndexSubset2;
114 using const_iterator = Acts::detail::ContainerIterator<SpacePointIndexSubset, value_type, Index, true>;
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
IndexedConstituentUserInfo::Index Index
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Seed at(Index index) const
Acts::SeedContainer2 Base
Acts::MutableSeedProxy2 push_back(const Acts::Seed< xAOD::SpacePoint, 3ul > *pSeed)
Acts::MutableSeedProxy2 push_back(const Acts::Seed< SpacePointProxy_t, N > *pSeed)
SpacePointContainer m_spacePoints
Acts::MutableSeedProxy2 push_back(Acts::MutableSeedProxy2 seed)
Seed operator[](Index index) const noexcept
SpacePointContainer & spacePoints() noexcept
Acts::MutableSeedProxy2 push_back_helper(seed_type *pSeed, spindex_fun spindex)
Acts::detail::ContainerIterator< SeedContainer, value_type, Index, true > const_iterator
const_iterator begin() const noexcept
Acts::MutableSeedProxy2 push_back(Acts::SpacePointIndexSubset2 sp)
std::vector< SpacePointValue > SpacePointContainer
const xAOD::SpacePoint * SpacePointValue
const_iterator end() const noexcept
const SpacePointContainer & spacePoints() const noexcept
Acts::ConstSeedProxy2 Base
SeedContainer::SpacePointValue SpacePointValue
SpacePointIndexSubset sp() const
const SpacePointContainer & spacePointContainer() const noexcept
float seedQuality() const noexcept
SeedContainer::SpacePointContainer SpacePointContainer
value_type front() const noexcept
value_type back() const noexcept
const_iterator end() const noexcept
SeedContainer::SpacePointContainer SpacePointContainer
const_iterator begin() const noexcept
SeedContainer::SpacePointValue value_type
SpacePointIndexSubset(const SpacePointContainer &spacePointContainer, Base spacePointIndices)
value_type operator[](Index index) const noexcept
SpacePointIndexSubset()=default
Acts::SpacePointIndexSubset2 Base
Acts::detail::ContainerIterator< SpacePointIndexSubset, value_type, Index, true > const_iterator
value_type at(Index index) const
const SpacePointContainer * m_spacePointContainer