13#ifndef TRACKINGITSGPU_INCLUDE_TIMEFRAMECHUNKGPU_H
14#define TRACKINGITSGPU_INCLUDE_TIMEFRAMECHUNKGPU_H
20#include "ITStrackingGPU/Stream.h"
106 std::array<gsl::span<const Cluster>, nLayers> mHostClusters;
107 std::array<gsl::span<const int>, nLayers> mHostIndexTables;
110 std::array<Cluster*, nLayers> mClustersDevice;
111 std::array<int*, nLayers> mClusterExternalIndicesDevice;
112 std::array<int*, nLayers> mIndexTablesDevice;
113 std::array<
Tracklet*, nLayers - 1> mTrackletsDevice;
114 std::array<
int*, nLayers - 1> mTrackletsLookupTablesDevice;
115 std::array<
CellSeed*, nLayers - 2> mCellsDevice;
117 std::array<
int*, nLayers - 2> mCellsLookupTablesDevice;
118 std::array<
int*, nLayers - 3> mNeighboursCellDevice;
119 std::array<
int*, nLayers - 3> mNeighboursCellLookupTablesDevice;
120 std::array<
int*, nLayers - 2> mRoadsLookupTablesDevice;
124 int** mNeighboursCellDeviceArray;
125 int** mNeighboursCellLookupTablesDeviceArray;
128 int* mCUBTmpBufferDevice;
129 int* mFoundTrackletsDevice;
130 int* mNFoundCellsDevice;
134 int* mNFoundLinesDevice;
135 int* mNExclusiveFoundLinesDevice;
136 unsigned char* mUsedTrackletsDevice;
137 std::array<int*, 2> mNTrackletsPerClusterDevice;
138 int* mClusteredLinesDevice;
141 bool mAllocated =
false;
143 size_t mNPopulatedRof = 0;
GPU-compliant version of ClusterLines, for the moment separated, might create a common traits for Clu...
int * getDeviceClusterExternalIndices(const int)
int * getDeviceNExclusiveFoundLines()
CellSeed ** getDeviceArrayCells() const
int * getDeviceRoadsLookupTables(const int)
int * getDeviceCellsLookupTables(const int)
int * getDeviceClusteredLines()
int * getDeviceCellNeighbours(const int)
int * getDeviceNFoundLines()
int * getDeviceNFoundCells()
size_t getNPopulatedRof() const
GpuTimeFrameChunk()=delete
int * getDeviceTrackletsLookupTables(const int)
void reset(const Task, Stream &)
int ** getDeviceArrayNeighboursCell() const
unsigned char * getDeviceUsedTracklets()
int * getDeviceCUBTmpBuffer()
int * getDeviceFoundTracklets()
static size_t computeScalingSizeBytes(const int, const TimeFrameGPUParameters &)
void allocate(const size_t, Stream &)
Most relevant operations.
size_t loadDataOnDevice(const size_t, const size_t, const int, Stream &)
GpuTimeFrameChunk(o2::its::TimeFrame *tf, TimeFrameGPUParameters &conf)
int ** getDeviceArrayNeighboursCellLUT() const
CellSeed * getDeviceCells(const int)
Cluster * getDeviceClusters(const int)
Interface.
static size_t computeFixedSizeBytes(const TimeFrameGPUParameters &)
TimeFrameGPUParameters * getTimeFrameGPUParameters() const
int * getDeviceCellNeigboursLookupTables(const int)
Tracklet * getDeviceTracklets(const int)
int * getDeviceIndexTables(const int)
int * getDeviceNTrackletCluster(const int combid)
Vertexer only.
static size_t computeRofPerChunk(const TimeFrameGPUParameters &, const size_t)
std::unique_ptr< GPUReconstructionTimeframe > tf
float CellDeltaTanLambdaSigma
Cell finding cuts.
int ClusterSharing
General parameters.
void set(const TrackingParameters &pars)
StaticTrackingParameters< nLayers > & operator=(const StaticTrackingParameters< nLayers > &t)=default
float CellDeltaTanLambdaSigma
Cell finding cuts.
int ClusterSharing
General parameters.