Replacement of AliMpIntPair object with algoritmic
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpVIndexed.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: AliMpVIndexed.h,v 1.7 2006/05/24 13:58:07 ivana Exp $
6
7 /// \ingroup basic
8 /// \class AliMpVIndexed
9 /// \brief Base class that defines the limits of global pad indices.
10 ///
11 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
12
13 #ifndef ALI_MP_V_INDEXED_H
14 #define ALI_MP_V_INDEXED_H
15
16 #include <TObject.h>
17
18 #include "AliMpEncodePair.h"
19
20 class AliMpVPadIterator;
21
22 class AliMpVIndexed : public TObject
23 {
24  public:
25   AliMpVIndexed();
26   virtual ~AliMpVIndexed();
27
28   // methods
29           /// Create iterator over this element
30   virtual AliMpVPadIterator* CreateIterator() const = 0;
31
32   virtual MpPair_t GlobalIndices(MpPair_t localIndices) const;
33   virtual Int_t  GlobalIx(Int_t localIx) const;
34   virtual Int_t  GlobalIy(Int_t localIy) const;
35
36   // set methods
37   void SetLowIndicesLimit(MpPair_t limit, Bool_t valid = true);
38   void SetLowIndicesLimit(Int_t ix, Int_t iy, Bool_t valid = true);
39
40   void SetHighIndicesLimit(MpPair_t limit, Bool_t valid = true);
41   void SetHighIndicesLimit(Int_t ix, Int_t iy, Bool_t valid = true);
42
43   // get methods
44   Bool_t  HasIndices(MpPair_t indices) const;
45   Bool_t  HasIndices(Int_t ix, Int_t iy) const;
46   Bool_t  HasValidIndices() const;
47
48   MpPair_t  GetLowIndicesLimit() const;
49   Int_t     GetLowLimitIx() const;
50   Int_t     GetLowLimitIy() const;
51   Bool_t    IsLowLimitValid() const;
52
53   MpPair_t  GetHighIndicesLimit() const;
54   Int_t     GetHighLimitIx() const;
55   Int_t     GetHighLimitIy() const;
56   Bool_t    IsHighLimitValid() const;
57
58
59  private:
60   // data members 
61   MpPair_t  fLowLimit;  ///<  the lowest global pad indices 
62   MpPair_t  fHighLimit; ///<  the highest global pad indices 
63   Bool_t    fLowValid;  ///<  true, if low indices limit is set
64   Bool_t    fHighValid; ///<  true, if high indices imit is set
65
66   ClassDef(AliMpVIndexed,2) // A motif position
67 };
68
69
70 #endif //ALI_MP_V_INDEXED_H