23#include "TPCClusterDecompressionCore.inc"
25#include <oneapi/tbb.h>
37 c = *clustersCompressed;
40 return decompress(p, clustersNative, allocator,
param, deterministicRec);
46 throw std::runtime_error(
"Configured solenoid Bz does not match value used for track model encoding");
49 throw std::runtime_error(
"Configured max time bin does not match value used for track model encoding");
57 tbb::parallel_for(tbb::blocked_range<uint32_t>(0, clustersCompressed->
nTracks), [&](
const tbb::blocked_range<uint32_t>&
range) {
58 uint32_t offset = 0, lasti = 0;
59 for (uint32_t i = range.begin(); i < range.end(); i++) {
64 offset += clustersCompressed->nTrackClusters[lasti++];
67 TPCClusterDecompressionCore::decompressTrack(*clustersCompressed, param, maxTime, i, offset, clusters, locks);
74 uint32_t decodedAttachedClusters = 0;
75 for (uint32_t
i = 0;
i < NSECTORS;
i++) {
80 decodedAttachedClusters +=
clusters[
i][
j].size();
88 tbb::parallel_for<uint32_t>(0, NSECTORS, [&](
auto i) {
96 TPCClusterDecompressionCore::decompressHits(*clustersCompressed,
offsets[
i][
j],
end, clout);
97 if (
param.rec.tpc.clustersShiftTimebins != 0.f) {
98 for (uint32_t k = 0; k < clustersNative.
nClusters[
i][
j]; k++) {
100 float t = cl.getTime() +
param.rec.tpc.clustersShiftTimebins;
104 if (
param.continuousMaxTimeBin > 0 && t >
param.continuousMaxTimeBin) {
105 t =
param.continuousMaxTimeBin;
110 if (deterministicRec) {
114 }, tbb::simple_partitioner());
#define TPC_MAX_TIME_BIN_TRIGGERED
static constexpr uint32_t NSECTORS
static int32_t decompress(const o2::tpc::CompressedClustersFlat *clustersCompressed, o2::tpc::ClusterNativeAccess &clustersNative, std::function< o2::tpc::ClusterNative *(size_t)> allocator, const GPUParam ¶m, bool deterministicRec)
GLuint GLsizei const GLuint const GLintptr * offsets
Global TPC definitions and constants.
unsigned int nClusters[constants::MAXSECTOR][constants::MAXGLOBALPADROW]
unsigned int clusterOffset[constants::MAXSECTOR][constants::MAXGLOBALPADROW]
const ClusterNative * clustersLinear
static constexpr int scaleTimePacked
unsigned int nUnattachedClusters
unsigned int nAttachedClusters
const CompressedClusters * ptrForward
std::vector< Cluster > clusters