]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTriggerCrateStore.h
new lookup table for sim. data with numberof TRMs
[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   /// Not implemented
49   AliMUONTriggerCrateStore(const AliMUONTriggerCrateStore& rhs);
50   /// Not implemented
51   AliMUONTriggerCrateStore& operator = (const AliMUONTriggerCrateStore& rhs);
52
53 private:
54   void AddCrate(const char* crateName); 
55   
56 private:
57   AliMpExMap* fCrates; ///< list of crates
58   AliMpExMap* fLocalBoards; ///< local boards (indexed by their number)
59   TExMapIter* fCrateIterator; //!< iterator for the crate map above
60   TExMapIter* fLBIterator; //!< iterator for boards (through crates)
61   AliMUONTriggerCrate* fCurrentCrate; //!< used for iterating on local board
62   Int_t fCurrentLocalBoard; //!< used for iterating on local board
63
64   TString GetCrateName(Int_t ddl, Int_t reg) const;
65
66   ClassDef(AliMUONTriggerCrateStore,1) // Reader for CRATE.TXT file
67 };
68
69 #endif