1 #ifndef RecoPixelVertexing_PixelVertexFinding_alpaka_clusterTracksByDensity_h 2 #define RecoPixelVertexing_PixelVertexFinding_alpaka_clusterTracksByDensity_h 7 #include <alpaka/alpaka.hpp> 23 template <
typename TAcc>
24 ALPAKA_FN_ACC ALPAKA_FN_INLINE
void __attribute__((always_inline))
25 clusterTracksByDensity(
const TAcc& acc,
35 const uint32_t
threadIdxLocal(alpaka::getIdx<alpaka::Block, alpaka::Threads>(acc)[0u]);
46 float const* __restrict__
zt =
ws.zt();
47 float const* __restrict__
ezt2 =
ws.ezt2();
52 uint8_t* __restrict__
izt =
ws.izt();
53 int32_t* __restrict__
nn =
data.ndof();
54 int32_t* __restrict__
iv =
ws.iv();
63 auto&
hist = alpaka::declareSharedVar<Hist, __COUNTER__>(acc);
64 auto&
hws = alpaka::declareSharedVar<Hist::Counter[32], __COUNTER__>(acc);
69 alpaka::syncBlockThreads(acc);
73 printf(
"booked hist with %d bins, size %d for %d tracks\n",
hist.totbins(),
hist.capacity(),
nt);
83 izt[
i] = iz - INT8_MIN;
90 alpaka::syncBlockThreads(acc);
93 alpaka::syncBlockThreads(acc);
95 alpaka::syncBlockThreads(acc);
100 alpaka::syncBlockThreads(acc);
105 auto loop = [&](uint32_t
j) {
118 alpaka::syncBlockThreads(acc);
123 auto loop = [&](uint32_t
j) {
138 alpaka::syncBlockThreads(acc);
146 alpaka::syncBlockThreads(acc);
158 alpaka::syncBlockThreads(acc);
171 auto loop = [&](uint32_t
j) {
189 alpaka::syncBlockThreads(acc);
192 auto&
foundClusters = alpaka::declareSharedVar<unsigned int, __COUNTER__>(acc);
194 alpaka::syncBlockThreads(acc);
199 if (
iv[
i] ==
int(
i)) {
208 alpaka::syncBlockThreads(acc);
219 alpaka::syncBlockThreads(acc);
234 template <
typename TAcc>
248 #endif // RecoPixelVertexing_PixelVertexFinding_alpaka_clusterTracksByDensity_h
uint8_t *__restrict__ izt
ALPAKA_FN_ACC void operator()(const TAcc &acc, VtxSoAView pdata, WsSoAView pws, int minT, float eps, float errmax, float chi2max) const
const uint32_t threadIdxLocal(alpaka::getIdx< alpaka::Block, alpaka::Threads >(acc)[0u])
ALPAKA_FN_ACC ALPAKA_FN_INLINE void VtxSoAView & pdata
ALPAKA_FN_ACC ALPAKA_FN_INLINE void VtxSoAView WsSoAView int float eps
uint32_t & nvIntermediate
ALPAKA_FN_ACC ALPAKA_FN_INLINE void VtxSoAView WsSoAView int float float errmax
constexpr uint32_t MAXTRACKS
ALPAKA_ASSERT_OFFLOAD(zt)
float const *__restrict__ ezt2
ZVertexSoAHeterogeneousLayout<>::View ZVertexSoAView
T1 atomicInc(T1 *a, T2 b)
ALPAKA_FN_ACC ALPAKA_FN_INLINE void VtxSoAView WsSoAView & pws
Abs< T >::type abs(const T &t)
ALPAKA_FN_ACC ALPAKA_FN_INLINE void VtxSoAView WsSoAView int minT
PixelVertexWSSoALayout<>::View PixelVertexWorkSpaceSoAView
::vertexFinder::PixelVertexWorkSpaceSoAView WsSoAView
ALPAKA_FN_ACC ALPAKA_FN_INLINE void VtxSoAView WsSoAView int float float float chi2max
float const *__restrict__ zt
::reco::ZVertexSoAView VtxSoAView
constexpr uint32_t MAXVTX
ALPAKA_FN_ACC ALPAKA_FN_INLINE void __attribute__((always_inline)) clusterTracksByDensity(const TAcc &acc