00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef ReadoutEvent_ReadoutTriggerDataPkg_H
00016 #define ReadoutEvent_ReadoutTriggerDataPkg_H 1
00017
00018
00019 #include "Conventions/Detectors.h"
00020 #include "Event/DaqLtb.h"
00021 #include "GaudiKernel/boost_allocator.h"
00022 #include <vector>
00023 #include <ostream>
00024
00025
00026
00027 namespace DayaBay
00028 {
00029
00030
00031 class Readout;
00032 class ReadoutTriggerDataFrame;
00033
00034
00044 class ReadoutTriggerDataPkg
00045 {
00046 public:
00047
00049 typedef std::vector<DayaBay::ReadoutTriggerDataFrame*> TriggerFrameCollection;
00050
00052 ReadoutTriggerDataPkg(const DayaBay::ReadoutTriggerDataPkg& rhs);
00053
00055 ReadoutTriggerDataPkg() : m_frames(),
00056 m_readout(0),
00057 m_detector(0),
00058 m_trigNumber(0),
00059 m_numSubTriggers(0),
00060 m_boardStatus(0),
00061 m_localSN(0) {}
00062
00064 ~ReadoutTriggerDataPkg();
00065
00067 void addFrame(DayaBay::ReadoutTriggerDataFrame* tdf);
00068
00070 DaqLtb* daqLtb() const;
00071
00073 ReadoutTriggerDataPkg& operator=(const DayaBay::ReadoutTriggerDataPkg& rhs);
00074
00076 std::ostream& fillStream(std::ostream& s) const;
00077
00080 const TriggerFrameCollection& frames() const;
00081
00084 void setFrames(const TriggerFrameCollection& value);
00085
00088 const DayaBay::Readout* readout() const;
00089
00092 void setReadout(DayaBay::Readout* value);
00093
00096 const DayaBay::Detector& detector() const;
00097
00100 void setDetector(const DayaBay::Detector& value);
00101
00104 int trigNumber() const;
00105
00108 void setTrigNumber(int value);
00109
00112 int numSubTriggers() const;
00113
00116 void setNumSubTriggers(int value);
00117
00120 int boardStatus() const;
00121
00124 void setBoardStatus(int value);
00125
00128 int localSN() const;
00129
00132 void setLocalSN(int value);
00133
00134
00135 #ifndef GOD_NOALLOC
00137 static void* operator new ( size_t size )
00138 {
00139 return ( sizeof(ReadoutTriggerDataPkg) == size ?
00140 boost::singleton_pool<ReadoutTriggerDataPkg, sizeof(ReadoutTriggerDataPkg)>::malloc() :
00141 ::operator new(size) );
00142 }
00143
00147 static void* operator new ( size_t size, void* pObj )
00148 {
00149 return ::operator new (size,pObj);
00150 }
00151
00153 static void operator delete ( void* p )
00154 {
00155 boost::singleton_pool<ReadoutTriggerDataPkg, sizeof(ReadoutTriggerDataPkg)>::is_from(p) ?
00156 boost::singleton_pool<ReadoutTriggerDataPkg, sizeof(ReadoutTriggerDataPkg)>::free(p) :
00157 ::operator delete(p);
00158 }
00159
00162 static void operator delete ( void* p, void* pObj )
00163 {
00164 ::operator delete (p, pObj);
00165 }
00166 #endif
00167 protected:
00168
00169 private:
00170
00171 TriggerFrameCollection m_frames;
00172 DayaBay::Readout* m_readout;
00173 DayaBay::Detector m_detector;
00174 int m_trigNumber;
00175 int m_numSubTriggers;
00176 int m_boardStatus;
00177 int m_localSN;
00178
00179 };
00180
00181 inline std::ostream& operator<< (std::ostream& str, const ReadoutTriggerDataPkg& obj)
00182 {
00183 return obj.fillStream(str);
00184 }
00185
00186 }
00187
00188
00189
00190
00191
00192
00193 #include "Readout.h"
00194 #include "ReadoutTriggerDataFrame.h"
00195
00196
00197 inline const DayaBay::ReadoutTriggerDataPkg::TriggerFrameCollection& DayaBay::ReadoutTriggerDataPkg::frames() const
00198 {
00199 return m_frames;
00200 }
00201
00202 inline void DayaBay::ReadoutTriggerDataPkg::setFrames(const TriggerFrameCollection& value)
00203 {
00204 m_frames = value;
00205 }
00206
00207 inline const DayaBay::Readout* DayaBay::ReadoutTriggerDataPkg::readout() const
00208 {
00209 return m_readout;
00210 }
00211
00212 inline void DayaBay::ReadoutTriggerDataPkg::setReadout(DayaBay::Readout* value)
00213 {
00214 m_readout = value;
00215 }
00216
00217 inline const DayaBay::Detector& DayaBay::ReadoutTriggerDataPkg::detector() const
00218 {
00219 return m_detector;
00220 }
00221
00222 inline void DayaBay::ReadoutTriggerDataPkg::setDetector(const DayaBay::Detector& value)
00223 {
00224 m_detector = value;
00225 }
00226
00227 inline int DayaBay::ReadoutTriggerDataPkg::trigNumber() const
00228 {
00229 return m_trigNumber;
00230 }
00231
00232 inline void DayaBay::ReadoutTriggerDataPkg::setTrigNumber(int value)
00233 {
00234 m_trigNumber = value;
00235 }
00236
00237 inline int DayaBay::ReadoutTriggerDataPkg::numSubTriggers() const
00238 {
00239 return m_numSubTriggers;
00240 }
00241
00242 inline void DayaBay::ReadoutTriggerDataPkg::setNumSubTriggers(int value)
00243 {
00244 m_numSubTriggers = value;
00245 }
00246
00247 inline int DayaBay::ReadoutTriggerDataPkg::boardStatus() const
00248 {
00249 return m_boardStatus;
00250 }
00251
00252 inline void DayaBay::ReadoutTriggerDataPkg::setBoardStatus(int value)
00253 {
00254 m_boardStatus = value;
00255 }
00256
00257 inline int DayaBay::ReadoutTriggerDataPkg::localSN() const
00258 {
00259 return m_localSN;
00260 }
00261
00262 inline void DayaBay::ReadoutTriggerDataPkg::setLocalSN(int value)
00263 {
00264 m_localSN = value;
00265 }
00266
00267
00268 #endif