39 eformat::helper::SourceIdentifier
id = eformat::helper::SourceIdentifier(source_id);
40 if (
id.subdetector_id() == eformat::TDAQ_LVL2 ||
id.subdetector_id() == eformat::TDAQ_EVENT_FILTER) {
41 return(eformat::helper::SourceIdentifier(
id.subdetector_id(), 0).code());
52 ATH_MSG_DEBUG(
"original BS size = " << 4 * orgEvent->fragment_size_word());
53 ATH_MSG_DEBUG(
"athena BS size = " << 4 * newEvent->fragment_size_word());
59 auto orgIter = orgEvent->child_iter();
63 ATH_MSG_DEBUG(
"original ROBFragment, src ID = " << std::hex << rob->source_id());
66 auto newIter = newEvent->child_iter();
69 ROBMAP::const_iterator it = robsToAdd.find(
reducedROBid(rob->source_id()));
70 if (it != robsToAdd.end()) {
72 ATH_MSG_DEBUG(
"overwriting ROBFragment with src ID = " << std::hex << rob->source_id());
75 ATH_MSG_DEBUG(
"new ROBFragment, src ID = " << std::hex << rob->source_id());
83 mergedEventWrite->source_id(event->source_id());
84 mergedEventWrite->bc_time_seconds(event->bc_time_seconds());
85 mergedEventWrite->bc_time_nanoseconds(event->bc_time_nanoseconds());
86 mergedEventWrite->global_id(event->global_id());
87 mergedEventWrite->run_type(event->run_type());
88 mergedEventWrite->run_no(event->run_no());
89 mergedEventWrite->lumi_block(event->lumi_block());
90 mergedEventWrite->lvl1_id(event->lvl1_id());
91 mergedEventWrite->bc_id(event->bc_id());
92 mergedEventWrite->lvl1_trigger_type(event->lvl1_trigger_type());
95 mergedEventWrite->status(event->nstatus(), tmp);
96 event->lvl1_trigger_info(tmp);
97 mergedEventWrite->lvl1_trigger_info(event->nlvl1_trigger_info(), tmp);
98 event->lvl2_trigger_info(tmp);
99 mergedEventWrite->lvl2_trigger_info(event->nlvl2_trigger_info(), tmp);
100 event->event_filter_info(tmp);
101 mergedEventWrite->event_filter_info(event->nevent_filter_info(), tmp);
102 event->stream_tag(tmp);
103 mergedEventWrite->stream_tag(event->nstream_tag(), tmp);
104 mergedEventWrite->checksum_type(event->checksum_type());
106 for(ROBMAP::iterator it = robsToAdd.begin(), itEnd = robsToAdd.end(); it != itEnd; ++it) {
107 mergedEventWrite->append(it->second);
110 uint32_t rawSize = mergedEventWrite->size_word();
112 uint32_t
count = eformat::write::copy(*(mergedEventWrite->bind()), buffer, rawSize);
113 if (
count != rawSize) {
118 StatusCode
sc =
m_outSvc->putEvent(&newRawEvent) ? StatusCode::SUCCESS : StatusCode::FAILURE;
119 for(ROBMAP::iterator it = robsToAdd.begin(), itEnd = robsToAdd.end(); it != itEnd; ++it) {
120 delete it->second; it->second =
nullptr;
122 delete mergedEventWrite; mergedEventWrite =
nullptr;
124 if (
sc != StatusCode::SUCCESS) {