1 #ifndef RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorKernels_h 2 #define RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorKernels_h 45 template <
typename TrackerTraits,
typename Enable =
void>
51 template <
typename TrackerTraits>
61 (pid < 3 || pid == 13 || pid == 15 || pid == 16));
66 template <
typename TrackerTraits>
83 template <
typename TrackerTraits,
typename Enable =
void>
87 inline uint32_t
nPairs()
const {
return 0; }
90 template <
typename TrackerTraits>
92 using TT = TrackerTraits;
101 :
AlgoParams(commonCuts), cellCuts_(cellCuts), qualityCuts_(cutsCuts), caParams_(caParams) {}
105 {0.68177776, 0.74609577, -0.08035491, 0.00315399},
141 template <
typename TrackerTraits>
143 using TT = TrackerTraits;
162 if (caParams_.includeFarForwards_) {
197 template <
typename TTraits,
typename TTTraits>
207 template <
typename T>
241 void cleanup(cudaStream_t cudaStream);
285 return (3 * TrackerTraits::maxNumberOfQuadruplets / 4 + blockSize - 1) / blockSize;
289 template <
typename TrackerTraits>
314 template <
typename TrackerTraits>
339 #endif // RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorKernels_h void setCounters(Counters *counters)
void classifyTuples(const HitsConstView &hh, TkSoAView &track_view, cudaStream_t cudaStream)
CAHitNtupletGeneratorKernels(Params const ¶ms)
unsigned long long nKilledCells
TrackingRecHitSoAConstView< TrackerTraits > HitsConstView
static void printCounters(Counters const *counters)
typename TrackSoA< TrackerTraits >::HitContainer HitContainer
unique_ptr< OuterHitOfCellContainer[]> device_isOuterHitOfCell_
void launchKernels(const HitsConstView &hh, TkSoAView &track_view, cudaStream_t cudaStream)
void classifyTuples(const HitsConstView &hh, TkSoAView &track_view, cudaStream_t cudaStream)
const uint32_t minHitsPerNtuplet_
unique_ptr< CellTracksVector > device_theCellTracks_
TrackSoAView< TrackerTraits > TkSoAView
typename std::enable_if< std::is_base_of< Phase2, T >::value >::type isPhase2Topology
caHitNtupletGenerator::Counters Counters
cms::cuda::AtomicPairCounter * device_hitToTuple_apc_
const float dcaCutInnerTriplet_
unsigned long long nFishCells
TrackSoAView< TrackerTraits > TkSoAView
const float CAThetaCutForward_
const uint32_t paramsMaxDoubletes3Quarters_
Intermediate result avoiding repeated computations.
~CAHitNtupletGeneratorKernels()=default
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
unique_ptr< HitToTuple > device_hitToTuple_
HitToTuple::View hitToTupleView_
unique_ptr< uint32_t[]> device_hitToTupleStorage_
const float CAThetaCutBarrel_
void classifyTuples(const HitsConstView &hh, TkSoAView &track_view, cudaStream_t cudaStream)
unsigned long long nGoodTracks
void allocateOnGPU(int32_t nHits, cudaStream_t stream)
unsigned long long nEvents
ParamsT(AlgoParams const &commonCuts, CellCuts const &cellCuts, QualityCuts const &cutsCuts, CAParams const &caParams)
OuterHitOfCell isOuterHitOfCell_
unique_ptr< CACell[]> device_theCells_
const float dcaCutOuterTriplet_
TupleMultiplicity< TrackerTraits > const HitToTuple< TrackerTraits > const cms::cuda::AtomicPairCounter GPUCACellT< TrackerTraits > const *__restrict__ uint32_t const *__restrict__ CellNeighborsVector< TrackerTraits > const CellTracksVector< TrackerTraits > const OuterHitOfCell< TrackerTraits > const int32_t uint32_t Counters * counters
unsigned long long nLooseTracks
unsigned long long nEmptyCells
unsigned long long nDupHits
CellTracks * device_theCellTracksContainer_
static void printCounters(Counters const *counters)
const uint32_t minHitsForSharingCut_
unique_ptr< TupleMultiplicity > device_tupleMultiplicity_
def template(fileName, svg, replaceme="REPLACEME")
void buildDoublets(const HitsConstView &hh, cudaStream_t stream)
typename std::enable_if< std::is_base_of< Phase1, T >::value >::type isPhase1Topology
unsigned long long nZeroTrackCells
TupleMultiplicity const * tupleMultiplicity() const
ParamsT(AlgoParams const &commonCuts, CellCuts const &cellCuts, QualityCuts const &qualityCuts, CAParams const &caParams)
TrackingRecHitSoAView< TrackerTraits > HitsView
uint32_t CellNeighborsVector< TrackerTraits > CellTracksVector< TrackerTraits > HitsConstView< TrackerTraits > OuterHitOfCell< TrackerTraits > int nActualPairs
typename TrackSoA< TrackerTraits >::HitContainer HitContainer
uint32_t nQuadrupletBlocks(uint32_t blockSize)
Compute the number of quadruplet blocks for block size.
void launchKernels(const HitsConstView &hh, TkSoAView &track_view, cudaStream_t cudaStream)
TrackerTraits TrackerTraits
const bool includeJumpingForwardDoublets_
caHitNtupletGenerator::Counters Counters
unique_ptr< unsigned char[]> cellStorage_
uint32_t nDoubletBlocks(uint32_t blockSize)
Compute the number of doublet blocks for block size.
unique_ptr< CellNeighborsVector > device_theCellNeighbors_
void allocateOnGPU(int32_t nHits, cudaStream_t stream)
typename TrackSoA< TrackerTraits >::HitContainer HitContainer
TrackingRecHitSoAConstView< TrackerTraits > HitsConstView
typename TrackingRecHitSoA< TrackerTraits >::template TrackingRecHitSoALayout<>::ConstView TrackingRecHitSoAConstView
void allocateOnGPU(int32_t nHits, cudaStream_t stream)
const bool useSimpleTripletCleaner_
unsigned long long nCells
uint32_t nPairs() const
Compute the number of pairs.
uint32_t * device_nCells_
const bool useRiemannFit_
const bool includeFarForwards_
void launchKernels(const HitsConstView &hh, TkSoAView &track_view, cudaStream_t cudaStream)
void buildDoublets(const HitsConstView &hh, int32_t offsetBPIX2, cudaStream_t stream)
typename TrackSoA< TrackerTraits >::template TrackSoALayout<>::View TrackSoAView
void buildDoublets(const HitsConstView &hh, int32_t offsetBPIX2, cudaStream_t stream)
unsigned long long nTuples
typename TrackingRecHitSoA< TrackerTraits >::template TrackingRecHitSoALayout<>::View TrackingRecHitSoAView
unique_ptr< cms::cuda::AtomicPairCounter::c_type[]> device_storage_
TupleMultiplicity< TrackerTraits > const *__restrict__ TrackingRecHitSoAConstView< TrackerTraits > hh
const bool doSharedHitCut_
TupleMultiplicity< TrackerTraits > const *__restrict__ uint32_t nHits
const bool dupPassThrough_
CellNeighbors * device_theCellNeighborsContainer_
TrackingRecHitSoAConstView< TrackerTraits > HitsConstView
static constexpr uint8_t const * layerPairs
unsigned long long nFitTracks
TrackSoAView< TrackerTraits > TkSoAView
const bool earlyFishbone_
static void printCounters(Counters const *counters)
static constexpr uint8_t const * layerPairs
unsigned long long nUsedHits
cms::cuda::AtomicPairCounter * device_hitTuple_apc_
void cleanup(cudaStream_t cudaStream)
typename Traits::template unique_ptr< T > unique_ptr