CMS 3D CMS Logo

CAHitNtupletGeneratorKernels.h
Go to the documentation of this file.
1 #ifndef RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorKernels_h
2 #define RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorKernels_h
3 
4 // #define GPU_DEBUG
5 
7 #include "GPUCACell.h"
8 
9 // #define DUMP_GPU_TK_TUPLES
10 
12 
13  // counters
14  struct Counters {
15  unsigned long long nEvents;
16  unsigned long long nHits;
17  unsigned long long nCells;
18  unsigned long long nTuples;
19  unsigned long long nFitTracks;
20  unsigned long long nLooseTracks;
21  unsigned long long nGoodTracks;
22  unsigned long long nUsedHits;
23  unsigned long long nDupHits;
24  unsigned long long nKilledCells;
25  unsigned long long nEmptyCells;
26  unsigned long long nZeroTrackCells;
27  };
28 
31 
34 
38 
39  struct QualityCuts {
40  // chi2 cut = chi2Scale * (chi2Coeff[0] + pT/GeV * (chi2Coeff[1] + pT/GeV * (chi2Coeff[2] + pT/GeV * chi2Coeff[3])))
41  float chi2Coeff[4];
42  float chi2MaxPt; // GeV
43  float chi2Scale;
44 
45  struct Region {
46  float maxTip; // cm
47  float minPt; // GeV
48  float maxZip; // cm
49  };
50 
53  };
54 
55  // params (FIXME: thi si a POD: so no constructor no traling _ and no const as params_ is already const)
56  struct Params {
57  Params(bool onGPU,
58  uint32_t minHitsPerNtuplet,
59  uint32_t maxNumberOfDoublets,
60  uint16_t minHitsForSharingCuts,
61  bool useRiemannFit,
62  bool fit5as4,
63  bool includeJumpingForwardDoublets,
64  bool earlyFishbone,
65  bool lateFishbone,
66  bool idealConditions,
67  bool doStats,
68  bool doClusterCut,
69  bool doZ0Cut,
70  bool doPtCut,
71  bool doSharedHitCut,
72  bool dupPassThrough,
73  bool useSimpleTripletCleaner,
74  float ptmin,
75  float CAThetaCutBarrel,
76  float CAThetaCutForward,
77  float hardCurvCut,
78  float dcaCutInnerTriplet,
79  float dcaCutOuterTriplet,
80 
81  QualityCuts const& cuts)
82  : onGPU_(onGPU),
83  minHitsPerNtuplet_(minHitsPerNtuplet),
85  minHitsForSharingCut_(minHitsForSharingCuts),
86  useRiemannFit_(useRiemannFit),
87  fit5as4_(fit5as4),
88  includeJumpingForwardDoublets_(includeJumpingForwardDoublets),
89  earlyFishbone_(earlyFishbone),
90  lateFishbone_(lateFishbone),
92  doStats_(doStats),
96  doSharedHitCut_(doSharedHitCut),
98  useSimpleTripletCleaner_(useSimpleTripletCleaner),
99  ptmin_(ptmin),
100  CAThetaCutBarrel_(CAThetaCutBarrel),
101  CAThetaCutForward_(CAThetaCutForward),
102  hardCurvCut_(hardCurvCut),
103  dcaCutInnerTriplet_(dcaCutInnerTriplet),
104  dcaCutOuterTriplet_(dcaCutOuterTriplet),
105  cuts_(cuts) {}
106 
107  const bool onGPU_;
108  const uint32_t minHitsPerNtuplet_;
109  const uint32_t maxNumberOfDoublets_;
110  const uint16_t minHitsForSharingCut_;
111  const bool useRiemannFit_;
112  const bool fit5as4_;
114  const bool earlyFishbone_;
115  const bool lateFishbone_;
116  const bool idealConditions_;
117  const bool doStats_;
118  const bool doClusterCut_;
119  const bool doZ0Cut_;
120  const bool doPtCut_;
121  const bool doSharedHitCut_;
122  const bool dupPassThrough_;
124  const float ptmin_;
125  const float CAThetaCutBarrel_;
126  const float CAThetaCutForward_;
127  const float hardCurvCut_;
128  const float dcaCutInnerTriplet_;
129  const float dcaCutOuterTriplet_;
130 
131  // quality cuts
132  QualityCuts cuts_{// polynomial coefficients for the pT-dependent chi2 cut
133  {0.68177776, 0.74609577, -0.08035491, 0.00315399},
134  // max pT used to determine the chi2 cut
135  10.,
136  // chi2 scale factor: 30 for broken line fit, 45 for Riemann fit
137  30.,
138  // regional cuts for triplets
139  {
140  0.3, // |Tip| < 0.3 cm
141  0.5, // pT > 0.5 GeV
142  12.0 // |Zip| < 12.0 cm
143  },
144  // regional cuts for quadruplets
145  {
146  0.5, // |Tip| < 0.5 cm
147  0.3, // pT > 0.3 GeV
148  12.0 // |Zip| < 12.0 cm
149  }};
150 
151  }; // Params
152 
153 } // namespace cAHitNtupletGenerator
154 
155 template <typename TTraits>
157 public:
158  using Traits = TTraits;
159 
163 
164  template <typename T>
166 
170 
173 
177 
179  : params_(params), paramsMaxDoubletes3Quarters_(3 * params.maxNumberOfDoublets_ / 4) {}
180  ~CAHitNtupletGeneratorKernels() = default;
181 
183 
184  void launchKernels(HitsOnCPU const& hh, TkSoA* tuples_d, cudaStream_t cudaStream);
185 
186  void classifyTuples(HitsOnCPU const& hh, TkSoA* tuples_d, cudaStream_t cudaStream);
187 
188  void fillHitDetIndices(HitsView const* hv, TkSoA* tuples_d, cudaStream_t cudaStream);
189 
190  void buildDoublets(HitsOnCPU const& hh, cudaStream_t stream);
191  void allocateOnGPU(int32_t nHits, cudaStream_t stream);
192  void cleanup(cudaStream_t cudaStream);
193 
194  static void printCounters(Counters const* counters);
196 
197 private:
198  Counters* counters_ = nullptr;
199 
200  // workspace
206 
209  uint32_t* device_nCells_ = nullptr;
210 
214 
216 
218 
220 
222  // params
223  Params const& params_;
227  inline uint32_t nDoubletBlocks(uint32_t blockSize) {
228  // We want (3 * params_.maxNumberOfDoublets_ / 4 + blockSize - 1) / blockSize, but first part is pre-computed.
229  return (paramsMaxDoubletes3Quarters_ + blockSize - 1) / blockSize;
230  }
231 
233  inline uint32_t nQuadrupletBlocks(uint32_t blockSize) {
234  // caConstants::maxNumberOfQuadruplets is a constexpr, so the compiler will pre compute the 3*max/4
235  return (3 * caConstants::maxNumberOfQuadruplets / 4 + blockSize - 1) / blockSize;
236  }
237 };
238 
241 
242 #endif // RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorKernels_h
cAHitNtupletGenerator::Params::earlyFishbone_
const bool earlyFishbone_
Definition: CAHitNtupletGeneratorKernels.h:114
cAHitNtupletGenerator::Counters::nEvents
unsigned long long nEvents
Definition: CAHitNtupletGeneratorKernels.h:15
CAHitNtupletGeneratorKernels::device_theCellTracksContainer_
caConstants::CellTracks * device_theCellTracksContainer_
Definition: CAHitNtupletGeneratorKernels.h:205
PixelTracks_cff.idealConditions
idealConditions
Definition: PixelTracks_cff.py:101
gpuPixelDoublets::doPtCut
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool bool bool bool doPtCut
Definition: gpuPixelDoublets.h:99
CAHitNtupletGeneratorKernels::device_hitTuple_apc_
cms::cuda::AtomicPairCounter * device_hitTuple_apc_
Definition: CAHitNtupletGeneratorKernels.h:217
cuts
const TkSoA *__restrict__ CAHitNtupletGeneratorKernelsGPU::QualityCuts cuts
Definition: CAHitNtupletGeneratorKernelsImpl.h:416
CAHitNtupletGeneratorKernels::allocateOnGPU
void allocateOnGPU(int32_t nHits, cudaStream_t stream)
Definition: CAHitNtupletGeneratorKernelsAlloc.cc:9
cAHitNtupletGenerator::QualityCuts::Region::maxTip
float maxTip
Definition: CAHitNtupletGeneratorKernels.h:46
cAHitNtupletGenerator::Counters::nHits
unsigned long long nHits
Definition: CAHitNtupletGeneratorKernels.h:16
CalibrationSummaryClient_cfi.params
params
Definition: CalibrationSummaryClient_cfi.py:14
cAHitNtupletGenerator::QualityCuts
Definition: CAHitNtupletGeneratorKernels.h:39
CAHitNtupletGeneratorKernels::setCounters
void setCounters(Counters *counters)
Definition: CAHitNtupletGeneratorKernels.h:195
dupPassThrough
const uint32_t *__restrict__ HitContainer Quality bool dupPassThrough
Definition: CAHitNtupletGeneratorKernelsImpl.h:142
cAHitNtupletGenerator::Params::minHitsForSharingCut_
const uint16_t minHitsForSharingCut_
Definition: CAHitNtupletGeneratorKernels.h:110
CAHitNtupletGeneratorKernels::Counters
cAHitNtupletGenerator::Counters Counters
Definition: CAHitNtupletGeneratorKernels.h:162
CAHitNtupletGeneratorKernels::params_
Params const & params_
Definition: CAHitNtupletGeneratorKernels.h:223
cAHitNtupletGenerator::Counters::nLooseTracks
unsigned long long nLooseTracks
Definition: CAHitNtupletGeneratorKernels.h:20
RecoPixelVertexing_cff.onGPU
onGPU
Definition: RecoPixelVertexing_cff.py:20
TrackingRecHit2DHeterogeneous
Definition: TrackingRecHit2DHeterogeneous.h:8
cms::cuda::stream
uint32_t const T *__restrict__ const uint32_t *__restrict__ int32_t int Histo::index_type cudaStream_t stream
Definition: HistoContainer.h:51
CAHitNtupletGeneratorKernels::device_theCellTracks_
unique_ptr< caConstants::CellTracksVector > device_theCellTracks_
Definition: CAHitNtupletGeneratorKernels.h:204
cAHitNtupletGenerator::Params::dcaCutInnerTriplet_
const float dcaCutInnerTriplet_
Definition: CAHitNtupletGeneratorKernels.h:128
CAHitNtupletGeneratorKernels::device_theCellNeighbors_
unique_ptr< caConstants::CellNeighborsVector > device_theCellNeighbors_
Definition: CAHitNtupletGeneratorKernels.h:202
CAHitNtupletGeneratorKernels::~CAHitNtupletGeneratorKernels
~CAHitNtupletGeneratorKernels()=default
TrackingRecHit2DSOAView
Definition: TrackingRecHit2DSOAView.h:16
caConstants::HitToTuple
cms::cuda::OneToManyAssoc< tindex_type, -1, 4 *maxTuples > HitToTuple
Definition: CAConstants.h:77
CAHitNtupletGeneratorKernels::device_theCells_
unique_ptr< GPUCACell[]> device_theCells_
Definition: CAHitNtupletGeneratorKernels.h:207
CAHitNtupletGeneratorKernels::nDoubletBlocks
uint32_t nDoubletBlocks(uint32_t blockSize)
Compute the number of doublet blocks for block size.
Definition: CAHitNtupletGeneratorKernels.h:227
cAHitNtupletGenerator::Params::Params
Params(bool onGPU, uint32_t minHitsPerNtuplet, uint32_t maxNumberOfDoublets, uint16_t minHitsForSharingCuts, bool useRiemannFit, bool fit5as4, bool includeJumpingForwardDoublets, bool earlyFishbone, bool lateFishbone, bool idealConditions, bool doStats, bool doClusterCut, bool doZ0Cut, bool doPtCut, bool doSharedHitCut, bool dupPassThrough, bool useSimpleTripletCleaner, float ptmin, float CAThetaCutBarrel, float CAThetaCutForward, float hardCurvCut, float dcaCutInnerTriplet, float dcaCutOuterTriplet, QualityCuts const &cuts)
Definition: CAHitNtupletGeneratorKernels.h:57
caConstants::maxNumberOfQuadruplets
constexpr uint32_t maxNumberOfQuadruplets
Definition: CAConstants.h:41
cAHitNtupletGenerator::QualityCuts::Region
Definition: CAHitNtupletGeneratorKernels.h:45
CAHitNtupletGeneratorKernels::CAHitNtupletGeneratorKernels
CAHitNtupletGeneratorKernels(Params const &params)
Definition: CAHitNtupletGeneratorKernels.h:178
CAHitNtupletGeneratorKernels::launchKernels
void launchKernels(HitsOnCPU const &hh, TkSoA *tuples_d, cudaStream_t cudaStream)
Definition: CAHitNtupletGeneratorKernels.cc:77
cms::cuda::OneToManyAssoc
Definition: OneToManyAssoc.h:143
CAHitNtupletGeneratorKernels::device_nCells_
uint32_t * device_nCells_
Definition: CAHitNtupletGeneratorKernels.h:209
CAHitNtupletGeneratorKernels::device_tupleMultiplicity_
unique_ptr< TupleMultiplicity > device_tupleMultiplicity_
Definition: CAHitNtupletGeneratorKernels.h:219
CAHitNtupletGeneratorKernels::device_hitToTuple_apc_
cms::cuda::AtomicPairCounter * device_hitToTuple_apc_
Definition: CAHitNtupletGeneratorKernels.h:215
cAHitNtupletGenerator::Params::idealConditions_
const bool idealConditions_
Definition: CAHitNtupletGeneratorKernels.h:116
cAHitNtupletGenerator::Params::lateFishbone_
const bool lateFishbone_
Definition: CAHitNtupletGeneratorKernels.h:115
pixelTrack::Quality
Quality
Definition: TrackSoAHeterogeneousT.h:13
cAHitNtupletGenerator::Params::dupPassThrough_
const bool dupPassThrough_
Definition: CAHitNtupletGeneratorKernels.h:122
cAHitNtupletGenerator::Params::doSharedHitCut_
const bool doSharedHitCut_
Definition: CAHitNtupletGeneratorKernels.h:121
counters
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__ int32_t uint32_t CAHitNtupletGeneratorKernelsGPU::Counters * counters
Definition: CAHitNtupletGeneratorKernelsImpl.h:53
cAHitNtupletGenerator
Definition: CAHitNtupletGeneratorKernels.h:11
cAHitNtupletGenerator::Params::onGPU_
const bool onGPU_
Definition: CAHitNtupletGeneratorKernels.h:107
cAHitNtupletGenerator::Params::maxNumberOfDoublets_
const uint32_t maxNumberOfDoublets_
Definition: CAHitNtupletGeneratorKernels.h:109
CAHitNtupletGeneratorKernels::device_theCellNeighborsContainer_
caConstants::CellNeighbors * device_theCellNeighborsContainer_
Definition: CAHitNtupletGeneratorKernels.h:203
cAHitNtupletGenerator::Params::minHitsPerNtuplet_
const uint32_t minHitsPerNtuplet_
Definition: CAHitNtupletGeneratorKernels.h:108
nHits
const caConstants::TupleMultiplicity *__restrict__ const HitsOnGPU *__restrict__ double *__restrict__ float *__restrict__ double *__restrict__ uint32_t nHits
Definition: BrokenLineFitOnGPU.h:27
cAHitNtupletGenerator::Params::useSimpleTripletCleaner_
const bool useSimpleTripletCleaner_
Definition: CAHitNtupletGeneratorKernels.h:123
caConstants::TupleMultiplicity
cms::cuda::OneToManyAssoc< tindex_type, 8, maxTuples > TupleMultiplicity
Definition: CAConstants.h:78
CAHitNtupletGeneratorKernels::device_hitToTuple_
unique_ptr< HitToTuple > device_hitToTuple_
Definition: CAHitNtupletGeneratorKernels.h:211
cAHitNtupletGenerator::Params::hardCurvCut_
const float hardCurvCut_
Definition: CAHitNtupletGeneratorKernels.h:127
cAHitNtupletGenerator::QualityCuts::chi2MaxPt
float chi2MaxPt
Definition: CAHitNtupletGeneratorKernels.h:42
CAHitNtupletGeneratorKernels::classifyTuples
void classifyTuples(HitsOnCPU const &hh, TkSoA *tuples_d, cudaStream_t cudaStream)
Definition: CAHitNtupletGeneratorKernels.cc:156
CAHitNtupletGeneratorKernels::nQuadrupletBlocks
uint32_t nQuadrupletBlocks(uint32_t blockSize)
Compute the number of quadruplet blocks for block size.
Definition: CAHitNtupletGeneratorKernels.h:233
gpuPixelDoublets::doZ0Cut
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool bool bool doZ0Cut
Definition: gpuPixelDoublets.h:99
cAHitNtupletGenerator::Params::dcaCutOuterTriplet_
const float dcaCutOuterTriplet_
Definition: CAHitNtupletGeneratorKernels.h:129
cAHitNtupletGenerator::Counters::nDupHits
unsigned long long nDupHits
Definition: CAHitNtupletGeneratorKernels.h:23
cms::cuda::OneToManyAssocView
Definition: OneToManyAssoc.h:23
TrackSoAHeterogeneousT
Definition: TrackSoAHeterogeneousT.h:23
CAHitNtupletGeneratorKernels::Traits
TTraits Traits
Definition: CAHitNtupletGeneratorKernels.h:158
CAHitNtupletGeneratorKernels::device_isOuterHitOfCell_
unique_ptr< GPUCACell::OuterHitOfCell[]> device_isOuterHitOfCell_
Definition: CAHitNtupletGeneratorKernels.h:208
CAHitNtupletGeneratorKernels::device_storage_
unique_ptr< cms::cuda::AtomicPairCounter::c_type[]> device_storage_
Definition: CAHitNtupletGeneratorKernels.h:221
cAHitNtupletGenerator::Counters::nZeroTrackCells
unsigned long long nZeroTrackCells
Definition: CAHitNtupletGeneratorKernels.h:26
hh
const auto & hh
Definition: CAHitNtupletGeneratorKernelsImpl.h:552
cAHitNtupletGenerator::Counters::nEmptyCells
unsigned long long nEmptyCells
Definition: CAHitNtupletGeneratorKernels.h:25
cms::cuda::AtomicPairCounter
Definition: AtomicPairCounter.h:11
cAHitNtupletGenerator::QualityCuts::Region::maxZip
float maxZip
Definition: CAHitNtupletGeneratorKernels.h:48
CAHitNtupletGeneratorKernels::HitsView
TrackingRecHit2DSOAView HitsView
Definition: CAHitNtupletGeneratorKernels.h:167
cAHitNtupletGenerator::Counters::nGoodTracks
unsigned long long nGoodTracks
Definition: CAHitNtupletGeneratorKernels.h:21
cAHitNtupletGenerator::QualityCuts::triplet
Region triplet
Definition: CAHitNtupletGeneratorKernels.h:51
cAHitNtupletGenerator::QualityCuts::chi2Coeff
float chi2Coeff[4]
Definition: CAHitNtupletGeneratorKernels.h:41
cAHitNtupletGenerator::Params::cuts_
QualityCuts cuts_
Definition: CAHitNtupletGeneratorKernels.h:132
cAHitNtupletGenerator::Params::doPtCut_
const bool doPtCut_
Definition: CAHitNtupletGeneratorKernels.h:120
cAHitNtupletGenerator::Params::includeJumpingForwardDoublets_
const bool includeJumpingForwardDoublets_
Definition: CAHitNtupletGeneratorKernels.h:113
cAHitNtupletGenerator::Params::CAThetaCutForward_
const float CAThetaCutForward_
Definition: CAHitNtupletGeneratorKernels.h:126
cms::cuda::VecArray
Definition: VecArray.h:14
CAHitNtupletGeneratorKernels::unique_ptr
typename Traits::template unique_ptr< T > unique_ptr
Definition: CAHitNtupletGeneratorKernels.h:165
cAHitNtupletGenerator::Counters::nKilledCells
unsigned long long nKilledCells
Definition: CAHitNtupletGeneratorKernels.h:24
CAHitNtupletGeneratorKernels::fillHitDetIndices
void fillHitDetIndices(HitsView const *hv, TkSoA *tuples_d, cudaStream_t cudaStream)
Definition: CAHitNtupletGeneratorKernels.cc:9
svgfig.template
def template(fileName, svg, replaceme="REPLACEME")
Definition: svgfig.py:521
cAHitNtupletGenerator::Counters::nFitTracks
unsigned long long nFitTracks
Definition: CAHitNtupletGeneratorKernels.h:19
cAHitNtupletGenerator::Params::doZ0Cut_
const bool doZ0Cut_
Definition: CAHitNtupletGeneratorKernels.h:119
CAHitNtupletGeneratorKernels::printCounters
static void printCounters(Counters const *counters)
Definition: CAHitNtupletGeneratorKernels.cc:4
CAHitNtupletGeneratorKernels::paramsMaxDoubletes3Quarters_
const uint32_t paramsMaxDoubletes3Quarters_
Intermediate result avoiding repeated computations.
Definition: CAHitNtupletGeneratorKernels.h:225
cAHitNtupletGenerator::QualityCuts::chi2Scale
float chi2Scale
Definition: CAHitNtupletGeneratorKernels.h:43
cAHitNtupletGenerator::Counters
Definition: CAHitNtupletGeneratorKernels.h:14
CAHitNtupletGeneratorKernels
Definition: CAHitNtupletGeneratorKernels.h:156
CAHitNtupletGeneratorKernels::tupleMultiplicity
TupleMultiplicity const * tupleMultiplicity() const
Definition: CAHitNtupletGeneratorKernels.h:182
maxNumberOfDoublets
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__ int32_t uint32_t maxNumberOfDoublets
Definition: CAHitNtupletGeneratorKernelsImpl.h:43
CAHitNtupletGeneratorKernels::hitToTupleView_
HitToTuple::View hitToTupleView_
Definition: CAHitNtupletGeneratorKernels.h:213
GPUCACell.h
cAHitNtupletGenerator::QualityCuts::Region::minPt
float minPt
Definition: CAHitNtupletGeneratorKernels.h:47
CAHitNtupletGeneratorKernels::device_hitToTupleStorage_
unique_ptr< HitToTuple::Counter[]> device_hitToTupleStorage_
Definition: CAHitNtupletGeneratorKernels.h:212
ptmin
double ptmin
Definition: HydjetWrapper.h:84
cAHitNtupletGenerator::Params::useRiemannFit_
const bool useRiemannFit_
Definition: CAHitNtupletGeneratorKernels.h:111
PixelTrackHeterogeneous.h
CAHitNtupletGeneratorKernels::cellStorage_
unique_ptr< unsigned char[]> cellStorage_
Definition: CAHitNtupletGeneratorKernels.h:201
CAHitNtupletGeneratorKernels::buildDoublets
void buildDoublets(HitsOnCPU const &hh, cudaStream_t stream)
Definition: CAHitNtupletGeneratorKernels.cc:14
pixelTrack::HitContainer
TrackSoA::HitContainer HitContainer
Definition: TrackSoAHeterogeneousT.h:78
cAHitNtupletGenerator::Params::doClusterCut_
const bool doClusterCut_
Definition: CAHitNtupletGeneratorKernels.h:118
pixelTrack::TrackSoA
TrackSoAHeterogeneousT< maxNumber()> TrackSoA
Definition: TrackSoAHeterogeneousT.h:76
gpuPixelDoublets::doClusterCut
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int bool bool doClusterCut
Definition: gpuPixelDoublets.h:99
cAHitNtupletGenerator::Counters::nCells
unsigned long long nCells
Definition: CAHitNtupletGeneratorKernels.h:17
CAHitNtupletGeneratorKernels::counters_
Counters * counters_
Definition: CAHitNtupletGeneratorKernels.h:198
cAHitNtupletGenerator::Params
Definition: CAHitNtupletGeneratorKernels.h:56
cAHitNtupletGenerator::Params::doStats_
const bool doStats_
Definition: CAHitNtupletGeneratorKernels.h:117
cAHitNtupletGenerator::Counters::nUsedHits
unsigned long long nUsedHits
Definition: CAHitNtupletGeneratorKernels.h:22
cAHitNtupletGenerator::Params::ptmin_
const float ptmin_
Definition: CAHitNtupletGeneratorKernels.h:124
cAHitNtupletGenerator::QualityCuts::quadruplet
Region quadruplet
Definition: CAHitNtupletGeneratorKernels.h:52
cAHitNtupletGenerator::Counters::nTuples
unsigned long long nTuples
Definition: CAHitNtupletGeneratorKernels.h:18
CAHitNtupletGeneratorKernels::cleanup
void cleanup(cudaStream_t cudaStream)
cAHitNtupletGenerator::Params::CAThetaCutBarrel_
const float CAThetaCutBarrel_
Definition: CAHitNtupletGeneratorKernels.h:125
cAHitNtupletGenerator::Params::fit5as4_
const bool fit5as4_
Definition: CAHitNtupletGeneratorKernels.h:112