/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

EventHeader.cc
Go to the documentation of this file.
00001 /*
00002  *  EventHeader.cc
00003  *  RawFileReading
00004  *
00005  *  Created by Simon Patton on 7/20/10.
00006  *  Copyright 2010 DayaBay Collaboration. All rights reserved.
00007  *
00008  */
00009 #include "EventReadoutFormat/EventHeader.h"
00010 
00011 #include "DaqReadoutFormat/ByteBuffer.h"
00012 #include "EventReadoutFormat/EventTraits.h"
00013 
00014 using DybDaq::ByteBuffer;
00015 using DybDaq::DaqTraits;
00016 using DybDaq::EventHeader;
00017 using DybDaq::EventBuffer;
00018 
00019 EventHeader::EventHeader(const unsigned int site,
00020                          const unsigned int detector,
00021                          const unsigned int run,
00022                          const unsigned int event,
00023                          const unsigned int dataType,
00024                          const bool cbltWrapping,
00025                          const bool rawCblt,
00026                          const bool triggerMismatch,
00027                          const bool invalidData,
00028                          const bool rpcSortDisabled,
00029                          const bool dataSortTimeout,
00030                          const EventTraits& traits) : 
00031 EventBuffer(new char[traits.headerSize(EventTraits::kEventHeader) * kBytesInInt],
00032             traits) {
00033     m_traits = &traits;
00034     traits.initializeHeader(EventTraits::kEventHeader,
00035                             buffer());
00036     setMajorVersion(traits.majorVersion());
00037     setMinorVersion(traits.minorVersion());
00038     setHeaderSize(traits.headerSize(EventTraits::kEventHeader)),
00039     setTotalSize(headerSize());
00040     setSite(site);
00041     setDetector(detector);
00042     setRun(run);
00043     setEvent(event);
00044     setDataType(dataType);
00045     setCbltWrapping(cbltWrapping);
00046     setRawCblt(rawCblt);
00047     setTriggerMismatch(triggerMismatch);
00048     setInvalidData(invalidData);
00049     setRpcSortDisabled(rpcSortDisabled);
00050     setDataSortTimeout(dataSortTimeout);
00051 }
00052 
00053 EventHeader::EventHeader(const ByteBuffer& byteBuffer) :
00054 EventBuffer(byteBuffer,
00055             *((EventTraits*)0)) {
00056     const char* buffer = byteBuffer.cursor();
00057     m_traits = EventTraits::readTraits(buffer);
00058         byteBuffer.position(byteBuffer.position() + (headerSize() * kBytesInInt));
00059 }
00060 
00061 EventHeader::~EventHeader() {
00062 }
00063 
00064 const DaqTraits& EventHeader::daqTraits() const {
00065         return *m_traits;
00066 }
00067 
00068 unsigned int EventHeader::formatComponent() const {
00069     return EventTraits::kEventHeader;
00070 }
00071 
00072 unsigned int EventHeader::majorVersion() const {
00073         return readUnsignedInt(EventTraits::kMajorVersion);
00074 }
00075 
00076 unsigned int EventHeader::minorVersion() const {
00077         return readUnsignedInt(EventTraits::kMinorVersion);
00078 }
00079 
00080 unsigned int EventHeader::headerSize() const {
00081         return readUnsignedInt(EventTraits::kEventHeaderSize);
00082 }
00083 
00084 unsigned int EventHeader::totalSize() const {
00085         return readUnsignedInt(EventTraits::kEventTotalSize);
00086 }
00087 
00088 unsigned int EventHeader::site() const {
00089         return readUnsignedInt(EventTraits::kEventSite);
00090 }
00091 
00092 unsigned int EventHeader::detector() const {
00093         return readUnsignedInt(EventTraits::kEventDetector);
00094 }
00095 
00096 unsigned int EventHeader::run() const {
00097         return readUnsignedInt(EventTraits::kEventRun);
00098 }
00099 
00100 unsigned int EventHeader::event() const {
00101         return readUnsignedInt(EventTraits::kEventNumber);
00102 }
00103 
00104 unsigned int EventHeader::dataType() const {
00105         return readUnsignedInt(EventTraits::kEventDataType);
00106 }
00107 
00108 bool EventHeader::rpcSortDisabled() const {
00109         return readBool(EventTraits::kRpcSortDisabled);
00110 }
00111 
00112 bool EventHeader::cbltWrapping() const {
00113         return readBool(EventTraits::kCbltWrapping);
00114 }
00115 
00116 bool EventHeader::rawCblt() const {
00117         return readBool(EventTraits::kRawCblt);
00118 }
00119 
00120 bool EventHeader::dataSortTimeout() const{
00121         return readBool(EventTraits::kDataSortTimeout);
00122 }
00123 
00124 bool EventHeader::triggerMismatch() const{
00125         return readBool(EventTraits::kLtbMismatch);
00126 }
00127 
00128 bool EventHeader::invalidData() const{
00129         return readBool(EventTraits::kInvalidData);
00130 }
00131 
00132 unsigned int EventHeader::bufferSize() const {
00133     return headerSize();
00134 }
00135 
00136 void EventHeader::setMajorVersion(const unsigned int majorVersion) {
00137     writeField(majorVersion,
00138                EventTraits::kMajorVersion);
00139 }
00140 
00141 void EventHeader::setMinorVersion(const unsigned int minorVersion) {
00142     writeField(minorVersion,
00143                EventTraits::kMinorVersion);
00144 }
00145 
00146 void EventHeader::setHeaderSize(const unsigned int headerLength) {
00147     writeField(headerLength,
00148                EventTraits::kEventHeaderSize);
00149 }
00150 
00151 void EventHeader::setTotalSize(const unsigned int totalLength) {
00152     writeField(totalLength,
00153                EventTraits::kEventTotalSize);
00154 }
00155 
00156 void EventHeader::setSite(const unsigned int site) {
00157     writeField(site,
00158                EventTraits::kEventSite);
00159 }
00160 
00161 void EventHeader::setDetector(const unsigned int detector) {
00162     writeField(detector,
00163                EventTraits::kEventDetector);
00164 }
00165 
00166 void EventHeader::setRun(const unsigned int run) {
00167     writeField(run,
00168                EventTraits::kEventRun);
00169 }
00170 
00171 void EventHeader::setEvent(const unsigned int event) {
00172     writeField(event,
00173                EventTraits::kEventNumber);
00174 }
00175 
00176 void EventHeader::setDataType(const unsigned int dataType) {
00177     writeField(dataType,
00178                EventTraits::kEventDataType);
00179 }
00180 
00181 void EventHeader::setRpcSortDisabled(const bool disabled) {
00182   writeField(disabled,
00183              EventTraits::kRpcSortDisabled);
00184 }
00185 
00186 void EventHeader::setCbltWrapping(const bool cbltWrapping) {
00187     writeField(cbltWrapping,
00188                EventTraits::kCbltWrapping);
00189 }
00190 
00191 void EventHeader::setRawCblt(const bool rawCblt) {
00192     writeField(rawCblt,
00193                EventTraits::kRawCblt);
00194 }
00195 
00196 void EventHeader::setDataSortTimeout(bool timedOut) {
00197     writeField(timedOut,
00198                EventTraits::kDataSortTimeout);
00199 }
00200 
00201 void EventHeader::setTriggerMismatch(const bool triggerMismatch) {
00202     writeField(triggerMismatch,
00203                EventTraits::kLtbMismatch);
00204 }
00205 
00206 void EventHeader::setInvalidData(const bool invalidData) {
00207     writeField(invalidData,
00208                EventTraits::kInvalidData);
00209 }
00210 
00211 
00212 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 09:53:15 for EventReadoutFormat by doxygen 1.7.4