30 std::pair<int, int> pairs;
31 std::pair<int, int> invalid{-1, -1};
34 ndigits += pairs.second;
42 std::vector<Digit>&
digits,
43 std::vector<ROFRecord>& rofs)
45 if (in.peek() == EOF) {
56 for (
auto i = 0;
i < nrofs;
i++) {
62 in.read(
reinterpret_cast<char*
>(&
bc),
sizeof(uint16_t));
63 in.read(
reinterpret_cast<char*
>(&
orbit),
sizeof(uint32_t));
64 in.read(
reinterpret_cast<char*
>(&firstIdx),
sizeof(uint32_t));
65 in.read(
reinterpret_cast<char*
>(&nentries),
sizeof(uint32_t));
66 in.read(
reinterpret_cast<char*
>(&bcWidth),
sizeof(uint32_t));
78 for (
int i = 0;
i < ndigits;
i++) {
85 in.read(
reinterpret_cast<char*
>(&tfTime),
sizeof(uint32_t));
86 in.read(
reinterpret_cast<char*
>(&nofSamples),
sizeof(uint16_t));
87 in.read(
reinterpret_cast<char*
>(&sat),
sizeof(uint8_t));
88 in.read(
reinterpret_cast<char*
>(&deID),
sizeof(uint32_t));
89 in.read(
reinterpret_cast<char*
>(&padID),
sizeof(uint32_t));
90 in.read(
reinterpret_cast<char*
>(&
adc),
sizeof(uint32_t));
91 digits.emplace_back(deID, padID,
adc, tfTime, nofSamples, sat > 0);
105 gsl::span<const Digit>
digits,
106 gsl::span<const ROFRecord> rofs)
115 for (
auto r : rofs) {
116 uint16_t
bc =
r.getBCData().bc;
117 uint32_t
orbit =
r.getBCData().orbit;
118 uint32_t firstIdx =
r.getFirstIdx();
119 uint32_t nentries =
r.getNEntries();
120 uint32_t bcWidth =
r.getBCWidth();
121 out.write(
reinterpret_cast<const char*
>(&
bc),
sizeof(uint16_t));
122 out.write(
reinterpret_cast<const char*
>(&
orbit),
sizeof(uint32_t));
123 out.write(
reinterpret_cast<const char*
>(&firstIdx),
sizeof(uint32_t));
124 out.write(
reinterpret_cast<const char*
>(&nentries),
sizeof(uint32_t));
125 out.write(
reinterpret_cast<const char*
>(&bcWidth),
sizeof(uint32_t));
135 for (
const auto& d :
digits) {
136 uint32_t tfTime = d.getTime();
137 uint16_t nofSamples = d.getNofSamples();
138 uint32_t deID = d.getDetID();
139 uint32_t padID = d.getPadID();
140 uint32_t
adc = d.getADC();
141 uint8_t sat = d.isSaturated();
142 out.write(
reinterpret_cast<const char*
>(&tfTime),
sizeof(uint32_t));
143 out.write(
reinterpret_cast<const char*
>(&nofSamples),
sizeof(uint16_t));
144 out.write(
reinterpret_cast<const char*
>(&sat),
sizeof(uint8_t));
145 out.write(
reinterpret_cast<const char*
>(&deID),
sizeof(uint32_t));
146 out.write(
reinterpret_cast<const char*
>(&padID),
sizeof(uint32_t));
147 out.write(
reinterpret_cast<const char*
>(&
adc),
sizeof(uint32_t));
void count(std::istream &in, size_t &ntfs, size_t &nrofs, size_t &ndigits) override
bool read(std::istream &in, std::vector< Digit > &digits, std::vector< ROFRecord > &rofs) override
void rewind(std::istream &in)
std::pair< int, int > advanceOneEvent(std::istream &in, int fileFormatVersion)
void writeNofItems(std::ostream &out, uint32_t nofItems)
int readNofItems(std::istream &in, const char *itemName)
void rewind(std::istream &in)
bool write(std::ostream &out, gsl::span< const Digit > digits, gsl::span< const ROFRecord > rofs) override
std::vector< Digit > digits