File indexing completed on 2024-04-06 12:27:34
0001 #ifndef RecoParticleFlow_PFRecHitProducer_plugins_alpaka_PFRecHitProducerKernel_h
0002 #define RecoParticleFlow_PFRecHitProducer_plugins_alpaka_PFRecHitProducerKernel_h
0003
0004 #include "DataFormats/ParticleFlowReco/interface/alpaka/PFRecHitDeviceCollection.h"
0005 #include "HeterogeneousCore/AlpakaInterface/interface/config.h"
0006 #include "CalorimeterDefinitions.h"
0007
0008 namespace ALPAKA_ACCELERATOR_NAMESPACE {
0009
0010 template <typename CAL>
0011 class PFRecHitProducerKernel {
0012 public:
0013 PFRecHitProducerKernel(Queue& queue, const uint32_t num_recHits);
0014
0015
0016
0017 void processRecHits(Queue& queue,
0018 const typename CAL::CaloRecHitSoATypeDevice& recHits,
0019 const typename CAL::ParameterType& params,
0020 const typename CAL::TopologyTypeDevice& topology,
0021 reco::PFRecHitDeviceCollection& pfRecHits);
0022
0023
0024 void associateTopologyInfo(Queue& queue,
0025 const typename CAL::TopologyTypeDevice& topology,
0026 reco::PFRecHitDeviceCollection& pfRecHits);
0027
0028 private:
0029 cms::alpakatools::device_buffer<Device, uint32_t[]> denseId2pfRecHit_;
0030 cms::alpakatools::device_buffer<Device, uint32_t> num_pfRecHits_;
0031 WorkDiv<Dim1D> work_div_;
0032 };
0033
0034 }
0035
0036 #endif