00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef CalibReadoutEvent_CalibReadout_H
00016 #define CalibReadoutEvent_CalibReadout_H 1
00017
00018
00019 #include "Context/TimeStamp.h"
00020 #include "Conventions/Detectors.h"
00021 #include "Conventions/Trigger.h"
00022 #include "GaudiKernel/boost_allocator.h"
00023 #include <ostream>
00024
00025
00026
00027 namespace DayaBay
00028 {
00029
00030
00031 class CalibReadoutHeader;
00032
00033
00043 class CalibReadout
00044 {
00045 public:
00046
00048 CalibReadout(const DayaBay::Detector& detector,
00049 unsigned int triggerNumber,
00050 const TimeStamp& triggerTime,
00051 const DayaBay::Trigger::TriggerType_t& triggerType) : m_detector(detector),
00052 m_triggerNumber(triggerNumber),
00053 m_triggerTime(triggerTime),
00054 m_triggerType(triggerType) {}
00055
00057 CalibReadout() : m_detector(0),
00058 m_triggerNumber(0),
00059 m_triggerTime(0),
00060 m_triggerType(),
00061 m_header(0) {}
00062
00064 CalibReadout(const CalibReadout & rh);
00065
00067 CalibReadout & operator=(const CalibReadout & rh);
00068
00070 virtual ~CalibReadout() {}
00071
00073 virtual std::ostream& fillStream(std::ostream& s) const;
00074
00077 const DayaBay::Detector& detector() const;
00078
00081 void setDetector(const DayaBay::Detector& value);
00082
00085 unsigned int triggerNumber() const;
00086
00089 void setTriggerNumber(unsigned int value);
00090
00093 const TimeStamp& triggerTime() const;
00094
00097 void setTriggerTime(const TimeStamp& value);
00098
00101 const DayaBay::Trigger::TriggerType_t& triggerType() const;
00102
00105 void setTriggerType(const DayaBay::Trigger::TriggerType_t& value);
00106
00109 const DayaBay::CalibReadoutHeader* header() const;
00110
00113 void setHeader(DayaBay::CalibReadoutHeader* value);
00114
00115
00116 #ifndef GOD_NOALLOC
00118 static void* operator new ( size_t size )
00119 {
00120 return ( sizeof(CalibReadout) == size ?
00121 boost::singleton_pool<CalibReadout, sizeof(CalibReadout)>::malloc() :
00122 ::operator new(size) );
00123 }
00124
00128 static void* operator new ( size_t size, void* pObj )
00129 {
00130 return ::operator new (size,pObj);
00131 }
00132
00134 static void operator delete ( void* p )
00135 {
00136 boost::singleton_pool<CalibReadout, sizeof(CalibReadout)>::is_from(p) ?
00137 boost::singleton_pool<CalibReadout, sizeof(CalibReadout)>::free(p) :
00138 ::operator delete(p);
00139 }
00140
00143 static void operator delete ( void* p, void* pObj )
00144 {
00145 ::operator delete (p, pObj);
00146 }
00147 #endif
00148 protected:
00149
00150 private:
00151
00152 DayaBay::Detector m_detector;
00153 unsigned int m_triggerNumber;
00154 TimeStamp m_triggerTime;
00155 DayaBay::Trigger::TriggerType_t m_triggerType;
00156 DayaBay::CalibReadoutHeader* m_header;
00157
00158 };
00159
00160 inline std::ostream& operator<< (std::ostream& str, const CalibReadout& obj)
00161 {
00162 return obj.fillStream(str);
00163 }
00164
00165 }
00166
00167
00168
00169
00170
00171
00172 #include "CalibReadoutHeader.h"
00173
00174
00175 inline DayaBay::CalibReadout::CalibReadout(const DayaBay::CalibReadout & rh) :
00176 m_detector( rh.m_detector ),
00177 m_triggerNumber( rh.m_triggerNumber ),
00178 m_triggerTime( rh.m_triggerTime ),
00179 m_triggerType( rh.m_triggerType ),
00180 m_header( rh.m_header )
00181 {}
00182
00183 inline DayaBay::CalibReadout & DayaBay::CalibReadout::operator=(const DayaBay::CalibReadout & rh) {
00184 if ( this != &rh ) {
00185 m_detector = rh.m_detector;
00186 m_triggerNumber = rh.m_triggerNumber;
00187 m_triggerTime = rh.m_triggerTime;
00188 m_triggerType = rh.m_triggerType;
00189 m_header = rh.m_header;
00190 }
00191 return *this;
00192 }
00193
00194 inline std::ostream& DayaBay::CalibReadout::fillStream(std::ostream& s) const
00195 {
00196 s << "{ " << "detector : " << m_detector << std::endl
00197 << "triggerNumber : " << m_triggerNumber << std::endl
00198 << "triggerTime : " << m_triggerTime << std::endl
00199 << "triggerType : " << m_triggerType << std::endl
00200 << "header : " << m_header << std::endl << " }";
00201 return s;
00202 }
00203
00204
00205 inline const DayaBay::Detector& DayaBay::CalibReadout::detector() const
00206 {
00207 return m_detector;
00208 }
00209
00210 inline void DayaBay::CalibReadout::setDetector(const DayaBay::Detector& value)
00211 {
00212 m_detector = value;
00213 }
00214
00215 inline unsigned int DayaBay::CalibReadout::triggerNumber() const
00216 {
00217 return m_triggerNumber;
00218 }
00219
00220 inline void DayaBay::CalibReadout::setTriggerNumber(unsigned int value)
00221 {
00222 m_triggerNumber = value;
00223 }
00224
00225 inline const TimeStamp& DayaBay::CalibReadout::triggerTime() const
00226 {
00227 return m_triggerTime;
00228 }
00229
00230 inline void DayaBay::CalibReadout::setTriggerTime(const TimeStamp& value)
00231 {
00232 m_triggerTime = value;
00233 }
00234
00235 inline const DayaBay::Trigger::TriggerType_t& DayaBay::CalibReadout::triggerType() const
00236 {
00237 return m_triggerType;
00238 }
00239
00240 inline void DayaBay::CalibReadout::setTriggerType(const DayaBay::Trigger::TriggerType_t& value)
00241 {
00242 m_triggerType = value;
00243 }
00244
00245 inline const DayaBay::CalibReadoutHeader* DayaBay::CalibReadout::header() const
00246 {
00247 return m_header;
00248 }
00249
00250 inline void DayaBay::CalibReadout::setHeader(DayaBay::CalibReadoutHeader* value)
00251 {
00252 m_header = value;
00253 }
00254
00255
00256 #endif