7 if ( s_instance == 0 ) {
16 if ( s_instance != 0 ) {
24 uint32_t REId, TEId, FecData, StrSqc;
25 uint32_t nbuf = src.
nBuf();
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;
35 uint32_t teidBase = TEId & 0xFF0FFFFF;
37 for (uint32_t k = 0; FecData != 0 && k < 16; FecData >>= 1, ++k) {
38 if ((FecData & 1) == 0)
continue;
40 teid = teidBase + 15 -k;
46 des->push_back( mucDigi );
51 return StatusCode::SUCCESS;
56 return m_builder.
pack(src, des);
59MucConverter::MucConverter()
63MucConverter::~MucConverter()
ObjectVector< MucDigi > MucDigiCol
uint32_t bufSize(int i) const
virtual StatusCode pack(MucDigiCol *digiCol, WriteRawEvent *&re)
virtual void unPack(uint32_t reDigi, uint32_t &REId, uint32_t &FecData, uint32_t &StrSqc)
virtual uint32_t getTEID(uint32_t reid)
static MucConverter * instance()
StatusCode convert(const BufferHolder &src, MucDigiCol *des)