Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:19:39

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 //#define GPU_DEBUG
0014 namespace pixelgpudetails {
0015 
0016   template <typename TrackerTraits>
0017   class PixelRecHitGPUKernel {
0018   public:
0019     PixelRecHitGPUKernel() = default;
0020     ~PixelRecHitGPUKernel() = default;
0021 
0022     PixelRecHitGPUKernel(const PixelRecHitGPUKernel&) = delete;
0023     PixelRecHitGPUKernel(PixelRecHitGPUKernel&&) = delete;
0024     PixelRecHitGPUKernel& operator=(const PixelRecHitGPUKernel&) = delete;
0025     PixelRecHitGPUKernel& operator=(PixelRecHitGPUKernel&&) = delete;
0026 
0027     using ParamsOnGPU = pixelCPEforGPU::ParamsOnGPUT<TrackerTraits>;
0028 
0029     TrackingRecHitSoADevice<TrackerTraits> makeHitsAsync(SiPixelDigisCUDA const& digis_d,
0030                                                          SiPixelClustersCUDA const& clusters_d,
0031                                                          BeamSpotCUDA const& bs_d,
0032                                                          ParamsOnGPU const* cpeParams,
0033                                                          cudaStream_t stream) const;
0034   };
0035 
0036 }  // namespace pixelgpudetails
0037 
0038 #endif  // RecoLocalTracker_SiPixelRecHits_plugins_PixelRecHitGPUKernel_h