ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::Experimental::GbtsNodeStorage Class Referencefinal

Storage for the GBTS graph nodes. More...

#include <Acts/Seeding/GbtsNodeStorage.hpp>

Public Member Functions

 GbtsNodeStorage (const GbtsNodeStorage &)=delete
 Filled storage is not relocatable: the column proxies point into the space point container held by value.
 GbtsNodeStorage (GbtsNodeStorage &&)=delete
void extend (const SpacePointContainer &spacePoints, const ConstSpacePointColumnProxy< GbtsLayerIndex > &layerColumn, const ConstSpacePointColumnProxy< float > &clusterWidthColumn, const ConstSpacePointColumnProxy< float > &localPositionYColumn)
 Insert every space point of a container.
void finalize ()
 Sort the nodes by (eta bin, phi) and build the derived per-node data.
bool hasStrips () const
 Whether any node carries a stereo pair, i.e.
std::optional< std::uint32_t > insert (const ConstSpacePointProxy &sp, const ConstSpacePointColumnProxy< GbtsLayerIndex > &layerColumn, const ConstSpacePointColumnProxy< float > &clusterWidthColumn, const ConstSpacePointColumnProxy< float > &localPositionYColumn, bool strips=false)
 Insert a space point from an ACTS space point container.
std::optional< std::uint32_t > insert (SpacePointIndex index, float x, float y, float z, float r, float phi, GbtsLayerIndex layerIndex, float clusterWidth=0.f, float localPositionY=0.f, const OuterStripSpacePointCalibrationDetails *strip=nullptr)
 [gbts insert]
std::optional< std::uint32_t > insert (SpacePointIndex index, float x, float y, float z, GbtsLayerIndex layerIndex, float clusterWidth=0.f, float localPositionY=0.f)
std::uint32_t numberOfNodes () const
 Get the total number of nodes.
GbtsNodeStorageoperator= (const GbtsNodeStorage &)=delete
GbtsNodeStorageoperator= (GbtsNodeStorage &&)=delete
SpacePointIndex spacePointIndex (SpacePointIndex node) const
 Map a node index back to the index the caller used when inserting it.

Static Public Attributes

static constexpr std::uint32_t kMaxPhiSortBuckets = 31
 Maximum Config::phiSortBuckets; sizes the fixed bucket array.

Detailed Description

Storage for the GBTS graph nodes.

Nodes go in one at a time through insert, which takes plain scalars so that a caller can fill the storage from its own space point EDM. finalize then orders the nodes by (eta bin, phi) into a space point container, with the derived per-node data in dynamic columns on that container.

Member Function Documentation

◆ extend()

void Acts::Experimental::GbtsNodeStorage::extend ( const SpacePointContainer & spacePoints,
const ConstSpacePointColumnProxy< GbtsLayerIndex > & layerColumn,
const ConstSpacePointColumnProxy< float > & clusterWidthColumn,
const ConstSpacePointColumnProxy< float > & localPositionYColumn )

Insert every space point of a container.

A container carrying SpacePointColumns::StripCalibrationDetails has its stereo pairs taken with it, for the layers the configuration marks as strip layers.

Parameters
spacePointsThe space points to insert
layerColumnColumn holding the dense GBTS layer index
clusterWidthColumnColumn holding the pixel cluster width
localPositionYColumnColumn holding the local y cluster position

◆ finalize()

void Acts::Experimental::GbtsNodeStorage::finalize ( )

Sort the nodes by (eta bin, phi) and build the derived per-node data.

Must be called once after all inserts and before the storage is read.

◆ hasStrips()

bool Acts::Experimental::GbtsNodeStorage::hasStrips ( ) const

Whether any node carries a stereo pair, i.e.

whether the graph has a strip path to take. A caller that fed strip space points in can check here that their pairs arrived.

Returns
Whether there are any

◆ insert() [1/3]

std::optional< std::uint32_t > Acts::Experimental::GbtsNodeStorage::insert ( const ConstSpacePointProxy & sp,
const ConstSpacePointColumnProxy< GbtsLayerIndex > & layerColumn,
const ConstSpacePointColumnProxy< float > & clusterWidthColumn,
const ConstSpacePointColumnProxy< float > & localPositionYColumn,
bool strips = false )

Insert a space point from an ACTS space point container.

Parameters
spThe space point to insert
layerColumnColumn holding the dense GBTS layer index
clusterWidthColumnColumn holding the pixel cluster width
localPositionYColumnColumn holding the local y cluster position
stripsWhether the container carries the stereo pairs
Returns
The eta bin the node was placed in, or nullopt if it was rejected

◆ insert() [2/3]

std::optional< std::uint32_t > Acts::Experimental::GbtsNodeStorage::insert ( SpacePointIndex index,
float x,
float y,
float z,
float r,
float phi,
GbtsLayerIndex layerIndex,
float clusterWidth = 0.f,
float localPositionY = 0.f,
const OuterStripSpacePointCalibrationDetails * strip = nullptr )

[gbts insert]

Insert a space point for callers that already have r and phi.

Parameters
indexIndex of the space point in the caller's own collection
xGlobal x coordinate
yGlobal y coordinate
zGlobal z coordinate
rTransverse distance from the beamline
phiAzimuthal angle in the xy plane
layerIndexDense GBTS layer index
clusterWidthPixel cluster width
localPositionYLocal y cluster position
stripStereo pair the point was formed from, null for a pixel one
Returns
The eta bin the node was placed in, or nullopt if it was rejected

◆ insert() [3/3]

std::optional< std::uint32_t > Acts::Experimental::GbtsNodeStorage::insert ( SpacePointIndex index,
float x,
float y,
float z,
GbtsLayerIndex layerIndex,
float clusterWidth = 0.f,
float localPositionY = 0.f )

[gbts insert] Insert a space point, deriving r and phi from the global position.

Parameters
indexIndex of the space point in the caller's own collection
xGlobal x coordinate
yGlobal y coordinate
zGlobal z coordinate
layerIndexDense GBTS layer index
clusterWidthPixel cluster width
localPositionYLocal y cluster position
Returns
The eta bin the node was placed in, or nullopt if it was rejected

◆ numberOfNodes()

std::uint32_t Acts::Experimental::GbtsNodeStorage::numberOfNodes ( ) const

Get the total number of nodes.

Returns
Total number of nodes

◆ spacePointIndex()

SpacePointIndex Acts::Experimental::GbtsNodeStorage::spacePointIndex ( SpacePointIndex node) const

Map a node index back to the index the caller used when inserting it.

Parameters
nodeNode index
Returns
The caller's space point index