ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::SurfaceArray::SingleElementLookup Struct Reference

Lookup implementation which wraps one element and always returns this element when lookup is called. More...

#include <Acts/Surfaces/SurfaceArray.hpp>

Inheritance diagram for Acts::SurfaceArray::SingleElementLookup:
[legend]
Collaboration diagram for Acts::SurfaceArray::SingleElementLookup:
[legend]

Public Member Functions

 SingleElementLookup (const std::vector< const Surface * > &elements)
 Default constructor.
 SingleElementLookup (const Surface *element)
 Default constructor.
std::span< const Surface *const > at (std::array< std::size_t, 2 > gridIndices, std::uint8_t neighborDistance) const override
 Get all surfaces in bin given by local grid indices and neighbor distance.
void fill (const GeometryContext &, std::span< const Surface *const >) override
 Comply with concept and provide fill method.
std::vector< const IAxis * > getAxes () const override
 Returns an empty vector of AnyAxis.
Vector3 getBinCenter (std::size_t) const override
 Gets the bin center, but always returns (0, 0, 0).
bool isValidBin (std::size_t) const override
 Returns if the bin is valid (it is).
std::span< const Surface *const > lookup (const GeometryContext &, const Vector3 &, const Vector3 &) const override
 Lookup, always returns element.
const std::vector< const Surface * > & lookup (const Vector3 &, const Vector3 &) const override
 Lookup, always returns element.
const std::vector< const Surface * > & lookup (std::size_t) const override
 Lookup, always returns element.
std::vector< const Surface * > & lookup (std::size_t) override
 Lookup, always returns element.
std::uint8_t maxNeighborDistance () const override
 Get the maximum neighbor distance that is supported by this lookup.
std::span< const Surface *const > neighbors (const GeometryContext &, const Vector3 &, const Vector3 &) const override
 Lookup, always returns element.
const std::vector< const Surface * > & neighbors (const Vector3 &, const Vector3 &) const override
 Lookup, always returns element.
std::array< std::size_t, 2 > numLocalBins () const override
 Get the number of local bins in each dimension.
std::size_t size () const override
 Returns the total size of the grid (including under/overflow bins).
const SurfacesurfaceRepresentation () const override
 Get the representative surface used for this lookup.
Public Member Functions inherited from Acts::SurfaceArray::ISurfaceGridLookup
virtual std::vector< AxisDirectionbinningValues () const
 The binning values described by this surface grid lookup.

Detailed Description

Lookup implementation which wraps one element and always returns this element when lookup is called.

Deprecated
Construct the SurfaceArray directly with a single surface

Constructor & Destructor Documentation

◆ SingleElementLookup() [1/2]

Acts::SurfaceArray::SingleElementLookup::SingleElementLookup ( const Surface * element)
explicit

Default constructor.

Parameters
elementthe one and only element.

◆ SingleElementLookup() [2/2]

Acts::SurfaceArray::SingleElementLookup::SingleElementLookup ( const std::vector< const Surface * > & elements)
explicit

Default constructor.

Parameters
elementsthe surfaces that are provided through a single lookup

Member Function Documentation

◆ at()

std::span< const Surface *const > Acts::SurfaceArray::SingleElementLookup::at ( std::array< std::size_t, 2 > gridIndices,
std::uint8_t neighborDistance ) const
overridevirtual

Get all surfaces in bin given by local grid indices and neighbor distance.

Parameters
gridIndicesthe local grid indices
neighborDistancethe neighbor distance to include in the lookup
Returns
span of surface pointers of the bin at that position and its neighbors

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ fill()

void Acts::SurfaceArray::SingleElementLookup::fill ( const GeometryContext & ,
std::span< const Surface *const >  )
overridevirtual

Comply with concept and provide fill method.

Note
Does nothing

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ getAxes()

std::vector< const IAxis * > Acts::SurfaceArray::SingleElementLookup::getAxes ( ) const
overridevirtual

Returns an empty vector of AnyAxis.

Returns
empty vector

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ getBinCenter()

Vector3 Acts::SurfaceArray::SingleElementLookup::getBinCenter ( std::size_t ) const
overridevirtual

Gets the bin center, but always returns (0, 0, 0).

Returns
(0, 0, 0)

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ isValidBin()

bool Acts::SurfaceArray::SingleElementLookup::isValidBin ( std::size_t ) const
overridevirtual

Returns if the bin is valid (it is).

Returns
always true

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ lookup() [1/4]

std::span< const Surface *const > Acts::SurfaceArray::SingleElementLookup::lookup ( const GeometryContext & ,
const Vector3 & ,
const Vector3 &  ) const
overridevirtual

Lookup, always returns element.

Returns
span of surface pointers containing only element

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ lookup() [2/4]

const std::vector< const Surface * > & Acts::SurfaceArray::SingleElementLookup::lookup ( const Vector3 & ,
const Vector3 &  ) const
overridevirtual

Lookup, always returns element.

Returns
reference to vector containing only element

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ lookup() [3/4]

const std::vector< const Surface * > & Acts::SurfaceArray::SingleElementLookup::lookup ( std::size_t ) const
overridevirtual

Lookup, always returns element.

Returns
reference to vector containing only element

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ lookup() [4/4]

std::vector< const Surface * > & Acts::SurfaceArray::SingleElementLookup::lookup ( std::size_t )
overridevirtual

Lookup, always returns element.

Returns
reference to vector containing only element

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ maxNeighborDistance()

std::uint8_t Acts::SurfaceArray::SingleElementLookup::maxNeighborDistance ( ) const
overridevirtual

Get the maximum neighbor distance that is supported by this lookup.

This is used to determine how many neighbors to include in neighbor lookups.

Returns
Maximum neighbor distance

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ neighbors() [1/2]

std::span< const Surface *const > Acts::SurfaceArray::SingleElementLookup::neighbors ( const GeometryContext & ,
const Vector3 & ,
const Vector3 &  ) const
overridevirtual

Lookup, always returns element.

Returns
span of surface pointers containing only element

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ neighbors() [2/2]

const std::vector< const Surface * > & Acts::SurfaceArray::SingleElementLookup::neighbors ( const Vector3 & ,
const Vector3 &  ) const
overridevirtual

Lookup, always returns element.

Returns
reference to vector containing only element

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ numLocalBins()

std::array< std::size_t, 2 > Acts::SurfaceArray::SingleElementLookup::numLocalBins ( ) const
overridevirtual

Get the number of local bins in each dimension.

This is used to determine the size of the grid for neighbor lookups.

Returns
Array of number of local bins in each dimension

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ size()

std::size_t Acts::SurfaceArray::SingleElementLookup::size ( ) const
overridevirtual

Returns the total size of the grid (including under/overflow bins).

Returns
1

Implements Acts::SurfaceArray::ISurfaceGridLookup.

◆ surfaceRepresentation()

const Surface * Acts::SurfaceArray::SingleElementLookup::surfaceRepresentation ( ) const
overridevirtual

Get the representative surface used for this lookup.

Returns
Surface pointer

Implements Acts::SurfaceArray::ISurfaceGridLookup.