Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 10:00:02

0001 #ifndef RecoLocalCalo_HcalRecAlgos_interface_HcalMahiPulseOffsetsGPU_h
0002 #define RecoLocalCalo_HcalRecAlgos_interface_HcalMahiPulseOffsetsGPU_h
0003 
0004 #ifndef __CUDACC__
0005 #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h"
0006 #include "HeterogeneousCore/CUDACore/interface/ESProduct.h"
0007 #endif
0008 
0009 class HcalMahiPulseOffsetsGPU {
0010 public:
0011   struct Product {
0012     ~Product();
0013     int* values;
0014   };
0015 
0016 #ifndef __CUDACC__
0017   // rearrange reco params
0018   HcalMahiPulseOffsetsGPU(std::vector<int> const& values);
0019 
0020   // will trigger deallocation of Product thru ~Product
0021   ~HcalMahiPulseOffsetsGPU() = default;
0022 
0023   std::vector<int, cms::cuda::HostAllocator<int>> const& getValues() const { return values_; }
0024 
0025   // get device pointers
0026   Product const& getProduct(cudaStream_t) const;
0027 
0028 private:
0029   std::vector<int, cms::cuda::HostAllocator<int>> values_;
0030 
0031   cms::cuda::ESProduct<Product> product_;
0032 #endif
0033 };
0034 
0035 #endif