00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef RawEvent_RawLtbFrame_H
00016 #define RawEvent_RawLtbFrame_H 1
00017
00018
00019 #include "Context/TimeStamp.h"
00020 #include "GaudiKernel/boost_allocator.h"
00021 #include <ostream>
00022
00023
00024
00025 namespace DayaBay
00026 {
00027
00028
00029
00039 class RawLtbFrame
00040 {
00041 public:
00042
00044 RawLtbFrame() : m_accStat(false),
00045 m_GPSValid(false),
00046 m_timestampType(false),
00047 m_clockSystemValid(false),
00048 m_iltSn(0),
00049 m_rot(0),
00050 m_triggerSrc(0),
00051 m_nanoSecondLow(0),
00052 m_nanoSecondHigh(0),
00053 m_accumulationLow(0),
00054 m_accumulationHigh(0),
00055 m_hsum(0),
00056 m_esumComp(0),
00057 m_esumADC(0),
00058 m_blockedValidTrigger(0),
00059 m_crossTriggerSrc(0),
00060 m_feeBufferStat(false),
00061 m_ltbBufferStat(false),
00062 m_timestamp(0) {}
00063
00065 virtual ~RawLtbFrame() {}
00066
00068 virtual std::ostream& fillStream(std::ostream& s) const;
00069
00072 bool accStat() const;
00073
00076 void setAccStat(bool value);
00077
00080 bool gpsValid() const;
00081
00084 void setGPSValid(bool value);
00085
00088 bool timestampType() const;
00089
00092 void setTimestampType(bool value);
00093
00096 bool clockSystemValid() const;
00097
00100 void setClockSystemValid(bool value);
00101
00104 int iltSn() const;
00105
00108 void setIltSn(int value);
00109
00112 int rot() const;
00113
00116 void setRot(int value);
00117
00120 int triggerSrc() const;
00121
00124 void setTriggerSrc(int value);
00125
00128 int nanoSecondLow() const;
00129
00132 void setNanoSecondLow(int value);
00133
00136 int nanoSecondHigh() const;
00137
00140 void setNanoSecondHigh(int value);
00141
00144 int accumulationLow() const;
00145
00148 void setAccumulationLow(int value);
00149
00152 int accumulationHigh() const;
00153
00156 void setAccumulationHigh(int value);
00157
00160 int hsum() const;
00161
00164 void setHsum(int value);
00165
00168 int esumComp() const;
00169
00172 void setEsumComp(int value);
00173
00176 int esumADC() const;
00177
00180 void setEsumADC(int value);
00181
00184 int blockedValidTrigger() const;
00185
00188 void setBlockedValidTrigger(int value);
00189
00192 int crossTriggerSrc() const;
00193
00196 void setCrossTriggerSrc(int value);
00197
00200 bool feeBufferStat() const;
00201
00204 void setFeeBufferStat(bool value);
00205
00208 bool ltbBufferStat() const;
00209
00212 void setLtbBufferStat(bool value);
00213
00216 const TimeStamp& timestamp() const;
00217
00220 void setTimestamp(const TimeStamp& value);
00221
00222
00223 #ifndef GOD_NOALLOC
00225 static void* operator new ( size_t size )
00226 {
00227 return ( sizeof(RawLtbFrame) == size ?
00228 boost::singleton_pool<RawLtbFrame, sizeof(RawLtbFrame)>::malloc() :
00229 ::operator new(size) );
00230 }
00231
00235 static void* operator new ( size_t size, void* pObj )
00236 {
00237 return ::operator new (size,pObj);
00238 }
00239
00241 static void operator delete ( void* p )
00242 {
00243 boost::singleton_pool<RawLtbFrame, sizeof(RawLtbFrame)>::is_from(p) ?
00244 boost::singleton_pool<RawLtbFrame, sizeof(RawLtbFrame)>::free(p) :
00245 ::operator delete(p);
00246 }
00247
00250 static void operator delete ( void* p, void* pObj )
00251 {
00252 ::operator delete (p, pObj);
00253 }
00254 #endif
00255 protected:
00256
00257 private:
00258
00259 bool m_accStat;
00260 bool m_GPSValid;
00261 bool m_timestampType;
00262 bool m_clockSystemValid;
00263 int m_iltSn;
00264 int m_rot;
00265 int m_triggerSrc;
00266 int m_nanoSecondLow;
00267 int m_nanoSecondHigh;
00268 int m_accumulationLow;
00269 int m_accumulationHigh;
00270 int m_hsum;
00271 int m_esumComp;
00272 int m_esumADC;
00273 int m_blockedValidTrigger;
00274 int m_crossTriggerSrc;
00275 bool m_feeBufferStat;
00276 bool m_ltbBufferStat;
00277 TimeStamp m_timestamp;
00278
00279 };
00280
00281 inline std::ostream& operator<< (std::ostream& str, const RawLtbFrame& obj)
00282 {
00283 return obj.fillStream(str);
00284 }
00285
00286 }
00287
00288
00289
00290
00291
00292
00293
00294 inline std::ostream& DayaBay::RawLtbFrame::fillStream(std::ostream& s) const
00295 {
00296 char l_accStat = (m_accStat) ? 'T' : 'F';
00297 char l_GPSValid = (m_GPSValid) ? 'T' : 'F';
00298 char l_timestampType = (m_timestampType) ? 'T' : 'F';
00299 char l_clockSystemValid = (m_clockSystemValid) ? 'T' : 'F';
00300 char l_feeBufferStat = (m_feeBufferStat) ? 'T' : 'F';
00301 char l_ltbBufferStat = (m_ltbBufferStat) ? 'T' : 'F';
00302 s << "{ " << "accStat : " << l_accStat << std::endl
00303 << "GPSValid : " << l_GPSValid << std::endl
00304 << "timestampType : " << l_timestampType << std::endl
00305 << "clockSystemValid : " << l_clockSystemValid << std::endl
00306 << "iltSn : " << m_iltSn << std::endl
00307 << "rot : " << m_rot << std::endl
00308 << "triggerSrc : " << m_triggerSrc << std::endl
00309 << "nanoSecondLow : " << m_nanoSecondLow << std::endl
00310 << "nanoSecondHigh : " << m_nanoSecondHigh << std::endl
00311 << "accumulationLow : " << m_accumulationLow << std::endl
00312 << "accumulationHigh : " << m_accumulationHigh << std::endl
00313 << "hsum : " << m_hsum << std::endl
00314 << "esumComp : " << m_esumComp << std::endl
00315 << "esumADC : " << m_esumADC << std::endl
00316 << "blockedValidTrigger : " << m_blockedValidTrigger << std::endl
00317 << "crossTriggerSrc : " << m_crossTriggerSrc << std::endl
00318 << "feeBufferStat : " << l_feeBufferStat << std::endl
00319 << "ltbBufferStat : " << l_ltbBufferStat << std::endl
00320 << "timestamp : " << m_timestamp << std::endl << " }";
00321 return s;
00322 }
00323
00324
00325 inline bool DayaBay::RawLtbFrame::accStat() const
00326 {
00327 return m_accStat;
00328 }
00329
00330 inline void DayaBay::RawLtbFrame::setAccStat(bool value)
00331 {
00332 m_accStat = value;
00333 }
00334
00335 inline bool DayaBay::RawLtbFrame::gpsValid() const
00336 {
00337 return m_GPSValid;
00338 }
00339
00340 inline void DayaBay::RawLtbFrame::setGPSValid(bool value)
00341 {
00342 m_GPSValid = value;
00343 }
00344
00345 inline bool DayaBay::RawLtbFrame::timestampType() const
00346 {
00347 return m_timestampType;
00348 }
00349
00350 inline void DayaBay::RawLtbFrame::setTimestampType(bool value)
00351 {
00352 m_timestampType = value;
00353 }
00354
00355 inline bool DayaBay::RawLtbFrame::clockSystemValid() const
00356 {
00357 return m_clockSystemValid;
00358 }
00359
00360 inline void DayaBay::RawLtbFrame::setClockSystemValid(bool value)
00361 {
00362 m_clockSystemValid = value;
00363 }
00364
00365 inline int DayaBay::RawLtbFrame::iltSn() const
00366 {
00367 return m_iltSn;
00368 }
00369
00370 inline void DayaBay::RawLtbFrame::setIltSn(int value)
00371 {
00372 m_iltSn = value;
00373 }
00374
00375 inline int DayaBay::RawLtbFrame::rot() const
00376 {
00377 return m_rot;
00378 }
00379
00380 inline void DayaBay::RawLtbFrame::setRot(int value)
00381 {
00382 m_rot = value;
00383 }
00384
00385 inline int DayaBay::RawLtbFrame::triggerSrc() const
00386 {
00387 return m_triggerSrc;
00388 }
00389
00390 inline void DayaBay::RawLtbFrame::setTriggerSrc(int value)
00391 {
00392 m_triggerSrc = value;
00393 }
00394
00395 inline int DayaBay::RawLtbFrame::nanoSecondLow() const
00396 {
00397 return m_nanoSecondLow;
00398 }
00399
00400 inline void DayaBay::RawLtbFrame::setNanoSecondLow(int value)
00401 {
00402 m_nanoSecondLow = value;
00403 }
00404
00405 inline int DayaBay::RawLtbFrame::nanoSecondHigh() const
00406 {
00407 return m_nanoSecondHigh;
00408 }
00409
00410 inline void DayaBay::RawLtbFrame::setNanoSecondHigh(int value)
00411 {
00412 m_nanoSecondHigh = value;
00413 }
00414
00415 inline int DayaBay::RawLtbFrame::accumulationLow() const
00416 {
00417 return m_accumulationLow;
00418 }
00419
00420 inline void DayaBay::RawLtbFrame::setAccumulationLow(int value)
00421 {
00422 m_accumulationLow = value;
00423 }
00424
00425 inline int DayaBay::RawLtbFrame::accumulationHigh() const
00426 {
00427 return m_accumulationHigh;
00428 }
00429
00430 inline void DayaBay::RawLtbFrame::setAccumulationHigh(int value)
00431 {
00432 m_accumulationHigh = value;
00433 }
00434
00435 inline int DayaBay::RawLtbFrame::hsum() const
00436 {
00437 return m_hsum;
00438 }
00439
00440 inline void DayaBay::RawLtbFrame::setHsum(int value)
00441 {
00442 m_hsum = value;
00443 }
00444
00445 inline int DayaBay::RawLtbFrame::esumComp() const
00446 {
00447 return m_esumComp;
00448 }
00449
00450 inline void DayaBay::RawLtbFrame::setEsumComp(int value)
00451 {
00452 m_esumComp = value;
00453 }
00454
00455 inline int DayaBay::RawLtbFrame::esumADC() const
00456 {
00457 return m_esumADC;
00458 }
00459
00460 inline void DayaBay::RawLtbFrame::setEsumADC(int value)
00461 {
00462 m_esumADC = value;
00463 }
00464
00465 inline int DayaBay::RawLtbFrame::blockedValidTrigger() const
00466 {
00467 return m_blockedValidTrigger;
00468 }
00469
00470 inline void DayaBay::RawLtbFrame::setBlockedValidTrigger(int value)
00471 {
00472 m_blockedValidTrigger = value;
00473 }
00474
00475 inline int DayaBay::RawLtbFrame::crossTriggerSrc() const
00476 {
00477 return m_crossTriggerSrc;
00478 }
00479
00480 inline void DayaBay::RawLtbFrame::setCrossTriggerSrc(int value)
00481 {
00482 m_crossTriggerSrc = value;
00483 }
00484
00485 inline bool DayaBay::RawLtbFrame::feeBufferStat() const
00486 {
00487 return m_feeBufferStat;
00488 }
00489
00490 inline void DayaBay::RawLtbFrame::setFeeBufferStat(bool value)
00491 {
00492 m_feeBufferStat = value;
00493 }
00494
00495 inline bool DayaBay::RawLtbFrame::ltbBufferStat() const
00496 {
00497 return m_ltbBufferStat;
00498 }
00499
00500 inline void DayaBay::RawLtbFrame::setLtbBufferStat(bool value)
00501 {
00502 m_ltbBufferStat = value;
00503 }
00504
00505 inline const TimeStamp& DayaBay::RawLtbFrame::timestamp() const
00506 {
00507 return m_timestamp;
00508 }
00509
00510 inline void DayaBay::RawLtbFrame::setTimestamp(const TimeStamp& value)
00511 {
00512 m_timestamp = value;
00513 }
00514
00515
00516 #endif