DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::fddetdataformats::ColdataBlock Struct Reference

COLDATA block struct. More...

#include <WIBFrame.hpp>

Collaboration diagram for dunedaq::fddetdataformats::ColdataBlock:
[legend]

Public Member Functions

uint16_t get_channel (const uint8_t adc, const uint8_t ch) const
 
void set_channel (const uint8_t adc, const uint8_t ch, const uint16_t new_val)
 

Public Attributes

ColdataHeader head
 
ColdataSegment segments [s_num_seg_per_block]
 

Static Public Attributes

static constexpr int s_num_seg_per_block = 8
 
static constexpr int s_num_ch_per_adc = 8
 
static constexpr int s_num_adc_per_block = ColdataSegment::s_num_ch_per_seg * s_num_seg_per_block / s_num_ch_per_adc
 
static constexpr int s_num_ch_per_block = s_num_seg_per_block * ColdataSegment::s_num_ch_per_seg
 

Private Member Functions

int get_segment_index_ (const int adc, const int ch) const
 

Detailed Description

COLDATA block struct.

Definition at line 295 of file WIBFrame.hpp.

Member Function Documentation

◆ get_channel()

uint16_t dunedaq::fddetdataformats::ColdataBlock::get_channel ( const uint8_t adc,
const uint8_t ch ) const
inline

Definition at line 305 of file WIBFrame.hpp.

306 {
307 // Each segment houses one half (four channels) of two subsequent ADCs.
308 return segments[get_segment_index_(adc, ch)].get_channel(adc, ch);
309 }
PDS Frame with unphysical timestamp detected with ch
ColdataSegment segments[s_num_seg_per_block]
Definition WIBFrame.hpp:303
int get_segment_index_(const int adc, const int ch) const
Definition WIBFrame.hpp:317
uint16_t get_channel(const uint8_t adc, const uint8_t ch) const
Definition WIBFrame.hpp:219

◆ get_segment_index_()

int dunedaq::fddetdataformats::ColdataBlock::get_segment_index_ ( const int adc,
const int ch ) const
inlineprivate

Definition at line 317 of file WIBFrame.hpp.

318 {
319 auto segment_id = (adc / 2) * 2 + ch / 4;
320
321 if (segment_id < 0 || segment_id > s_num_seg_per_block - 1) {
322 throw std::out_of_range("ADC index out of range");
323 }
324 return segment_id;
325 }
static constexpr int s_num_seg_per_block
Definition WIBFrame.hpp:297

◆ set_channel()

void dunedaq::fddetdataformats::ColdataBlock::set_channel ( const uint8_t adc,
const uint8_t ch,
const uint16_t new_val )
inline

Definition at line 311 of file WIBFrame.hpp.

312 {
313 segments[get_segment_index_(adc, ch)].set_channel(adc, ch, new_val);
314 }
void set_channel(const uint8_t adc, const uint8_t ch, const uint16_t new_val)
Definition WIBFrame.hpp:248

Member Data Documentation

◆ head

ColdataHeader dunedaq::fddetdataformats::ColdataBlock::head

Definition at line 302 of file WIBFrame.hpp.

◆ s_num_adc_per_block

int dunedaq::fddetdataformats::ColdataBlock::s_num_adc_per_block = ColdataSegment::s_num_ch_per_seg * s_num_seg_per_block / s_num_ch_per_adc
staticconstexpr

Definition at line 299 of file WIBFrame.hpp.

◆ s_num_ch_per_adc

int dunedaq::fddetdataformats::ColdataBlock::s_num_ch_per_adc = 8
staticconstexpr

Definition at line 298 of file WIBFrame.hpp.

◆ s_num_ch_per_block

int dunedaq::fddetdataformats::ColdataBlock::s_num_ch_per_block = s_num_seg_per_block * ColdataSegment::s_num_ch_per_seg
staticconstexpr

Definition at line 300 of file WIBFrame.hpp.

◆ s_num_seg_per_block

int dunedaq::fddetdataformats::ColdataBlock::s_num_seg_per_block = 8
staticconstexpr

Definition at line 297 of file WIBFrame.hpp.

◆ segments

ColdataSegment dunedaq::fddetdataformats::ColdataBlock::segments[s_num_seg_per_block]

Definition at line 303 of file WIBFrame.hpp.


The documentation for this struct was generated from the following file: