Analysis Software
Documentation for sPHENIX simulation software
|
A wrapper class around a KDTree of surfaces. More...
#include <acts/blob/sPHENIX/Core/include/Acts/Detector/KdtSurfacesProvider.hpp>
Public Types | |
using | KDTS = KDTree< kDIM, std::shared_ptr< Surface >, ActsScalar, std::array, bSize > |
Broadcast the surface KDT type. | |
using | Query = std::array< ActsScalar, kDIM > |
Broadcast the query definition. | |
using | Entry = std::pair< Query, std::shared_ptr< Surface >> |
Broadcast the entry. | |
Public Member Functions | |
KdtSurfaces (const GeometryContext &gctx, const std::vector< std::shared_ptr< Surface >> &surfaces, const std::array< BinningValue, kDIM > &casts, const reference_generator &rgen=detail::PolyhedronReferenceGenerator< 1u, false >{}) | |
std::vector< std::shared_ptr < Surface > > | surfaces (const RangeXD< kDIM, ActsScalar > &range) const |
std::vector< std::shared_ptr < Surface > > | surfaces (const Extent &extent) const |
Private Member Functions | |
template<typename Array , std::size_t... idx> | |
void | fillCasts (const Vector3 &position, Array &a, std::index_sequence< idx...>) const |
Query | cog (const std::vector< Query > &cQueries) const |
Private Attributes | |
std::unique_ptr< KDTS > | m_kdt = nullptr |
The KDTree as single source for the surfaces (maybe shared) | |
std::array< BinningValue, kDIM > | m_casts = {} |
Cast values that turn a global position to lookup position. | |
reference_generator | m_rGenerator |
Helper to generate reference points for filling. | |
A wrapper class around a KDTree of surfaces.
It also deals with the conversion from global query to KDTree lookup positions
Definition at line 35 of file KdtSurfacesProvider.hpp.
View newest version in sPHENIX GitHub at line 35 of file KdtSurfacesProvider.hpp
using Acts::Experimental::KdtSurfaces< kDIM, bSize, reference_generator >::Entry = std::pair<Query, std::shared_ptr<Surface>> |
Broadcast the entry.
Definition at line 45 of file KdtSurfacesProvider.hpp.
View newest version in sPHENIX GitHub at line 45 of file KdtSurfacesProvider.hpp
using Acts::Experimental::KdtSurfaces< kDIM, bSize, reference_generator >::KDTS = KDTree<kDIM, std::shared_ptr<Surface>, ActsScalar, std::array, bSize> |
Broadcast the surface KDT type.
Definition at line 39 of file KdtSurfacesProvider.hpp.
View newest version in sPHENIX GitHub at line 39 of file KdtSurfacesProvider.hpp
using Acts::Experimental::KdtSurfaces< kDIM, bSize, reference_generator >::Query = std::array<ActsScalar, kDIM> |
Broadcast the query definition.
Definition at line 42 of file KdtSurfacesProvider.hpp.
View newest version in sPHENIX GitHub at line 42 of file KdtSurfacesProvider.hpp
|
inline |
Constructor from a vector of surfaces
gctx | the geometry context of this call |
surfaces | the surfaces to be filled into the tree |
casts | the cast list from global position into kdtree local |
rgen | the reference point generator |
Definition at line 53 of file KdtSurfacesProvider.hpp.
View newest version in sPHENIX GitHub at line 53 of file KdtSurfacesProvider.hpp
|
inlineprivate |
Helper method to calculate the center of gravity in the casted frame (i.e. query frame)
cQueries | are the casted query positions |
Definition at line 143 of file KdtSurfacesProvider.hpp.
View newest version in sPHENIX GitHub at line 143 of file KdtSurfacesProvider.hpp
References Acts::PhysicalConstants::c, Acts::Test::transform, and testSigmaEff::v.
|
inlineprivate |
Unroll the cast loop
position | is the position of the update call |
a | is the array to be filled |
Definition at line 127 of file KdtSurfacesProvider.hpp.
View newest version in sPHENIX GitHub at line 127 of file KdtSurfacesProvider.hpp
References Acts::VectorHelpers::cast(), ambiguity_solver_full_chain::idx, and Acts::Experimental::KdtSurfaces< kDIM, bSize, reference_generator >::m_casts.
|
inline |
Query with a Range object
range | is the range to be queried |
Definition at line 90 of file KdtSurfacesProvider.hpp.
View newest version in sPHENIX GitHub at line 90 of file KdtSurfacesProvider.hpp
References Acts::Experimental::KdtSurfaces< kDIM, bSize, reference_generator >::m_kdt, and physmon_simulation::s.
Referenced by Acts::Experimental::KdtSurfaces< kDIM, bSize, reference_generator >::surfaces().
|
inline |
Query with an Extent object
extent | is the range Extent to be queried |
Definition at line 105 of file KdtSurfacesProvider.hpp.
View newest version in sPHENIX GitHub at line 105 of file KdtSurfacesProvider.hpp
References Acts::enumerate(), Acts::Experimental::KdtSurfaces< kDIM, bSize, reference_generator >::m_casts, Acts::Extent::range(), Acts::Experimental::KdtSurfaces< kDIM, bSize, reference_generator >::surfaces(), and testSigmaEff::v.
|
private |
Cast values that turn a global position to lookup position.
Definition at line 118 of file KdtSurfacesProvider.hpp.
View newest version in sPHENIX GitHub at line 118 of file KdtSurfacesProvider.hpp
Referenced by Acts::Experimental::KdtSurfaces< kDIM, bSize, reference_generator >::fillCasts(), and Acts::Experimental::KdtSurfaces< kDIM, bSize, reference_generator >::surfaces().
|
private |
The KDTree as single source for the surfaces (maybe shared)
Definition at line 115 of file KdtSurfacesProvider.hpp.
View newest version in sPHENIX GitHub at line 115 of file KdtSurfacesProvider.hpp
Referenced by Acts::Experimental::KdtSurfaces< kDIM, bSize, reference_generator >::surfaces().
|
private |
Helper to generate reference points for filling.
Definition at line 121 of file KdtSurfacesProvider.hpp.
View newest version in sPHENIX GitHub at line 121 of file KdtSurfacesProvider.hpp