|
ACTS
Experiment-independent tracking
|
A spherical space point grid for seeding, binned in (phi, eta, r). More...
#include <Acts/Seeding/SphericalSpacePointGrid.hpp>
Classes | |
| struct | Config |
| Configuration parameters for the spherical space point grid. More... | |
Public Types | |
| using | CotThetaAxisType = GridBase::AxisTypeAt<1> |
| Type alias for the middle (cot(theta)) axis with variable binning and open boundaries. | |
| using | GridBase |
| Type alias for the CRTP base class. | |
| using | PhiAxisType = GridBase::AxisTypeAt<0> |
| Type alias for the phi axis (equidistant binning, closed boundaries). | |
| using | RAxisType = GridBase::AxisTypeAt<2> |
| Type alias for the r axis (variable binning, open boundaries). | |
Public Member Functions | |
| SphericalSpacePointGrid (const Config &config, std::unique_ptr< const Logger > logger=getDefaultLogger("SphericalSpacePointGrid", Logging::Level::INFO)) | |
| Construct a spherical space point grid with the given configuration and an optional logger. | |
| std::optional< std::size_t > | binIndex (float phi, float cotTheta, float r) const |
| Get the bin index for a space point. | |
| Range1D< float > | computeRadiusRange (const SpacePointContainer &spacePoints) const |
| Compute the range of radii in the grid. | |
| std::optional< std::size_t > | insert (const ConstSpacePointProxy &sp) |
| Insert a space point into the grid, binning it by cot(theta) = z / r (a single division; assumes r > 0); see the class documentation. | |
| std::optional< std::size_t > | insert (SpacePointIndex index, float phi, float cotTheta, float r) |
| Insert a space point into the grid. | |
| void | sortBinsByR (const SpacePointContainer &spacePoints) |
| Sort the bins in the grid by the space point radius, which is required by some algorithms that operate on the grid. | |
A spherical space point grid for seeding, binned in (phi, eta, r).
A space point's eta bin is found from cot(theta) = z / r (a single division), matched against bin edges that are stored as sinh(eta). Since cot(theta) = sinh(eta), comparing z / r against those edges places the point into exactly its eta bin, with no atan2 / tan / log / asinh.
| using Acts::Experimental::SphericalSpacePointGrid::CotThetaAxisType = GridBase::AxisTypeAt<1> |
Type alias for the middle (cot(theta)) axis with variable binning and open boundaries.
Edges are stored as sinh(eta) = cot(theta), so the binning is configured in eta while space points are placed by z / r (see class doc).
Type alias for the CRTP base class.
|
explicit |
Construct a spherical space point grid with the given configuration and an optional logger.
| config | Configuration for the spherical grid |
| logger | Optional logger instance for debugging output |
| std::optional< std::size_t > Acts::Experimental::SphericalSpacePointGrid::binIndex | ( | float | phi, |
| float | cotTheta, | ||
| float | r ) const |
Get the bin index for a space point.
| phi | The azimuthal angle of the space point in radians |
| cotTheta | cot(theta) = z / r, used to place the point in its eta bin via cot(theta) = z / r = sinh(eta) |
| r | The radial distance of the space point from the origin |
| Range1D< float > Acts::Experimental::SphericalSpacePointGrid::computeRadiusRange | ( | const SpacePointContainer & | spacePoints | ) | const |
Compute the range of radii in the grid.
This requires the grid to be filled with space points and sorted by radius. The sorting can be done with the sortBinsByR method.
| spacePoints | The space point container to compute the radius range |
| std::optional< std::size_t > Acts::Experimental::SphericalSpacePointGrid::insert | ( | const ConstSpacePointProxy & | sp | ) |
Insert a space point into the grid, binning it by cot(theta) = z / r (a single division; assumes r > 0); see the class documentation.
| sp | The space point to insert |
| std::optional< std::size_t > Acts::Experimental::SphericalSpacePointGrid::insert | ( | SpacePointIndex | index, |
| float | phi, | ||
| float | cotTheta, | ||
| float | r ) |
Insert a space point into the grid.
| index | The index of the space point to insert |
| phi | The azimuthal angle of the space point in radians |
| cotTheta | cot(theta) = z / r, used to place the point in its eta bin via cot(theta) = z / r = sinh(eta) |
| r | The radial distance of the space point from the origin |
| void Acts::Experimental::SphericalSpacePointGrid::sortBinsByR | ( | const SpacePointContainer & | spacePoints | ) |
Sort the bins in the grid by the space point radius, which is required by some algorithms that operate on the grid.
| spacePoints | The space point container to sort the bins by radius |