DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::datahandlinglibs::ErrorBitGenerator Class Reference

#include <ErrorBitGenerator.hpp>

Public Member Functions

 ErrorBitGenerator (double rate=0)
 
uint16_t next ()
 
void generate ()
 

Private Attributes

int m_size = 1000
 
double m_error_rate
 
uint16_t m_error_bits [1000]
 
int m_error_bits_index
 
int m_error_occurrences [1000]
 
int m_error_occurrences_index
 
int m_no_error_occurrences [1000]
 
int m_no_error_occurrences_index
 
int m_current_occurrence
 
int m_occurrence_count
 
bool m_set_error_bits
 

Detailed Description

ErrorBitGenerator usage:

auto ebg = ErrorBitGenerator(1.0) ebg.generate(); uint16_t errs = ebg.next();

Definition at line 25 of file ErrorBitGenerator.hpp.

Constructor & Destructor Documentation

◆ ErrorBitGenerator()

Member Function Documentation

◆ generate()

void dunedaq::datahandlinglibs::ErrorBitGenerator::generate ( )
inline

Definition at line 57 of file ErrorBitGenerator.hpp.

58 {
59 std::random_device rd;
60 std::mt19937 mt(rd());
61 std::uniform_int_distribution<uint16_t> err_bit_dis(0, 65535); // NOLINT(build/unsigned)
62 std::uniform_int_distribution<int> duration_dis(1, 100000);
63
64 for (int i = 0; i < m_size; ++i) {
65 m_error_bits[i] = err_bit_dis(mt);
66 }
67 for (int i = 0; i < m_size; ++i) {
68 m_error_occurrences[i] = duration_dis(mt) * m_error_rate;
69 m_no_error_occurrences[i] = duration_dis(mt) * (1 - m_error_rate);
70 }
71 }

◆ next()

Member Data Documentation

◆ m_current_occurrence

int dunedaq::datahandlinglibs::ErrorBitGenerator::m_current_occurrence
private

Definition at line 82 of file ErrorBitGenerator.hpp.

◆ m_error_bits

uint16_t dunedaq::datahandlinglibs::ErrorBitGenerator::m_error_bits[1000]
private

Definition at line 76 of file ErrorBitGenerator.hpp.

◆ m_error_bits_index

int dunedaq::datahandlinglibs::ErrorBitGenerator::m_error_bits_index
private

Definition at line 77 of file ErrorBitGenerator.hpp.

◆ m_error_occurrences

int dunedaq::datahandlinglibs::ErrorBitGenerator::m_error_occurrences[1000]
private

Definition at line 78 of file ErrorBitGenerator.hpp.

◆ m_error_occurrences_index

int dunedaq::datahandlinglibs::ErrorBitGenerator::m_error_occurrences_index
private

Definition at line 79 of file ErrorBitGenerator.hpp.

◆ m_error_rate

double dunedaq::datahandlinglibs::ErrorBitGenerator::m_error_rate
private

Definition at line 75 of file ErrorBitGenerator.hpp.

◆ m_no_error_occurrences

int dunedaq::datahandlinglibs::ErrorBitGenerator::m_no_error_occurrences[1000]
private

Definition at line 80 of file ErrorBitGenerator.hpp.

◆ m_no_error_occurrences_index

int dunedaq::datahandlinglibs::ErrorBitGenerator::m_no_error_occurrences_index
private

Definition at line 81 of file ErrorBitGenerator.hpp.

◆ m_occurrence_count

int dunedaq::datahandlinglibs::ErrorBitGenerator::m_occurrence_count
private

Definition at line 83 of file ErrorBitGenerator.hpp.

◆ m_set_error_bits

bool dunedaq::datahandlinglibs::ErrorBitGenerator::m_set_error_bits
private

Definition at line 84 of file ErrorBitGenerator.hpp.

◆ m_size

int dunedaq::datahandlinglibs::ErrorBitGenerator::m_size = 1000
private

Definition at line 74 of file ErrorBitGenerator.hpp.


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