00001 #ifndef MDC_MCHIT_BUILDER_H 00002 #define MDC_MCHIT_BUILDER_H 00003 00004 #include "RawDataCnv/EventManagement/Builder.h" 00005 #include "McTruth/MdcMcHit.h" 00006 #include "RawDataCnv/EventManagement/McTruthDataStructure.h" 00007 00008 using namespace std; 00009 using Event::MdcMcHit; 00010 using Event::MdcMcHitCol; 00011 00012 class MdcMcHitBuilder: public Builder 00013 { 00014 00015 public: 00016 MdcMcHitBuilder (); 00017 virtual ~MdcMcHitBuilder(){}; 00018 virtual StatusCode initialize(string &initFile); 00019 virtual uint32_t getTEID(uint32_t teid); 00020 virtual uint32_t getREID(uint32_t reid); 00021 virtual void unPack (vector<uint32_t>::const_iterator&, 00022 vector<uint32_t>::const_iterator&, 00023 MdcTruth_t&); 00024 virtual StatusCode pack(MdcMcHitCol* mdcMcHitCol, WriteRawEvent*& re); 00025 00026 private: 00027 00028 void makeMdcTruth(MdcMcHitCol::const_iterator& pMdcMcHit, MdcTruth_t& tt); 00029 00030 TE2REMAP m_te2reMap; 00032 vector <int> re2te; 00033 PropertyMgr m_propMgr; 00034 00035 uint32_t m_trackIndexIndex, m_layerIdIndex, m_cellIdIndex, m_posFlagIndex; 00036 uint32_t m_trackIndexMask, m_layerIdMask, m_cellIdMask, m_posFlagMask; 00037 00038 public: 00039 uint64_t m_edepCoeff; 00040 uint64_t m_driftDCoeff; 00041 uint64_t m_xCoeff; 00042 uint64_t m_yCoeff; 00043 uint64_t m_zCoeff; 00044 }; 00045 #endif