Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-05-10 02:20:34

0001 #ifndef DataFormats_SiPixelDigiSoA_interface_SiPixelDigisHost_h
0002 #define DataFormats_SiPixelDigiSoA_interface_SiPixelDigisHost_h
0003 
0004 #include "DataFormats/Portable/interface/PortableHostCollection.h"
0005 #include "DataFormats/SiPixelDigiSoA/interface/SiPixelDigisSoA.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 class SiPixelDigisHost : public PortableHostCollection<SiPixelDigisSoA> {
0011 public:
0012   SiPixelDigisHost() = default;
0013   template <typename TQueue>
0014   explicit SiPixelDigisHost(size_t maxFedWords, TQueue queue)
0015       : PortableHostCollection<SiPixelDigisSoA>(maxFedWords + 1, queue) {}
0016 
0017   void setNModules(uint32_t nModules) { nModules_h = nModules; }
0018 
0019   uint32_t nModules() const { return nModules_h; }
0020   uint32_t nDigis() const { return view().metadata().size() - 1; }
0021 
0022 private:
0023   uint32_t nModules_h = 0;
0024 };
0025 
0026 #endif  // DataFormats_SiPixelDigiSoA_interface_SiPixelDigisHost_h