Project
Loading...
Searching...
No Matches
GPUTPCNeighboursFinder.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 GPUTPCNEIGHBOURSFINDER_H
16#define GPUTPCNEIGHBOURSFINDER_H
17
18#include "GPUTPCDef.h"
19#include "GPUTPCRow.h"
20#include "GPUGeneralKernels.h"
21#include "GPUConstantMem.h"
22
23namespace o2::gpu
24{
25class GPUTPCTracker;
26
32{
33 public:
35 int32_t mNHits; // n hits
36 float mUpDx; // x distance to the next row
37 float mDnDx; // x distance to the previous row
38 float mUpTx; // normalized x distance to the next row
39 float mDnTx; // normalized x distance to the previous row
40 int32_t mIRow; // row number
41 int32_t mIRowUp; // next row number
42 int32_t mIRowDn; // previous row number
43#if GPUCA_NEIGHBOURS_FINDER_MAX_NNEIGHUP > 0
44 float mA1[GPUCA_NEIGHBOURS_FINDER_MAX_NNEIGHUP][GPUCA_GET_THREAD_COUNT(GPUCA_LB_GPUTPCNeighboursFinder)];
45 float mA2[GPUCA_NEIGHBOURS_FINDER_MAX_NNEIGHUP][GPUCA_GET_THREAD_COUNT(GPUCA_LB_GPUTPCNeighboursFinder)];
46 calink mB[GPUCA_NEIGHBOURS_FINDER_MAX_NNEIGHUP][GPUCA_GET_THREAD_COUNT(GPUCA_LB_GPUTPCNeighboursFinder)];
47#endif
49 };
50
51 typedef GPUconstantref() GPUTPCTracker processorType;
52 GPUhdi() constexpr static GPUDataTypes::RecoStep GetRecoStep() { return GPUCA_RECO_STEP::TPCSectorTracking; }
53 GPUhdi() static processorType* Processor(GPUConstantMem& processors)
54 {
55 return processors.tpcTrackers;
56 }
57 template <int32_t iKernel = defaultKernel>
58 GPUd() static void Thread(int32_t nBlocks, int32_t nThreads, int32_t iBlock, int32_t iThread, GPUsharedref() GPUSharedMemory& smem, processorType& tracker);
59};
60} // namespace o2::gpu
61
62#endif // GPUTPCNEIGHBOURSFINDER_H
#define GPUsharedref()
#define GPUCA_NEIGHBOURS_FINDER_MAX_NNEIGHUP
#define GPUCA_GET_THREAD_COUNT(...)
int32_t int32_t int32_t processorType & processors
typedef GPUconstantref() GPUTPCTracker processorType
GPUd() static void Thread(int32_t nBlocks
int32_t int32_t int32_t processorType & tracker
GPUhdi() static processorType *Processor(GPUConstantMem &processors)
GPUhdi() const expr static GPUDataTypes
uint32_t calink
Definition GPUTPCDef.h:30