#ifndef HMDCTRBCUNPACKER_H #define HMDCTRBCUNPACKER_H #include "hlocation.h" #include "htrbctdcunpacker.h" #include class HMdcTrbCLookup; class HMdcTrbCLookupChan; class HMdcLookupGeom; class HMdcTrbCUnpacker: public HTrbCtdcUnpacker { protected: HLocation fLoc; // location of raw cell object HMdcTrbCLookup* fLookup; // TRB3 lookup table HMdcLookupGeom* fLookupOld; //! old lookup table for evalulation of raw event element Bool_t fTimeRef; // use reference time ? Bool_t fNoComment; // switch debug mode (defaukt on) Double_t fTimeUnit; // conversion factor from seconds to time units used in raw category static Bool_t fHasPrintedTDC; Double_t fCompatitbilityShift; //! shift the output (in 0.5ns binning unit to fit the signals 0-2048) /** helper function to map new hardware channels to old paritioning for previousraw cat */ Bool_t translateAddress(HMdcTrbCLookupChan *chan); /** returns raw data element from category for current fLoc*/ HMdcRaw* getFreeOrExistingSlot(); Bool_t addRawHit(Double_t t_leading, Double_t t_trailing, HMdcTrbCLookupChan *chan); public: HMdcTrbCUnpacker(vector& ids); virtual ~HMdcTrbCUnpacker(void) {} Bool_t init(void); Bool_t reinit(void); Int_t execute(void); void disableTimeRef(Bool_t disable) { fTimeRef = disable ; } void setCompatibilityShift(Int_t bins) { fCompatitbilityShift = bins; } void setMdcRawDebug(Bool_t nocomment) { fNoComment = nocomment ;} ClassDef(HMdcTrbCUnpacker, 0) // TRB3 unpacker for the TOF detector }; #endif /* !HMDCTRB3UNPACKER_H */