1 #ifndef RecoPixelVertexing_PixelTriplets_plugins_gpuFishbone_h 2 #define RecoPixelVertexing_PixelTriplets_plugins_gpuFishbone_h 21 uint32_t
const* __restrict__
nCells,
27 auto const&
hh = *
hhp;
43 auto size = vc.size();
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())
60 l[sg] = ci.layerPairId();
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(), cj.inner_z(
hh),
hh);
95 cj.setFishbone(ci.inner_hit_id(), ci.inner_z(
hh),
hh);
107 #endif // RecoPixelVertexing_PixelTriplets_plugins_gpuFishbone_h
__device__ uint32_t GPUCACell * cells
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell isOuterHitOfCell
static constexpr auto maxCellsPerHit
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__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const &__restrict__ hh
OuterHitOfCellContainer * container