Project
Loading...
Searching...
No Matches
GPUTPCCFCheckPadBaseline.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 O2_GPU_GPU_TPC_CF_CHECK_PAD_BASELINE_H
16#define O2_GPU_GPU_TPC_CF_CHECK_PAD_BASELINE_H
17
18#include "GPUGeneralKernels.h"
19#include "GPUConstantMem.h"
20
21#include "clusterFinderDefs.h"
22
23namespace o2::gpu
24{
25
27{
28
29 public:
30 enum {
33 NumOfCachedTimebins = GPUCA_GET_THREAD_COUNT(GPUCA_LB_GPUTPCCFCheckPadBaseline) / PadsPerCacheline,
34 };
35
39
42 {
43 return processors.tpcClusterer;
44 }
45
46 GPUhdi() constexpr static GPUDataTypes::RecoStep GetRecoStep()
47 {
48 return GPUDataTypes::RecoStep::TPCClusterFinding;
49 }
50
51 template <int32_t iKernel = defaultKernel>
52 GPUd() static void Thread(int32_t nBlocks, int32_t nThreads, int32_t iBlock, int32_t iThread, GPUSharedMemory& smem, processorType& clusterer);
53
54 private:
55 GPUd() static ChargePos padToChargePos(int32_t& pad, const GPUTPCClusterFinder&);
56 GPUd() static void updatePadBaseline(int32_t pad, const GPUTPCClusterFinder&, int32_t totalCharges, int32_t consecCharges, tpccf::Charge maxCharge);
57};
58
59} // namespace o2::gpu
60
61#endif
#define GPUCA_GET_THREAD_COUNT(...)
int32_t int32_t int32_t processorType & processors
GPUd() static void Thread(int32_t nBlocks
int32_t int32_t int32_t GPUSharedMemory & smem
GPUhdi() static processorType *Processor(GPUConstantMem &processors)
GPUhdi() const expr static GPUDataTypes
int32_t int32_t int32_t GPUSharedMemory processorType & clusterer
tpccf::Charge charges[PadsPerCacheline][NumOfCachedTimebins]