New class - iterator over valid detection element IDs.
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpDEIterator.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 /* $Id$ */
5
6 /// \ingroup management
7 /// \class AliMpDEIterator
8 /// \brief The iterator over valid detection element IDs
9 ///
10 /// The valid detection element Ids are defined in the files denames*.dat.    \n
11 /// It can iterate 
12 /// - over all valid detection elements, if started with First() function; 
13 /// - or over detection elements in a selected module, if started with
14 ///   First(Int_t moduleId) function                                          \n 
15 /// 
16 /// Author: Ivana Hrivnacova, IPN Orsay
17
18 #ifndef ALI_MP_DE_ITERATOR_H
19 #define ALI_MP_DE_ITERATOR_H
20
21 #include "AliMpStationType.h"
22
23 #include <TObject.h>
24 #include <TArrayI.h>
25
26 class TString;
27
28 class AliMpDEIterator : public  TObject {
29
30   public:
31     AliMpDEIterator();
32     AliMpDEIterator(const AliMpDEIterator& rhs);
33     virtual ~AliMpDEIterator();
34
35     // Operators
36     AliMpDEIterator& operator=(const AliMpDEIterator& rhs);
37     
38     // Methods for iterating over DE elements
39     // 
40     void First();
41     void First(Int_t moduleId);
42     void Next();
43     Bool_t IsDone() const;
44     Int_t CurrentDE() const;
45
46   private:
47     // static methods
48     static Bool_t ReadDEIds(AliMpStationType station);
49     static void   ReadData();
50
51     // static data members      
52     static const Int_t  fgkMaxNofDetElements; // Maximum number of DEs
53     static TArrayI      fgDetElemIds;         // DE Ids 
54     static Int_t        fgNofDetElemIds;      // Number of DE Ids       
55
56     // data members     
57     Int_t  fIndex;    // Current DE index
58     Int_t  fModuleId; // The iterated module 
59
60   ClassDef(AliMpDEIterator,0)  // MUON Factory for Chambers and Segmentation
61 };
62
63 #endif //ALI_MP_DE_ITERATOR_H
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78