ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::SeedFinderOrthogonal< external_space_point_t > Class Template Reference

Orthogonal range-search based seed finder. More...

#include <Acts/Seeding/SeedFinderOrthogonal.hpp>

Public Types

using seed_t = Seed<external_space_point_t>
 The seed type used by this seeder internally.
using tree_t
 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

 SeedFinderOrthogonal (const Acts::SeedFinderOrthogonalConfig< external_space_point_t > &config, std::unique_ptr< const Acts::Logger > logger=Acts::getDefaultLogger("Finder", Logging::Level::INFO))
 Construct a new orthogonal seed finder.
 SeedFinderOrthogonal (const SeedFinderOrthogonal< external_space_point_t > &)=delete
 SeedFinderOrthogonal (SeedFinderOrthogonal< external_space_point_t > &&) noexcept=default
 Move constructor.
 ~SeedFinderOrthogonal ()=default
 Destroy the orthogonal seed finder object.
template<typename input_container_t>
std::vector< seed_tcreateSeeds (const Acts::SeedFinderOptions &options, const input_container_t &spacePoints) const
 Perform seed finding, returning a new container of seeds.
template<typename input_container_t, typename output_container_t>
void createSeeds (const Acts::SeedFinderOptions &options, const input_container_t &spacePoints, output_container_t &out_cont) const
 Perform seed finding, appending seeds to a container.
SeedFinderOrthogonal< external_space_point_t > & operator= (const SeedFinderOrthogonal< external_space_point_t > &)=delete
SeedFinderOrthogonal< external_space_point_t > & operator= (SeedFinderOrthogonal< external_space_point_t > &&) noexcept=default
 Move assignment operator.

Static Public Attributes

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

Detailed Description

template<typename external_space_point_t>
class Acts::SeedFinderOrthogonal< external_space_point_t >

Orthogonal range-search based seed finder.

Member Typedef Documentation

◆ tree_t

template<typename external_space_point_t>
using Acts::SeedFinderOrthogonal< external_space_point_t >::tree_t
Initial value:
A general k-d tree with fast range search.
Definition KDTree.hpp:45

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.

Constructor & Destructor Documentation

◆ SeedFinderOrthogonal()

template<typename external_space_point_t>
Acts::SeedFinderOrthogonal< external_space_point_t >::SeedFinderOrthogonal ( const Acts::SeedFinderOrthogonalConfig< external_space_point_t > & config,
std::unique_ptr< const Acts::Logger > logger = Acts::getDefaultLogger("Finder", Logging::Level::INFO) )
explicit

Construct a new orthogonal seed finder.

Parameters
configThe configuration parameters for this seed finder.
loggerThe ACTS logger.

Member Function Documentation

◆ createSeeds() [1/2]

template<typename external_space_point_t>
template<typename input_container_t>
std::vector< seed_t > Acts::SeedFinderOrthogonal< external_space_point_t >::createSeeds ( const Acts::SeedFinderOptions & options,
const input_container_t & spacePoints ) const

Perform seed finding, returning a new container of seeds.

This is a filterCandidates method for scenarios where a non-inserter API is more ergonomic. In general, the inserter-based method should be preferred as it is more flexible and usually more performant. For more information about the seeding algorithm, please see that function.

Template Parameters
input_container_tThe type of the input space point container.
Parameters
optionsfrequently changing configuration (like beam position)
spacePointsThe input space points from which to create seeds. covariance of the external space point
Returns
A vector of seeds.

◆ createSeeds() [2/2]

template<typename external_space_point_t>
template<typename input_container_t, typename output_container_t>
void Acts::SeedFinderOrthogonal< external_space_point_t >::createSeeds ( const Acts::SeedFinderOptions & options,
const input_container_t & spacePoints,
output_container_t & out_cont ) const

Perform seed finding, appending seeds to a container.

This method performs seed finding through an orthogonal range search strategy. This strategy differs from binning approaches because it selects seeds constructively rather than destructively; instead of trying a large number of possible space point combinations and then rejecting many of them, this algorithm tries to only consider valid seed candidates to reduce combinatorics.

In addition, this algorithm replaces the binning step used in other seed finding algorithms with the construction of a k-d tree, which allows us to efficiently search for space points within a given range.

The core idea behind this algorithm is to create axis-aligned bounding boxes around the region of validity for a seed candidate (be it a bottom space point for a given middle, a top for a given middle, a middle for a given bottom, or any other combination), and then searching the detector volume for points that lie inside that AABB.

Template Parameters
input_container_tThe type of the input space point container.
output_container_tThe type of the output seed container.
Parameters
optionsfrequently changing configuration (like beam position)
spacePointsThe input space points from which to create seeds.
out_contThe output container to write seeds to. covariance of the external space point

◆ operator=()

template<typename external_space_point_t>
SeedFinderOrthogonal< external_space_point_t > & Acts::SeedFinderOrthogonal< external_space_point_t >::operator= ( SeedFinderOrthogonal< external_space_point_t > && )
defaultnoexcept

Move assignment operator.

Returns
Reference to this object

Member Data Documentation

◆ NDims

template<typename external_space_point_t>
std::size_t Acts::SeedFinderOrthogonal< external_space_point_t >::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.