00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef RawEvent_RawPmtChannel_H
00016 #define RawEvent_RawPmtChannel_H 1
00017
00018
00019 #include "GaudiKernel/boost_allocator.h"
00020 #include "GaudiKernel/SerializeSTL.h"
00021 #include <ostream>
00022
00023
00024
00025 namespace DayaBay
00026 {
00027
00028
00029 using GaudiUtils::operator<<;
00030
00031
00041 class RawPmtChannel
00042 {
00043 public:
00044
00046 RawPmtChannel() : m_channel(-1),
00047 m_adc(),
00048 m_adcPeakingCycle(),
00049 m_adcRange(),
00050 m_tdc(),
00051 m_tdcHitCount(),
00052 m_pedestal() {}
00053
00055 virtual ~RawPmtChannel() {}
00056
00058 virtual std::ostream& fillStream(std::ostream& s) const;
00059
00062 int channel() const;
00063
00066 void setChannel(int value);
00067
00070 const std::vector<int>& adc() const;
00071
00074 void setAdc(const std::vector<int>& value);
00075
00078 const std::vector<int>& adcPeakingCycle() const;
00079
00082 void setAdcPeakingCycle(const std::vector<int>& value);
00083
00086 const std::vector<int>& adcRange() const;
00087
00090 void setAdcRange(const std::vector<int>& value);
00091
00094 const std::vector<int>& tdc() const;
00095
00098 void setTdc(const std::vector<int>& value);
00099
00102 const std::vector<int>& tdcHitCount() const;
00103
00106 void setTdcHitCount(const std::vector<int>& value);
00107
00110 const std::vector<int>& pedestal() const;
00111
00114 void setPedestal(const std::vector<int>& value);
00115
00116
00117 #ifndef GOD_NOALLOC
00119 static void* operator new ( size_t size )
00120 {
00121 return ( sizeof(RawPmtChannel) == size ?
00122 boost::singleton_pool<RawPmtChannel, sizeof(RawPmtChannel)>::malloc() :
00123 ::operator new(size) );
00124 }
00125
00129 static void* operator new ( size_t size, void* pObj )
00130 {
00131 return ::operator new (size,pObj);
00132 }
00133
00135 static void operator delete ( void* p )
00136 {
00137 boost::singleton_pool<RawPmtChannel, sizeof(RawPmtChannel)>::is_from(p) ?
00138 boost::singleton_pool<RawPmtChannel, sizeof(RawPmtChannel)>::free(p) :
00139 ::operator delete(p);
00140 }
00141
00144 static void operator delete ( void* p, void* pObj )
00145 {
00146 ::operator delete (p, pObj);
00147 }
00148 #endif
00149 protected:
00150
00151 private:
00152
00153 int m_channel;
00154 std::vector<int> m_adc;
00155 std::vector<int> m_adcPeakingCycle;
00156 std::vector<int> m_adcRange;
00157 std::vector<int> m_tdc;
00158 std::vector<int> m_tdcHitCount;
00159 std::vector<int> m_pedestal;
00160
00161 };
00162
00163 inline std::ostream& operator<< (std::ostream& str, const RawPmtChannel& obj)
00164 {
00165 return obj.fillStream(str);
00166 }
00167
00168 }
00169
00170
00171
00172
00173
00174
00175
00176 inline std::ostream& DayaBay::RawPmtChannel::fillStream(std::ostream& s) const
00177 {
00178 s << "{ " << "channel : " << m_channel << std::endl
00179 << "adc : " << m_adc << std::endl
00180 << "adcPeakingCycle : " << m_adcPeakingCycle << std::endl
00181 << "adcRange : " << m_adcRange << std::endl
00182 << "tdc : " << m_tdc << std::endl
00183 << "tdcHitCount : " << m_tdcHitCount << std::endl
00184 << "pedestal : " << m_pedestal << std::endl << " }";
00185 return s;
00186 }
00187
00188
00189 inline int DayaBay::RawPmtChannel::channel() const
00190 {
00191 return m_channel;
00192 }
00193
00194 inline void DayaBay::RawPmtChannel::setChannel(int value)
00195 {
00196 m_channel = value;
00197 }
00198
00199 inline const std::vector<int>& DayaBay::RawPmtChannel::adc() const
00200 {
00201 return m_adc;
00202 }
00203
00204 inline void DayaBay::RawPmtChannel::setAdc(const std::vector<int>& value)
00205 {
00206 m_adc = value;
00207 }
00208
00209 inline const std::vector<int>& DayaBay::RawPmtChannel::adcPeakingCycle() const
00210 {
00211 return m_adcPeakingCycle;
00212 }
00213
00214 inline void DayaBay::RawPmtChannel::setAdcPeakingCycle(const std::vector<int>& value)
00215 {
00216 m_adcPeakingCycle = value;
00217 }
00218
00219 inline const std::vector<int>& DayaBay::RawPmtChannel::adcRange() const
00220 {
00221 return m_adcRange;
00222 }
00223
00224 inline void DayaBay::RawPmtChannel::setAdcRange(const std::vector<int>& value)
00225 {
00226 m_adcRange = value;
00227 }
00228
00229 inline const std::vector<int>& DayaBay::RawPmtChannel::tdc() const
00230 {
00231 return m_tdc;
00232 }
00233
00234 inline void DayaBay::RawPmtChannel::setTdc(const std::vector<int>& value)
00235 {
00236 m_tdc = value;
00237 }
00238
00239 inline const std::vector<int>& DayaBay::RawPmtChannel::tdcHitCount() const
00240 {
00241 return m_tdcHitCount;
00242 }
00243
00244 inline void DayaBay::RawPmtChannel::setTdcHitCount(const std::vector<int>& value)
00245 {
00246 m_tdcHitCount = value;
00247 }
00248
00249 inline const std::vector<int>& DayaBay::RawPmtChannel::pedestal() const
00250 {
00251 return m_pedestal;
00252 }
00253
00254 inline void DayaBay::RawPmtChannel::setPedestal(const std::vector<int>& value)
00255 {
00256 m_pedestal = value;
00257 }
00258
00259
00260 #endif