Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:03:46

0001 #ifndef CUDADataFormats_Vertex_ZVertexHeterogeneousDevice_H
0002 #define CUDADataFormats_Vertex_ZVertexHeterogeneousDevice_H
0003 
0004 #include "CUDADataFormats/Vertex/interface/ZVertexUtilities.h"
0005 #include "CUDADataFormats/Common/interface/PortableDeviceCollection.h"
0006 
0007 // TODO: The class is created via inheritance of the PortableDeviceCollection.
0008 // This is generally discouraged, and should be done via composition.
0009 // See: https://github.com/cms-sw/cmssw/pull/40465#discussion_r1067364306
0010 template <int32_t S>
0011 class ZVertexSoAHeterogeneousDevice : public cms::cuda::PortableDeviceCollection<ZVertexSoAHeterogeneousLayout<>> {
0012 public:
0013   ZVertexSoAHeterogeneousDevice() = default;  // cms::cuda::Product needs this
0014 
0015   // Constructor which specifies the SoA size
0016   explicit ZVertexSoAHeterogeneousDevice(cudaStream_t stream)
0017       : PortableDeviceCollection<ZVertexSoAHeterogeneousLayout<>>(S, stream) {}
0018 };
0019 
0020 using ZVertexSoADevice = ZVertexSoAHeterogeneousDevice<zVertex::utilities::MAXTRACKS>;
0021 
0022 #endif  // CUDADataFormats_Vertex_ZVertexHeterogeneousDevice_H