/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 /* 00002 * RomHeader.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/RomHeader.h" 00010 00011 #include "DaqReadoutFormat/ByteBuffer.h" 00012 #include "EventReadoutFormat/EventTraits.h" 00013 00014 using DybDaq::ByteBuffer; 00015 using DybDaq::EventBuffer; 00016 using DybDaq::EventTraits; 00017 using DybDaq::RomHeader; 00018 00019 RomHeader::RomHeader(const unsigned int ,// site, 00020 const unsigned int ,// detector, 00021 const unsigned int moduleType, 00022 const unsigned int slot, 00023 const EventTraits& traits) : 00024 EventBuffer(new char[traits.headerSize(EventTraits::kRomHeader) * kBytesInInt], 00025 traits) { 00026 traits.initializeHeader(EventTraits::kRomHeader, 00027 buffer()); 00028 setHeaderSize(traits.headerSize(EventTraits::kRomHeader)), 00029 setTotalSize(headerSize()); 00030 // TODO: Fix, for the dry run site & detector not set! 00031 setSite(0); 00032 setDetector(0); 00033 00034 setModuleType(moduleType); 00035 setSlot(slot); 00036 } 00037 00038 RomHeader::RomHeader(const ByteBuffer& byteBuffer, 00039 const EventTraits& traits) : 00040 EventBuffer(byteBuffer, 00041 traits) { 00042 byteBuffer.position(byteBuffer.position() + (headerSize() * kBytesInInt)); 00043 } 00044 00045 RomHeader::~RomHeader() { 00046 } 00047 00048 unsigned int RomHeader::formatComponent() const { 00049 return EventTraits::kRomHeader; 00050 } 00051 00052 unsigned int RomHeader::headerSize() const { 00053 return readUnsignedInt(EventTraits::kRomHeaderSize); 00054 } 00055 00056 unsigned int RomHeader::totalSize() const { 00057 return readUnsignedInt(EventTraits::kRomTotalSize); 00058 } 00059 00060 unsigned int RomHeader::site() const { 00061 return readUnsignedInt(EventTraits::kRomSite); 00062 } 00063 00064 unsigned int RomHeader::detector() const { 00065 return readUnsignedInt(EventTraits::kRomDetector); 00066 } 00067 00068 unsigned int RomHeader::moduleType() const { 00069 return readUnsignedInt(EventTraits::kRomModuleType); 00070 } 00071 00072 unsigned int RomHeader::slot() const { 00073 return readUnsignedInt(EventTraits::kRomSlot); 00074 } 00075 00076 unsigned int RomHeader::bufferSize() const { 00077 return headerSize(); 00078 } 00079 00080 void RomHeader::setHeaderSize(const unsigned int headerLength) { 00081 writeField(headerLength, 00082 EventTraits::kRomHeaderSize); 00083 } 00084 00085 void RomHeader::setTotalSize(const unsigned int totalLength) { 00086 writeField(totalLength, 00087 EventTraits::kRomTotalSize); 00088 } 00089 00090 void RomHeader::setSite(const unsigned int site) { 00091 writeField(site, 00092 EventTraits::kRomSite); 00093 } 00094 00095 void RomHeader::setDetector(const unsigned int detector) { 00096 writeField(detector, 00097 EventTraits::kRomDetector); 00098 } 00099 00100 void RomHeader::setModuleType(const unsigned int moduleType) { 00101 writeField(moduleType, 00102 EventTraits::kRomModuleType); 00103 } 00104 00105 void RomHeader::setSlot(const unsigned int slot) { 00106 writeField(slot, 00107 EventTraits::kRomSlot); 00108 } 00109