CMS 3D CMS Logo

CAHitNtupletGeneratorOnGPU.h
Go to the documentation of this file.
1 #ifndef RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorOnGPU_h
2 #define RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorOnGPU_h
3 
4 #include <cuda_runtime.h>
7 
12 
14 #include "HelixFitOnGPU.h"
15 
16 #include "GPUCACell.h"
17 
18 namespace edm {
19  class Event;
20  class EventSetup;
22 } // namespace edm
23 
25 public:
29 
34 
38 
39 public:
43 
45  static const char* fillDescriptionsLabel() { return "caHitNtupletOnGPU"; }
46 
47  void beginJob();
48  void endJob();
49 
50  PixelTrackHeterogeneous makeTuplesAsync(TrackingRecHit2DGPU const& hits_d, float bfield, cudaStream_t stream) const;
51 
52  PixelTrackHeterogeneous makeTuples(TrackingRecHit2DCPU const& hits_d, float bfield) const;
53 
54 private:
55  void buildDoublets(HitsOnCPU const& hh, cudaStream_t stream) const;
56 
57  void hitNtuplets(HitsOnCPU const& hh, const edm::EventSetup& es, bool useRiemannFit, cudaStream_t cudaStream);
58 
59  void launchKernels(HitsOnCPU const& hh, bool useRiemannFit, cudaStream_t cudaStream) const;
60 
62 
63  Counters* m_counters = nullptr;
64 };
65 
66 #endif // RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorOnGPU_h
auto const & hh
TrackingRecHit2DHeterogeneous< cms::cudacompat::GPUTraits > TrackingRecHit2DGPU
void hitNtuplets(HitsOnCPU const &hh, const edm::EventSetup &es, bool useRiemannFit, cudaStream_t cudaStream)
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
static void fillDescriptions(edm::ParameterSetDescription &desc)
TrackSoA::HitContainer HitContainer
void launchKernels(HitsOnCPU const &hh, bool useRiemannFit, cudaStream_t cudaStream) const
TrackSoAHeterogeneousT< maxNumber()> TrackSoA
pixelTrack::HitContainer HitContainer
PixelTrackHeterogeneous makeTuplesAsync(TrackingRecHit2DGPU const &hits_d, float bfield, cudaStream_t stream) const
TrackingRecHit2DSOAView::hindex_type hindex_type
CAHitNtupletGeneratorOnGPU(const edm::ParameterSet &cfg, edm::ConsumesCollector &&iC)
void buildDoublets(HitsOnCPU const &hh, cudaStream_t stream) const
PixelTrackHeterogeneous makeTuples(TrackingRecHit2DCPU const &hits_d, float bfield) const
static const char * fillDescriptionsLabel()
HLT enums.