Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:23

0001 #ifndef RecoLocalTracker_SiPixelRecHits_plugins_PixelRecHitGPUKernel_h
0002 #define RecoLocalTracker_SiPixelRecHits_plugins_PixelRecHitGPUKernel_h
0003 
0004 #include <cstdint>
0005 
0006 #include <cuda_runtime.h>
0007 
0008 #include "CUDADataFormats/BeamSpot/interface/BeamSpotCUDA.h"
0009 #include "CUDADataFormats/SiPixelCluster/interface/SiPixelClustersCUDA.h"
0010 #include "CUDADataFormats/SiPixelDigi/interface/SiPixelDigisCUDA.h"
0011 #include "CUDADataFormats/TrackingRecHit/interface/TrackingRecHitSoADevice.h"
0012 #include "Geometry/CommonTopologies/interface/SimplePixelTopology.h"
0013 
0014 //#define GPU_DEBUG
0015 
0016 namespace pixelgpudetails {
0017 
0018   template <typename TrackerTraits>
0019   class PixelRecHitGPUKernel {
0020   public:
0021     PixelRecHitGPUKernel() = default;
0022     ~PixelRecHitGPUKernel() = default;
0023 
0024     PixelRecHitGPUKernel(const PixelRecHitGPUKernel&) = delete;
0025     PixelRecHitGPUKernel(PixelRecHitGPUKernel&&) = delete;
0026     PixelRecHitGPUKernel& operator=(const PixelRecHitGPUKernel&) = delete;
0027     PixelRecHitGPUKernel& operator=(PixelRecHitGPUKernel&&) = delete;
0028 
0029     using ParamsOnGPU = pixelCPEforGPU::ParamsOnGPUT<TrackerTraits>;
0030 
0031     TrackingRecHitSoADevice<TrackerTraits> makeHitsAsync(SiPixelDigisCUDA const& digis_d,
0032                                                          SiPixelClustersCUDA const& clusters_d,
0033                                                          BeamSpotCUDA const& bs_d,
0034                                                          ParamsOnGPU const* cpeParams,
0035                                                          cudaStream_t stream) const;
0036   };
0037 
0038 }  // namespace pixelgpudetails
0039 
0040 #endif  // RecoLocalTracker_SiPixelRecHits_plugins_PixelRecHitGPUKernel_h