00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef RawEvent_RawRomFee_H
00016 #define RawEvent_RawRomFee_H 1
00017
00018
00019 #include "Event/RawRom.h"
00020 #include "GaudiKernel/boost_allocator.h"
00021 #include "GaudiKernel/SerializeSTL.h"
00022 #include <ostream>
00023
00024
00025
00026 namespace DayaBay
00027 {
00028
00029
00030 class RawPmtChannel;
00031 using GaudiUtils::operator<<;
00032
00033
00043 class RawRomFee: public RawRom
00044 {
00045 public:
00046
00048 RawRomFee() : m_triggerNum(0),
00049 m_triggerType(0),
00050 m_version(0),
00051 m_status(0),
00052 m_dataLength(0),
00053 m_channels() {}
00054
00056 ~RawRomFee();
00057
00059 virtual std::ostream& fillStream(std::ostream& s) const;
00060
00063 int triggerNum() const;
00064
00067 void setTriggerNum(int value);
00068
00071 int triggerType() const;
00072
00075 void setTriggerType(int value);
00076
00079 int version() const;
00080
00083 void setVersion(int value);
00084
00087 int status() const;
00088
00091 void setStatus(int value);
00092
00095 int dataLength() const;
00096
00099 void setDataLength(int value);
00100
00103 const std::vector<DayaBay::RawPmtChannel*>& channels() const;
00104
00107 void setChannels(const std::vector<DayaBay::RawPmtChannel*>& value);
00108
00109
00110 #ifndef GOD_NOALLOC
00112 static void* operator new ( size_t size )
00113 {
00114 return ( sizeof(RawRomFee) == size ?
00115 boost::singleton_pool<RawRomFee, sizeof(RawRomFee)>::malloc() :
00116 ::operator new(size) );
00117 }
00118
00122 static void* operator new ( size_t size, void* pObj )
00123 {
00124 return ::operator new (size,pObj);
00125 }
00126
00128 static void operator delete ( void* p )
00129 {
00130 boost::singleton_pool<RawRomFee, sizeof(RawRomFee)>::is_from(p) ?
00131 boost::singleton_pool<RawRomFee, sizeof(RawRomFee)>::free(p) :
00132 ::operator delete(p);
00133 }
00134
00137 static void operator delete ( void* p, void* pObj )
00138 {
00139 ::operator delete (p, pObj);
00140 }
00141 #endif
00142 protected:
00143
00144 private:
00145
00146 int m_triggerNum;
00147 int m_triggerType;
00148 int m_version;
00149 int m_status;
00150 int m_dataLength;
00151 std::vector<DayaBay::RawPmtChannel*> m_channels;
00152
00153 };
00154
00155 inline std::ostream& operator<< (std::ostream& str, const RawRomFee& obj)
00156 {
00157 return obj.fillStream(str);
00158 }
00159
00160 }
00161
00162
00163
00164
00165
00166
00167 #include "Event/RawPmtChannel.h"
00168
00169
00170 inline DayaBay::RawRomFee::~RawRomFee()
00171 {
00172
00173 for(unsigned int i=0; i<m_channels.size(); i++) {
00174 delete m_channels[i];
00175 }
00176 m_channels.clear();
00177
00178 }
00179
00180 inline std::ostream& DayaBay::RawRomFee::fillStream(std::ostream& s) const
00181 {
00182 RawRom::fillStream(s);
00183 s << "{ " << "triggerNum : " << m_triggerNum << std::endl
00184 << "triggerType : " << m_triggerType << std::endl
00185 << "version : " << m_version << std::endl
00186 << "status : " << m_status << std::endl
00187 << "dataLength : " << m_dataLength << std::endl
00188 << "channels : " << m_channels << std::endl << " }";
00189 return s;
00190 }
00191
00192
00193 inline int DayaBay::RawRomFee::triggerNum() const
00194 {
00195 return m_triggerNum;
00196 }
00197
00198 inline void DayaBay::RawRomFee::setTriggerNum(int value)
00199 {
00200 m_triggerNum = value;
00201 }
00202
00203 inline int DayaBay::RawRomFee::triggerType() const
00204 {
00205 return m_triggerType;
00206 }
00207
00208 inline void DayaBay::RawRomFee::setTriggerType(int value)
00209 {
00210 m_triggerType = value;
00211 }
00212
00213 inline int DayaBay::RawRomFee::version() const
00214 {
00215 return m_version;
00216 }
00217
00218 inline void DayaBay::RawRomFee::setVersion(int value)
00219 {
00220 m_version = value;
00221 }
00222
00223 inline int DayaBay::RawRomFee::status() const
00224 {
00225 return m_status;
00226 }
00227
00228 inline void DayaBay::RawRomFee::setStatus(int value)
00229 {
00230 m_status = value;
00231 }
00232
00233 inline int DayaBay::RawRomFee::dataLength() const
00234 {
00235 return m_dataLength;
00236 }
00237
00238 inline void DayaBay::RawRomFee::setDataLength(int value)
00239 {
00240 m_dataLength = value;
00241 }
00242
00243 inline const std::vector<DayaBay::RawPmtChannel*>& DayaBay::RawRomFee::channels() const
00244 {
00245 return m_channels;
00246 }
00247
00248 inline void DayaBay::RawRomFee::setChannels(const std::vector<DayaBay::RawPmtChannel*>& value)
00249 {
00250 m_channels = value;
00251 }
00252
00253
00254 #endif