]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpArrayI.h
Updates from David Rohr to add checks for fakes and clones and several bugfixes
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpArrayI.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 // $MpId: AliMpArrayI.h,v 1.4 2006/05/24 13:58:07 ivana Exp $
6
7 /// \ingroup core
8 /// \class AliMpArrayI
9 /// \brief Helper class for sorted integer array
10 ///
11 /// \author Ivana Hrivnacova; IPN Orsay
12
13 #ifndef ALI_MP_ARRAY_I_H
14 #define ALI_MP_ARRAY_I_H
15
16 #include <TObject.h>
17 #include <TArrayI.h>
18
19 class TString;
20
21 class AliMpArrayI : public TObject
22 {
23   public:
24     AliMpArrayI(Bool_t sort = true);
25     AliMpArrayI(TRootIOCtor* /*ioCtor*/);
26     virtual ~AliMpArrayI();
27     
28     // methods
29     Bool_t Add(Int_t value, Bool_t warn=kTRUE);
30     Bool_t Remove(Int_t value);
31     Bool_t Revert();
32     void   Reset();
33
34     // set methods
35     void SetSize(Int_t size);
36
37     // get methods
38     Int_t   GetSize() const;
39     Int_t   GetValue(Int_t index) const;
40     Bool_t  HasValue(Int_t value) const;
41     
42   private:  
43     // methods
44     Int_t  GetPosition(Int_t value) const;
45   
46     // static data members
47     static const Int_t    fgkDefaultSize; ///< Default initial size
48
49     // data members
50     Bool_t   fSort;       ///< Option to sort the values
51     Int_t    fNofValues;  ///< Number of values in the array
52     TArrayI  fValues;     ///< Array of values 
53     Int_t    fMinValue;   ///< The minimum value in the array
54     Int_t    fMaxValue;   ///< The maximum value in the array
55
56   ClassDef(AliMpArrayI,2)  // Helper class for sorted integer array
57 };
58
59 #endif //ALI_MP_EX_MAP_H
60