//----------------------------------------------------------------------------- //Jan 09 2001 P.Murat: CMP data block includes CMPD, CSPD //----------------------------------------------------------------------------- #ifndef TCmpDataBlock_hh #define TCmpDataBlock_hh #include "Stntuple/base/TStnArrayI.hh" #include #include class TCmpDataBlock : public TStnDataBlock { friend Int_t StntupleInitCmpDataBlock(TStnDataBlock* block, AbsEvent* event, int mode); public: enum { kCspTdcs = 4, kCmpTdcs = 13 }; //----------------------------------------------------------------------------- // data members: start from putting CSPD (keep format compressed) //----------------------------------------------------------------------------- protected: Int_t fNCspHits; // total number of hits in CSP counters TTdcModule fCspTdc[kCspTdcs]; // CSP data (interpreted) TStnArrayI fCspd; // CSPD buffer (4 TDC's) Int_t fNCmpdHits; // total number of CMPD hit data words TTdcModule fCmpTdc[kCmpTdcs]; // CMPD TDC's (transient) TStnArrayI fCmpd; // CMPD buffer //----------------------------------------------------------------------------- // functions //----------------------------------------------------------------------------- public: TCmpDataBlock(); virtual ~TCmpDataBlock(); // ****** init methods Int_t InitTdcChannels(); // ****** accessors Int_t NCspHits () const { return fNCspHits; } TTdcModule& CspTdc(Int_t i) { return fCspTdc[i]; } TTdcModule& CmpTdc(Int_t i) { return fCmpTdc[i]; } Int_t NCmpdHits () const { return fNCmpdHits; } TStnArrayI& GetCspd () { return fCspd; } TStnArrayI& GetCmpd () { return fCmpd; } Int_t ReadCalibrations(int run_number); // ****** overloaded functions of // TObject void Clear(Option_t* opt=""); void Print(Option_t* opt="") const; ClassDef(TCmpDataBlock,1) // CMP and CSP data }; #endif