Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef CUDADataFormats_Vertex_ZVertexUtilities_h
0002 #define CUDADataFormats_Vertex_ZVertexUtilities_h
0003 
0004 #include <cuda_runtime.h>
0005 #include "DataFormats/SoATemplate/interface/SoALayout.h"
0006 
0007 GENERATE_SOA_LAYOUT(ZVertexSoAHeterogeneousLayout,
0008                     SOA_COLUMN(int16_t, idv),
0009                     SOA_COLUMN(float, zv),
0010                     SOA_COLUMN(float, wv),
0011                     SOA_COLUMN(float, chi2),
0012                     SOA_COLUMN(float, ptv2),
0013                     SOA_COLUMN(int32_t, ndof),
0014                     SOA_COLUMN(uint16_t, sortInd),
0015                     SOA_SCALAR(uint32_t, nvFinal))
0016 
0017 // Previous ZVertexSoA class methods.
0018 // They operate on View and ConstView of the ZVertexSoA.
0019 namespace zVertex {
0020   // Common types for both Host and Device code
0021   using ZVertexSoALayout = ZVertexSoAHeterogeneousLayout<>;
0022   using ZVertexSoAView = ZVertexSoAHeterogeneousLayout<>::View;
0023   using ZVertexSoAConstView = ZVertexSoAHeterogeneousLayout<>::ConstView;
0024 
0025   namespace utilities {
0026 
0027     static constexpr uint32_t MAXTRACKS = 128 * 1024;
0028     static constexpr uint32_t MAXVTX = 1024;
0029 
0030     __host__ __device__ inline void init(ZVertexSoAView &vertices) { vertices.nvFinal() = 0; }
0031 
0032   }  // namespace utilities
0033 }  // namespace zVertex
0034 
0035 #endif