CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
EcalRecHitParametersGPU.h
Go to the documentation of this file.
1 #ifndef CondFormats_EcalObjects_interface_EcalRecHitParametersGPU_h
2 #define CondFormats_EcalObjects_interface_EcalRecHitParametersGPU_h
3 
4 #include <array>
5 
8 
9 #ifndef __CUDACC__
12 #endif // __CUDACC__
13 
15 public:
16  struct Product {
21  };
22 
23 #ifndef __CUDACC__
24  struct DBStatus {
25  DBStatus(int flag, std::vector<uint32_t> status) : recoflagbit{flag}, dbstatus(std::move(status)) {}
26  int recoflagbit; //must be a EcalRecHit::Flags
27  std::vector<uint32_t> dbstatus; //must contain EcalChannelStatusCode::Code
28  };
29 
31  EcalRecHitParametersGPU(std::vector<int> const& channelStatusToBeExcluded,
32  std::vector<DBStatus> const& flagsMapDBReco);
33 
34  ~EcalRecHitParametersGPU() = default;
35 
36  Product const& getProduct(cudaStream_t) const;
37 
38  using intvec = std::reference_wrapper<std::vector<int, cms::cuda::HostAllocator<int>> const>;
39  using uint32vec = std::reference_wrapper<std::vector<uint32_t, cms::cuda::HostAllocator<uint32_t>> const>;
40  std::tuple<intvec, intvec, uint32vec, uint32vec> getValues() const {
45  }
46 
47 private:
48  std::vector<int, cms::cuda::HostAllocator<int>> channelStatusToBeExcluded_;
49  std::vector<int, cms::cuda::HostAllocator<int>> expanded_v_DB_reco_flags_;
50  std::vector<uint32_t, cms::cuda::HostAllocator<uint32_t>> expanded_Sizes_v_DB_reco_flags_,
52 
54 #endif // __CUDACC__
55 };
56 
57 #endif // CondFormats_EcalObjects_interface_EcalRecHitParametersGPU_h
edm::propagate_const_array< cms::cuda::device::unique_ptr< int[]> > expanded_v_DB_reco_flags
std::vector< int, cms::cuda::HostAllocator< int > > channelStatusToBeExcluded_
cms::cuda::ESProduct< Product > product_
edm::propagate_const_array< cms::cuda::device::unique_ptr< uint32_t[]> > expanded_Sizes_v_DB_reco_flags
EcalRecHitParametersGPU(std::vector< int > const &channelStatusToBeExcluded, std::vector< DBStatus > const &flagsMapDBReco)
channelStatusToBeExcluded must contain EcalChannelStatusCode::Code
std::vector< int, cms::cuda::HostAllocator< int > > expanded_v_DB_reco_flags_
list status
Definition: mps_update.py:107
std::reference_wrapper< std::vector< uint32_t, cms::cuda::HostAllocator< uint32_t >> const > uint32vec
std::vector< uint32_t, cms::cuda::HostAllocator< uint32_t > > expanded_Sizes_v_DB_reco_flags_
std::reference_wrapper< std::vector< int, cms::cuda::HostAllocator< int >> const > intvec
tuple flagsMapDBReco
std::vector< uint32_t, cms::cuda::HostAllocator< uint32_t > > expanded_flagbit_v_DB_reco_flags_
def move
Definition: eostools.py:511
DBStatus(int flag, std::vector< uint32_t > status)
edm::propagate_const_array< cms::cuda::device::unique_ptr< int[]> > channelStatusToBeExcluded
~EcalRecHitParametersGPU()=default
Product const & getProduct(cudaStream_t) const
std::tuple< intvec, intvec, uint32vec, uint32vec > getValues() const
edm::propagate_const_array< cms::cuda::device::unique_ptr< uint32_t[]> > expanded_flagbit_v_DB_reco_flags