Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-05-27 01:56:29

0001 #ifndef RecoLocalCalo_HGCalRecAlgos_interface_alpaka_HGCalRecHitCalibrationAlgorithms_h
0002 #define RecoLocalCalo_HGCalRecAlgos_interface_alpaka_HGCalRecHitCalibrationAlgorithms_h
0003 
0004 // Alpaka imports
0005 #include <alpaka/alpaka.hpp>
0006 #include "HeterogeneousCore/AlpakaInterface/interface/config.h"
0007 
0008 // HGCal digis data formats
0009 #include "DataFormats/HGCalDigi/interface/HGCalElectronicsId.h"
0010 #include "DataFormats/HGCalDigi/interface/HGCROCChannelDataFrame.h"
0011 
0012 // Host & devide HGCal RecHit data formats
0013 #include "DataFormats/HGCalDigi/interface/HGCalDigiHost.h"
0014 #include "DataFormats/HGCalDigi/interface/alpaka/HGCalDigiDevice.h"
0015 #include "DataFormats/HGCalRecHit/interface/HGCalRecHitHost.h"
0016 #include "DataFormats/HGCalRecHit/interface/alpaka/HGCalRecHitDevice.h"
0017 #include "CondFormats/HGCalObjects/interface/HGCalCalibrationParameterHost.h"
0018 #include "CondFormats/HGCalObjects/interface/alpaka/HGCalCalibrationParameterDevice.h"
0019 #include "CondFormats/HGCalObjects/interface/HGCalMappingParameterHost.h"
0020 #include "CondFormats/HGCalObjects/interface/alpaka/HGCalMappingParameterDevice.h"
0021 
0022 namespace ALPAKA_ACCELERATOR_NAMESPACE {
0023 
0024   using namespace hgcaldigi;
0025   using namespace hgcalrechit;
0026   using namespace hgcal;
0027 
0028   class HGCalRecHitCalibrationAlgorithms {
0029   public:
0030     HGCalRecHitCalibrationAlgorithms(int n_blocks, int n_threads) : n_blocks_(n_blocks), n_threads_(n_threads) {}
0031 
0032     HGCalRecHitDevice calibrate(Queue& queue,
0033                                 HGCalDigiHost const& host_digis,
0034                                 HGCalCalibParamDevice const& device_calib,
0035                                 HGCalMappingCellParamDevice const& device_mapping,
0036                                 HGCalDenseIndexInfoDevice const& device_index) const;
0037 
0038   private:
0039     void print(HGCalDigiHost const& digis, int max = -1) const;
0040     void print_digi_device(HGCalDigiDevice const& digis, int max = -1) const;
0041     void print_recHit_device(Queue& queue,
0042                              PortableHostCollection<hgcalrechit::HGCalRecHitSoALayout<> >::View const& recHits,
0043                              int max = -1) const;
0044 
0045     int n_blocks_;
0046     int n_threads_;
0047   };
0048 
0049 }  // namespace ALPAKA_ACCELERATOR_NAMESPACE
0050 
0051 #endif  // RecoLocalCalo_HGCalRecAlgos_interface_alpaka_HGCalRecHitCalibrationAlgorithms_h