|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
    5 #ifndef ACTSTRKEVENT_SEEDCONTAINER_H 
    6 #define ACTSTRKEVENT_SEEDCONTAINER_H 1 
    8 #include "Acts/EventData/SeedContainer2.hpp" 
    9 #include "Acts/EventData/SpacePointContainer.hpp" 
   10 #include "Acts/EventData/Seed.hpp" 
   15 #include <type_traits> 
   20     using Base = Acts::SeedContainer2;
 
   22     using const_iterator = Acts::detail::ContainerIterator<SeedContainer, value_type, Index, true>;
 
   27     using Seed1 = Acts::Seed<SpacePointValueBase, 3ul>;
 
   34     Acts::MutableSeedProxy2 
push_back(Acts::MutableSeedProxy2 seed);
 
   35     Acts::MutableSeedProxy2 
push_back(Acts::SpacePointIndexSubset2 sp) {
 
   36       Acts::MutableSeedProxy2 seed = createSeed();
 
   37       seed.assignSpacePointIndices(sp);
 
   45     Acts::MutableSeedProxy2 
push_back(std::unique_ptr<Seed1> pSeed) { 
return push_back(pSeed.get()); }
 
   46     template <
template <
typename> 
class seed_type, 
typename container_t>
 
   47     Acts::MutableSeedProxy2 
push_back(
const seed_type<Acts::SpacePointProxy<container_t>> *pSeed) {
 
   48       return push_back(pSeed, [
this](
const Acts::SpacePointProxy<container_t> *sp) -> Acts::SpacePointIndex2 {
 
   50         assert(
m_spacePoints[sp->index()] == &sp->externalSpacePoint());
 
   66     template <
typename seed_type, 
typename spindex_fun>
 
   67     Acts::MutableSeedProxy2 
push_back(seed_type *pSeed, spindex_fun spindex);
 
   75   struct Seed : 
public Acts::ConstSeedProxy2 {
 
   76     using Base = Acts::ConstSeedProxy2;
 
   83     float z() 
const noexcept { 
return vertexZ(); }
 
   90     auto newseed = 
push_back(seed.spacePointIndices());
 
   91     newseed.vertexZ() = seed.vertexZ();
 
   92     newseed.quality() = seed.quality();
 
   96   template <
typename seed_type, 
typename spindex_fun>
 
   98     std::vector<Acts::SpacePointIndex2> spacePointIndices;
 
   99     spacePointIndices.reserve(pSeed->sp().size());
 
  100     for (
auto sp2 : pSeed->sp()) {
 
  101       Acts::SpacePointIndex2 ind = spindex(sp2);
 
  102       spacePointIndices.push_back(ind);
 
  104     Acts::MutableSeedProxy2 seed = createSeed();
 
  105     seed.assignSpacePointIndices(spacePointIndices);
 
  106     seed.vertexZ() = pSeed->z();
 
  107     seed.quality() = pSeed->seedQuality();
 
  112     using Base = Acts::SpacePointIndexSubset2;
 
  116     using const_iterator = Acts::detail::ContainerIterator<SpacePointIndexSubset, value_type, Index, true>;
 
  
std::remove_const_t< std::remove_pointer_t< SpacePointValue > > SpacePointValueBase
SeedContainer::SpacePointContainer SpacePointContainer
std::string find(const std::string &s)
return a remapped string
Seed operator[](Index index) const noexcept
Acts::Seed< SpacePointValueBase, 3ul > Seed1
const SpacePointContainer * m_spacePointContainer
bool const RAWDATA *ch2 const
value_type operator[](Index index) const noexcept
const_iterator begin() const noexcept
std::vector< SpacePointValue > SpacePointContainer
Acts::MutableSeedProxy2 push_back(Acts::SpacePointIndexSubset2 sp)
const SpacePointContainer & spacePointContainer() const noexcept
SpacePointContainer m_spacePoints
const xAOD::SpacePoint * SpacePointValue
IndexedConstituentUserInfo::Index Index
const_iterator end() const noexcept
const_iterator begin() const noexcept
float seedQuality() const noexcept
const_iterator end() const noexcept
Seed at(Index index) const
Acts::detail::ContainerIterator< SeedContainer, value_type, Index, true > const_iterator
const SpacePointContainer & spacePoints() const noexcept
SpacePointIndexSubset(const SpacePointContainer &spacePointContainer, Base spacePointIndices)
Acts::MutableSeedProxy2 push_back(Acts::MutableSeedProxy2 seed)
ObjectId< CI, CM > operator[](std::size_t) const noexcept
SeedContainer::SpacePointContainer SpacePointContainer
Acts::MutableSeedProxy2 push_back(std::unique_ptr< Seed1 > pSeed)
SpacePointIndexSubset sp() const
Acts::MutableSeedProxy2 push_back(const Seed1 *pSeed)
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
SpacePointIndexSubset()=default
Acts::MutableSeedProxy2 push_back(const seed_type< Acts::SpacePointProxy< container_t >> *pSeed)
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Acts::detail::ContainerIterator< SpacePointIndexSubset, value_type, Index, true > const_iterator
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
macros to associate a CLID to a type
SpacePointContainer & spacePoints() noexcept
value_type at(Index index) const