26GPUdii()
void GPUTPCCFPeakFinder::Thread<0>(int32_t nBlocks, int32_t nThreads, int32_t iBlock, int32_t iThread, GPUSharedMemory& smem, processorType& clusterer)
30 findPeaksImpl(
get_num_groups(0),
get_local_size(0),
get_group_id(0),
get_local_id(0), smem, chargeMap, clusterer.mPpadIsNoisy, clusterer.mPpositions, clusterer.mPmemory->counters.nPositions, clusterer.Param().rec, *clusterer.GetConstantMem()->calibObjects.tpcPadGain, clusterer.mPisPeak, isPeakMap);
34 GPUSharedMemory& smem,
45 bool belowThreshold = (uint32_t)q <= calib.tpc.cfQMaxCutoff;
47 uint16_t lookForPeaks;
48 uint16_t partId = CfUtils::partition<SCRATCH_PAD_WORK_GROUP_SIZE>(
52 SCRATCH_PAD_WORK_GROUP_SIZE,
55 if (partId < lookForPeaks) {
56 posBcast[partId] =
pos;
60 CfUtils::blockLoad<PackedCharge>(
63 SCRATCH_PAD_WORK_GROUP_SIZE,
67 cfconsts::InnerNeighbors,
79 int32_t
idx = N * partId;
81 peak = peak &&
buf[
idx + 0].unpack() <= q;
82 peak = peak &&
buf[
idx + 1].unpack() <= q;
83 peak = peak &&
buf[
idx + 2].unpack() <= q;
84 peak = peak &&
buf[
idx + 3].unpack() <= q;
85 peak = peak &&
buf[
idx + 4].unpack() < q;
86 peak = peak &&
buf[
idx + 5].unpack() < q;
87 peak = peak &&
buf[
idx + 6].unpack() < q;
88 peak = peak &&
buf[
idx + 7].unpack() < q;
95 const uint8_t* padHasLostBaseline,
100 uint8_t* isPeakPredicate,
108 CfChargePos pos = positions[CAMath::Min<SizeT>(idx, digitnum - 1)];
111 bool hasLostBaseline =
pos.valid() ? padHasLostBaseline[
pos.gpad] :
true;
117 bool iamDummy = (idx >= digitnum);
122 isPeakPredicate[idx] = peak;
125 peakMap[
pos] = (uint8_t(
charge > calib.tpc.cfInnerThreshold) << 1) | peak;
#define get_local_size(dim)
#define get_local_id(dim)
#define get_num_groups(dim)
#define GPUCA_THREAD_INFO_PROVIDE
#define get_global_id(dim)
#define get_group_id(dim)
#define GPUCA_THREAD_INFO_DECL
GPUdii() void GPUTPCCFPeakFinder
GPUd() void GPUTPCCFPeakFinder
#define SCRATCH_PAD_SEARCH_N
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
GLenum GLuint GLenum GLsizei const GLchar * buf