1 #ifndef ALIMUONTRIGGERCRATESTORE_H
2 #define ALIMUONTRIGGERCRATESTORE_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONTriggerCrateStore
11 /// \brief A container for AliMUONTriggerCrate objects.
13 // Author Laurent Aphecetche
21 class AliMUONLocalTriggerBoard;
22 class AliMUONTriggerCrate;
26 class AliMUONTriggerCrateStore : public TObject
29 AliMUONTriggerCrateStore();
30 virtual ~AliMUONTriggerCrateStore();
32 Int_t NumberOfCrates() const;
34 AliMUONTriggerCrate* NextCrate();
35 AliMUONTriggerCrate* Crate(const char* crateName) const;
36 AliMUONTriggerCrate* Crate(Int_t ddl, Int_t reg) const;
38 Int_t NumberOfLocalBoards() const;
39 void FirstLocalBoard();
40 AliMUONLocalTriggerBoard* NextLocalBoard();
41 AliMUONLocalTriggerBoard* LocalBoard(Int_t boardNumber) const;
43 void ReadFromFile(const char* crateFile =
44 "$ALICE_ROOT/MUON/mapping/data/stationTrigger/crate.dat");
48 AliMUONTriggerCrateStore(const AliMUONTriggerCrateStore& rhs);
49 AliMUONTriggerCrateStore& operator = (const AliMUONTriggerCrateStore& rhs);
52 void AddCrate(const char* crateName);
55 AliMpExMap* fCrates; ///< list of crates
56 AliMpExMap* fLocalBoards; ///< local boards (indexed by their number)
57 TExMapIter* fCrateIterator; //!< iterator for the crate map above
58 TExMapIter* fLBIterator; //!< iterator for boards (through crates)
59 AliMUONTriggerCrate* fCurrentCrate; //!< used for iterating on local board
60 Int_t fCurrentLocalBoard; //!< used for iterating on local board
62 TString GetCrateName(Int_t ddl, Int_t reg) const;
64 ClassDef(AliMUONTriggerCrateStore,1) // Reader for CRATE.TXT file