Formatting changes.
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerCrateStore.h
1 #ifndef ALIMUONTRIGGERCRATESTORE_H
2 #define ALIMUONTRIGGERCRATESTORE_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 /// \ingroup base
10 /// \class AliMUONTriggerCrateStore
11 /// \brief A container for AliMUONTriggerCrate objects.
12 /// 
13 //  Author Laurent Aphecetche
14
15 #ifndef ROOT_TObject
16 #  include "TObject.h"
17 #endif
18
19 #include "TString.h"
20
21 class AliMUONLocalTriggerBoard;
22 class AliMUONTriggerCrate;
23 class AliMpExMap;
24 class TExMapIter;
25
26 class AliMUONTriggerCrateStore : public TObject
27 {
28 public:
29   AliMUONTriggerCrateStore();
30   virtual ~AliMUONTriggerCrateStore();
31   
32   Int_t NumberOfCrates() const;
33   void FirstCrate();
34   AliMUONTriggerCrate* NextCrate();
35   AliMUONTriggerCrate* Crate(const char* crateName) const;
36   AliMUONTriggerCrate* Crate(Int_t ddl, Int_t reg) const;
37
38   Int_t NumberOfLocalBoards() const;
39   void FirstLocalBoard();
40   AliMUONLocalTriggerBoard* NextLocalBoard();
41   AliMUONLocalTriggerBoard* LocalBoard(Int_t boardNumber) const;
42   
43   void ReadFromFile(const char* crateFile =
44                     "$ALICE_ROOT/MUON/mapping/data/stationTrigger/crate.dat");
45  
46
47 protected:
48   AliMUONTriggerCrateStore(const AliMUONTriggerCrateStore& rhs);
49   AliMUONTriggerCrateStore& operator = (const AliMUONTriggerCrateStore& rhs);
50
51 private:
52   void AddCrate(const char* crateName); 
53   
54 private:
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
61
62   TString GetCrateName(Int_t ddl, Int_t reg) const;
63
64   ClassDef(AliMUONTriggerCrateStore,1) // Reader for CRATE.TXT file
65 };
66
67 #endif