| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

LtbHead.cc

Go to the documentation of this file.
00001 /*
00002  *  LtbHead.cc
00003  *  LtbReadoutFormat
00004  *
00005  *  Created by Simon Patton on 7/21/10.
00006  *  Copyright 2010 DayaBay Collaboration. All rights reserved.
00007  *
00008  */
00009 
00010 #include "LtbReadoutFormat/LtbHead.h"
00011 
00012 #include "DaqReadoutFormat/ByteBuffer.h"
00013 #include "LtbReadoutFormat/LtbTraits.h"
00014 
00015 using DybDaq::ByteBuffer;
00016 using DybDaq::DaqTraits;
00017 using DybDaq::LtbBuffer;
00018 using DybDaq::LtbHead;
00019 
00020 LtbHead::LtbHead(const unsigned int localTriggerNumber,
00021                  const unsigned int rawTriggerTotal,
00022                  const unsigned int ltbStatus,
00023                  const bool clockError,
00024                  const LtbTraits& traits) :
00025 LtbBuffer(new char[traits.headSize() * kBytesInInt],
00026           traits) {
00027     m_traits = &traits;
00028     traits.initializeHead(buffer());
00029     setRawTriggerTotal(rawTriggerTotal);
00030     setRawTriggersSaved(0);
00031     setLtbStatus(ltbStatus);    
00032     setLocalTriggerNumber(localTriggerNumber);
00033     setClockError(clockError);
00034 }
00035 
00036 LtbHead::LtbHead(const ByteBuffer& byteBuffer) :
00037 LtbBuffer(byteBuffer,
00038           *((LtbTraits*)0)) {
00039     const char* buffer = byteBuffer.cursor();
00040     m_traits = LtbTraits::readTraits(buffer);
00041         byteBuffer.position(byteBuffer.position() + kBytesInInt);
00042 }
00043 
00044 LtbHead::~LtbHead() {
00045 }
00046 
00047 const DaqTraits& LtbHead::daqTraits() const {
00048         return *m_traits;
00049 }
00050 
00051 unsigned int LtbHead::formatComponent() const {
00052     return LtbTraits::kHead;
00053 }
00054 
00055 unsigned int LtbHead::version() const {
00056         return readUnsignedInt(LtbTraits::kVersion);
00057 }
00058 
00059 unsigned int LtbHead::rawTriggerTotal() const {
00060         return readUnsignedInt(LtbTraits::kRawTriggerTotal);
00061 }
00062 
00063 unsigned int LtbHead::rawTriggersSaved() const {
00064         return readUnsignedInt(LtbTraits::kRawTriggersSaved);
00065 }
00066 
00067 unsigned int LtbHead::ltbStatus() const {
00068         return readUnsignedInt(LtbTraits::kLtbStatus);
00069 }
00070 
00071 unsigned int LtbHead::localTriggerNumber() const {
00072         return readUnsignedInt(LtbTraits::kLocalTriggerNumber);
00073 }
00074 
00075 bool LtbHead::clockError() const {
00076         return readBool(LtbTraits::kClockError);
00077 }
00078 
00079 unsigned int LtbHead::bufferSize() const {
00080     return ltbTraits().headSize();
00081 }
00082 
00083 void LtbHead::setRawTriggerTotal(const unsigned int rawTriggerTotal) {
00084     writeField(rawTriggerTotal,
00085                LtbTraits::kRawTriggerTotal);
00086 }
00087 
00088 void LtbHead::setRawTriggersSaved(const unsigned int rawTriggersSaved) {
00089     writeField(rawTriggersSaved,
00090                LtbTraits::kRawTriggersSaved);
00091 }
00092 
00093 void LtbHead::setLtbStatus(const unsigned int ltbStatus) {
00094     writeField(ltbStatus,
00095                LtbTraits::kLtbStatus);
00096 }
00097 
00098 void LtbHead::setLocalTriggerNumber(const unsigned int localTriggerNumber) {
00099     writeField(localTriggerNumber,
00100                LtbTraits::kLocalTriggerNumber);
00101 }
00102 
00103 void LtbHead::setClockError(const bool clockError) {
00104     writeField(clockError,
00105                LtbTraits::kClockError);
00106 }
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

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