105 msg(MSG::DEBUG) <<
" ALFA_RoDDecoder::fillCollection" <<
endmsg;
109 uint32_t wordPos = 0;
111 std::vector<uint32_t> VData;
116 uint32_t Event_num=0;
117 uint32_t Event_num_max=0;
125 uint16_t tmpADC1=10000;
126 uint16_t tmpADC2=10000;
127 uint16_t tmpScaler=100;
129 std::vector<bool> tmpLvl1Pattern;
130 std::vector<bool> tmpLvl2Pattern;
131 std::vector<bool> tmpEFPattern;
137 uint32_t Count_evt=0;
144 StatusCode
sc =
evtStore()->retrieve(eventInfo);
145 if (
sc.isFailure()) {
146 ATH_MSG_WARNING (
" cannot retrieve EventInfo, will not set ALFA bit information ");
156 catch (eformat::Issue &ex)
160 msg(MSG::WARNING) <<
"Cannot set ALFA error state"<<
endmsg;
161 return StatusCode::SUCCESS;
166 uint32_t nstat = robFrag->nstatus();
171 robFrag->status (it);
176 msg(MSG::WARNING) <<
" Error in ROB status word: 0x" <<
endmsg;
178 msg(MSG::WARNING) <<
"Cannot set ALFA error state"<<
endmsg;
180 msg(MSG::WARNING) <<
"Cannot set event bit info for ALFA"<<
endmsg;
182 return StatusCode::SUCCESS;
190 robFrag->rod_data(vint);
193 uint32_t size = robFrag->rod_ndata();
196 uint32_t ROD_source_ID = robFrag->rod_source_id();
199 uint32_t ROD_LVL1_ID = robFrag->rod_lvl1_id();
201 msg(MSG::DEBUG) <<
"============================" << std::endl;
202 msg(MSG::DEBUG) <<
"Frag Size : " << robFrag->rod_fragment_size_word() <<
endmsg;
203 msg(MSG::DEBUG) <<
"Header Size: " << robFrag->rod_header_size_word() <<
endmsg;
204 msg(MSG::DEBUG) <<
"Source ID : " << ROD_source_ID <<
endmsg;
205 msg(MSG::DEBUG) <<
"Run num : " << robFrag->rod_run_no() <<
endmsg;
206 msg(MSG::DEBUG) <<
"Version : " << robFrag->rod_version() <<
endmsg;
207 msg(MSG::DEBUG) <<
" ROD_LVL1_ID " << ROD_LVL1_ID <<
endmsg;
208 msg(MSG::DEBUG) <<
"============================" << std::endl;
213 uint32_t evt_Id = ((robFrag->rod_lvl1_id()) & 0xFF000000) >> 24;
214 uint32_t lvl1_Id = ((robFrag->rod_lvl1_id()) & 0x00FFFFFF) ;
217 msg(MSG::DEBUG) <<
" evt_Id : " << evt_Id <<
" lvl1_Id : " << lvl1_Id <<
endmsg;
243 if (n==0) Event_num = LvL1;
244 else Event_num = ((robFrag->rod_lvl1_id()) & 0x00FFFFFF) + Event_num;
246 LvL1 = ((robFrag->rod_lvl1_id()) & 0x00FFFFFF)+1 ;
247 EcrId = ((robFrag->rod_lvl1_id()) & 0xFF000000) >> 24;
249 if(l==1) Event_num_max=Event_num;
251 Event_num = ((robFrag->rod_lvl1_id()) & 0x00FFFFFF)+1 + Event_num_max;
256 msg(MSG::DEBUG) <<
" Event_num " << Event_num <<
" Count_evt " << Count_evt <<
endmsg;
263 msg(MSG::DEBUG) <<
" Found the beginning of buffer "<<
endmsg;
269 msg(MSG::DEBUG) <<
" Beginning of block not found BOB "<<
endmsg;
283 msg(MSG::WARNING)<<
" Error: data corrupted" <<
endmsg;
285 msg(MSG::WARNING) <<
"Cannot set ALFA error state"<<
endmsg;
287 msg(MSG::WARNING) <<
"Cannot set event bit info for ALFA"<<
endmsg;
289 return StatusCode::SUCCESS;
297 msg(MSG::DEBUG) <<
" Found the beginning of Link BOL"<<
endmsg;
304 msg(MSG::WARNING)<<
" Error: collection not found " <<
endmsg;
306 msg(MSG::WARNING) <<
"Cannot set ALFA error state"<<
endmsg;
308 msg(MSG::WARNING) <<
"Cannot set event bit info for ALFA"<<
endmsg;
310 return StatusCode::SUCCESS;
317 msg(MSG::WARNING)<<
" Error: data corrupted"<<
endmsg;
319 msg(MSG::WARNING) <<
"Cannot set ALFA error state"<<
endmsg;
321 msg(MSG::WARNING) <<
"Cannot set event bit info for ALFA"<<
endmsg;
322 return StatusCode::SUCCESS;
334 msg(MSG::DEBUG)<<
" Decoding data from Slot Id number : " << slotIdNum <<
endmsg;
345 msg(MSG::WARNING)<<
" Error: data corrupted" <<
endmsg;
347 msg(MSG::WARNING) <<
"Cannot set ALFA error state"<<
endmsg;
349 msg(MSG::WARNING) <<
"Cannot set event bit info for ALFA"<<
endmsg;
351 return StatusCode::SUCCESS;
369 msg(MSG::DEBUG) <<
" Creation of the new collection"<<
endmsg;
374 for (
unsigned int i=0;i<8;i++)
377 thisMB = (char) tmpMB & 0x00000001;
387 msg(MSG::DEBUG)<<
" DECODER : MBIdNum " << MBIdNum <<
endmsg;
418 std::vector<uint16_t> hitId;
420 for (
unsigned int i=0;i<16;i++)
424 fiber_hit = (char) tmpFiber & 0x00000001;
430 hitId.push_back(FiberNum);
433 else hitId.push_back(100);
440 rawData->
addData(vint[wordPos]);
442 if(collection) collection->
push_back(rawData);
487 if(collection)
msg(MSG::DEBUG) <<
" tmpADC1 = " << tmpADC1 <<
endmsg;
494 if(collection)
msg(MSG::DEBUG)<<
" tmpADC2 = " << tmpADC2 <<
endmsg;
516 msg(MSG::WARNING)<<
" Error: data corrupted" <<
endmsg;
518 msg(MSG::WARNING) <<
"Cannot set ALFA error state"<<
endmsg;
520 msg(MSG::WARNING) <<
"Cannot set event bit info for ALFA"<<
endmsg;
522 return StatusCode::SUCCESS;
534 msg(MSG::WARNING)<<
" Error: data corrupted" <<
endmsg;
536 msg(MSG::WARNING) <<
"Cannot set ALFA error state"<<
endmsg;
538 msg(MSG::WARNING) <<
"Cannot set event bit info for ALFA"<<
endmsg;
540 return StatusCode::SUCCESS;
549 const eformat::FullEventFragment<const uint32_t*> *
event =
m_robDataProvider->getEvent(Gaudi::Hive::currentContext());
551 msg(MSG::DEBUG) <<
"========FULL=============" << std::endl;
552 msg(MSG::DEBUG) <<
"Event time (sec): " << (uint32_t)event->bc_time_seconds() << std::endl;
553 msg(MSG::DEBUG) <<
"Event time (ns): " << (uint32_t)event->bc_time_nanoseconds() << std::endl;
554 msg(MSG::DEBUG) <<
"Global ID: " << (uint32_t)event->global_id() << std::endl;
555 msg(MSG::DEBUG) <<
"Run Type: " << (uint32_t)event->run_type() << std::endl;
556 msg(MSG::DEBUG) <<
"Run Number: " << (uint32_t)event->run_no() << std::endl;
557 msg(MSG::DEBUG) <<
"Lumi Block: " << (uint32_t)event->lumi_block() << std::endl;
558 msg(MSG::DEBUG) <<
"Level1 ID: " << (uint32_t)event->lvl1_id() << std::endl;
559 msg(MSG::DEBUG) <<
"BCID: " << (uint32_t)event->bc_id() << std::endl;
560 msg(MSG::DEBUG) <<
"Level1 trig type: " << (uint32_t)event->lvl1_trigger_type() << std::endl;
561 msg(MSG::DEBUG) <<
"Level1 Nwords: " << (uint32_t)event->nlvl1_trigger_info() << std::endl;
562 msg(MSG::DEBUG) <<
"Level2 Nwords: " << (uint32_t)event->nlvl2_trigger_info() << std::endl;
563 msg(MSG::DEBUG) <<
"EF Nwords: " << (uint32_t)event->nevent_filter_info() << std::endl;
564 msg(MSG::DEBUG) <<
"============================" << std::endl;
566 uint32_t Time_StampID =
event->bc_time_seconds();
567 uint32_t Time_StampnsID =
event->bc_time_nanoseconds();
568 uint32_t BC_ID =
event->bc_id();
569 uint32_t LumiBlock_ID =
event->lumi_block();
573 if(rdoCont) rdoCont->
SetBCId(BC_ID);
582 const uint32_t *point_lvl1 =
event->lvl1_trigger_info();
583 uint32_t point_lvl1_end =
event->nlvl1_trigger_info();
584 for(uint32_t i = 0; i <= point_lvl1_end; ++i)
586 wo = *(point_lvl1 + i);
587 for(uint32_t j = 0; j < 32; ++j)
589 tmpLvl1Pattern.push_back((wo & 0x1));
598 const uint32_t *point_lvl2 =
event->lvl2_trigger_info();
599 uint32_t point_lvl2_end =
event->nlvl2_trigger_info();
600 for(uint32_t i = 0; i <= point_lvl2_end; ++i)
602 wo = *(point_lvl2 + i);
603 for(uint32_t j = 0; j < 32; ++j)
605 tmpLvl2Pattern.push_back((wo & 0x1));
616 const uint32_t *point_ef =
event->event_filter_info();
617 uint32_t point_ef_end =
event->nevent_filter_info();
618 for(uint32_t i = 0; i <= point_ef_end; ++i)
620 wo = *(point_ef + i);
623 for(uint32_t j = 0; j < 32; ++j)
625 tmpEFPattern.push_back((wo & 0x1));
636 msg(MSG::DEBUG) <<
" Found the end of block EOB ---------------------- "<<
endmsg;
642 return StatusCode::SUCCESS;