//----------------------------------------------------------------------------- // Jan 16 2001 Carla Grosso-Pilcher and Pasha Murat: // TL1D description for STNTUPLE //----------------------------------------------------------------------------- #ifndef STNTUPLE_OBJ_TTl1d_hh #define STNTUPLE_OBJ_TTl1d_hh #include "TObject.h" class TPreFred { protected: int fWord[4]; public: TPreFred() {} ~TPreFred() {} // PreFred header word Int_t BunchCounter() const { return (fWord[0] ) & 0xff; } Int_t SlotNumber () const { return (fWord[0] >> 8) & 0xf; } Int_t SerialNumber() const { return (fWord[0] >> 12) & 0x3f; } Int_t ModuleID () const { return (fWord[0] >> 23) & 0x1ff; } Int_t Trig () const { return (fWord[1] >> 20) & 0xf; } // generic access to the card data Int_t Word(Int_t i) const { return fWord[i]; } // ClassDef(TPreFred,0) }; class TSumet: public TPreFred { public: TSumet() {} ~TSumet() {} Int_t Metsq () const { return (fWord[1] ) & 0xffff; } Int_t Et () const { return (fWord[2] ) & 0x7ff; } // Etx and Ety seem to have nontrivial // packing Int_t Etx () const ; Int_t Ety () const ; Int_t PrevEt () const { return (fWord[3] ) & 0x7ff; } // ClassDef(TSumet,0) }; class TCaltrg: public TPreFred { public: TCaltrg() {} ~TCaltrg() {} // ClassDef(TCaltrg,0) }; class TMutrg : public TPreFred { public: TMutrg() {} ~TMutrg(){} // ClassDef(TMutrg,0) }; class TTrktrg: public TPreFred { public: TTrktrg() {} ~TTrktrg() {} // ClassDef(TTrktrg,0) }; class TBsctrg : public TPreFred { public: TBsctrg() {} ~TBsctrg() {} // ClassDef(TBsctrg,0) }; class TMulti : public TPreFred { public: TMulti() {} ~TMulti() {} // ClassDef(TMulti,0) }; class TTl1d { public: //------------------------------------------------------------------------------ // data members: 6 PreFRED boards, 4 of them were read out during the // commissioning run, Trktrg and Multi were not //------------------------------------------------------------------------------ // geografic addresses (GA) of the // PreFRED cards enum { kSumetGA = 4, kCaltrgGA = 5, kMutrgGA = 6, kTrktrgGA = 7, kBsctrgGA = 10, kMultiGA = 11 }; public: TSumet fSumet; TCaltrg fCaltrg; TMutrg fMutrg; TTrktrg fTrktrg; TBsctrg fBsctrg; TMulti fMulti; //------------------------------------------------------------------------------ // functions //------------------------------------------------------------------------------ public: // ****** constructors and destructor TTl1d(); ~TTl1d(); // ****** accessors TSumet* Sumet () { return &fSumet; } TCaltrg* Caltrg() { return &fCaltrg; } TMutrg* Mutrg () { return &fMutrg; } TTrktrg* Trktrg() { return &fTrktrg; } TBsctrg* Bsctrg() { return &fBsctrg; } TMulti* Multi () { return &fMulti; } // pointer to a card with the given // geographic address (slot number) TPreFred* Module(Int_t slot); // note that this is not an overloaded // function void Print(const char* Opt = "") const; // ClassDef(TTl1d,0) }; #endif