Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-07-03 04:17:36

0001 #ifndef CondFormats_HcalObjects_interface_HcalRecoParamWithPulseShapeHost_h
0002 #define CondFormats_HcalObjects_interface_HcalRecoParamWithPulseShapeHost_h
0003 
0004 #include "CondFormats/HcalObjects/interface/HcalRecoParamWithPulseShapeT.h"
0005 #include "DataFormats/Portable/interface/PortableCollection.h"
0006 #include "DataFormats/Portable/interface/PortableHostCollection.h"
0007 
0008 namespace hcal {
0009   using HcalRecoParamWithPulseShapeHost = HcalRecoParamWithPulseShapeT<alpaka::DevCpu>;
0010 }
0011 namespace cms::alpakatools {
0012   template <>
0013   struct CopyToDevice<::hcal::HcalRecoParamWithPulseShapeHost> {
0014     template <typename TQueue>
0015     static auto copyAsync(TQueue& queue, ::hcal::HcalRecoParamWithPulseShapeHost const& hostProduct) {
0016       using RecoParamCopy = CopyToDevice<::hcal::HcalRecoParamWithPulseShapeHost::RecoParamCollection>;
0017       using PulseShapeCopy = CopyToDevice<::hcal::HcalRecoParamWithPulseShapeHost::PulseShapeCollection>;
0018       using Device = alpaka::Dev<TQueue>;
0019       return ::hcal::HcalRecoParamWithPulseShapeT<Device>(RecoParamCopy::copyAsync(queue, hostProduct.recoParam()),
0020                                                           PulseShapeCopy::copyAsync(queue, hostProduct.pulseShape()));
0021     }
0022   };
0023 }  // namespace cms::alpakatools
0024 
0025 #endif