00001 #ifndef Event_RecZddChannel_H 00002 #define Event_RecZddChannel_H 00003 00004 #include "GaudiKernel/ObjectVector.h" 00005 #include "GaudiKernel/ContainedObject.h" 00006 #include <vector> 00007 #include <memory> //std::pair 00008 00009 extern const CLID & CLID_RecZddChannel; 00010 00011 class RecZddChannel : virtual public ContainedObject 00012 { 00013 public : 00014 00015 typedef std::pair<int, float> FragType; //time and energy 00016 00017 virtual const CLID& clID() const { return RecZddChannel::classID(); } 00018 static const CLID& classID() { return CLID_RecZddChannel; } 00019 00020 RecZddChannel(); 00021 virtual ~RecZddChannel(); 00022 00023 RecZddChannel(const RecZddChannel&); 00024 RecZddChannel& operator=(const RecZddChannel&); 00025 00026 int channelId() const { return m_chId; } 00027 int scanCode() const { return m_scanCode; } 00028 int baseLine() const { return m_baseLine; } 00029 int phase() const { return m_phase; } 00030 const std::vector<FragType>& fragments() const { return m_frags; } 00031 00032 void setChannelId(int chId) { m_chId = chId; } 00033 void setScanCode(int scanCode) { m_scanCode = scanCode; } 00034 void setBaseLine(int baseLine) { m_baseLine = baseLine; } 00035 void setPhase(int phase) { m_phase = phase; } 00036 void setFragments(const std::vector<FragType>& frags) { m_frags = frags; } 00037 00038 void addFragment(int time, float energy) { m_frags.push_back(std::make_pair(time, energy)); } 00039 void addFragment(const FragType& fragment) { m_frags.push_back(fragment); } 00040 00041 private : 00042 00043 int m_chId; 00044 int m_scanCode; 00045 int m_baseLine; 00046 int m_phase; 00047 std::vector<FragType> m_frags; 00048 }; 00049 00050 typedef ObjectVector<RecZddChannel> RecZddChannelCol; 00051 typedef RecZddChannelCol::iterator RecZddChannelIterator; 00052 00053 #endif