ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::Experimental::CylindricalSpacePointKDTree Class Reference

A cylindrical space point KD-tree used for seeding in a cylindrical detector geometry. More...

#include <Acts/Seeding2/CylindricalSpacePointKDTree.hpp>

Classes

struct  Candidates
 Candidate space point indices grouped by z ordering. More...
struct  Options
 Configuration options for cylindrical space point selection. More...

Public Types

enum  Dim { DimPhi = 0 , DimR = 1 , DimZ = 2 }
 Enumeration of the different dimensions in which we can apply cuts.
using SpacePointIndex = std::uint32_t
 Space point index type used in the grid.
using Tree = KDTree<NDims, SpacePointIndex, float, std::array, 4>
 The k-d tree type used by this seeder internally, which is three-dimensional, contains internal space point pointers, uses the Acts scalar type for coordinates, stores its coordinates in std::arrays, and has leaf size 4.

Public Member Functions

 CylindricalSpacePointKDTree (Tree tree, std::unique_ptr< const Logger > logger=getDefaultLogger("CylindricalSpacePointKDTree", Logging::Level::INFO))
 Construct a cylindrical space point grid with the given configuration and an optional logger.
auto begin () const
 Return iterator to the beginning of the tree.
auto end () const
 Return iterator to the end of the tree.
std::size_t size () const
 Return the number of space points in the tree.
Tree::range_t validTupleOrthoRangeHL (const Options &options, const ConstSpacePointProxy2 &high) const
 Get valid orthogonal range for high-low pairs.
Tree::range_t validTupleOrthoRangeLH (const Options &options, const ConstSpacePointProxy2 &low) const
 Get valid orthogonal range for low-high pairs.
void validTuples (const Options &lhOptions, const Options &hlOptions, const ConstSpacePointProxy2 &spM, std::size_t nTopSeedConf, Candidates &candidates) const
 Find valid seed tuples.

Static Public Attributes

static constexpr std::size_t NDims = 3
 Set the number of dimensions in which to embed points.

Detailed Description

A cylindrical space point KD-tree used for seeding in a cylindrical detector geometry.

The tree is defined in cylindrical coordinates (phi, r, z) and allows for efficient access to space points based on their azimuthal angle, radial distance, and z-coordinate.

Constructor & Destructor Documentation

◆ CylindricalSpacePointKDTree()

Acts::Experimental::CylindricalSpacePointKDTree::CylindricalSpacePointKDTree ( Tree tree,
std::unique_ptr< const Logger > logger = getDefaultLogger("CylindricalSpacePointKDTree", Logging::Level::INFO) )
explicit

Construct a cylindrical space point grid with the given configuration and an optional logger.

Parameters
treeKD tree
loggerOptional logger

Member Function Documentation

◆ begin()

auto Acts::Experimental::CylindricalSpacePointKDTree::begin ( ) const

Return iterator to the beginning of the tree.

Returns
Begin iterator

◆ end()

auto Acts::Experimental::CylindricalSpacePointKDTree::end ( ) const

Return iterator to the end of the tree.

Returns
End iterator

◆ size()

std::size_t Acts::Experimental::CylindricalSpacePointKDTree::size ( ) const

Return the number of space points in the tree.

Returns
Number of space points

◆ validTupleOrthoRangeHL()

Tree::range_t Acts::Experimental::CylindricalSpacePointKDTree::validTupleOrthoRangeHL ( const Options & options,
const ConstSpacePointProxy2 & high ) const

Get valid orthogonal range for high-low pairs.

Parameters
optionsSearch options
highHigh space point
Returns
Valid range

◆ validTupleOrthoRangeLH()

Tree::range_t Acts::Experimental::CylindricalSpacePointKDTree::validTupleOrthoRangeLH ( const Options & options,
const ConstSpacePointProxy2 & low ) const

Get valid orthogonal range for low-high pairs.

Parameters
optionsSearch options
lowLow space point
Returns
Valid range

◆ validTuples()

void Acts::Experimental::CylindricalSpacePointKDTree::validTuples ( const Options & lhOptions,
const Options & hlOptions,
const ConstSpacePointProxy2 & spM,
std::size_t nTopSeedConf,
Candidates & candidates ) const

Find valid seed tuples.

Parameters
lhOptionsLow-high search options
hlOptionsHigh-low search options
spMMiddle space point
nTopSeedConfNumber of top seed configurations
candidatesOutput candidates container

Member Data Documentation

◆ NDims

std::size_t Acts::Experimental::CylindricalSpacePointKDTree::NDims = 3
staticconstexpr

Set the number of dimensions in which to embed points.

This is just 3 for now (phi, r, and z), but we might want to increase or decrease this number in the future.