00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef ElecEvent_ElecFeeChannel_H
00016 #define ElecEvent_ElecFeeChannel_H 1
00017
00018
00019 #include "Conventions/Electronics.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 using GaudiUtils::operator<<;
00031
00032
00042 class ElecFeeChannel
00043 {
00044 public:
00045
00047 ElecFeeChannel() : m_hit(),
00048 m_adcHigh(),
00049 m_adcLow(),
00050 m_energy(),
00051 m_tdc() {}
00052
00054 virtual ~ElecFeeChannel() {}
00055
00057 virtual std::ostream& fillStream(std::ostream& s) const;
00058
00061 const DayaBay::DigitalSignal& hit() const;
00062
00065 void setHit(const DayaBay::DigitalSignal& value);
00066
00069 const DayaBay::DigitalSignal& adcHigh() const;
00070
00073 void setAdcHigh(const DayaBay::DigitalSignal& value);
00074
00077 const DayaBay::DigitalSignal& adcLow() const;
00078
00081 void setAdcLow(const DayaBay::DigitalSignal& value);
00082
00085 const DayaBay::AnalogSignal& energy() const;
00086
00089 DayaBay::AnalogSignal& energy();
00090
00093 void setEnergy(const DayaBay::AnalogSignal& value);
00094
00097 const std::vector<int>& tdc() const;
00098
00101 void setTdc(const std::vector<int>& value);
00102
00103
00104 #ifndef GOD_NOALLOC
00106 static void* operator new ( size_t size )
00107 {
00108 return ( sizeof(ElecFeeChannel) == size ?
00109 boost::singleton_pool<ElecFeeChannel, sizeof(ElecFeeChannel)>::malloc() :
00110 ::operator new(size) );
00111 }
00112
00116 static void* operator new ( size_t size, void* pObj )
00117 {
00118 return ::operator new (size,pObj);
00119 }
00120
00122 static void operator delete ( void* p )
00123 {
00124 boost::singleton_pool<ElecFeeChannel, sizeof(ElecFeeChannel)>::is_from(p) ?
00125 boost::singleton_pool<ElecFeeChannel, sizeof(ElecFeeChannel)>::free(p) :
00126 ::operator delete(p);
00127 }
00128
00131 static void operator delete ( void* p, void* pObj )
00132 {
00133 ::operator delete (p, pObj);
00134 }
00135 #endif
00136 protected:
00137
00138 private:
00139
00140 DayaBay::DigitalSignal m_hit;
00141 DayaBay::DigitalSignal m_adcHigh;
00142 DayaBay::DigitalSignal m_adcLow;
00143 DayaBay::AnalogSignal m_energy;
00144 std::vector<int> m_tdc;
00145
00146 };
00147
00148 inline std::ostream& operator<< (std::ostream& str, const ElecFeeChannel& obj)
00149 {
00150 return obj.fillStream(str);
00151 }
00152
00153 }
00154
00155
00156
00157
00158
00159
00160
00161 inline std::ostream& DayaBay::ElecFeeChannel::fillStream(std::ostream& s) const
00162 {
00163 s << "{ " << "hit : " << m_hit << std::endl
00164 << "adcHigh : " << m_adcHigh << std::endl
00165 << "adcLow : " << m_adcLow << std::endl
00166 << "energy : " << m_energy << std::endl
00167 << "tdc : " << m_tdc << std::endl << " }";
00168 return s;
00169 }
00170
00171
00172 inline const DayaBay::DigitalSignal& DayaBay::ElecFeeChannel::hit() const
00173 {
00174 return m_hit;
00175 }
00176
00177 inline void DayaBay::ElecFeeChannel::setHit(const DayaBay::DigitalSignal& value)
00178 {
00179 m_hit = value;
00180 }
00181
00182 inline const DayaBay::DigitalSignal& DayaBay::ElecFeeChannel::adcHigh() const
00183 {
00184 return m_adcHigh;
00185 }
00186
00187 inline void DayaBay::ElecFeeChannel::setAdcHigh(const DayaBay::DigitalSignal& value)
00188 {
00189 m_adcHigh = value;
00190 }
00191
00192 inline const DayaBay::DigitalSignal& DayaBay::ElecFeeChannel::adcLow() const
00193 {
00194 return m_adcLow;
00195 }
00196
00197 inline void DayaBay::ElecFeeChannel::setAdcLow(const DayaBay::DigitalSignal& value)
00198 {
00199 m_adcLow = value;
00200 }
00201
00202 inline const DayaBay::AnalogSignal& DayaBay::ElecFeeChannel::energy() const
00203 {
00204 return m_energy;
00205 }
00206
00207 inline DayaBay::AnalogSignal& DayaBay::ElecFeeChannel::energy()
00208 {
00209 return m_energy;
00210 }
00211
00212 inline void DayaBay::ElecFeeChannel::setEnergy(const DayaBay::AnalogSignal& value)
00213 {
00214 m_energy = value;
00215 }
00216
00217 inline const std::vector<int>& DayaBay::ElecFeeChannel::tdc() const
00218 {
00219 return m_tdc;
00220 }
00221
00222 inline void DayaBay::ElecFeeChannel::setTdc(const std::vector<int>& value)
00223 {
00224 m_tdc = value;
00225 }
00226
00227
00228 #endif