File indexing completed on 2024-04-06 12:05:12
0001 #ifndef DataFormats_SiPixelDigi_interface_SiPixelDigisSoA_h
0002 #define DataFormats_SiPixelDigi_interface_SiPixelDigisSoA_h
0003
0004 #include <cstddef>
0005 #include <cstdint>
0006 #include <vector>
0007
0008 namespace legacy {
0009
0010
0011
0012
0013
0014
0015
0016
0017 class SiPixelDigisSoA {
0018 public:
0019 SiPixelDigisSoA() = default;
0020 explicit SiPixelDigisSoA(
0021 size_t nDigis, const uint32_t* pdigi, const uint32_t* rawIdArr, const uint16_t* adc, const int32_t* clus)
0022 : pdigi_(pdigi, pdigi + nDigis),
0023 rawIdArr_(rawIdArr, rawIdArr + nDigis),
0024 adc_(adc, adc + nDigis),
0025 clus_(clus, clus + nDigis) {}
0026
0027 ~SiPixelDigisSoA() = default;
0028
0029 auto size() const { return pdigi_.size(); }
0030
0031 uint32_t pdigi(size_t i) const { return pdigi_[i]; }
0032 uint32_t rawIdArr(size_t i) const { return rawIdArr_[i]; }
0033 uint16_t adc(size_t i) const { return adc_[i]; }
0034 int32_t clus(size_t i) const { return clus_[i]; }
0035
0036 const std::vector<uint32_t>& pdigiVector() const { return pdigi_; }
0037 const std::vector<uint32_t>& rawIdArrVector() const { return rawIdArr_; }
0038 const std::vector<uint16_t>& adcVector() const { return adc_; }
0039 const std::vector<int32_t>& clusVector() const { return clus_; }
0040
0041 private:
0042 std::vector<uint32_t> pdigi_;
0043 std::vector<uint32_t> rawIdArr_;
0044 std::vector<uint16_t> adc_;
0045 std::vector<int32_t> clus_;
0046 };
0047
0048 }
0049
0050 #endif