23{
24 uint32_t REId, TEId, FecData, StrSqc;
25 uint32_t nbuf = src.
nBuf();
26
27 for (uint32_t i = 0; i < nbuf; ++i) {
28 uint32_t* buf = src(i);
29 uint32_t bufSize = src.
bufSize(i);
30 for (uint32_t j = 0; j < bufSize; ++j) {
31 m_builder.
unPack(buf[j], REId, FecData, StrSqc);
32 TEId = m_builder.
getTEID( REId );
33 if ( TEId == 0xFFFFFFFF ) continue;
34
35 uint32_t teidBase = TEId & 0xFF0FFFFF;
36 uint32_t teid;
37 for (uint32_t k = 0; FecData != 0 && k < 16; FecData >>= 1, ++k) {
38 if ((FecData & 1) == 0) continue;
39 if (StrSqc == 0) {
40 teid = teidBase + 15 -k;
41 }
42 else {
43 teid = teidBase + k;
44 }
46 des->push_back( mucDigi );
47 }
48 }
49 }
50
51 return StatusCode::SUCCESS;
52}
uint32_t bufSize(int i) const
virtual void unPack(uint32_t reDigi, uint32_t &REId, uint32_t &FecData, uint32_t &StrSqc)
virtual uint32_t getTEID(uint32_t reid)