00001 #ifndef TOF_MCHIT_BUILDER_H
00002 #define TOF_MCHIT_BUILDER_H
00003
00004 #include "RawDataCnv/EventManagement/Builder.h"
00005 #include "McTruth/TofMcHit.h"
00006 #include "RawDataCnv/EventManagement/McTruthDataStructure.h"
00007
00008 using namespace std;
00009 using Event::TofMcHit;
00010 using Event::TofMcHitCol;
00011
00012 class TofMcHitBuilder: public Builder
00013 {
00014
00015 public:
00016 TofMcHitBuilder ();
00017 virtual ~TofMcHitBuilder(){};
00018 virtual StatusCode initialize(string &initFile);
00019 virtual uint32_t getTEID(uint32_t teid);
00020 virtual uint32_t getREID(uint32_t reid);
00021
00022 virtual void unPack(vector<uint32_t>::const_iterator&,
00023 vector<uint32_t>::const_iterator&,
00024 TofTruth_t&);
00025 virtual StatusCode pack(TofMcHitCol* tofMcHitCol, WriteRawEvent*& re);
00026
00027 private:
00028
00029 void makeTofTruth(TofMcHitCol::const_iterator& pTofMcHit, TofTruth_t& tt);
00030
00031 TE2REMAP m_te2reMap;
00032
00033 vector <int> re2te;
00034 PropertyMgr m_propMgr;
00035
00036 uint32_t m_trackIndexIndex, m_partIdIndex, m_scinNbIndex, m_stripIndex;
00037 uint32_t m_trackIndexMask, m_partIdMask, m_scinNbMask, m_stripMask;
00038
00039 public:
00040 uint64_t m_xCoeff;
00041 uint64_t m_yCoeff;
00042 uint64_t m_zCoeff;
00043 uint64_t m_pxCoeff;
00044 uint64_t m_pyCoeff;
00045 uint64_t m_pzCoeff;
00046 uint64_t m_trackLengthCoeff;
00047 uint64_t m_timeCoeff;
00048 };
00049 #endif