Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-12-12 03:12:13

0001 #ifndef DataFormats_SiPixelDigiSoA_interface_SiPixelDigisHost_h
0002 #define DataFormats_SiPixelDigiSoA_interface_SiPixelDigisHost_h
0003 
0004 #include "DataFormats/Common/interface/Uninitialized.h"
0005 #include "DataFormats/Portable/interface/PortableHostCollection.h"
0006 #include "DataFormats/SiPixelDigiSoA/interface/SiPixelDigisSoA.h"
0007 
0008 // TODO: The class is created via inheritance of the PortableDeviceCollection.
0009 // This is generally discouraged, and should be done via composition.
0010 // See: https://github.com/cms-sw/cmssw/pull/40465#discussion_r1067364306
0011 class SiPixelDigisHost : public PortableHostCollection<SiPixelDigisSoA> {
0012 public:
0013   SiPixelDigisHost(edm::Uninitialized) : PortableHostCollection<SiPixelDigisSoA>{edm::kUninitialized} {}
0014 
0015   template <typename TQueue>
0016   explicit SiPixelDigisHost(size_t maxFedWords, TQueue queue)
0017       : PortableHostCollection<SiPixelDigisSoA>(maxFedWords + 1, queue) {}
0018 
0019   void setNModules(uint32_t nModules) { nModules_h = nModules; }
0020 
0021   uint32_t nModules() const { return nModules_h; }
0022   uint32_t nDigis() const { return view().metadata().size() - 1; }
0023 
0024 private:
0025   uint32_t nModules_h = 0;
0026 };
0027 
0028 #endif  // DataFormats_SiPixelDigiSoA_interface_SiPixelDigisHost_h