CMS 3D CMS Logo

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 (nPairs<=nPairsMax)
 
 assert (offsets)
 
 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 CellTracksVectorcellTracks
 
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::OuterHitOfCellisOuterHitOfCell
 
bool isOuterLadder = ideal_cond
 
const __constant__ 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__ const float maxr [nPairs]
 
__constant__ const float maxz [nPairs]
 
constexpr int minYsizeB2 = 28
 
__constant__ const float 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()
 
const __constant__ int16_t phicuts [nPairs]
 
auto stride = blockDim.x
 

Typedef Documentation

◆ CellNeighbors

Definition at line 63 of file gpuPixelDoublets.h.

◆ CellNeighborsVector

Definition at line 65 of file gpuPixelDoublets.h.

◆ CellTracks

Definition at line 64 of file gpuPixelDoublets.h.

◆ CellTracksVector

Definition at line 66 of file gpuPixelDoublets.h.

◆ PhiBinner

Definition at line 53 of file gpuPixelDoubletsAlgos.h.

Function Documentation

◆ __attribute__()

__device__ gpuPixelDoublets::__attribute__ ( (always_inline)  )
inline

Definition at line 21 of file gpuFishbone.h.

26  {
28 
29  auto const& hh = *hhp;
30 
31  // x run faster...
32  auto firstY = threadIdx.y + blockIdx.y * blockDim.y;
33  auto firstX = threadIdx.x;
34 
36  uint16_t d[maxCellsPerHit]; // uint8_t l[maxCellsPerHit];
37  uint32_t cc[maxCellsPerHit];
38 
39  for (int idy = firstY, nt = nHits; idy < nt; idy += gridDim.y * blockDim.y) {
40  auto const& vc = isOuterHitOfCell[idy];
41  auto size = vc.size();
42  if (size < 2)
43  continue;
44  // if alligned kill one of the two.
45  // in principle one could try to relax the cut (only in r-z?) for jumping-doublets
46  auto const& c0 = cells[vc[0]];
47  auto xo = c0.outer_x(hh);
48  auto yo = c0.outer_y(hh);
49  auto zo = c0.outer_z(hh);
50  auto sg = 0;
51  for (int32_t ic = 0; ic < size; ++ic) {
52  auto& ci = cells[vc[ic]];
53  if (ci.unused())
54  continue; // for triplets equivalent to next
55  if (checkTrack && ci.tracks().empty())
56  continue;
57  cc[sg] = vc[ic];
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];
63  ++sg;
64  }
65  if (sg < 2)
66  continue;
67  // here we parallelize
68  for (int32_t ic = firstX; ic < sg - 1; ic += blockDim.x) {
69  auto& ci = cells[cc[ic]];
70  for (auto jc = ic + 1; jc < sg; ++jc) {
71  auto& cj = cells[cc[jc]];
72  // must be different detectors (in the same layer)
73  // if (d[ic]==d[jc]) continue;
74  // || l[ic]!=l[jc]) continue;
75  auto cos12 = x[ic] * x[jc] + y[ic] * y[jc] + z[ic] * z[jc];
76  if (d[ic] != d[jc] && cos12 * cos12 >= 0.99999f * n[ic] * n[jc]) {
77  // alligned: kill farthest (prefer consecutive layers)
78  if (n[ic] > n[jc]) {
79  ci.kill();
80  break;
81  } else {
82  cj.kill();
83  }
84  }
85  } //cj
86  } // ci
87  } // hits
88  }

References cms::cudacompat::blockDim, cms::cudacompat::blockIdx, fftjetpileupestimator_calo_uncalib_cfi::c0, cells, ztail::d, f, cms::cudacompat::gridDim, hh, hhp, idy, isOuterHitOfCell, GPUCACell::maxCellsPerHit, caConstants::maxCellsPerHit, dqmiodumpmetadata::n, nHits, nt, findQualityFiles::size, and cms::cudacompat::threadIdx.

◆ __syncthreads()

gpuPixelDoublets::__syncthreads ( )
inline

Definition at line 77 of file cudaCompat.h.

77 {}

◆ assert() [1/2]

gpuPixelDoublets::assert ( nPairs<=  nPairsMax)

◆ assert() [2/2]

gpuPixelDoublets::assert ( offsets  )

Referenced by for().

◆ doubletsFromHisto()

gpuPixelDoublets::doubletsFromHisto ( layerPairs  ,
nActualPairs  ,
cells  ,
nCells  ,
cellNeighbors  ,
cellTracks  ,
hh  ,
isOuterHitOfCell  ,
phicuts  ,
minz  ,
maxz  ,
maxr  ,
ideal_cond  ,
doClusterCut  ,
doZ0Cut  ,
doPtCut  ,
maxNumOfDoublets   
)

◆ for()

gpuPixelDoublets::for ( )

Definition at line 83 of file gpuPixelDoubletsAlgos.h.

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, ind, 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...

References cms::cudacompat::__ldg(), funct::abs(), assert(), cms::cudacompat::atomicAdd(), cms::cudacompat::atomicSub(), cms::cuda::HistoContainer< T, NBINS, SIZE, S, I, NHISTS >::bin(), cellNeighbors, cells, cellTracks, doClusterCut, doPtCut, doZ0Cut, flavorHistoryFilter_cfi::dr, PVValHelper::dy, dzdrFact, MillePedeFileConverter_cfg::e, f, first, full, hh, cms::cuda::HistoContainer< T, NBINS, SIZE, S, I, NHISTS >::histOff(), mps_fire::i, ideal_cond, SurfaceOrientation::inner, innerLayerCumulativeSize, isOuterHitOfCell, isOuterLadder, dqmiolumiharvest::j, dqmdumpme::k, GetRecoTauVFromDQM_MC_cff::kk, layerPairs, maxDYPred, maxDYsize, maxDYsize12, gpuClustering::maxNumModules, maxNumOfDoublets, maxr, maxz, min(), minYsizeB2, minz, cms::cuda::HistoContainer< T, NBINS, SIZE, S, I, NHISTS >::nbins(), nCells, nmin, nPairs, offsets, SurfaceOrientation::outer, AlCaHLTBitMon_ParallelJobs::p, pairLayerId, phiBinner, phicuts, submitPVValidationJobs::ptcut, cms::cuda::SimpleVector< T >::push_back(), short2phi(), stride, and funct::true.

◆ if()

gpuPixelDoublets::if ( threadIdx.  y = = 0 && threadIdx.x == 0)

Definition at line 68 of file gpuPixelDoubletsAlgos.h.

68  {
70  for (uint32_t i = 1; i < nPairs; ++i) {
72  }
74  }

References mps_fire::i, innerLayerCumulativeSize, layerPairs, layerSize, nPairs, and ntot.

Variable Documentation

◆ cellNeighbors

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector * gpuPixelDoublets::cellNeighbors

Definition at line 99 of file gpuPixelDoublets.h.

Referenced by for().

◆ cells

__device__ uint32_t GPUCACell* gpuPixelDoublets::cells

Definition at line 26 of file gpuPixelDoubletsAlgos.h.

Referenced by __attribute__(), and for().

◆ cellTracks

__device__ uint32_t GPUCACell uint32_t CellNeighborsVector CellTracksVector * gpuPixelDoublets::cellTracks

Definition at line 99 of file gpuPixelDoublets.h.

Referenced by for().

◆ doClusterCut

__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.

Referenced by for().

◆ doPtCut

__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.

Referenced by for().

◆ doZ0Cut

__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.

Referenced by for().

◆ dzdrFact

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

Definition at line 49 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

◆ first

auto gpuPixelDoublets::first = threadIdx.x

Definition at line 79 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

◆ getDoubletsFromHistoMaxBlockSize

constexpr auto gpuPixelDoublets::getDoubletsFromHistoMaxBlockSize = 64
constexpr

Definition at line 91 of file gpuPixelDoublets.h.

◆ getDoubletsFromHistoMinBlocksPerMP

constexpr auto gpuPixelDoublets::getDoubletsFromHistoMinBlocksPerMP = 16
constexpr

Definition at line 92 of file gpuPixelDoublets.h.

◆ hh

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

Definition at line 26 of file gpuPixelDoubletsAlgos.h.

Referenced by __attribute__(), and for().

◆ hhp

uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const* __restrict__ gpuPixelDoublets::hhp

Definition at line 99 of file gpuPixelDoublets.h.

Referenced by __attribute__().

◆ ideal_cond

__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.

Referenced by for().

◆ idy

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

Definition at line 78 of file gpuPixelDoubletsAlgos.h.

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

◆ innerLayerCumulativeSize

__shared__ uint32_t gpuPixelDoublets::innerLayerCumulativeSize[nPairsMax]

Definition at line 66 of file gpuPixelDoubletsAlgos.h.

Referenced by for(), and if().

◆ isOuterHitOfCell

__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__(), and for().

◆ isOuterLadder

bool gpuPixelDoublets::isOuterLadder = ideal_cond

Definition at line 51 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

◆ layerPairs

const __constant__ 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.

Referenced by for(), and if().

◆ layerSize

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

Definition at line 59 of file gpuPixelDoubletsAlgos.h.

Referenced by if().

◆ maxDYPred

constexpr int gpuPixelDoublets::maxDYPred = 20
constexpr

Definition at line 48 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

◆ maxDYsize

constexpr int gpuPixelDoublets::maxDYsize = 20
constexpr

Definition at line 47 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

◆ maxDYsize12

constexpr int gpuPixelDoublets::maxDYsize12 = 28
constexpr

Definition at line 46 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

◆ maxNumOfDoublets

__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

Definition at line 109 of file gpuPixelDoublets.h.

Referenced by for().

◆ maxr

__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 for(), and SiPixelDQMRocLevelAnalyzer::RocSumOneModule().

◆ maxz

__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 for(), MultiHitGeneratorFromChi2::hitSets(), reco::modules::ParameterAdapter< CalIsolationAlgo< T, C > >::make(), and PixelRegion::PixelRegion().

◆ minYsizeB2

constexpr int gpuPixelDoublets::minYsizeB2 = 28
constexpr

Definition at line 45 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

◆ minz

__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 for(), MultiHitGeneratorFromChi2::hitSets(), reco::modules::ParameterAdapter< CalIsolationAlgo< T, C > >::make(), TrackExtrapolator::propagateTrackToVolume(), and CalibrationScanAlgorithm::tuneSimultaneously().

◆ nActualPairs

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

◆ nCells

__device__ uint32_t GPUCACell uint32_t * gpuPixelDoublets::nCells

Definition at line 99 of file gpuPixelDoublets.h.

Referenced by for().

◆ nPairs

__device__ uint32_t gpuPixelDoublets::nPairs = nPairsForTriplets + 4
constexpr

◆ nPairsForQuadruplets

constexpr int gpuPixelDoublets::nPairsForQuadruplets = 13
constexpr

◆ nPairsForTriplets

constexpr int gpuPixelDoublets::nPairsForTriplets = nPairsForQuadruplets + 2
constexpr

◆ nPairsMax

const int gpuPixelDoublets::nPairsMax = caConstants::maxNumberOfLayerPairs

Definition at line 64 of file gpuPixelDoubletsAlgos.h.

◆ ntot

__shared__ uint32_t gpuPixelDoublets::ntot

◆ offsets

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

Definition at line 56 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

◆ pairLayerId

uint32_t gpuPixelDoublets::pairLayerId = 0

Definition at line 82 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

◆ phi0p05

constexpr int16_t gpuPixelDoublets::phi0p05 = 522
constexpr

Definition at line 28 of file gpuPixelDoublets.h.

◆ phi0p06

constexpr int16_t gpuPixelDoublets::phi0p06 = 626
constexpr

Definition at line 29 of file gpuPixelDoublets.h.

◆ phi0p07

constexpr int16_t gpuPixelDoublets::phi0p07 = 730
constexpr

Definition at line 30 of file gpuPixelDoublets.h.

◆ phiBinner

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

Definition at line 55 of file gpuPixelDoubletsAlgos.h.

Referenced by for().

◆ phicuts

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

◆ stride

auto gpuPixelDoublets::stride = blockDim.x
gpuPixelDoublets::assert
assert(nPairs<=nPairsMax)
cms::cudacompat::atomicSub
T1 atomicSub(T1 *a, T2 b)
Definition: cudaCompat.h:58
cellNeighbors
const caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple cms::cuda::AtomicPairCounter const GPUCACell *__restrict__ const uint32_t *__restrict__ const gpuPixelDoublets::CellNeighborsVector * cellNeighbors
Definition: CAHitNtupletGeneratorKernelsImpl.h:33
mps_fire.i
i
Definition: mps_fire.py:428
gpuPixelDoublets::doPtCut
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool bool bool bool doPtCut
Definition: gpuPixelDoublets.h:99
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
gpuPixelDoublets::phi0p05
constexpr int16_t phi0p05
Definition: gpuPixelDoublets.h:28
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
detailsBasic3DVector::z
float float float z
Definition: extBasic3DVector.h:14
gpuPixelDoublets::ideal_cond
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool ideal_cond
Definition: gpuPixelDoublets.h:99
nt
int nt
Definition: AMPTWrapper.h:42
min
T min(T a, T b)
Definition: MathUtil.h:58
isOuterHitOfCell
const caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple cms::cuda::AtomicPairCounter const GPUCACell *__restrict__ const uint32_t *__restrict__ const gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const GPUCACell::OuterHitOfCell *__restrict__ isOuterHitOfCell
Definition: CAHitNtupletGeneratorKernelsImpl.h:33
gpuPixelDoublets::idy
auto idy
Definition: gpuPixelDoubletsAlgos.h:78
gpuPixelDoublets::minYsizeB2
constexpr int minYsizeB2
Definition: gpuPixelDoubletsAlgos.h:45
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
cells
const caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple cms::cuda::AtomicPairCounter const GPUCACell *__restrict__ cells
Definition: CAHitNtupletGeneratorKernelsImpl.h:33
gpuPixelDoublets::ntot
__shared__ uint32_t ntot
Definition: gpuPixelDoubletsAlgos.h:67
GPUCACell::maxCellsPerHit
static constexpr auto maxCellsPerHit
Definition: GPUCACell.h:24
caConstants::maxCellsPerHit
constexpr uint32_t maxCellsPerHit
Definition: CAConstants.h:37
full
Definition: GenABIO.cc:168
gpuPixelDoublets::maxDYsize
constexpr int maxDYsize
Definition: gpuPixelDoubletsAlgos.h:47
nCells
const caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple cms::cuda::AtomicPairCounter const GPUCACell *__restrict__ const uint32_t *__restrict__ nCells
Definition: CAHitNtupletGeneratorKernelsImpl.h:33
TrajectorySeedProducer_cfi.layerPairs
layerPairs
Definition: TrajectorySeedProducer_cfi.py:23
cc
gpuPixelDoublets::maxz
__constant__ const float maxz[nPairs]
Definition: gpuPixelDoublets.h:55
gpuPixelDoublets::maxNumOfDoublets
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool bool bool bool uint32_t maxNumOfDoublets
Definition: gpuPixelDoublets.h:109
gpuPixelDoublets::pairLayerId
uint32_t pairLayerId
Definition: gpuPixelDoubletsAlgos.h:82
nHits
const caConstants::TupleMultiplicity *__restrict__ const HitsOnGPU *__restrict__ double *__restrict__ float *__restrict__ double *__restrict__ uint32_t nHits
Definition: BrokenLineFitOnGPU.h:27
SurfaceOrientation::inner
Definition: Surface.h:19
gpuPixelDoublets::layerSize
auto layerSize
Definition: gpuPixelDoubletsAlgos.h:59
LaserClient_cfi.nbins
nbins
Definition: LaserClient_cfi.py:51
cms::cudacompat::atomicAdd
T1 atomicAdd(T1 *a, T2 b)
Definition: cudaCompat.h:51
gpuPixelDoublets::doZ0Cut
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool bool bool doZ0Cut
Definition: gpuPixelDoublets.h:99
GetRecoTauVFromDQM_MC_cff.kk
kk
Definition: GetRecoTauVFromDQM_MC_cff.py:84
dqmdumpme.k
k
Definition: dqmdumpme.py:60
gpuClustering::maxNumModules
constexpr uint16_t maxNumModules
Definition: gpuClusteringConstants.h:29
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:112
submitPVValidationJobs.ptcut
list ptcut
Definition: submitPVValidationJobs.py:682
cms::cudacompat::gridDim
const dim3 gridDim
Definition: cudaCompat.h:33
hh
const auto & hh
Definition: CAHitNtupletGeneratorKernelsImpl.h:455
funct::true
true
Definition: Factorize.h:173
nmin
const HitContainer *__restrict__ const TkSoA *__restrict__ Quality *__restrict__ uint16_t nmin
Definition: CAHitNtupletGeneratorKernelsImpl.h:477
cms::cudacompat::blockDim
const dim3 blockDim
Definition: cudaCompat.h:30
PVValHelper::dy
Definition: PVValidationHelpers.h:50
gpuPixelDoublets::maxr
__constant__ const float maxr[nPairs]
Definition: gpuPixelDoublets.h:57
gpuPixelDoublets::phiBinner
auto const &__restrict__ phiBinner
Definition: gpuPixelDoubletsAlgos.h:55
cms::cudacompat::threadIdx
const dim3 threadIdx
Definition: cudaCompat.h:29
gpuPixelDoublets::isOuterLadder
bool isOuterLadder
Definition: gpuPixelDoubletsAlgos.h:51
newFWLiteAna.bin
bin
Definition: newFWLiteAna.py:161
gpuPixelDoublets::phicuts
const __constant__ int16_t phicuts[nPairs]
Definition: gpuPixelDoublets.h:32
gpuPixelDoublets::offsets
uint32_t const *__restrict__ offsets
Definition: gpuPixelDoubletsAlgos.h:56
gpuPixelDoublets::nPairs
constexpr int nPairs
Definition: gpuPixelDoublets.h:12
gpuPixelDoublets::maxDYPred
constexpr int maxDYPred
Definition: gpuPixelDoubletsAlgos.h:48
flavorHistoryFilter_cfi.dr
dr
Definition: flavorHistoryFilter_cfi.py:37
genVertex_cff.x
x
Definition: genVertex_cff.py:12
detailsBasic3DVector::y
float float y
Definition: extBasic3DVector.h:14
gpuPixelDoublets::phi0p07
constexpr int16_t phi0p07
Definition: gpuPixelDoublets.h:30
gpuPixelDoublets::maxDYsize12
constexpr int maxDYsize12
Definition: gpuPixelDoubletsAlgos.h:46
fftjetpileupestimator_calo_uncalib_cfi.c0
c0
Definition: fftjetpileupestimator_calo_uncalib_cfi.py:8
cellTracks
const caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple cms::cuda::AtomicPairCounter const GPUCACell *__restrict__ const uint32_t *__restrict__ const gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector * cellTracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:33
ztail.d
d
Definition: ztail.py:151
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
hhp
const caConstants::TupleMultiplicity *__restrict__ const HitsOnGPU *__restrict__ hhp
Definition: BrokenLineFitOnGPU.h:27
gpuPixelDoublets::dzdrFact
constexpr float dzdrFact
Definition: gpuPixelDoubletsAlgos.h:49
gpuPixelDoublets::doClusterCut
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool bool doClusterCut
Definition: gpuPixelDoublets.h:99
SurfaceOrientation::outer
Definition: Surface.h:19
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
cms::cudacompat::__ldg
T __ldg(T const *x)
Definition: cudaCompat.h:82
gpuPixelDoublets::phi0p06
constexpr int16_t phi0p06
Definition: gpuPixelDoublets.h:29
gpuPixelDoublets::hhp
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ hhp
Definition: gpuPixelDoublets.h:99
short2phi
constexpr float short2phi(short x)
Definition: approx_atan2.h:285
gpuPixelDoublets::stride
auto stride
Definition: gpuPixelDoubletsAlgos.h:80
gpuPixelDoublets::minz
__constant__ const float minz[nPairs]
Definition: gpuPixelDoublets.h:53
gpuPixelDoublets::innerLayerCumulativeSize
__shared__ uint32_t innerLayerCumulativeSize[nPairsMax]
Definition: gpuPixelDoubletsAlgos.h:66
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
cms::cudacompat::blockIdx
const dim3 blockIdx
Definition: cudaCompat.h:32