CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
HcalRecoParamsWithPulseShapesGPU.h
Go to the documentation of this file.
1 #ifndef RecoLocalCalo_HcalRecAlgos_interface_HcalRecoParamsWithPulseShapesGPU_h
2 #define RecoLocalCalo_HcalRecAlgos_interface_HcalRecoParamsWithPulseShapesGPU_h
3 
4 #ifndef __CUDACC__
7 #endif
8 
9 class HcalRecoParams;
10 
11 //
12 // TODO: HcalPulseShapes will need to be used via ESSource
13 // This is a workaround: precompute/store/transfer what's needed only
14 //
16 public:
17  struct Product {
18  ~Product();
19  uint32_t *param1 = nullptr, *param2 = nullptr;
20  uint32_t *ids = nullptr;
21 
22  // These guys come directly from PulseShapeFunctor class
23  float *acc25nsVec = nullptr, *diff25nsItvlVec = nullptr, *accVarLenIdxMinusOneVec = nullptr,
25  };
26 
27 #ifndef __CUDACC__
28  // rearrange reco params
30 
31  // will trigger deallocation of Product thru ~Product
33 
34  // get device pointers
35  Product const &getProduct(cudaStream_t) const;
36 
37 private:
39  std::vector<uint32_t, cms::cuda::HostAllocator<uint32_t>> param1_;
40  std::vector<uint32_t, cms::cuda::HostAllocator<uint32_t>> param2_;
41  std::vector<uint32_t, cms::cuda::HostAllocator<uint32_t>> ids_;
42 
43  std::vector<float, cms::cuda::HostAllocator<float>> acc25nsVec_; // 256
44  std::vector<float, cms::cuda::HostAllocator<float>> diff25nsItvlVec_; // 256
45  std::vector<float, cms::cuda::HostAllocator<float>> accVarLenIdxMinusOneVec_; // 25
46  std::vector<float, cms::cuda::HostAllocator<float>> diffVarItvlIdxMinusOneVec_; // 25
47  std::vector<float, cms::cuda::HostAllocator<float>> accVarLenIdxZEROVec_; // 25
48  std::vector<float, cms::cuda::HostAllocator<float>> diffVarItvlIdxZEROVec_; // 25
49 
51 #endif
52 };
53 
54 #endif
std::vector< float, cms::cuda::HostAllocator< float > > diffVarItvlIdxZEROVec_
std::vector< float, cms::cuda::HostAllocator< float > > accVarLenIdxMinusOneVec_
std::vector< uint32_t, cms::cuda::HostAllocator< uint32_t > > param1_
std::vector< float, cms::cuda::HostAllocator< float > > diffVarItvlIdxMinusOneVec_
std::vector< float, cms::cuda::HostAllocator< float > > accVarLenIdxZEROVec_
std::vector< float, cms::cuda::HostAllocator< float > > acc25nsVec_
std::vector< uint32_t, cms::cuda::HostAllocator< uint32_t > > param2_
unsigned long long uint64_t
Definition: Time.h:13
Product const & getProduct(cudaStream_t) const
std::vector< float, cms::cuda::HostAllocator< float > > diff25nsItvlVec_
std::vector< uint32_t, cms::cuda::HostAllocator< uint32_t > > ids_