1 #ifndef RecoPixelVertexing_PixelTriplets_plugins_gpuFishbone_h
2 #define RecoPixelVertexing_PixelTriplets_plugins_gpuFishbone_h
17 namespace gpuPixelDoublets {
21 uint32_t
const* __restrict__
nCells,
27 auto const&
hh = *
hhp;
43 auto size = vc.size();
48 auto const& c0 = cells[vc[0]];
49 auto xo = c0.outer_x(
hh);
50 auto yo = c0.outer_y(
hh);
51 auto zo = c0.outer_z(
hh);
53 for (int32_t ic = 0; ic <
size; ++ic) {
54 auto& ci = cells[vc[ic]];
57 if (checkTrack && ci.tracks().empty())
61 d[sg] = ci.inner_detIndex(
hh);
62 x[sg] = ci.inner_x(
hh) - xo;
63 y[sg] = ci.inner_y(
hh) - yo;
64 z[sg] = ci.inner_z(
hh) - zo;
65 n[sg] = x[sg] * x[sg] + y[sg] * y[sg] + z[sg] * z[sg];
71 for (int32_t ic = firstX; ic < sg - 1; ic +=
blockDim.x) {
72 auto& ci = cells[cc[ic]];
73 for (
auto jc = ic + 1; jc < sg; ++jc) {
74 auto& cj = cells[cc[jc]];
77 auto cos12 = x[ic] * x[jc] + y[ic] * y[jc] + z[ic] * z[jc];
78 if (d[ic] != d[jc] && cos12 * cos12 >= 0.99999
f * n[ic] * n[jc]) {
81 bool sameLayer = l[ic] == l[jc];
85 ci.setFishbone(cj.inner_hit_id());
95 cj.setFishbone(ci.inner_hit_id());
107 #endif // RecoPixelVertexing_PixelTriplets_plugins_gpuFishbone_h
__device__ uint32_t GPUCACell * cells
static constexpr auto maxCellsPerHit
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell isOuterHitOfCell
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const GPUCACell::OuterHitOfCell const int32_t nHits
constexpr uint32_t maxCellsPerHit
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ hhp
__device__ CellTracksVector Hits const int layerPairId
tuple size
Write out results.
__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const &__restrict__ hh
OuterHitOfCellContainer * container