diff --git a/RecoTracker/LSTCore/interface/MiniDoubletsSoA.h b/RecoTracker/LSTCore/interface/MiniDoubletsSoA.h new file mode 100644 index 0000000000000..72fe6cb60c6bf --- /dev/null +++ b/RecoTracker/LSTCore/interface/MiniDoubletsSoA.h @@ -0,0 +1,61 @@ +#ifndef RecoTracker_LSTCore_interface_MiniDoubletsSoA_h +#define RecoTracker_LSTCore_interface_MiniDoubletsSoA_h + +#include "DataFormats/SoATemplate/interface/SoALayout.h" +#include "DataFormats/Portable/interface/alpaka/PortableCollection.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { + + GENERATE_SOA_LAYOUT(MiniDoubletsSoALayout, + SOA_COLUMN(unsigned int, anchorHitIndices), + SOA_COLUMN(unsigned int, outerHitIndices), + SOA_COLUMN(uint16_t, moduleIndices), + SOA_COLUMN(float, dphichanges), + SOA_COLUMN(float, dzs), + SOA_COLUMN(float, dphis), + SOA_COLUMN(float, shiftedXs), + SOA_COLUMN(float, shiftedYs), + SOA_COLUMN(float, shiftedZs), + SOA_COLUMN(float, noShiftedDphis), + SOA_COLUMN(float, noShiftedDphiChanges), + SOA_COLUMN(float, anchorX), + SOA_COLUMN(float, anchorY), + SOA_COLUMN(float, anchorZ), + SOA_COLUMN(float, anchorRt), + SOA_COLUMN(float, anchorPhi), + SOA_COLUMN(float, anchorEta), + SOA_COLUMN(float, anchorHighEdgeX), + SOA_COLUMN(float, anchorHighEdgeY), + SOA_COLUMN(float, anchorLowEdgeX), + SOA_COLUMN(float, anchorLowEdgeY), + SOA_COLUMN(float, anchorLowEdgePhi), + SOA_COLUMN(float, anchorHighEdgePhi), + SOA_COLUMN(float, outerX), + SOA_COLUMN(float, outerY), + SOA_COLUMN(float, outerZ), + SOA_COLUMN(float, outerRt), + SOA_COLUMN(float, outerPhi), + SOA_COLUMN(float, outerEta), + SOA_COLUMN(float, outerHighEdgeX), + SOA_COLUMN(float, outerHighEdgeY), + SOA_COLUMN(float, outerLowEdgeX), + SOA_COLUMN(float, outerLowEdgeY)); + + GENERATE_SOA_LAYOUT(MiniDoubletsOccupancySoALayout, + SOA_COLUMN(unsigned int, nMDs), + SOA_COLUMN(unsigned int, totOccupancyMDs)); + + using MiniDoubletsSoA = MiniDoubletsSoALayout<>; + using MiniDoubletsOccupancySoA = MiniDoubletsOccupancySoALayout<>; + + using MiniDoublets = MiniDoubletsSoA::View; + using MiniDoubletsConst = MiniDoubletsSoA::ConstView; + using MiniDoubletsOccupancy = MiniDoubletsOccupancySoA::View; + using MiniDoubletsOccupancyConst = MiniDoubletsOccupancySoA::ConstView; + + using MiniDoubletsDeviceCollection = PortableCollection2; + using MiniDoubletsHostCollection = PortableHostMultiCollection; + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE::lst + +#endif \ No newline at end of file diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index 04a1ff0d9dd69..dad5ebe7c9c8b 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -2,10 +2,9 @@ #define RecoTracker_LSTCore_src_alpaka_MiniDoublet_h #include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h" -#include "DataFormats/SoATemplate/interface/SoALayout.h" -#include "DataFormats/Portable/interface/alpaka/PortableCollection.h" #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" +#include "RecoTracker/LSTCore/interface/MiniDoubletsSoA.h" #include "RecoTracker/LSTCore/interface/Module.h" #include "RecoTracker/LSTCore/interface/EndcapGeometry.h" @@ -13,57 +12,6 @@ #include "ObjectRanges.h" namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { - - GENERATE_SOA_LAYOUT(MiniDoubletsSoALayout, - SOA_COLUMN(unsigned int, anchorHitIndices), - SOA_COLUMN(unsigned int, outerHitIndices), - SOA_COLUMN(uint16_t, moduleIndices), - SOA_COLUMN(float, dphichanges), - SOA_COLUMN(float, dzs), - SOA_COLUMN(float, dphis), - SOA_COLUMN(float, shiftedXs), - SOA_COLUMN(float, shiftedYs), - SOA_COLUMN(float, shiftedZs), - SOA_COLUMN(float, noShiftedDphis), - SOA_COLUMN(float, noShiftedDphiChanges), - SOA_COLUMN(float, anchorX), - SOA_COLUMN(float, anchorY), - SOA_COLUMN(float, anchorZ), - SOA_COLUMN(float, anchorRt), - SOA_COLUMN(float, anchorPhi), - SOA_COLUMN(float, anchorEta), - SOA_COLUMN(float, anchorHighEdgeX), - SOA_COLUMN(float, anchorHighEdgeY), - SOA_COLUMN(float, anchorLowEdgeX), - SOA_COLUMN(float, anchorLowEdgeY), - SOA_COLUMN(float, anchorLowEdgePhi), - SOA_COLUMN(float, anchorHighEdgePhi), - SOA_COLUMN(float, outerX), - SOA_COLUMN(float, outerY), - SOA_COLUMN(float, outerZ), - SOA_COLUMN(float, outerRt), - SOA_COLUMN(float, outerPhi), - SOA_COLUMN(float, outerEta), - SOA_COLUMN(float, outerHighEdgeX), - SOA_COLUMN(float, outerHighEdgeY), - SOA_COLUMN(float, outerLowEdgeX), - SOA_COLUMN(float, outerLowEdgeY)); - - GENERATE_SOA_LAYOUT(MiniDoubletsOccupancySoALayout, - SOA_COLUMN(unsigned int, nMDs), - SOA_COLUMN(unsigned int, totOccupancyMDs)); - - using MiniDoubletsSoA = MiniDoubletsSoALayout<>; - using MiniDoubletsOccupancySoA = MiniDoubletsOccupancySoALayout<>; - - using MiniDoublets = MiniDoubletsSoA::View; - using MiniDoubletsConst = MiniDoubletsSoA::ConstView; - using MiniDoubletsOccupancy = MiniDoubletsOccupancySoA::View; - using MiniDoubletsOccupancyConst = MiniDoubletsOccupancySoA::ConstView; - - using MiniDoubletsDeviceCollection = PortableCollection2; - using MiniDoubletsHostCollection = PortableHostMultiCollection; - template ALPAKA_FN_ACC ALPAKA_FN_INLINE void addMDToMemory(TAcc const& acc, MiniDoublets mds,