MucConverter Class Reference

#include <MucConverter.h>

List of all members.

Public Member Functions

StatusCode convert (const BufferHolder &src, MucDigiCol *des)
StatusCode convert (MucDigiCol *src, WriteRawEvent *&des)

Static Public Member Functions

static MucConverterinstance ()
static void destroy ()

Private Member Functions

 MucConverter ()
 ~MucConverter ()

Private Attributes

MucBuilder m_builder

Static Private Attributes

static MucConverters_instance = 0


Detailed Description

Definition at line 9 of file MucConverter.h.


Constructor & Destructor Documentation

MucConverter::MucConverter (  )  [private]

Definition at line 59 of file MucConverter.cxx.

Referenced by instance().

00060 {
00061 }

MucConverter::~MucConverter (  )  [private]

Definition at line 63 of file MucConverter.cxx.

00064 {
00065 }


Member Function Documentation

StatusCode MucConverter::convert ( MucDigiCol src,
WriteRawEvent *&  des 
)

Definition at line 54 of file MucConverter.cxx.

References m_builder, and MucBuilder::pack().

00055 {
00056    return m_builder.pack(src, des);
00057 }

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 }


Member Data Documentation

MucBuilder MucConverter::m_builder [private]

Definition at line 29 of file MucConverter.h.

Referenced by convert().

MucConverter * MucConverter::s_instance = 0 [static, private]

Definition at line 32 of file MucConverter.h.

Referenced by destroy(), and instance().


Generated on Tue Nov 29 23:20:27 2016 for BOSS_7.0.2 by  doxygen 1.4.7