ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::KdtSurfaces< kDIM, bSize > Class Template Reference

A wrapper class around a KDTree of surfaces. More...

#include <Acts/Geometry/KdtSurfaces.hpp>

Public Types

using Entry = std::pair<Query, std::shared_ptr<Surface>>
 Broadcast the entry.
using KDTS
 Broadcast the surface KDT type.
using Query = std::array<double, kDIM>
 Broadcast the query definition.

Public Member Functions

 KdtSurfaces (const GeometryContext &gctx, const std::vector< std::shared_ptr< Surface > > &surfaces, const std::array< AxisDirection, kDIM > &casts, const std::shared_ptr< IReferenceGenerator > &rgen=std::make_shared< PolyhedronReferenceGenerator >())
 Constructor from a vector of surfaces.
std::vector< std::shared_ptr< Surface > > surfaces (const Extent &extent) const
 Query with an Extent object.
std::vector< std::shared_ptr< Surface > > surfaces (const RangeXD< kDIM, double > &range) const
 Query with a Range object.

Detailed Description

template<std::size_t kDIM = 2u, std::size_t bSize = 100u>
class Acts::KdtSurfaces< kDIM, bSize >

A wrapper class around a KDTree of surfaces.

It also deals with the conversion from global query to KDTree lookup positions

Member Typedef Documentation

◆ Entry

template<std::size_t kDIM = 2u, std::size_t bSize = 100u>
using Acts::KdtSurfaces< kDIM, bSize >::Entry = std::pair<Query, std::shared_ptr<Surface>>

Broadcast the entry.

◆ KDTS

template<std::size_t kDIM = 2u, std::size_t bSize = 100u>
using Acts::KdtSurfaces< kDIM, bSize >::KDTS
Initial value:
KDTree<kDIM, std::shared_ptr<Surface>, double, std::array, bSize>
A general k-d tree with fast range search.
Definition KDTree.hpp:45

Broadcast the surface KDT type.

◆ Query

template<std::size_t kDIM = 2u, std::size_t bSize = 100u>
using Acts::KdtSurfaces< kDIM, bSize >::Query = std::array<double, kDIM>

Broadcast the query definition.

Constructor & Destructor Documentation

◆ KdtSurfaces()

template<std::size_t kDIM = 2u, std::size_t bSize = 100u>
Acts::KdtSurfaces< kDIM, bSize >::KdtSurfaces ( const GeometryContext & gctx,
const std::vector< std::shared_ptr< Surface > > & surfaces,
const std::array< AxisDirection, kDIM > & casts,
const std::shared_ptr< IReferenceGenerator > & rgen = std::make_shared<PolyhedronReferenceGenerator>() )

Constructor from a vector of surfaces.

Parameters
gctxthe geometry context of this call
surfacesthe surfaces to be filled into the tree
caststhe cast list from global position into kdtree local
rgenthe reference point generator

Member Function Documentation

◆ surfaces() [1/2]

template<std::size_t kDIM = 2u, std::size_t bSize = 100u>
std::vector< std::shared_ptr< Surface > > Acts::KdtSurfaces< kDIM, bSize >::surfaces ( const Extent & extent) const

Query with an Extent object.

Parameters
extentis the range Extent to be queried
Returns
the matching surfaces fpulled from the KDT structure

◆ surfaces() [2/2]

template<std::size_t kDIM = 2u, std::size_t bSize = 100u>
std::vector< std::shared_ptr< Surface > > Acts::KdtSurfaces< kDIM, bSize >::surfaces ( const RangeXD< kDIM, double > & range) const

Query with a Range object.

Parameters
rangeis the range to be queried
Returns
the matching surfaces from the KDT structure