Project
Loading...
Searching...
No Matches
GPUTPCTrackletSelector.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
14
15#ifndef GPUTPCTRACKLETSELECTOR_H
16#define GPUTPCTRACKLETSELECTOR_H
17
18#include "GPUTPCDef.h"
19#include "GPUTPCHitId.h"
20#include "GPUGeneralKernels.h"
21#include "GPUConstantMem.h"
22
23namespace o2::gpu
24{
25class GPUTPCTracker;
26
32{
33 public:
35 int32_t mItr0; // index of the first track in the block
36 int32_t mNThreadsTotal; // total n threads
37 int32_t mNTracklets; // n of tracklets
38 int32_t mReserved; // for alignment reasons
39#if GPUCA_TRACKLET_SELECTOR_HITS_REG_SIZE != 0
40 GPUTPCHitId mHits[GPUCA_TRACKLET_SELECTOR_HITS_REG_SIZE][GPUCA_GET_THREAD_COUNT(GPUCA_LB_GPUTPCTrackletSelector)];
41#endif // GPUCA_TRACKLET_SELECTOR_HITS_REG_SIZE != 0
42 };
43
44 typedef GPUconstantref() GPUTPCTracker processorType;
45 GPUhdi() constexpr static GPUDataTypes::RecoStep GetRecoStep() { return GPUCA_RECO_STEP::TPCSectorTracking; }
46 GPUhdi() static processorType* Processor(GPUConstantMem& processors)
47 {
48 return processors.tpcTrackers;
49 }
50 template <int32_t iKernel = defaultKernel>
51 GPUd() static void Thread(int32_t nBlocks, int32_t nThreads, int32_t iBlock, int32_t iThread, GPUsharedref() GPUSharedMemory& smem, processorType& tracker);
52};
53} // namespace o2::gpu
54
55#endif // GPUTPCTRACKLETSELECTOR_H
#define GPUsharedref()
#define GPUCA_TRACKLET_SELECTOR_HITS_REG_SIZE
#define GPUCA_GET_THREAD_COUNT(...)
int32_t int32_t int32_t processorType & processors
typedef GPUconstantref() GPUTPCTracker processorType
GPUhdi() const expr static GPUDataTypes
GPUhdi() static processorType *Processor(GPUConstantMem &processors)
GPUd() static void Thread(int32_t nBlocks
int32_t int32_t int32_t processorType & tracker