#ifndef MARS_MRawEvtHeader #define MARS_MRawEvtHeader #ifndef MARS_MParContainer #include "MParContainer.h" #endif // gcc 3.2 //class ifstream; #include class MTime; class MArrayB; class MRawRunHeader; class MRawEvtHeader : public MParContainer { public: // // Trigger Type (TT) // enum { kTTEvent = 0, kTTPedestal = 1, kTTCalibration = 2 }; /* enum CalibCol_t { kColRed = BIT(0), kColAmber = BIT(1), kColGreen = BIT(2), kColBlue = BIT(3), kColUV = BIT(4) }; */ private: MTime *fTime; //! object to store the time in (ReadEvt) UInt_t fDAQEvtNumber; // Number of Event UInt_t fNumTrigLvl1; // Number of 1st level tiggers between 2 events UInt_t fNumTrigLvl2; // Number of 2nd level tiggers between 2 events UInt_t fTrigPattern[2]; // Trigger configuration UShort_t fNumLoGainOn; // Indicating if no pixel has a neglegible // low gain signal (0), else it is the number // of pixels with lo gain on // // Informations only needed to read the raw file correctly // UShort_t fTrigType; //! Trigger Type of this event MArrayB *fPixLoGainOn; //! Array which tell you which pixels have lo gain on Bool_t DecodeTime(UInt_t abstime[2]) const; Int_t GetNumBytes() const; public: MRawEvtHeader(const char *name=NULL, const char *title=NULL); ~MRawEvtHeader(); void InitRead(MRawRunHeader *rh, MTime *t); void Clear(Option_t * = NULL); void Print(Option_t * = NULL) const; void FillHeader(UInt_t, Float_t=0); UShort_t GetTrigType() const { return fTrigType; } UInt_t GetNumTrigLvl1() const { return fNumTrigLvl1; } UInt_t GetNumTrigLvl2() const { return fNumTrigLvl2; } UInt_t GetDAQEvtNumber() const { return fDAQEvtNumber; } UInt_t GetTriggerID() const; UInt_t GetCalibrationPattern() const; /* UShort_t GetPulserSlotPattern() const; Byte_t GetPowerOfContLight() const; CalibCol_t GetContLedColor() const; */ Int_t ReadEvt(istream& fin, UShort_t ver); void SkipEvt(istream& fin, UShort_t ver); ClassDef(MRawEvtHeader, 1) // Parameter Conatiner for raw EVENT HEADER }; #endif