8 #include "eformat/FullEventFragmentNoTemplates.h"
9 #include "eformat/ROBFragmentNoTemplates.h"
12 #include "eformat/Issue.h"
17 const uint16_t MAJOR_V50_VERSION = 0x0500;
23 "Skipping " << ftype <<
" fragment in " << ptype
24 <<
" fragment with identifier 0x"
26 ((std::string) ftype) ((std::string) ptype) ((
uint32_t) source_id))
34 #define EFORMAT_SKIPPED_FRAGMENT(ftype,ptype,sid) \
35 offline_eformat_err::SkippedFragmentIssue(ERS_HERE, ftype, ptype, sid)
43 eformat::CheckSum event_checksum,
44 eformat::CheckSum rob_checksum)
50 eformat::helper::Version
version(0, eformat::MAJOR_V40_VERSION);
59 auto nfe = std::make_unique<v40_write::FullEventFragment>
60 (fe.source_id(), fe.bc_time_seconds(),
61 fe.bc_time_nanoseconds(),
62 global_id, fe.run_type(),
63 fe.run_no(), fe.lumi_block(),
64 fe.lvl1_id(), fe.bc_id(),
65 fe.lvl1_trigger_type());
67 nfe->lvl1_trigger_info(fe.nlvl1_trigger_info(), fe.lvl1_trigger_info());
68 nfe->lvl2_trigger_info(fe.nlvl2_trigger_info(), fe.lvl2_trigger_info());
69 nfe->event_filter_info(fe.nevent_filter_info(), fe.event_filter_info());
70 nfe->stream_tag(fe.nstream_tag(), fe.stream_tag());
71 nfe->status(fe.nstatus(), fe.status());
72 nfe->minor_version(
version.minor_version());
73 nfe->checksum_type(event_checksum);
75 std::vector<v40_write::ROBFragment*> acc_rob;
76 for (
size_t i=0;
i<fe.nchildren(); ++
i) {
79 rob.check(MAJOR_V50_VERSION);
83 rob.rod_lvl1_id(), rob.rod_bc_id(),
84 rob.rod_lvl1_trigger_type(),
86 rob.rod_ndata(), rob.rod_data(),
87 rob.rod_status_position());
88 nrob->
status(rob.nstatus(), rob.status());
89 nrob->
rod_status(rob.rod_nstatus(), rob.rod_status());
90 eformat::helper::Version rob_version(rob.rod_version());
92 eformat::helper::Version rod_version(rob.rod_version());
99 acc_rob.push_back(nrob);
110 const eformat::write::node_t*
top = nfe->bind();
115 for (
size_t i=0;
i<acc_rob.size(); ++
i)
delete acc_rob[
i];