56 ATH_MSG_DEBUG(
"original BS size = " << 4 * orgEvent->fragment_size_word());
57 ATH_MSG_DEBUG(
"athena BS size = " << 4 * newEvent->fragment_size_word());
61 const size_t MAX_ROBFRAGMENTS = 2048;
64 size_t orgrobcount = orgEvent->children(orgRobF, MAX_ROBFRAGMENTS);
65 if (orgrobcount == MAX_ROBFRAGMENTS) {
69 size_t newrobcount = newEvent->children(newRobF,MAX_ROBFRAGMENTS);
70 if (newrobcount == MAX_ROBFRAGMENTS) {
77 for (
size_t irob = 0; irob < orgrobcount; ++irob) {
80 ATH_MSG_DEBUG(
"original ROBFragment, src ID = " << std::hex << rob->source_id());
83 for (
size_t irob = 0; irob < newrobcount; ++irob) {
85 ROBMAP::const_iterator
it = robsToAdd.find(
reducedROBid(rob->source_id()));
86 if (
it != robsToAdd.end()) {
88 ATH_MSG_DEBUG(
"overwriting ROBFragment with src ID = " << std::hex << rob->source_id());
91 ATH_MSG_DEBUG(
"new ROBFragment, src ID = " << std::hex << rob->source_id());
99 mergedEventWrite->source_id(
event->source_id());
100 mergedEventWrite->bc_time_seconds(
event->bc_time_seconds());
101 mergedEventWrite->bc_time_nanoseconds(
event->bc_time_nanoseconds());
102 mergedEventWrite->global_id(
event->global_id());
103 mergedEventWrite->run_type(
event->run_type());
104 mergedEventWrite->run_no(
event->run_no());
105 mergedEventWrite->lumi_block(
event->lumi_block());
106 mergedEventWrite->lvl1_id(
event->lvl1_id());
107 mergedEventWrite->bc_id(
event->bc_id());
108 mergedEventWrite->lvl1_trigger_type(
event->lvl1_trigger_type());
111 mergedEventWrite->status(
event->nstatus(),
tmp);
112 event->lvl1_trigger_info(
tmp);
113 mergedEventWrite->lvl1_trigger_info(
event->nlvl1_trigger_info(),
tmp);
114 event->lvl2_trigger_info(
tmp);
115 mergedEventWrite->lvl2_trigger_info(
event->nlvl2_trigger_info(),
tmp);
116 event->event_filter_info(
tmp);
117 mergedEventWrite->event_filter_info(
event->nevent_filter_info(),
tmp);
118 event->stream_tag(
tmp);
119 mergedEventWrite->stream_tag(
event->nstream_tag(),
tmp);
120 mergedEventWrite->checksum_type(
event->checksum_type());
123 mergedEventWrite->append(
it->second);
126 uint32_t rawSize = mergedEventWrite->size_word();
129 if (
count != rawSize) {
136 delete it->second;
it->second = 0;
138 delete mergedEventWrite; mergedEventWrite = 0;
140 if (
sc != StatusCode::SUCCESS) {