//----------------------------------------------------------------------------- //Oct 18, 2003 RLC: HATD data block //----------------------------------------------------------------------------- #ifndef THatDataBlock_hh #define THatDataBlock_hh #include "Stntuple/data/THatTdcHeader.hh" #include "Stntuple/data/THatTdcWord.hh" #include #include #include class THatDataBlock : public TStnDataBlock { friend Int_t StntupleInitHatDataBlock(TStnDataBlock* block, AbsEvent* event, int mode); public: enum { kHatTdcs = 16 }; //----------------------------------------------------------------------------- // data members: //----------------------------------------------------------------------------- protected: Int_t fNHatdHits; // total number of HATD hit data words TTdcModule fHatTdc[kHatTdcs]; // HATD TDC's (transient) TStnArrayI fHatd; // HATD buffer //----------------------------------------------------------------------------- // functions //----------------------------------------------------------------------------- public: THatDataBlock(); virtual ~THatDataBlock(); // ****** init methods Int_t InitTdcChannels(); // ****** accessors TTdcModule& HatTdc(Int_t i) { return fHatTdc[i]; } Int_t NHatdHits () const { return fNHatdHits; } TStnArrayI& GetHatd () { return fHatd; } Int_t ReadCalibrations(int run_number); // i is the TDC number THatTdcHeader& GetHatTdcHeader(Int_t i); // i is the TDC number. j=hit number THatTdcWord& GetHatTdcWord(Int_t i, Int_t j); // get eta and phi indices from header and data word // this returns 0->23, or 0-47 in the plug region where there are 48 towers static Int_t GetEtaPhi(THatTdcHeader& h, THatTdcWord& w, Int_t& phi, Int_t& eta); // get data for eta and phi indicies // user must check return value to see if the hit was present // this returns 0->23 in phi even in the plug region with 48 towers // since those towers are ganged by 2 Int_t GetDataEtaPhi(THatTdcHeader& h, THatTdcWord& w, Int_t phi, Int_t eta); // ****** overloaded functions of // TObject void Clear(Option_t* opt=""); void Print(Option_t* opt="") const; ClassDef(THatDataBlock,1) // HATD data }; #endif