16 StatusCode
createObj( IOpaqueAddress* pAddr, DataObject*& pObj ) {
17 MsgStream log(
msgSvc(),
"RawDataTrigGTDCnv" );
29 log << MSG::ERROR <<
"RawDataTrigGTDCnv::createObj has no event!" << endmsg;
30 return StatusCode::FAILURE;
34 uint32_t nbuf = gtdBuf.
nBuf();
36 for ( uint32_t i = 0; i < nbuf; i++ )
38 uint32_t* buf = gtdBuf( i );
39 uint32_t bufSize = gtdBuf.
bufSize( i );
41 while ( bufSize - index > 1 )
43 uint32_t blockSize = ( ( ( *( buf + index ) ) >> 14 ) & 0x3FF );
44 uint32_t
id = ( ( *( buf + index ) ) >> 24 );
45 if ( blockSize == 0 || ( index + blockSize ) > bufSize )
break;
46 if ( (
id > 0xD1 &&
id < 0xD8 &&
id != 0xD5 ) ||
id == 0xDA ||
47 (
id > 0xE1 &&
id < 0xED ) )
49 trigGTD =
new TrigGTD( buf + index );
50 gtdCol->push_back( trigGTD );
56 return StatusCode::SUCCESS;