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

In This Package:

LtbTraits.h

Go to the documentation of this file.
00001 #ifndef LTBREADOUTFORMAT_LTBTRAITS_H
00002 #define LTBREADOUTFORMAT_LTBTRAITS_H
00003 
00004 /*
00005  *  LtbTraits.h
00006  *  LtbReadoutFormat
00007  *
00008  *  Created by Simon Patton on 7/21/10.
00009  *  Copyright 2010 DayaBay Collaboration. All rights reserved.
00010  *
00011  */
00012 #include <vector>
00013 #include <ctime>
00014 
00015 #include "DaqReadoutFormat/DaqTraits.h"
00016 
00017 namespace DybDaq {
00018     class LtbTime;
00019 }
00020 
00021 namespace DybDaq {
00022 
00023 class LtbTraits : public DaqTraits {
00024 
00025 public:
00026 
00027     typedef std::vector<const char*> TriggerLines;
00028 
00029     typedef LtbTime LtbDateTime;
00030 
00034     static const unsigned int kHead;
00035     
00039     static const unsigned int kFrameFront;
00040     
00044     static const unsigned int kTime;
00045     
00049     static const unsigned int kFrameBack;
00050     
00054     static const unsigned int kFoot;
00055     
00059     static const unsigned int kUnixTime;
00060 
00064     static const unsigned int kGpsTime;
00065     
00066     // Fields
00067 
00071     static const unsigned int kRawTriggerTotal;
00072 
00076     static const unsigned int kRawTriggersSaved;
00077 
00081     static const unsigned int kLtbStatus;
00082 
00086     static const unsigned int kLocalTriggerNumber;
00087 
00091     static const unsigned int kFrameNumber;
00092 
00096     static const unsigned int kReadoutType;
00097 
00101     static const unsigned int kTriggerMask;
00102 
00106     static const unsigned int kYear;
00107 
00111     static const unsigned int kMonth;
00112 
00116     static const unsigned int kDay;
00117 
00121     static const unsigned int kHour;
00122 
00126     static const unsigned int kMinutes;
00127 
00131     static const unsigned int kSeconds;
00132 
00136     static const unsigned int kTicks;
00137 
00141     static const unsigned int kHitSum;
00142 
00146     static const unsigned int kTotalEsum;
00147 
00151     static const unsigned int kHighEsum;
00152 
00156     static const unsigned int kLowEsum;
00157 
00161     static const unsigned int kEnergySum;
00162 
00166     static const unsigned int kCrossTriggerSource;
00167 
00171     static const unsigned int kFootDataLength;
00172 
00176     static const unsigned int kClockError;
00177 
00181     static const unsigned int kVersion;
00182 
00186     static const unsigned int kAccumulationStatus;
00187 
00191     static const unsigned int kValidGps;
00192 
00196     static const unsigned int kUsingUtc;
00197 
00201     static const unsigned int kValidClockSystem;
00202 
00206     static const unsigned int kHighNanoseconds;
00207 
00211     static const unsigned int kLowNanoseconds;
00212 
00216     static const unsigned int kHighUnixTime;
00217 
00221     static const unsigned int kLowUnixTime;
00222 
00226     static const unsigned int kHighAccumulation;
00227 
00231     static const unsigned int kLowAccumulation;
00232 
00236     static const unsigned int kFeeBufferFull;
00237 
00241     static const unsigned int kLtbBufferFull;
00242 
00246     static const unsigned int kBlockedTriggerCount;
00247 
00248     // Known trigger lines
00249 
00253     static const unsigned int kManualTrigger;
00254 
00258     static const unsigned int kCrossTrigger;
00259 
00263     static const unsigned int kPeriodicTrigger;
00264 
00268     static const unsigned int kPedestalTrigger;
00269 
00273     static const unsigned int kCalibTrigger;
00274 
00278     static const unsigned int kMultiplicityTrigger;
00279 
00283     static const unsigned int kEsumAdcTrg;
00284 
00288     static const unsigned int kHighEsumCompTrg;
00289 
00293     static const unsigned int kLowEsumCompTrg;
00294 
00298     static const unsigned int kAllEsumCompTrg;
00299 
00303     static const LtbTraits& defaultTraits();
00304 
00308     static const LtbTraits* readTraits(const char*& buffer);
00309 
00313     virtual ~LtbTraits();
00314 
00318     virtual unsigned int illegalMarker() const;
00319 
00323     virtual unsigned int illegalField() const;
00324 
00328     const std::string dateTimeAsString(const LtbDateTime& time) const;
00329 
00333     const LtbDateTime* makeDateTime(const time_t& time) const;
00334 
00338     virtual const TriggerLines* triggerLines(const unsigned int mask) const;
00339 
00343     virtual const char* triggerLineAsString(unsigned int line) const;
00344 
00348     virtual unsigned int triggerLineBit(const unsigned int line) const;
00349 
00353     virtual unsigned int headSize() const = 0;
00354 
00358     virtual unsigned int frameSize() const = 0;
00359 
00363     virtual unsigned int timeSize() const = 0;
00364 
00368     virtual unsigned int footSize() const = 0;
00369 
00373     virtual void initializeHead(char* buffer) const = 0;
00374 
00378     virtual void initializeFrame(char* buffer) const = 0;
00379 
00383     virtual void initializeTime(char* buffer) const = 0;
00384 
00388     virtual void initializeFoot(char* buffer) const = 0;
00389 
00393     virtual unsigned int timeOffset() const = 0;
00394 
00395 protected:
00396 
00400     LtbTraits();
00401 
00405     virtual unsigned int triggerLineEnd() const = 0;
00406 
00410     virtual const char** triggerLineStrings() const = 0;
00411 
00415     virtual const unsigned int* triggerLineBits() const = 0;
00416 
00417 private:
00418 
00422     LtbTraits(LtbTraits& rhs);
00423 
00427     LtbTraits& operator=(LtbTraits& rhs);
00428 };
00429 
00430 }
00431 
00432 #endif // LTBREADOUTFORMAT_LTBTRAITS_H
| 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