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