00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "FileReadoutFormat/RunParametersRecord.h"
00010
00011 #include "FileReadoutFormat/FileTraits.h"
00012
00013 using DybDaq::FileTraits;
00014 using DybDaq::RunParametersRecord;
00015
00016 RunParametersRecord::RunParametersRecord(const unsigned int runNumber,
00017 const bool recordEnabled,
00018 const unsigned int triggerType,
00019 const unsigned int detectorMask,
00020 const FileTraits& traits) :
00021 FileBuffer(new char[traits.recordSize(FileTraits::kRunParametersRecord) * kBytesInInt],
00022 traits,
00023 FileTraits::kRunParametersRecord) {
00024 setRunNumber(runNumber);
00025 setRecordEnabled(recordEnabled);
00026 setTriggerType(triggerType);
00027 setDetectorMask(detectorMask);
00028 }
00029
00030 RunParametersRecord::RunParametersRecord(const ByteBuffer& byteBuffer,
00031 const FileTraits& traits) :
00032 FileBuffer(byteBuffer,
00033 traits) {
00034 }
00035
00036 RunParametersRecord::~RunParametersRecord() {
00037 }
00038
00039 bool RunParametersRecord::isMarked(unsigned int marker) const {
00040 return FileTraits::kRunParametersRecord == marker;
00041 }
00042
00043 unsigned int RunParametersRecord::runNumber() const {
00044 return readUnsignedInt(FileTraits::kFileRunNumber);
00045 }
00046
00047 bool RunParametersRecord::recordEnabled() const {
00048 return readUnsignedInt(FileTraits::kRecordEnabled);
00049 }
00050
00051 unsigned int RunParametersRecord::triggerType() const {
00052 return readUnsignedInt(FileTraits::kRunTriggerType);
00053 }
00054
00055 unsigned int RunParametersRecord::detectorMask() const {
00056 return readUnsignedInt(FileTraits::kRunDetectorMask);
00057 }
00058
00059 unsigned int RunParametersRecord::formatComponent() const {
00060 return FileTraits::kRunParametersRecord;
00061 }
00062
00063 void RunParametersRecord::setRunNumber(const unsigned int runNumber) {
00064 writeField(runNumber,
00065 FileTraits::kFileRunNumber);
00066 }
00067
00068 void RunParametersRecord::setRecordEnabled(const bool recordEnabled) {
00069 writeField(recordEnabled,
00070 FileTraits::kRecordEnabled);
00071 }
00072
00073 void RunParametersRecord::setTriggerType(const unsigned int triggerType) {
00074 writeField(triggerType,
00075 FileTraits::kRunTriggerType);
00076 }
00077
00078 void RunParametersRecord::setDetectorMask(const unsigned int detectorMask) {
00079 writeField(detectorMask,
00080 FileTraits::kRunDetectorMask);
00081 }
00082