00001 #ifndef EMCBUILDER_H
00002 #define EMCBUILDER_H
00003
00004 #include "RawDataCnv/EventManagement/Builder.h"
00005 #include "EmcRawEvent/EmcDigi.h"
00006
00007 using namespace std;
00008
00009 class EmcBuilder: public Builder
00010 {
00011
00012 public:
00013 EmcBuilder ();
00014 virtual ~EmcBuilder();
00015 StatusCode initialize(string &initFile);
00016 uint32_t getTEID(uint32_t reid) { return m_re2te[reid]; }
00017 uint32_t getREID(uint32_t teid);
00018 void unPack (uint32_t reDigi, uint32_t &REId, uint32_t &TETDC, uint32_t &TEADC, uint32_t &measure);
00019 StatusCode pack(EmcDigiCol* digiCol, WriteRawEvent*& re);
00020
00021 private:
00022
00023 uint32_t m_idIndex;
00024 uint32_t m_idMask;
00025 uint32_t m_overflowIndex;
00026 uint32_t m_overflowMask;
00027 uint32_t m_TQIndex;
00028 uint32_t m_TQMask;
00029 uint32_t m_tdcIndex;
00030 uint32_t m_tdcMask;
00031 uint32_t m_measureIndex;
00032 uint32_t m_measureMask;
00033 uint32_t m_adcIndex;
00034 uint32_t m_adcMask;
00035
00036 uint32_t* m_re2te;
00037 TE2REMAP m_te2reMap;
00038
00039 PropertyMgr m_propMgr;
00040 };
00041 #endif