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 }
0024
0025 #endif