12 static const InterfaceID IID_IRecCTPByteStreamTool(
"RecCTPByteStreamTool", 1, 0 );
19 return IID_IRecCTPByteStreamTool;
30 declareInterface< RecCTPByteStreamTool >(
this );
42 const uint32_t rodId = rob->rod_source_id();
44 ATH_MSG_DEBUG(
" expected ROD sub-detector ID: 0x" << std::hex << ctpRodId
45 <<
" ID found: 0x" << std::hex << rodId << std::dec);
47 if( rodId == ctpRodId ) {
52 const uint32_t ndata = rob->rod_ndata();
53 const uint32_t detev_type = rob->rod_detev_type();
54 const uint32_t lvl1_type = rob->rod_lvl1_trigger_type();
55 const uint32_t lvl1_id = rob->rod_lvl1_id();
56 const uint32_t run_no = rob->rod_run_no();
57 const uint32_t nstatus = rob->rod_nstatus();
60 rob->rod_status( it_data );
65 <<
" (dec " <<
bcid <<
")");
67 << MSG::dec <<
" (dec " << detev_type <<
")");
69 <<
" (dec " << lvl1_id <<
")");
71 <<
" (dec " << lvl1_type <<
")");
75 for (
uint32_t i = 0;
i < nstatus; ++
i , ++it_data) {
76 ATH_MSG_VERBOSE(
" Status word # " <<
i <<
": 0x" << MSG::hex << (*it_data) << MSG::dec
77 <<
" (dec " << (*it_data) <<
")");
78 result->statusWords().push_back(
static_cast< uint32_t >( *it_data ) );
81 result->runNumber( run_no );
84 result->lvl1TriggerType( lvl1_type );
85 result->detectorEventType( detev_type );
86 result->numberDataWords( ndata );
87 result->numberStatusWords( nstatus );
89 return StatusCode::SUCCESS;
93 return StatusCode::FAILURE;