Struct SurfaceArray::ISurfaceGridLookup

Nested Relationships

This struct is a nested type of Class SurfaceArray.

Inheritance Relationships

Derived Types

Struct Documentation

struct Acts::SurfaceArray::ISurfaceGridLookup

Base interface for all surface lookups.

Subclassed by Acts::SurfaceArray::SingleElementLookup, Acts::SurfaceArray::SurfaceGridLookup< Axes >

Public Functions

~ISurfaceGridLookup() = 0

Pure virtual destructor.

std::vector<BinningValue> binningValues() const

The binning values described by this surface grid lookup They are in order of the axes (optional) and empty for eingle lookups.

size_t completeBinning(const GeometryContext &gctx, const SurfaceVector &surfaces) = 0

Attempts to fix sub-optimal binning by filling closest Surfaces into empty bin.

Return

number of bins that were filled

Parameters
  • gctx: The current geometry context object, e.g. alignment

  • surfaces: The surface pointers to fill

size_t dimensions() const = 0

Get the number of dimensions of the grid.

Return

number of dimensions

void fill(const GeometryContext &gctx, const SurfaceVector &surfaces) = 0

Fill provided surfaces into the contained Grid.

Parameters
  • gctx: The current geometry context object, e.g. alignment

  • surfaces: Input surface pointers

std::vector<const IAxis*> getAxes() const = 0

Returns copies of the axes used in the grid as AnyAxis.

Return

The axes

Note

This returns copies. Use for introspection and querying.

Vector3 getBinCenter(size_t bin) const = 0

Gets the center position of bin bin in global coordinates.

Return

The bin center

Parameters
  • bin: the global bin index

bool isValidBin(size_t bin) const = 0

Checks if global bin is valid.

Return

bool if the bin is valid

Note

Valid means that the index points to a bin which is not a under or overflow bin or out of range in any axis.

Parameters
  • bin: the global bin index

SurfaceVector &lookup(const Vector3 &position) = 0

Performs lookup at pos and returns bin content as reference.

Return

SurfaceVector at given bin

Parameters
  • position: Lookup position

const SurfaceVector &lookup(const Vector3 &position) const = 0

Performs lookup at pos and returns bin content as const reference.

Return

SurfaceVector at given bin

Parameters
  • position: Lookup position

SurfaceVector &lookup(size_t bin) = 0

Performs lookup at global bin and returns bin content as reference.

Return

SurfaceVector at given bin

Parameters
  • bin: Global lookup bin

const SurfaceVector &lookup(size_t bin) const = 0

Performs lookup at global bin and returns bin content as const reference.

Return

SurfaceVector at given bin

Parameters
  • bin: Global lookup bin

const SurfaceVector &neighbors(const Vector3 &position) const = 0

Performs a lookup at pos, but returns neighbors as well.

Return

SurfaceVector at given bin. Copy of all bins selected

Parameters
  • position: Lookup position

size_t size() const = 0

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

Return

Size of the grid data structure