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>
5 
8 
16 
18 #include "GPUCACell.h"
19 #include "HelixFitOnGPU.h"
20 
21 namespace edm {
22  class Event;
23  class EventSetup;
25 } // namespace edm
26 
27 template <typename TrackerTraits>
29 public:
35 
39 
45 
48 
50 
54 
55 public:
59 
62 
63  void beginJob();
64  void endJob();
65 
66  TrackSoADevice makeTuplesAsync(HitsOnDevice const& hits_d, float bfield, cudaStream_t stream) const;
67 
68  TrackSoAHost makeTuples(HitsOnHost const& hits_d, float bfield) const;
69 
70 private:
71  void buildDoublets(const HitsConstView& hh, cudaStream_t stream) const;
72 
73  void hitNtuplets(const HitsConstView& hh, const edm::EventSetup& es, bool useRiemannFit, cudaStream_t cudaStream);
74 
75  void launchKernels(const HitsConstView& hh, bool useRiemannFit, cudaStream_t cudaStream) const;
76 
78 
79  Counters* m_counters = nullptr;
80 };
81 
82 #endif // RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorOnGPU_h
static void fillDescriptionsCommon(edm::ParameterSetDescription &desc)
TrackSoAHost makeTuples(HitsOnHost const &hits_d, float bfield) const
CAHitNtupletGeneratorOnGPU(const edm::ParameterSet &cfg, edm::ConsumesCollector &&iC)
TrackingRecHitSoADevice< TrackerTraits > HitsOnDevice
TrackSoAHeterogeneousHost< TrackerTraits > TrackSoAHost
caHitNtupletGenerator::Counters Counters
static void fillDescriptions(edm::ParameterSetDescription &desc)
TrackSoAHeterogeneousDevice< TrackerTraits > TrackSoADevice
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
typename TrackSoA< TrackerTraits >::HitContainer HitContainer
TrackingRecHitSoAHost< TrackerTraits > HitsOnHost
typename TrackerTraits::hindex_type hindex_type
TrackSoADevice makeTuplesAsync(HitsOnDevice const &hits_d, float bfield, cudaStream_t stream) const
typename TrackingRecHitSoA< TrackerTraits >::hindex_type hindex_type
void hitNtuplets(const HitsConstView &hh, const edm::EventSetup &es, bool useRiemannFit, cudaStream_t cudaStream)
TrackingRecHitSoAView< TrackerTraits > HitsView
void launchKernels(const HitsConstView &hh, bool useRiemannFit, cudaStream_t cudaStream) const
typename TrackingRecHitSoA< TrackerTraits >::template TrackingRecHitSoALayout<>::ConstView TrackingRecHitSoAConstView
HLT enums.
void buildDoublets(const HitsConstView &hh, cudaStream_t stream) const
typename TrackingRecHitSoA< TrackerTraits >::template TrackingRecHitSoALayout<>::View TrackingRecHitSoAView
TupleMultiplicity< TrackerTraits > const *__restrict__ TrackingRecHitSoAConstView< TrackerTraits > hh
TrackingRecHitSoAConstView< TrackerTraits > HitsConstView