HerdSoftware
0.3.2
|
Internal lookup table used to speedup WaferID queries as function of position. More...
#include <SiliconDetectorGeoParams.h>
Public Member Functions | |
WaferLookupTable () | |
map of all the waferIDs covered by each cell. More... | |
const std::vector< unsigned int > & | WaferIDsAtPos (std::array< float, 2 > position) |
size_t | PosToCellID (std::array< float, 2 > position) |
void | UpdateNCells (std::array< size_t, 2 > newNcells) |
void | UpdateSurface (std::array< float, 2 > newOrigin, std::array< float, 2 > newSizes) |
void | UpdateInternals (std::vector< Point > waferPositions, std::array< float, 2 > waferSizes, std::pair< RefFrame::Direction, RefFrame::Direction > segmDirections) |
Public Attributes | |
bool | isValid = false |
std::array< size_t, 2 > | ncells |
std::array< float, 2 > | sizes |
Number of cells in the lookup table [primary segm dir, secondary segm dir]. More... | |
std::array< float, 2 > | cellDimension |
Total size of the lookup table [primary segm dir, secondary segm dir]. More... | |
Rectangle | surface |
Physical dimension of the lookup table cell [primary segm dir, secondary segm dir]. More... | |
std::vector< std::vector< unsigned int > > | waferIDs |
Internal lookup table used to speedup WaferID queries as function of position.
The LUT divides the detector surface in cells and for each cell stores the list of waferIDs covered by it. Input position is then converted to a cell number by simple math operations and the corresponding wafers are then checked for intersection more thoroughly.
|
inline |
map of all the waferIDs covered by each cell.
size_t Herd::SiliconDetectorGeoParams::WaferLookupTable::PosToCellID | ( | std::array< float, 2 > | position | ) |
void Herd::SiliconDetectorGeoParams::WaferLookupTable::UpdateInternals | ( | std::vector< Point > | waferPositions, |
std::array< float, 2 > | waferSizes, | ||
std::pair< RefFrame::Direction, RefFrame::Direction > | segmDirections | ||
) |
void Herd::SiliconDetectorGeoParams::WaferLookupTable::UpdateNCells | ( | std::array< size_t, 2 > | newNcells | ) |
void Herd::SiliconDetectorGeoParams::WaferLookupTable::UpdateSurface | ( | std::array< float, 2 > | newOrigin, |
std::array< float, 2 > | newSizes | ||
) |
const std::vector< unsigned int > & Herd::SiliconDetectorGeoParams::WaferLookupTable::WaferIDsAtPos | ( | std::array< float, 2 > | position | ) |
std::array<float, 2> Herd::SiliconDetectorGeoParams::WaferLookupTable::cellDimension |
Total size of the lookup table [primary segm dir, secondary segm dir].
bool Herd::SiliconDetectorGeoParams::WaferLookupTable::isValid = false |
std::array<size_t, 2> Herd::SiliconDetectorGeoParams::WaferLookupTable::ncells |
std::array<float, 2> Herd::SiliconDetectorGeoParams::WaferLookupTable::sizes |
Number of cells in the lookup table [primary segm dir, secondary segm dir].
Rectangle Herd::SiliconDetectorGeoParams::WaferLookupTable::surface |
Physical dimension of the lookup table cell [primary segm dir, secondary segm dir].
std::vector<std::vector<unsigned int> > Herd::SiliconDetectorGeoParams::WaferLookupTable::waferIDs |