00001 #ifndef CANDDATAQUALITY_H
00002 #define CANDDATAQUALITY_H
00003
00004 #include "Candidate/CandBase.h"
00005
00006 class AlgHandle;
00007 class CandContext;
00008 class CandDataQualityHandle;
00009
00010 class CandDataQuality : public CandBase
00011 {
00012 friend class CandDataQualityHandle;
00013
00014 public:
00015 typedef enum EDataQuality {
00016 kOkay = 0x00,
00017 kBad = 0x01,
00018 kLowMultiplicity = 0x02,
00019 kHighMultiplicity = 0x04,
00020 kLightInjection = 0x08,
00021 kTimeFrameBoundary=0x10,
00022 kManyColdChips = 0x20,
00023 kManyHotChips = 0x40,
00024 kManyBusyChips = 0x80,
00025 kManyReadoutErrors = 0x100,
00026 kFailed = 0x1000
00027 } DataQuality_t;
00028
00029 static CandDataQualityHandle MakeCandidate(AlgHandle& ah, CandContext& ch);
00030 CandDataQuality();
00031
00032 protected:
00033 CandDataQuality(AlgHandle& ah);
00034 CandDataQuality(AlgHandle& ah, CandHandle& ch, CandContext& cx);
00035 CandDataQuality(const CandDataQuality& rhs);
00036 virtual ~CandDataQuality();
00037 virtual CandDataQuality* Dup() const;
00038 virtual void CreateLocalHandle();
00039
00040 private:
00041
00042 Int_t fTime;
00043 Int_t fRunType;
00044 Int_t fRun;
00045 Int_t fSubRun;
00046 Int_t fTimeFrame;
00047 Int_t fSnarl;
00048 Int_t fTriggerSource;
00049 Int_t fTriggerTime;
00050 Int_t fErrorCode;
00051 Int_t fCrateMask;
00052 Int_t fPreTriggerDigits;
00053 Int_t fPostTriggerDigits;
00054 Int_t fSnarlMultiplicity;
00055 Int_t fSpillStatus;
00056 Int_t fSpillType;
00057 Int_t fSpillTimeError;
00058 Int_t fLiTrigger;
00059 Int_t fLiTime;
00060 Int_t fLiSubtractedTime;
00061 Int_t fLiRelativeTime;
00062 Int_t fLiCalibPoint;
00063 Int_t fLiCalibType;
00064 Int_t fLiPulserBox;
00065 Int_t fLiPulserLed;
00066 Int_t fLiPulseHeight;
00067 Int_t fLiPulseWidth;
00068
00069 CandDataQuality::DataQuality_t fDataQuality;
00070
00071 ClassDef(CandDataQuality,1)
00072 };
00073
00074 #endif
00075