7bool GstreamerCsvFactory::publishEventDigitizedDataImpl(
const std::string& detectorName,
8 const std::vector<const GDigitizedData*>& digitizedData) {
9 if (!ofile_digitized.is_open()) {
14 if (!is_first_event_with_digidata) {
15 if (digitizedData.size() > 0) {
16 ofile_digitized <<
"evn, timestamp, thread_id, detector, ";
17 auto first_hit = digitizedData[0];
20 const auto& imap = first_hit->getIntObservablesMap(0);
21 const auto& dmap = first_hit->getDblObservablesMap(0);
23 size_t total = dmap.size();
26 log->
debug(NORMAL, SFUNCTION_NAME,
"Writing header for event ", event_number,
" with ", total,
29 for (
const auto& [name, value] : imap) { ofile_digitized << name <<
", "; }
31 for (
const auto& [name, value] : dmap) {
32 ofile_digitized << name;
33 if (++i < total) ofile_digitized <<
", ";
36 ofile_digitized <<
"\n";
38 is_first_event_with_digidata =
true;
43 if (is_first_event_with_digidata) {
44 for (
auto digi_hit : digitizedData) {
46 const auto& imap = digi_hit->getIntObservablesMap(0);
47 const auto& dmap = digi_hit->getDblObservablesMap(0);
49 size_t total = dmap.size();
52 ofile_digitized << event_number <<
", " << timestamp <<
", " << thread_id <<
", " << detectorName <<
", ";
54 for (
const auto& [variableName, value] : imap) { ofile_digitized << value <<
", "; }
55 for (
const auto& [variableName, value] : dmap) {
56 ofile_digitized << value;
57 if (++i < total) ofile_digitized <<
", ";
58 else ofile_digitized <<
"\n";
std::shared_ptr< GLogger > log
void debug(debug_type type, Args &&... args) const
void error(int exit_code, Args &&... args) const
Shared constants and error codes for the gstreamer module.
#define ERR_CANTOPENOUTPUT
Output medium could not be opened (file/device not accessible).