#ifndef ALIMUONTRIGGERCRATESTORE_H #define ALIMUONTRIGGERCRATESTORE_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ // $Id$ /// \ingroup trigger /// \class AliMUONTriggerCrateStore /// \brief A container for AliMUONTriggerCrate objects. /// // Author Laurent Aphecetche #ifndef ROOT_TObject # include "TObject.h" #endif #include "TString.h" class AliMUONLocalTriggerBoard; class AliMUONTriggerCrate; class AliMpExMap; class TExMapIter; class AliMUONTriggerCrateStore : public TObject { public: AliMUONTriggerCrateStore(); virtual ~AliMUONTriggerCrateStore(); Int_t NumberOfCrates() const; void FirstCrate(); AliMUONTriggerCrate* NextCrate(); AliMUONTriggerCrate* Crate(const char* crateName) const; AliMUONTriggerCrate* Crate(Int_t ddl, Int_t reg) const; Int_t NumberOfLocalBoards() const; void FirstLocalBoard(); AliMUONLocalTriggerBoard* NextLocalBoard(); AliMUONLocalTriggerBoard* LocalBoard(Int_t boardNumber) const; void ReadFromFile(const char* crateFile = ""); protected: /// Not implemented AliMUONTriggerCrateStore(const AliMUONTriggerCrateStore& rhs); /// Not implemented AliMUONTriggerCrateStore& operator = (const AliMUONTriggerCrateStore& rhs); private: void AddCrate(const char* crateName); private: AliMpExMap* fCrates; ///< list of crates AliMpExMap* fLocalBoards; ///< local boards (indexed by their number) TExMapIter* fCrateIterator; //!< iterator for the crate map above TExMapIter* fLBIterator; //!< iterator for boards (through crates) AliMUONTriggerCrate* fCurrentCrate; //!< used for iterating on local board Int_t fCurrentLocalBoard; //!< used for iterating on local board TString GetCrateName(Int_t ddl, Int_t reg) const; ClassDef(AliMUONTriggerCrateStore,1) // Reader for CRATE.TXT file }; #endif