diff --git a/DataFormats/HcalRecHit/BuildFile.xml b/DataFormats/HcalRecHit/BuildFile.xml index 45f262e49d64a..2bfe480b54a5d 100644 --- a/DataFormats/HcalRecHit/BuildFile.xml +++ b/DataFormats/HcalRecHit/BuildFile.xml @@ -2,6 +2,10 @@ + + + + diff --git a/DataFormats/HcalRecHit/interface/HcalRecHitHostCollection.h b/DataFormats/HcalRecHit/interface/HcalRecHitHostCollection.h new file mode 100644 index 0000000000000..97f21a41a8c1b --- /dev/null +++ b/DataFormats/HcalRecHit/interface/HcalRecHitHostCollection.h @@ -0,0 +1,13 @@ +#ifndef DataFormats_HcalRecHit_HcalRecHitHostCollection_h +#define DataFormats_HcalRecHit_HcalRecHitHostCollection_h + +#include "DataFormats/Portable/interface/PortableHostCollection.h" +#include "DataFormats/HcalRecHit/interface/HcalRecHitSoA.h" + +namespace hcal { + + // HcalRecHitSoA in host memory + using RecHitHostCollection = PortableHostCollection; +} // namespace hcal + +#endif diff --git a/DataFormats/HcalRecHit/interface/HcalRecHitSoA.h b/DataFormats/HcalRecHit/interface/HcalRecHitSoA.h new file mode 100644 index 0000000000000..cf76c86907da9 --- /dev/null +++ b/DataFormats/HcalRecHit/interface/HcalRecHitSoA.h @@ -0,0 +1,19 @@ +#ifndef DataFormats_HcalRecHit_HcalRecHitSoA_h +#define DataFormats_HcalRecHit_HcalRecHitSoA_h + +#include "DataFormats/SoATemplate/interface/SoALayout.h" + +namespace hcal { + + GENERATE_SOA_LAYOUT(HcalRecHitSoALayout, + SOA_SCALAR(uint32_t, size), + SOA_COLUMN(uint32_t, detId), + SOA_COLUMN(float, energy), + SOA_COLUMN(float, chi2), + SOA_COLUMN(float, energyM0), + SOA_COLUMN(float, timeM0)) + + using HcalRecHitSoA = HcalRecHitSoALayout<>; +} // namespace hcal + +#endif diff --git a/DataFormats/HcalRecHit/interface/alpaka/HcalRecHitDeviceCollection.h b/DataFormats/HcalRecHit/interface/alpaka/HcalRecHitDeviceCollection.h new file mode 100644 index 0000000000000..36794c9d105ca --- /dev/null +++ b/DataFormats/HcalRecHit/interface/alpaka/HcalRecHitDeviceCollection.h @@ -0,0 +1,22 @@ +#ifndef DataFormats_HcalRecHit_alpaka_HcalRecHitDeviceCollection_h +#define DataFormats_HcalRecHit_alpaka_HcalRecHitDeviceCollection_h + +#include "DataFormats/Portable/interface/alpaka/PortableCollection.h" +#include "DataFormats/HcalRecHit/interface/HcalRecHitSoA.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE { + + namespace hcal { + + // make the names from the top-level hcal namespace visible for unqualified lookup + // inside the ALPAKA_ACCELERATOR_NAMESPACE::hcal namespace + using namespace ::hcal; + + // HcalRecHitSoA in device global memory + using RecHitDeviceCollection = PortableCollection; + } // namespace hcal + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE + +#endif diff --git a/DataFormats/HcalRecHit/src/alpaka/classes_cuda.h b/DataFormats/HcalRecHit/src/alpaka/classes_cuda.h new file mode 100644 index 0000000000000..96db359827566 --- /dev/null +++ b/DataFormats/HcalRecHit/src/alpaka/classes_cuda.h @@ -0,0 +1,4 @@ +#include "DataFormats/Common/interface/DeviceProduct.h" +#include "DataFormats/Common/interface/Wrapper.h" +#include "DataFormats/HcalRecHit/interface/HcalRecHitSoA.h" +#include "DataFormats/HcalRecHit/interface/alpaka/HcalRecHitDeviceCollection.h" diff --git a/DataFormats/HcalRecHit/src/alpaka/classes_cuda_def.xml b/DataFormats/HcalRecHit/src/alpaka/classes_cuda_def.xml new file mode 100644 index 0000000000000..3524097077655 --- /dev/null +++ b/DataFormats/HcalRecHit/src/alpaka/classes_cuda_def.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/DataFormats/HcalRecHit/src/alpaka/classes_rocm.h b/DataFormats/HcalRecHit/src/alpaka/classes_rocm.h new file mode 100644 index 0000000000000..96db359827566 --- /dev/null +++ b/DataFormats/HcalRecHit/src/alpaka/classes_rocm.h @@ -0,0 +1,4 @@ +#include "DataFormats/Common/interface/DeviceProduct.h" +#include "DataFormats/Common/interface/Wrapper.h" +#include "DataFormats/HcalRecHit/interface/HcalRecHitSoA.h" +#include "DataFormats/HcalRecHit/interface/alpaka/HcalRecHitDeviceCollection.h" diff --git a/DataFormats/HcalRecHit/src/alpaka/classes_rocm_def.xml b/DataFormats/HcalRecHit/src/alpaka/classes_rocm_def.xml new file mode 100644 index 0000000000000..e27485e956bc4 --- /dev/null +++ b/DataFormats/HcalRecHit/src/alpaka/classes_rocm_def.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/DataFormats/HcalRecHit/src/classes.cc b/DataFormats/HcalRecHit/src/classes.cc new file mode 100644 index 0000000000000..95b7fc0c2d6b7 --- /dev/null +++ b/DataFormats/HcalRecHit/src/classes.cc @@ -0,0 +1,4 @@ +#include "DataFormats/HcalRecHit/interface/HcalRecHitHostCollection.h" +#include "DataFormats/Portable/interface/PortableHostCollectionReadRules.h" + +SET_PORTABLEHOSTCOLLECTION_READ_RULES(hcal::RecHitHostCollection); diff --git a/DataFormats/HcalRecHit/src/classes.h b/DataFormats/HcalRecHit/src/classes.h index 88681c514a26d..02678084bb071 100644 --- a/DataFormats/HcalRecHit/src/classes.h +++ b/DataFormats/HcalRecHit/src/classes.h @@ -10,6 +10,8 @@ #include "DataFormats/HcalRecHit/interface/HcalSourcePositionData.h" #include "DataFormats/HcalDetId/interface/HcalDetId.h" #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" +#include "DataFormats/HcalRecHit/interface/HcalRecHitSoA.h" +#include "DataFormats/HcalRecHit/interface/HcalRecHitHostCollection.h" #include "DataFormats/Common/interface/Wrapper.h" #include "DataFormats/Common/interface/Ref.h" #include "DataFormats/Common/interface/RefProd.h" diff --git a/DataFormats/HcalRecHit/src/classes_def.xml b/DataFormats/HcalRecHit/src/classes_def.xml index c6d35a85cd6ec..4cfb4c2be84a6 100644 --- a/DataFormats/HcalRecHit/src/classes_def.xml +++ b/DataFormats/HcalRecHit/src/classes_def.xml @@ -118,4 +118,9 @@ - + + + + + +