DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
ErrorBitGenerator.hpp
Go to the documentation of this file.
1
8#ifndef DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_UTILS_ERRORBITGENERATOR_HPP_
9#define DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_UTILS_ERRORBITGENERATOR_HPP_
10
11#include <random>
12#include <unistd.h>
13
14namespace dunedaq {
15namespace datahandlinglibs {
16
26{
27public:
56
57 void generate()
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 }
72
73private:
74 int m_size = 1000;
76 uint16_t m_error_bits[1000]; // NOLINT(build/unsigned)
85};
86
87} // namespace datahandlinglibs
88} // namespace dunedaq
89
90#endif // DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_UTILS_ERRORBITGENERATOR_HPP_
Including Qt Headers.