#include <MucConverter.h>
Public Member Functions | |
StatusCode | convert (const BufferHolder &src, MucDigiCol *des) |
StatusCode | convert (MucDigiCol *src, WriteRawEvent *&des) |
Static Public Member Functions | |
static MucConverter * | instance () |
static void | destroy () |
Private Member Functions | |
MucConverter () | |
~MucConverter () | |
Private Attributes | |
MucBuilder | m_builder |
Static Private Attributes | |
static MucConverter * | s_instance = 0 |
Definition at line 9 of file MucConverter.h.
MucConverter::MucConverter | ( | ) | [private] |
MucConverter::~MucConverter | ( | ) | [private] |
StatusCode MucConverter::convert | ( | MucDigiCol * | src, | |
WriteRawEvent *& | des | |||
) |
StatusCode MucConverter::convert | ( | const BufferHolder & | src, | |
MucDigiCol * | des | |||
) |
Definition at line 22 of file MucConverter.cxx.
References BufferHolder::bufSize(), MucBuilder::getTEID(), genRecEmupikp::i, ganga-rec::j, m_builder, EVENT::mucDigi, BufferHolder::nBuf(), and MucBuilder::unPack().
Referenced by RawDataMucDigiCnv::createObj(), RawDataMucDigiCnv::createRep(), MixerAlg::decodeMuc(), and RawEventReader::execute().
00023 { 00024 uint32_t REId, TEId, FecData, StrSqc; 00025 uint32_t nbuf = src.nBuf(); 00026 00027 for (uint32_t i = 0; i < nbuf; ++i) { 00028 uint32_t* buf = src(i); 00029 uint32_t bufSize = src.bufSize(i); 00030 for (uint32_t j = 0; j < bufSize; ++j) { 00031 m_builder.unPack(buf[j], REId, FecData, StrSqc); 00032 TEId = m_builder.getTEID( REId ); 00033 if ( TEId == 0xFFFFFFFF ) continue; 00034 00035 uint32_t teidBase = TEId & 0xFF0FFFFF; 00036 uint32_t teid; 00037 for (uint32_t k = 0; FecData != 0 && k < 16; FecData >>= 1, ++k) { 00038 if ((FecData & 1) == 0) continue; 00039 if (StrSqc == 0) { 00040 teid = teidBase + 15 -k; 00041 } 00042 else { 00043 teid = teidBase + k; 00044 } 00045 MucDigi* mucDigi = new MucDigi(teid); 00046 des->push_back( mucDigi ); 00047 } 00048 } 00049 } 00050 00051 return StatusCode::SUCCESS; 00052 }
void MucConverter::destroy | ( | ) | [static] |
Definition at line 14 of file MucConverter.cxx.
References s_instance.
Referenced by RawDataMucDigiCnv::~RawDataMucDigiCnv(), and RawEventReader::~RawEventReader().
00015 { 00016 if ( s_instance != 0 ) { 00017 delete s_instance; 00018 s_instance = 0; 00019 } 00020 }
MucConverter * MucConverter::instance | ( | ) | [static] |
Definition at line 5 of file MucConverter.cxx.
References MucConverter(), and s_instance.
Referenced by RawDataMucDigiCnv::initialize(), MixerAlg::MixerAlg(), and RawEventReader::RawEventReader().
00006 { 00007 if ( s_instance == 0 ) { 00008 s_instance = new MucConverter(); 00009 } 00010 00011 return s_instance; 00012 }
MucBuilder MucConverter::m_builder [private] |
MucConverter * MucConverter::s_instance = 0 [static, private] |