pflib v3.9.0-rc3-11-g2537d8f
Pretty Fine HGCROC Interaction Library
Loading...
Searching...
No Matches
daq_run.h
1#pragma once
2
3#include <stdio.h>
4
5#include <fstream>
6#include <functional>
7#include <memory>
8#include <string>
9#include <vector>
10
11#include "pflib/Target.h"
12#include "pflib/logging/Logging.h"
13#include "pflib/packing/SingleROCEventPacket.h"
14
19 public:
20 virtual void start_run() {}
21 virtual void end_run() {}
22 virtual void consume(std::vector<uint32_t>& event) = 0;
23 virtual ~DAQRunConsumer() = default;
24};
25
35void daq_run(pflib::Target* tgt, const std::string& cmd,
36 DAQRunConsumer& consumer, int nevents, int rate = 100);
37
42 std::string file_name_;
43 FILE* fp_;
44
45 public:
46 WriteToBinaryFile(const std::string& file_name);
48 virtual void consume(std::vector<uint32_t>& event) final;
49};
50
59 public:
60 virtual ~DecodeAndWrite() = default;
65 virtual void consume(std::vector<uint32_t>& event) final;
66
69
70 protected:
72 mutable ::pflib::logging::logger the_log_;
73
74 private:
77};
78
90
91 public:
93 const std::string& file_name,
94 std::function<void(std::ofstream&)> write_header,
98 virtual ~DecodeAndWriteToCSV() = default;
100 virtual void write_event(
102};
103
104DecodeAndWriteToCSV all_channels_to_csv(const std::string& file_name);
105
123 public:
124 DecodeAndBuffer(int nevents);
125 virtual ~DecodeAndBuffer() = default;
129 void set_buffer_size(int nevents);
131 virtual void write_event(
132 const pflib::packing::SingleROCEventPacket& ep) override;
134 virtual void start_run() override;
135
136 private:
139};
Abstract base class for consuming event packets.
Definition daq_run.h:18
Consume an event packet, decode it, and save to buffer.
Definition daq_run.h:122
const std::vector< pflib::packing::SingleROCEventPacket > & get_buffer() const
get buffer
Definition daq_run.cxx:142
void set_buffer_size(int nevents)
Set the buffer size.
Definition daq_run.cxx:146
virtual void write_event(const pflib::packing::SingleROCEventPacket &ep) override
Save to buffer.
Definition daq_run.cxx:129
virtual void start_run() override
Check that the buffer was read and flushed since last run.
Definition daq_run.cxx:139
std::vector< pflib::packing::SingleROCEventPacket > ep_buffer_
Buffer for event packets.
Definition daq_run.h:138
specializatin of DecodeAndWrite that holds a std::ofstream for the user with functions for writing th...
Definition daq_run.h:83
std::ofstream file_
output file writing to
Definition daq_run.h:85
std::function< void(std::ofstream &, const pflib::packing::SingleROCEventPacket &)> write_event_
function that writes row(s) to csv given an event
Definition daq_run.h:89
virtual void write_event(const pflib::packing::SingleROCEventPacket &ep) final
call write_event with our file handle
Definition daq_run.cxx:108
Consume an event packet, decode it, and then do something else.
Definition daq_run.h:58
pflib::packing::SingleROCEventPacket ep_
event packet for decoding
Definition daq_run.h:76
virtual void write_event(const pflib::packing::SingleROCEventPacket &ep)=0
pure virtual function for writing out decoded event
virtual void consume(std::vector< uint32_t > &event) final
Decode the input event packet into our pflib::packing::SingleROCEventPacket and then call write_event...
Definition daq_run.cxx:80
mutable::pflib::logging::logger the_log_
logging for warning messages on empty events
Definition daq_run.h:72
just copy input event packets to the output file as binary
Definition daq_run.h:41
encapulating a given setup's access rules
Definition Target.h:24
Simple HGCROC-only event packet.
Definition SingleROCEventPacket.h:23