20 size_t packet_size_w = 0;
21 size_t word_size = 32;
45 size_t packet_size_w =
Size(ver);
47 if (std::size(payload) != packet_size_w) {
48 throw std::runtime_error(
49 Muon::nsw::format(
"Packet vector has size {} instead of expected size {}", std::size(payload), packet_size_w));
52 const auto packets = std::span{payload.data(), std::size(payload)};
53 auto readPointer = std::size_t{0};
54 auto decode = [&packets](std::size_t& readPointer,
const std::size_t
size) {
62 const auto index = i - 1;
63 uint32_t segment_bit = 1 <<
index;
64 uint32_t valid_segment = (
m_valids & segment_bit);
88 const std::size_t segment)
const {
90 throw std::out_of_range(
97 size_t packet_size_w = 0;
98 size_t word_size = 32;
113 return packet_size_w;
116 size_t packet_size_w =
Size(ver);
119 if (std::size(payload) != packet_size_w) {
120 throw std::runtime_error(
121 Muon::nsw::format(
"Packet vector has size {} instead of expected size {}", std::size(payload), packet_size_w));
124 const auto packets = std::span{payload.data(), std::size(payload)};
125 auto readPointer = std::size_t{0};
126 auto decode = [&packets](std::size_t& readPointer,
const std::size_t
size) {
137 const auto index = i - 1;
142 const auto index = i - 1;
152 size_t packet_size_w = 0;
153 size_t word_size = 32;
168 return packet_size_w;
172 size_t packet_size_w =
Size(ver);
174 if (std::size(payload) != packet_size_w) {
175 throw std::runtime_error(
176 Muon::nsw::format(
"Packet vector has size {} instead of expected size {}", std::size(payload), packet_size_w));
178 auto readPointer = std::size_t{0};
179 const auto packets = std::span{payload.data(), std::size(payload)};
180 auto decode = [&packets](std::size_t& readPointer,
const std::size_t
size) {
201 const auto index = i - 1;
219 const std::size_t segment)
const {
221 throw std::out_of_range(
228 size_t packet_size_w = 0;
229 size_t word_size = 32;
244 return packet_size_w;
248 size_t packet_size_w =
Size(ver);
249 if (std::size(payload) != packet_size_w) {
250 throw std::runtime_error(
251 Muon::nsw::format(
"Strip packet vector has size {} instead of expected size {}", std::size(payload), packet_size_w));
253 const auto packets = std::span{payload.data(), std::size(payload)};
254 auto readPointer = std::size_t{0};
255 auto decode = [&packets](std::size_t& readPointer,
const std::size_t
size) {
263 const auto index = i - 1;
269 const auto index = i - 1;
282 throw std::out_of_range(
290 throw std::out_of_range(
size_t size() const
Number of registered mappings.
STGTPMMPacket(const std::vector< std::uint32_t > &payload, const int ver)
const MMSegmentData & Segment(std::size_t segment) const
std::array< MMSegmentData, STGTPMMData::num_mm > m_segmentData
size_t Size(const int ver)
std::array< std::uint32_t, STGTPPad::num_pads > m_bandIDs
std::array< std::uint32_t, STGTPPad::num_pads > m_phiIDs
size_t Size(const int version)
std::uint32_t m_coincWedge
STGTPPadPacket(const std::vector< std::uint32_t > &payload, const int ver)
std::uint32_t m_lut_choice
STGTPSegmentPacket(const std::vector< std::uint32_t > &payload, const int ver)
size_t Size(const int ver)
const SegmentData & Segment(std::size_t segment) const
std::uint32_t m_valid_segment_selector
std::array< SegmentData, STGTPSegments::num_segments > m_segmentData
std::uint32_t m_nsw_segment_selector
size_t Size(const int ver)
STGTPStripPacket(const std::vector< std::uint32_t > &payload, const int ver)
std::uint32_t Offset(std::size_t offset) const
std::uint32_t Strip(std::size_t strip) const
std::array< std::uint32_t, STGTPStrips::num_strips > m_stripData
std::array< std::uint32_t, STGTPStrips::num_offsets > m_offsets
std::uint32_t m_phiIdValue
std::uint32_t m_phiIdSign
constexpr int size_output_mm_dTheta
constexpr int size_output_mm_lowRes
constexpr int size_output_mm_phiID
constexpr int size_output_mm_rIndex
constexpr std::size_t size_v2
constexpr int size_output_mm_phiRes
constexpr std::size_t num_mm
constexpr int size_output_mm_monitor
constexpr std::size_t size_v3
constexpr int size_v3_padding
constexpr int size_output_mm_spare
constexpr int size_output_mm_valids
constexpr int mm_stream_invalid_dTheta
constexpr std::size_t size_v1
constexpr std::size_t size_v2
constexpr std::size_t size_phiID
constexpr std::size_t size_coincidence_wedge
constexpr std::size_t num_pads
constexpr std::size_t size_bandID
constexpr std::size_t size_v3_padding
constexpr std::size_t size_BCID
constexpr std::size_t size_spare
constexpr std::size_t size_v1
constexpr std::size_t size_idleFlag
constexpr std::size_t size_v3
constexpr int size_output_segment_dTheta
constexpr int size_output_segment_phiRes
constexpr std::size_t size_v3
constexpr std::size_t size_v2
constexpr int size_output_segment_phiID
constexpr int size_sectorID
constexpr int size_nsw_segment_selector
constexpr int size_v3_padding
constexpr int size_output_segment_monitor
constexpr int size_output_segment_spare
constexpr int size_lut_choice_selection
constexpr std::size_t size_v1
constexpr std::size_t num_segments
constexpr std::size_t size_valid_segment_v3
constexpr int size_output_segment_lowRes
constexpr int size_valid_segment_selector
constexpr int size_output_segment_rIndex
constexpr int size_offset
constexpr int size_band_id
constexpr std::size_t num_strips
constexpr int size_phi_id_sign
constexpr int size_phi_id_value
constexpr std::size_t size_v3
constexpr std::size_t size_v2
constexpr std::size_t size_v1
constexpr std::size_t num_offsets
constexpr int size_strip_adc
constexpr int size_padding
std::string format(const std::string &str, const T &arg)
constexpr Target decode_and_advance(const std::span< const Source > words, std::size_t &start, const std::size_t size)
Decode bits from data of words and advance the read pointer.