44 GPUhdi()
int getNzBins()
const {
return mNzBins; }
45 GPUhdi()
int getNphiBins()
const {
return mNphiBins; }
46 GPUhdi() float getLayerZ(
int i)
const {
return mLayerZ[
i]; }
53 float mInversePhiBinSize = 0.f;
54 std::array<float, nLayers> mLayerZ{};
55 std::array<float, nLayers> mInverseZBinSize{};
64 mNphiBins =
params.PhiBins;
65 for (
int iLayer{0}; iLayer <
params.LayerZ.size(); ++iLayer) {
66 mLayerZ[iLayer] =
params.LayerZ[iLayer];
68 for (
unsigned int iLayer{0}; iLayer <
params.LayerZ.size(); ++iLayer) {
69 mInverseZBinSize[iLayer] = 0.5f *
params.ZBins /
params.LayerZ[iLayer];
76 return 0.5f * mNzBins / mLayerZ[layerIndex];
82 return (zCoordinate + mLayerZ[layerIndex]) * mInverseZBinSize[layerIndex];
86GPUhdi()
int IndexTableUtils<nLayers>::getPhiBinIndex(const
float currentPhi)
const
88 return (currentPhi * mInversePhiBinSize);
92GPUhdi()
int IndexTableUtils<nLayers>::getBinIndex(const
int zIndex, const
int phiIndex)
const
94 return o2::gpu::GPUCommonMath::Min(phiIndex * mNzBins + zIndex, mNzBins * mNphiBins - 1);
98GPUhdi()
int IndexTableUtils<nLayers>::countRowSelectedBins(const
int* indexTable, const
int phiBinIndex,
99 const
int minZBinIndex, const
int maxZBinIndex)
const
101 const int firstBinIndex{getBinIndex(minZBinIndex, phiBinIndex)};
102 const int maxBinIndex{firstBinIndex + maxZBinIndex - minZBinIndex + 1};
104 return indexTable[maxBinIndex] - indexTable[firstBinIndex];
107template <
int nLayers>
110 printf(
"NzBins: %d, NphiBins: %d, InversePhiBinSize: %f\n", mNzBins, mNphiBins, mInversePhiBinSize);
111 for (
int iLayer{0}; iLayer <
nLayers; ++iLayer) {
112 printf(
"Layer %d: Z: %f, InverseZBinSize: %f\n", iLayer, mLayerZ[iLayer], mInverseZBinSize[iLayer]);