| 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 EventTraits& traits) : 
00029 EventBuffer(new char[traits.headerSize(EventTraits::kEventHeader) * kBytesInInt],
00030             traits) {
00031     m_traits = &traits;
00032     traits.initializeHeader(EventTraits::kEventHeader,
00033                             buffer());
00034     setMajorVersion(traits.majorVersion());
00035     setMinorVersion(traits.minorVersion());
00036     setHeaderSize(traits.headerSize(EventTraits::kEventHeader)),
00037     setTotalSize(headerSize());
00038     setSite(site);
00039     setDetector(detector);
00040     setRun(run);
00041     setEvent(event);
00042     setDataType(dataType);
00043     setCbltWrapping(cbltWrapping);
00044     setRawCblt(rawCblt);
00045     setTriggerMismatch(triggerMismatch);
00046     setInvalidData(invalidData);
00047 }
00048 
00049 EventHeader::EventHeader(const ByteBuffer& byteBuffer) :
00050 EventBuffer(byteBuffer,
00051             *((EventTraits*)0)) {
00052     const char* buffer = byteBuffer.cursor();
00053     m_traits = EventTraits::readTraits(buffer);
00054         byteBuffer.position(byteBuffer.position() + (headerSize() * kBytesInInt));
00055 }
00056 
00057 EventHeader::~EventHeader() {
00058 }
00059 
00060 const DaqTraits& EventHeader::daqTraits() const {
00061         return *m_traits;
00062 }
00063 
00064 unsigned int EventHeader::formatComponent() const {
00065     return EventTraits::kEventHeader;
00066 }
00067 
00068 unsigned int EventHeader::majorVersion() const {
00069         return readUnsignedInt(EventTraits::kMajorVersion);
00070 }
00071 
00072 unsigned int EventHeader::minorVersion() const {
00073         return readUnsignedInt(EventTraits::kMinorVersion);
00074 }
00075 
00076 unsigned int EventHeader::headerSize() const {
00077         return readUnsignedInt(EventTraits::kEventHeaderSize);
00078 }
00079 
00080 unsigned int EventHeader::totalSize() const {
00081         return readUnsignedInt(EventTraits::kEventTotalSize);
00082 }
00083 
00084 unsigned int EventHeader::site() const {
00085         return readUnsignedInt(EventTraits::kEventSite);
00086 }
00087 
00088 unsigned int EventHeader::detector() const {
00089         return readUnsignedInt(EventTraits::kEventDetector);
00090 }
00091 
00092 unsigned int EventHeader::run() const {
00093         return readUnsignedInt(EventTraits::kEventRun);
00094 }
00095 
00096 unsigned int EventHeader::event() const {
00097         return readUnsignedInt(EventTraits::kEventNumber);
00098 }
00099 
00100 unsigned int EventHeader::dataType() const {
00101         return readUnsignedInt(EventTraits::kEventDataType);
00102 }
00103 
00104 bool EventHeader::cbltWrapping() const {
00105         return readBool(EventTraits::kCbltWrapping);
00106 }
00107 
00108 bool EventHeader::rawCblt() const {
00109         return readBool(EventTraits::kRawCblt);
00110 }
00111 
00112 bool EventHeader::triggerMismatch() const{
00113         return readBool(EventTraits::kLtbMismatch);
00114 }
00115 
00116 bool EventHeader::invalidData() const{
00117         return readBool(EventTraits::kInvalidData);
00118 }
00119 
00120 unsigned int EventHeader::bufferSize() const {
00121     return headerSize();
00122 }
00123 
00124 void EventHeader::setMajorVersion(const unsigned int majorVersion) {
00125     writeField(majorVersion,
00126                EventTraits::kMajorVersion);
00127 }
00128 
00129 void EventHeader::setMinorVersion(const unsigned int minorVersion) {
00130     writeField(minorVersion,
00131                EventTraits::kMinorVersion);
00132 }
00133 
00134 void EventHeader::setHeaderSize(const unsigned int headerLength) {
00135     writeField(headerLength,
00136                EventTraits::kEventHeaderSize);
00137 }
00138 
00139 void EventHeader::setTotalSize(const unsigned int totalLength) {
00140     writeField(totalLength,
00141                EventTraits::kEventTotalSize);
00142 }
00143 
00144 void EventHeader::setSite(const unsigned int site) {
00145     writeField(site,
00146                EventTraits::kEventSite);
00147 }
00148 
00149 void EventHeader::setDetector(const unsigned int detector) {
00150     writeField(detector,
00151                EventTraits::kEventDetector);
00152 }
00153 
00154 void EventHeader::setRun(const unsigned int run) {
00155     writeField(run,
00156                EventTraits::kEventRun);
00157 }
00158 
00159 void EventHeader::setEvent(const unsigned int event) {
00160     writeField(event,
00161                EventTraits::kEventNumber);
00162 }
00163 
00164 void EventHeader::setDataType(const unsigned int dataType) {
00165     writeField(dataType,
00166                EventTraits::kEventDataType);
00167 }
00168 
00169 void EventHeader::setCbltWrapping(const bool cbltWrapping) {
00170     writeField(cbltWrapping,
00171                EventTraits::kCbltWrapping);
00172 }
00173 
00174 void EventHeader::setRawCblt(const bool rawCblt) {
00175     writeField(rawCblt,
00176                EventTraits::kRawCblt);
00177 }
00178 
00179 void EventHeader::setTriggerMismatch(const bool triggerMismatch) {
00180     writeField(triggerMismatch,
00181                EventTraits::kLtbMismatch);
00182 }
00183 
00184 void EventHeader::setInvalidData(const bool invalidData) {
00185     writeField(invalidData,
00186                EventTraits::kInvalidData);
00187 }
00188 
00189 
00190 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:08:24 2011 for EventReadoutFormat by doxygen 1.4.7