00001 #ifndef EVENT_DST_HLT_INF_H 00002 #define EVENT_DST_HLT_INF_H 00003 00004 #include <stdint.h> //uint32_t 00005 #include <iostream> 00006 #include "GaudiKernel/DataObject.h" 00007 #include "EventModel/EventModel.h" 00008 #include "Identifier/Identifier.h" 00009 #include "HltEvent/IHltInterface.h" 00010 00011 using namespace std; 00012 00013 extern const CLID& CLID_DstHltInf; 00014 00015 //event filter data struction for physics analysis 00016 class DstHltInf : public DataObject, public IHltInterface { 00017 public: 00018 00019 DstHltInf(const unsigned int type, const unsigned int alg, const unsigned int cri, 00020 const unsigned int ver, const float etot); 00021 DstHltInf(); 00022 DstHltInf(const DstHltInf&); 00023 DstHltInf& operator=(const DstHltInf&); 00024 00025 virtual ~DstHltInf() {} 00026 00027 virtual const CLID& clID() const { return DstHltInf::classID(); } 00028 static const CLID& classID() { return CLID_DstHltInf; } 00029 00030 void setEventType(const unsigned int i) { m_eventType = i; } 00031 void setAlgProcess(const unsigned int i) { m_algProcess=i; } 00032 void setCriteriaTable(const unsigned int i) { m_criTable=i; } 00033 void setVersion(const unsigned int i) { m_version=i; } 00034 void setTotalEnergy(const float etot) { m_eTotal = etot; } 00035 void setNumber(const unsigned int i) { m_number=i; }; 00036 void setNMDC(const unsigned int i) { m_number = (m_number&0xFFFFFF00)|i ; }; 00037 void setNTOF(const unsigned int i) { m_number = (m_number&0xFFFF00FF)|(i<<8); }; 00038 void setNEMC(const unsigned int i) { m_number = (m_number&0xFF00FFFF)|(i<<16); }; 00039 void setNMUC(const unsigned int i) { m_number = (m_number&0x00FFFFFF)|(i<<24); }; 00040 void setNCON(const unsigned int i) { m_ncon = i; }; 00041 00042 uint32_t getEventType() const { return m_eventType;} 00043 uint32_t getAlgProcess()const { return m_algProcess; } 00044 uint32_t getCriteriaTable()const { return m_criTable; } 00045 uint32_t getVersion() const { return m_version; } 00046 float getTotalEnergy() const { return m_eTotal; } 00047 uint32_t getNumber() const { return m_number; }; 00048 uint32_t getNMDC() const { return m_number&0xFF; }; 00049 uint32_t getNTOF() const { return (m_number>>8)&0xFF; }; 00050 uint32_t getNEMC() const { return (m_number>>16)&0xFF; }; 00051 uint32_t getNMUC() const { return (m_number>>24)&0xFF; }; 00052 uint32_t getNCON() const { return m_ncon; }; 00053 00054 const string& getEventName() const ; 00055 bool isType(string& type) const ; 00056 00057 virtual void push_mdc(uint32_t){}; 00058 virtual void push_tof(uint32_t){}; 00059 virtual void push_emc(uint32_t){}; 00060 virtual void push_muc(uint32_t){}; 00061 virtual void push_con(uint32_t){}; 00062 virtual void push_mdc(float){}; 00063 virtual void push_tof(float){}; 00064 virtual void push_emc(float){}; 00065 virtual void push_muc(float){}; 00066 virtual void push_con(float){}; 00067 virtual bool setData(const Identifier&, uint32_t){return false;}; 00068 virtual bool setData(const Identifier&, float){return false;}; 00069 virtual void setMdcData(const std::vector<uint32_t>&){}; 00070 virtual void setTofData(const std::vector<uint32_t>&){}; 00071 virtual void setEmcData(const std::vector<uint32_t>&){}; 00072 virtual void setMucData(const std::vector<uint32_t>&){}; 00073 virtual void setConData(const std::vector<uint32_t>&){}; 00074 virtual bool getData(const Identifier&, uint32_t*){ return false;}; 00075 00076 virtual void print() const { cout << *this; } 00077 00078 protected: 00079 uint32_t m_eventType; //Hlt 00080 uint32_t m_algProcess; //Hlt 00081 uint32_t m_criTable; 00082 uint32_t m_version; 00083 float m_eTotal; 00084 uint32_t m_number; 00085 uint32_t m_ncon; 00086 00087 static const std::string s_chn[32]; 00088 static const std::string s_err; 00089 }; 00090 00091 ostream& operator<<(ostream & os, const DstHltInf& aHlt); 00092 00093 #endif // EVENT_DST_HLT_INF_H 00094