File indexing completed on 2024-04-06 12:03:46
0001 #ifndef CUDADataFormats_Track_TrackHeterogeneousHost_H
0002 #define CUDADataFormats_Track_TrackHeterogeneousHost_H
0003
0004 #include <cstdint>
0005
0006 #include "CUDADataFormats/Track/interface/PixelTrackUtilities.h"
0007 #include "CUDADataFormats/Common/interface/PortableHostCollection.h"
0008
0009
0010
0011
0012 template <typename TrackerTraits>
0013 class TrackSoAHeterogeneousHost : public cms::cuda::PortableHostCollection<TrackLayout<TrackerTraits>> {
0014 public:
0015 static constexpr int32_t S = TrackerTraits::maxNumberOfTuples;
0016 explicit TrackSoAHeterogeneousHost() : cms::cuda::PortableHostCollection<TrackLayout<TrackerTraits>>(S) {}
0017
0018 using cms::cuda::PortableHostCollection<TrackLayout<TrackerTraits>>::view;
0019 using cms::cuda::PortableHostCollection<TrackLayout<TrackerTraits>>::const_view;
0020 using cms::cuda::PortableHostCollection<TrackLayout<TrackerTraits>>::buffer;
0021 using cms::cuda::PortableHostCollection<TrackLayout<TrackerTraits>>::bufferSize;
0022
0023
0024 explicit TrackSoAHeterogeneousHost(cudaStream_t stream)
0025 : cms::cuda::PortableHostCollection<TrackLayout<TrackerTraits>>(S, stream) {}
0026 };
0027
0028 namespace pixelTrack {
0029
0030 using TrackSoAHostPhase1 = TrackSoAHeterogeneousHost<pixelTopology::Phase1>;
0031 using TrackSoAHostPhase2 = TrackSoAHeterogeneousHost<pixelTopology::Phase2>;
0032 using TrackSoAHostHIonPhase1 = TrackSoAHeterogeneousHost<pixelTopology::HIonPhase1>;
0033 }
0034
0035 #endif