1 #ifndef RecoPixelVertexing_PixelTriplets_plugins_gpuFishbone_h
2 #define RecoPixelVertexing_PixelTriplets_plugins_gpuFishbone_h
23 uint32_t
const* __restrict__
nCells,
29 auto const&
hh = *
hhp;
41 auto size = vc.size();
47 auto xo =
c0.outer_x(
hh);
48 auto yo =
c0.outer_y(
hh);
49 auto zo =
c0.outer_z(
hh);
51 for (int32_t ic = 0; ic <
size; ++ic) {
52 auto& ci =
cells[vc[ic]];
55 if (checkTrack && ci.tracks().empty())
58 d[sg] = ci.inner_detIndex(
hh);
59 x[sg] = ci.inner_x(
hh) - xo;
60 y[sg] = ci.inner_y(
hh) - yo;
61 z[sg] = ci.inner_z(
hh) - zo;
62 n[sg] = x[sg] * x[sg] + y[sg] * y[sg] + z[sg] * z[sg];
68 for (int32_t ic = firstX; ic < sg - 1; ic +=
blockDim.x) {
70 for (
auto jc = ic + 1; jc < sg; ++jc) {
75 auto cos12 = x[ic] * x[jc] + y[ic] * y[jc] + z[ic] * z[jc];
76 if (
d[ic] !=
d[jc] && cos12 * cos12 >= 0.99999
f *
n[ic] *
n[jc]) {
91 #endif // RecoPixelVertexing_PixelTriplets_plugins_gpuFishbone_h