CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Typedefs | Functions | Variables
gpuPixelDoublets Namespace Reference

Typedefs

using CellNeighbors = caConstants::CellNeighbors
 
using CellNeighborsVector = caConstants::CellNeighborsVector
 
using CellTracks = caConstants::CellTracks
 
using CellTracksVector = caConstants::CellTracksVector
 
using PhiBinner = TrackingRecHit2DSOAView::PhiBinner
 

Functions

 __attribute__ ((always_inline)) void fishbone(GPUCACell
 
 __syncthreads ()
 
 assert (offsets)
 
 assert (nPairs<=nPairsMax)
 
 doubletsFromHisto (layerPairs, nActualPairs, cells, nCells, cellNeighbors, cellTracks, hh, isOuterHitOfCell, phicuts, minz, maxz, maxr, ideal_cond, doClusterCut, doZ0Cut, doPtCut, maxNumOfDoublets)
 
 for (auto j=idy;j< ntot;j+=blockDim.y *gridDim.y)
 
 if (threadIdx.y==0 &&threadIdx.x==0)
 

Variables

uint32_t CellNeighborsVectorcellNeighbors
 
__device__ uint32_t GPUCACellcells
 
uint32_t CellNeighborsVector
CellTracksVector
cellTracks
 
uint32_t CellNeighborsVector
CellTracksVector
TrackingRecHit2DSOAView const
*__restrict__
GPUCACell::OuterHitOfCell int
bool bool 
doClusterCut
 
uint32_t CellNeighborsVector
CellTracksVector
TrackingRecHit2DSOAView const
*__restrict__
GPUCACell::OuterHitOfCell int
bool bool bool bool 
doPtCut
 
uint32_t CellNeighborsVector
CellTracksVector
TrackingRecHit2DSOAView const
*__restrict__
GPUCACell::OuterHitOfCell int
bool bool bool 
doZ0Cut
 
constexpr float dzdrFact = 8 * 0.0285 / 0.015
 
auto first = threadIdx.x
 
constexpr auto getDoubletsFromHistoMaxBlockSize = 64
 
constexpr auto getDoubletsFromHistoMinBlocksPerMP = 16
 
__device__ uint32_t GPUCACell
uint32_t CellNeighborsVector
CellTracksVector
TrackingRecHit2DSOAView const
&__restrict__ 
hh
 
uint32_t CellNeighborsVector
CellTracksVector
TrackingRecHit2DSOAView const
*__restrict__ 
hhp
 
uint32_t CellNeighborsVector
CellTracksVector
TrackingRecHit2DSOAView const
*__restrict__
GPUCACell::OuterHitOfCell int
bool 
ideal_cond
 
auto idy = blockIdx.y * blockDim.y + threadIdx.y
 
__shared__ uint32_t innerLayerCumulativeSize [nPairsMax]
 
uint32_t CellNeighborsVector
CellTracksVector
TrackingRecHit2DSOAView const
*__restrict__
GPUCACell::OuterHitOfCell 
isOuterHitOfCell
 
bool isOuterLadder = ideal_cond
 
__constant__ const uint8_t layerPairs [2 *nPairs]
 
auto layerSize = [=](uint8_t li) { return offsets[li + 1] - offsets[li]; }
 
constexpr int maxDYPred = 20
 
constexpr int maxDYsize = 20
 
constexpr int maxDYsize12 = 28
 
uint32_t CellNeighborsVector
CellTracksVector
TrackingRecHit2DSOAView const
*__restrict__
GPUCACell::OuterHitOfCell int
bool bool bool bool uint32_t 
maxNumOfDoublets
 
__constant__ float const maxr [nPairs]
 
__constant__ float const maxz [nPairs]
 
constexpr int minYsizeB2 = 28
 
__constant__ float const minz [nPairs]
 
uint32_t CellNeighborsVector
CellTracksVector
TrackingRecHit2DSOAView const
*__restrict__
GPUCACell::OuterHitOfCell int 
nActualPairs
 
uint32_t * nCells
 
constexpr int nPairs = nPairsForTriplets + 4
 
constexpr int nPairsForQuadruplets = 13
 
constexpr int nPairsForTriplets = nPairsForQuadruplets + 2
 
const int nPairsMax = caConstants::maxNumberOfLayerPairs
 
__shared__ uint32_t ntot
 
uint32_t const *__restrict__ offsets = hh.hitsLayerStart()
 
uint32_t pairLayerId = 0
 
constexpr int16_t phi0p05 = 522
 
constexpr int16_t phi0p06 = 626
 
constexpr int16_t phi0p07 = 730
 
auto const &__restrict__ phiBinner = hh.phiBinner()
 
__constant__ const int16_t phicuts [nPairs]
 
auto stride = blockDim.x
 

Typedef Documentation

Definition at line 63 of file gpuPixelDoublets.h.

Definition at line 65 of file gpuPixelDoublets.h.

Definition at line 64 of file gpuPixelDoublets.h.

Definition at line 66 of file gpuPixelDoublets.h.

Definition at line 53 of file gpuPixelDoubletsAlgos.h.

Function Documentation

__device__ gpuPixelDoublets::__attribute__ ( (always_inline)  )
inline

Definition at line 19 of file gpuFishbone.h.

References cms::cudacompat::blockDim, cms::cudacompat::blockIdx, caConstants::OuterHitOfCell::container, ztail::d, validate-o2o-wbm::f, cms::cudacompat::gridDim, hh, hhp, idy, isOuterHitOfCell, cmsLHEtoEOSManager::l, GPUCACell::layerPairId, GPUCACell::maxCellsPerHit, caConstants::maxCellsPerHit, dqmiodumpmetadata::n, nt, hltrates_dqm_sourceclient-live_cfg::offset, caConstants::OuterHitOfCell::offset, findQualityFiles::size, and cms::cudacompat::threadIdx.

24  {
26 
27  auto const& hh = *hhp;
28 
29  auto const isOuterHitOfCell = isOuterHitOfCellWrap.container;
30  int32_t offset = isOuterHitOfCellWrap.offset;
31 
32  // x runs faster...
33  auto firstY = threadIdx.y + blockIdx.y * blockDim.y;
34  auto firstX = threadIdx.x;
35 
37  uint32_t cc[maxCellsPerHit];
38  uint16_t d[maxCellsPerHit];
39  uint8_t l[maxCellsPerHit];
40 
41  for (int idy = firstY, nt = nHits - offset; idy < nt; idy += gridDim.y * blockDim.y) {
42  auto const& vc = isOuterHitOfCell[idy];
43  auto size = vc.size();
44  if (size < 2)
45  continue;
46  // if alligned kill one of the two.
47  // in principle one could try to relax the cut (only in r-z?) for jumping-doublets
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);
52  auto sg = 0;
53  for (int32_t ic = 0; ic < size; ++ic) {
54  auto& ci = cells[vc[ic]];
55  if (ci.unused())
56  continue; // for triplets equivalent to next
57  if (checkTrack && ci.tracks().empty())
58  continue;
59  cc[sg] = vc[ic];
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];
66  ++sg;
67  }
68  if (sg < 2)
69  continue;
70  // here we parallelize
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]];
75  // must be different detectors
76  // if (d[ic]==d[jc]) continue;
77  auto cos12 = x[ic] * x[jc] + y[ic] * y[jc] + z[ic] * z[jc];
78  if (d[ic] != d[jc] && cos12 * cos12 >= 0.99999f * n[ic] * n[jc]) {
79  // alligned: kill farthest (prefer consecutive layers)
80  // if same layer prefer farthest (longer level arm) and make space for intermediate hit
81  bool sameLayer = l[ic] == l[jc];
82  if (n[ic] > n[jc]) {
83  if (sameLayer) {
84  cj.kill(); // closest
85  ci.setFishbone(cj.inner_hit_id());
86  } else {
87  ci.kill(); // farthest
88  break;
89  }
90  } else {
91  if (!sameLayer) {
92  cj.kill(); // farthest
93  } else {
94  ci.kill(); // closest
95  cj.setFishbone(ci.inner_hit_id());
96  break;
97  }
98  }
99  }
100  } // cj
101  } // ci
102  } // hits
103  }
const dim3 threadIdx
Definition: cudaCompat.h:29
const dim3 gridDim
Definition: cudaCompat.h:33
const dim3 blockDim
Definition: cudaCompat.h:30
float float float z
tuple d
Definition: ztail.py:151
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 isOuterHitOfCell
uint16_t const *__restrict__ x
Definition: gpuClustering.h:39
const dim3 blockIdx
Definition: cudaCompat.h:32
int nt
Definition: AMPTWrapper.h:42
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ cells
static constexpr auto maxCellsPerHit
Definition: GPUCACell.h:24
caConstants::TupleMultiplicity const *__restrict__ HitsOnGPU const *__restrict__ hhp
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
Definition: CAConstants.h:38
tuple size
Write out results.
auto const & hh
gpuPixelDoublets::__syncthreads ( )
inline

Definition at line 108 of file cudaCompat.h.

108 {}
gpuPixelDoublets::assert ( offsets  )

Referenced by for().

gpuPixelDoublets::assert ( nPairs<=  nPairsMax)
gpuPixelDoublets::doubletsFromHisto ( layerPairs  ,
nActualPairs  ,
cells  ,
nCells  ,
cellNeighbors  ,
cellTracks  ,
hh  ,
isOuterHitOfCell  ,
phicuts  ,
minz  ,
maxz  ,
maxr  ,
ideal_cond  ,
doClusterCut  ,
doZ0Cut  ,
doPtCut  ,
maxNumOfDoublets   
)
gpuPixelDoublets::for ( )

Definition at line 83 of file gpuPixelDoubletsAlgos.h.

References cms::cudacompat::__ldg(), funct::abs(), assert(), cms::cudacompat::atomicAdd(), cms::cudacompat::atomicSub(), cms::cuda::HistoContainer< T, NBINS, SIZE, S, I, NHISTS >::bin(), runTauDisplay::dr, PVValHelper::dy, alignCSCRings::e, validate-o2o-wbm::f, first, full, cms::cuda::HistoContainer< T, NBINS, SIZE, S, I, NHISTS >::histOff(), mps_fire::i, SurfaceOrientation::inner, dqmiolumiharvest::j, isotrackApplyRegressor::k, GetRecoTauVFromDQM_MC_cff::kk, maxDYPred, maxDYsize, gpuClustering::maxNumModules, min(), cms::cuda::HistoContainer< T, NBINS, SIZE, S, I, NHISTS >::nbins(), nmin, SurfaceOrientation::outer, AlCaHLTBitMon_ParallelJobs::p, pairLayerId, gpuVertexFinder::printf(), submitPVValidationJobs::ptcut, short2phi(), and stride.

83  {
85  ;
86  --pairLayerId; // move to lower_bound ??
87 
91 
92  uint8_t inner = layerPairs[2 * pairLayerId];
93  uint8_t outer = layerPairs[2 * pairLayerId + 1];
94  assert(outer > inner);
95 
96  auto hoff = PhiBinner::histOff(outer);
97 
98  auto i = (0 == pairLayerId) ? j : j - innerLayerCumulativeSize[pairLayerId - 1];
99  i += offsets[inner];
100 
101  // printf("Hit in Layer %d %d %d %d\n", i, inner, pairLayerId, j);
102 
103  assert(i >= offsets[inner]);
104  assert(i < offsets[inner + 1]);
105 
106  // found hit corresponding to our cuda thread, now do the job
107  auto mi = hh.detectorIndex(i);
109  continue; // invalid
110 
111  /* maybe clever, not effective when zoCut is on
112  auto bpos = (mi%8)/4; // if barrel is 1 for z>0
113  auto fpos = (outer>3) & (outer<7);
114  if ( ((inner<3) & (outer>3)) && bpos!=fpos) continue;
115  */
116 
117  auto mez = hh.zGlobal(i);
118 
119  if (mez < minz[pairLayerId] || mez > maxz[pairLayerId])
120  continue;
121 
122  int16_t mes = -1; // make compiler happy
123  if (doClusterCut) {
124  // if ideal treat inner ladder as outer
125  if (inner == 0)
126  assert(mi < 96);
127  isOuterLadder = ideal_cond ? true : 0 == (mi / 8) % 2; // only for B1/B2/B3 B4 is opposite, FPIX:noclue...
128 
129  // in any case we always test mes>0 ...
130  mes = inner > 0 || isOuterLadder ? hh.clusterSizeY(i) : -1;
131 
132  if (inner == 0 && outer > 3) // B1 and F1
133  if (mes > 0 && mes < minYsizeB1)
134  continue; // only long cluster (5*8)
135  if (inner == 1 && outer > 3) // B2 and F1
136  if (mes > 0 && mes < minYsizeB2)
137  continue;
138  }
139  auto mep = hh.iphi(i);
140  auto mer = hh.rGlobal(i);
141 
142  // all cuts: true if fails
143  constexpr float z0cut = 12.f; // cm
144  constexpr float hardPtCut = 0.5f; // GeV
145  // cm (1 GeV track has 1 GeV/c / (e * 3.8T) ~ 87 cm radius in a 3.8T field)
146  constexpr float minRadius = hardPtCut * 87.78f;
147  constexpr float minRadius2T4 = 4.f * minRadius * minRadius;
148  auto ptcut = [&](int j, int16_t idphi) {
149  auto r2t4 = minRadius2T4;
150  auto ri = mer;
151  auto ro = hh.rGlobal(j);
152  auto dphi = short2phi(idphi);
153  return dphi * dphi * (r2t4 - ri * ro) > (ro - ri) * (ro - ri);
154  };
155  auto z0cutoff = [&](int j) {
156  auto zo = hh.zGlobal(j);
157  auto ro = hh.rGlobal(j);
158  auto dr = ro - mer;
159  return dr > maxr[pairLayerId] || dr < 0 || std::abs((mez * ro - mer * zo)) > z0cut * dr;
160  };
161 
162  auto zsizeCut = [&](int j) {
163  auto onlyBarrel = outer < 4;
164  auto so = hh.clusterSizeY(j);
165  auto dy = inner == 0 ? maxDYsize12 : maxDYsize;
166  // in the barrel cut on difference in size
167  // in the endcap on the prediction on the first layer (actually in the barrel only: happen to be safe for endcap as well)
168  // FIXME move pred cut to z0cutoff to optmize loading of and computaiton ...
169  auto zo = hh.zGlobal(j);
170  auto ro = hh.rGlobal(j);
171  return onlyBarrel ? mes > 0 && so > 0 && std::abs(so - mes) > dy
172  : (inner < 4) && mes > 0 &&
173  std::abs(mes - int(std::abs((mez - zo) / (mer - ro)) * dzdrFact + 0.5f)) > maxDYPred;
174  };
175 
176  auto iphicut = phicuts[pairLayerId];
177 
178  auto kl = PhiBinner::bin(int16_t(mep - iphicut));
179  auto kh = PhiBinner::bin(int16_t(mep + iphicut));
180  auto incr = [](auto& k) { return k = (k + 1) % PhiBinner::nbins(); };
181 
182 #ifdef GPU_DEBUG
183  int tot = 0;
184  int nmin = 0;
185  int tooMany = 0;
186 #endif
187 
188  auto khh = kh;
189  incr(khh);
190  for (auto kk = kl; kk != khh; incr(kk)) {
191 #ifdef GPU_DEBUG
192  if (kk != kl && kk != kh)
193  nmin += phiBinner.size(kk + hoff);
194 #endif
195  auto const* __restrict__ p = phiBinner.begin(kk + hoff);
196  auto const* __restrict__ e = phiBinner.end(kk + hoff);
197  p += first;
198  for (; p < e; p += stride) {
199  auto oi = __ldg(p);
200  assert(oi >= offsets[outer]);
201  assert(oi < offsets[outer + 1]);
202  auto mo = hh.detectorIndex(oi);
204  continue; // invalid
205 
206  if (doZ0Cut && z0cutoff(oi))
207  continue;
208 
209  auto mop = hh.iphi(oi);
210  uint16_t idphi = std::min(std::abs(int16_t(mop - mep)), std::abs(int16_t(mep - mop)));
211  if (idphi > iphicut)
212  continue;
213 
214  if (doClusterCut && zsizeCut(oi))
215  continue;
216  if (doPtCut && ptcut(oi, idphi))
217  continue;
218 
219  auto ind = atomicAdd(nCells, 1);
220  if (ind >= maxNumOfDoublets) {
221  atomicSub(nCells, 1);
222  break;
223  } // move to SimpleVector??
224  // int layerPairId, int doubletId, int innerHitId, int outerHitId)
225  cells[ind].init(*cellNeighbors, *cellTracks, hh, pairLayerId, i, oi);
226  isOuterHitOfCell[oi].push_back(ind);
227 #ifdef GPU_DEBUG
228  if (isOuterHitOfCell[oi].full())
229  ++tooMany;
230  ++tot;
231 #endif
232  }
233  }
234 #ifdef GPU_DEBUG
235  if (tooMany > 0)
236  printf("OuterHitOfCell full for %d in layer %d/%d, %d,%d %d\n", i, inner, outer, nmin, tot, tooMany);
237 #endif
238  } // loop in block...
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool bool bool doZ0Cut
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ gpuPixelDoublets::CellNeighborsVector const * cellNeighbors
T1 atomicSub(T1 *a, T2 b)
Definition: cudaCompat.h:73
constexpr int nPairs
assert(be >=bs)
__constant__ float const minz[nPairs]
__constant__ const int16_t phicuts[nPairs]
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool bool doClusterCut
auto const &__restrict__ phiBinner
printf("params %d %f %f %f\n", minT, eps, errmax, chi2max)
Definition: GenABIO.cc:168
__shared__ uint32_t innerLayerCumulativeSize[nPairsMax]
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
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 isOuterHitOfCell
constexpr uint16_t maxNumModules
constexpr int maxDYsize12
T min(T a, T b)
Definition: MathUtil.h:58
Quality *__restrict__ uint16_t nmin
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool ideal_cond
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ cells
constexpr float dzdrFact
__constant__ float const maxz[nPairs]
T __ldg(T const *x)
Definition: cudaCompat.h:113
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const * cellTracks
constexpr float short2phi(short x)
Definition: approx_atan2.h:285
__constant__ float const maxr[nPairs]
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ nCells
constexpr int minYsizeB2
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool bool bool bool doPtCut
T1 atomicAdd(T1 *a, T2 b)
Definition: cudaCompat.h:61
auto const & hh
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool bool bool bool uint32_t maxNumOfDoublets
gpuPixelDoublets::if ( threadIdx.  y = = 0 && threadIdx.x == 0)

Definition at line 68 of file gpuPixelDoubletsAlgos.h.

References mps_fire::i, layerSize, and nPairs.

68  {
70  for (uint32_t i = 1; i < nPairs; ++i) {
72  }
73  ntot = innerLayerCumulativeSize[nPairs - 1];
74  }
constexpr int nPairs
__shared__ uint32_t innerLayerCumulativeSize[nPairsMax]
__shared__ uint32_t ntot

Variable Documentation

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector * gpuPixelDoublets::cellNeighbors

Definition at line 99 of file gpuPixelDoublets.h.

__device__ uint32_t GPUCACell* gpuPixelDoublets::cells

Definition at line 26 of file gpuPixelDoubletsAlgos.h.

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector * gpuPixelDoublets::cellTracks

Definition at line 99 of file gpuPixelDoublets.h.

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const &__restrict__ GPUCACell::OuterHitOfCell int16_t const *__restrict__ float const *__restrict__ float const *__restrict__ float const *__restrict__ bool bool gpuPixelDoublets::doClusterCut

Definition at line 99 of file gpuPixelDoublets.h.

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const &__restrict__ GPUCACell::OuterHitOfCell int16_t const *__restrict__ float const *__restrict__ float const *__restrict__ float const *__restrict__ bool bool bool bool gpuPixelDoublets::doPtCut

Definition at line 99 of file gpuPixelDoublets.h.

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const &__restrict__ GPUCACell::OuterHitOfCell int16_t const *__restrict__ float const *__restrict__ float const *__restrict__ float const *__restrict__ bool bool bool gpuPixelDoublets::doZ0Cut

Definition at line 99 of file gpuPixelDoublets.h.

constexpr float gpuPixelDoublets::dzdrFact = 8 * 0.0285 / 0.015

Definition at line 49 of file gpuPixelDoubletsAlgos.h.

auto gpuPixelDoublets::first = threadIdx.x

Definition at line 79 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

constexpr auto gpuPixelDoublets::getDoubletsFromHistoMaxBlockSize = 64

Definition at line 91 of file gpuPixelDoublets.h.

constexpr auto gpuPixelDoublets::getDoubletsFromHistoMinBlocksPerMP = 16

Definition at line 92 of file gpuPixelDoublets.h.

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const& __restrict__ gpuPixelDoublets::hh

Definition at line 26 of file gpuPixelDoubletsAlgos.h.

Referenced by __attribute__().

uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const* __restrict__ gpuPixelDoublets::hhp

Definition at line 99 of file gpuPixelDoublets.h.

Referenced by __attribute__().

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const &__restrict__ GPUCACell::OuterHitOfCell int16_t const *__restrict__ float const *__restrict__ float const *__restrict__ float const *__restrict__ bool gpuPixelDoublets::ideal_cond

Definition at line 99 of file gpuPixelDoublets.h.

auto gpuPixelDoublets::idy = blockIdx.y * blockDim.y + threadIdx.y

Definition at line 78 of file gpuPixelDoubletsAlgos.h.

Referenced by __attribute__(), and TTUTrackingAlg::runSeedBuster().

__shared__ uint32_t gpuPixelDoublets::innerLayerCumulativeSize[nPairsMax]

Definition at line 66 of file gpuPixelDoubletsAlgos.h.

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const &__restrict__ GPUCACell::OuterHitOfCell gpuPixelDoublets::isOuterHitOfCell

Definition at line 99 of file gpuPixelDoublets.h.

Referenced by __attribute__().

bool gpuPixelDoublets::isOuterLadder = ideal_cond

Definition at line 51 of file gpuPixelDoubletsAlgos.h.

__constant__ const uint8_t gpuPixelDoublets::layerPairs[2 *nPairs]
Initial value:
= {
0, 1, 0, 4, 0, 7,
1, 2, 1, 4, 1, 7,
4, 5, 7, 8,
2, 3, 2, 4, 2, 7, 5, 6, 8, 9,
0, 2, 1, 3,
0, 5, 0, 8,
4, 6, 7, 9
}

Definition at line 18 of file gpuPixelDoublets.h.

auto gpuPixelDoublets::layerSize = [=](uint8_t li) { return offsets[li + 1] - offsets[li]; }

Definition at line 59 of file gpuPixelDoubletsAlgos.h.

Referenced by if().

constexpr int gpuPixelDoublets::maxDYPred = 20

Definition at line 48 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

constexpr int gpuPixelDoublets::maxDYsize = 20

Definition at line 47 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

constexpr int gpuPixelDoublets::maxDYsize12 = 28

Definition at line 46 of file gpuPixelDoubletsAlgos.h.

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const &__restrict__ GPUCACell::OuterHitOfCell int16_t const *__restrict__ float const *__restrict__ float const *__restrict__ float const *__restrict__ bool bool bool bool uint32_t gpuPixelDoublets::maxNumOfDoublets
Initial value:
{
auto const& __restrict__ hh = *hhp
caConstants::TupleMultiplicity const *__restrict__ HitsOnGPU const *__restrict__ hhp
auto const & hh

Definition at line 109 of file gpuPixelDoublets.h.

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const &__restrict__ GPUCACell::OuterHitOfCell int16_t const *__restrict__ float const *__restrict__ float const *__restrict__ float const *__restrict__ gpuPixelDoublets::maxr
Initial value:
= {
20., 9., 9., 20., 7., 7., 5., 5., 20., 6., 6., 5., 5., 20., 20., 9., 9., 9., 9.}

Definition at line 57 of file gpuPixelDoublets.h.

Referenced by SiPixelDQMRocLevelAnalyzer::RocSumOneModule().

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const &__restrict__ GPUCACell::OuterHitOfCell int16_t const *__restrict__ float const *__restrict__ float const *__restrict__ gpuPixelDoublets::maxz
Initial value:
= {
20., 30., 0., 22., 30., -10., 70., 70., 22., 30., -15., 70., 70., 20., 22., 30., 0., 70., 70.}

Definition at line 55 of file gpuPixelDoublets.h.

Referenced by MultiHitGeneratorFromChi2::hitSets(), reco::modules::ParameterAdapter< CalIsolationAlgo< T, C > >::make(), and PixelRegion::PixelRegion().

constexpr int gpuPixelDoublets::minYsizeB2 = 28

Definition at line 45 of file gpuPixelDoubletsAlgos.h.

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const &__restrict__ GPUCACell::OuterHitOfCell int16_t const *__restrict__ float const *__restrict__ gpuPixelDoublets::minz
Initial value:
= {
-20., 0., -30., -22., 10., -30., -70., -70., -22., 15., -30, -70., -70., -20., -22., 0, -30., -70., -70.}

Definition at line 53 of file gpuPixelDoublets.h.

Referenced by MultiHitGeneratorFromChi2::hitSets(), reco::modules::ParameterAdapter< CalIsolationAlgo< T, C > >::make(), TrackExtrapolator::propagateTrackToVolume(), and CalibrationScanAlgorithm::tuneSimultaneously().

uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const* __restrict__ GPUCACell::OuterHitOfCell int gpuPixelDoublets::nActualPairs
__device__ uint32_t GPUCACell uint32_t * gpuPixelDoublets::nCells

Definition at line 99 of file gpuPixelDoublets.h.

__device__ uint32_t gpuPixelDoublets::nPairs = nPairsForTriplets + 4
constexpr int gpuPixelDoublets::nPairsForQuadruplets = 13
constexpr int gpuPixelDoublets::nPairsForTriplets = nPairsForQuadruplets + 2
const int gpuPixelDoublets::nPairsMax = caConstants::maxNumberOfLayerPairs

Definition at line 64 of file gpuPixelDoubletsAlgos.h.

__shared__ uint32_t gpuPixelDoublets::ntot
uint32_t const* __restrict__ gpuPixelDoublets::offsets = hh.hitsLayerStart()

Definition at line 56 of file gpuPixelDoubletsAlgos.h.

uint32_t gpuPixelDoublets::pairLayerId = 0

Definition at line 82 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

constexpr int16_t gpuPixelDoublets::phi0p05 = 522

Definition at line 28 of file gpuPixelDoublets.h.

constexpr int16_t gpuPixelDoublets::phi0p06 = 626

Definition at line 29 of file gpuPixelDoublets.h.

constexpr int16_t gpuPixelDoublets::phi0p07 = 730

Definition at line 30 of file gpuPixelDoublets.h.

auto const& __restrict__ gpuPixelDoublets::phiBinner = hh.phiBinner()

Definition at line 55 of file gpuPixelDoubletsAlgos.h.

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const &__restrict__ GPUCACell::OuterHitOfCell int16_t const *__restrict__ gpuPixelDoublets::phicuts
Initial value:

Definition at line 32 of file gpuPixelDoublets.h.

auto gpuPixelDoublets::stride = blockDim.x