ROOT logo
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// $Id$
// $MpId: AliMpVIndexed.h,v 1.7 2006/05/24 13:58:07 ivana Exp $

/// \ingroup basic
/// \class AliMpVIndexed
/// \brief Base class that defines the limits of global pad indices.
///
/// \author David Guez, Ivana Hrivnacova; IPN Orsay

#ifndef ALI_MP_V_INDEXED_H
#define ALI_MP_V_INDEXED_H

#include <TObject.h>

#include "AliMpEncodePair.h"

class AliMpVPadIterator;

class AliMpVIndexed : public TObject
{
 public:
  AliMpVIndexed();
  virtual ~AliMpVIndexed();

  // methods
          /// Create iterator over this element
  virtual AliMpVPadIterator* CreateIterator() const = 0;

  virtual MpPair_t GlobalIndices(MpPair_t localIndices) const;
  virtual Int_t  GlobalIx(Int_t localIx) const;
  virtual Int_t  GlobalIy(Int_t localIy) const;

  // set methods
  void SetLowIndicesLimit(MpPair_t limit, Bool_t valid = true);
  void SetLowIndicesLimit(Int_t ix, Int_t iy, Bool_t valid = true);

  void SetHighIndicesLimit(MpPair_t limit, Bool_t valid = true);
  void SetHighIndicesLimit(Int_t ix, Int_t iy, Bool_t valid = true);

  // get methods
  Bool_t  HasIndices(MpPair_t indices) const;
  Bool_t  HasIndices(Int_t ix, Int_t iy) const;
  Bool_t  HasValidIndices() const;

  MpPair_t  GetLowIndicesLimit() const;
  Int_t     GetLowLimitIx() const;
  Int_t     GetLowLimitIy() const;
  Bool_t    IsLowLimitValid() const;

  MpPair_t  GetHighIndicesLimit() const;
  Int_t     GetHighLimitIx() const;
  Int_t     GetHighLimitIy() const;
  Bool_t    IsHighLimitValid() const;


 private:
  // data members 
  MpPair_t  fLowLimit;  ///<  the lowest global pad indices 
  MpPair_t  fHighLimit; ///<  the highest global pad indices 
  Bool_t    fLowValid;  ///<  true, if low indices limit is set
  Bool_t    fHighValid; ///<  true, if high indices imit is set

  ClassDef(AliMpVIndexed,2) // A motif position
};


#endif //ALI_MP_V_INDEXED_H
 AliMpVIndexed.h:1
 AliMpVIndexed.h:2
 AliMpVIndexed.h:3
 AliMpVIndexed.h:4
 AliMpVIndexed.h:5
 AliMpVIndexed.h:6
 AliMpVIndexed.h:7
 AliMpVIndexed.h:8
 AliMpVIndexed.h:9
 AliMpVIndexed.h:10
 AliMpVIndexed.h:11
 AliMpVIndexed.h:12
 AliMpVIndexed.h:13
 AliMpVIndexed.h:14
 AliMpVIndexed.h:15
 AliMpVIndexed.h:16
 AliMpVIndexed.h:17
 AliMpVIndexed.h:18
 AliMpVIndexed.h:19
 AliMpVIndexed.h:20
 AliMpVIndexed.h:21
 AliMpVIndexed.h:22
 AliMpVIndexed.h:23
 AliMpVIndexed.h:24
 AliMpVIndexed.h:25
 AliMpVIndexed.h:26
 AliMpVIndexed.h:27
 AliMpVIndexed.h:28
 AliMpVIndexed.h:29
 AliMpVIndexed.h:30
 AliMpVIndexed.h:31
 AliMpVIndexed.h:32
 AliMpVIndexed.h:33
 AliMpVIndexed.h:34
 AliMpVIndexed.h:35
 AliMpVIndexed.h:36
 AliMpVIndexed.h:37
 AliMpVIndexed.h:38
 AliMpVIndexed.h:39
 AliMpVIndexed.h:40
 AliMpVIndexed.h:41
 AliMpVIndexed.h:42
 AliMpVIndexed.h:43
 AliMpVIndexed.h:44
 AliMpVIndexed.h:45
 AliMpVIndexed.h:46
 AliMpVIndexed.h:47
 AliMpVIndexed.h:48
 AliMpVIndexed.h:49
 AliMpVIndexed.h:50
 AliMpVIndexed.h:51
 AliMpVIndexed.h:52
 AliMpVIndexed.h:53
 AliMpVIndexed.h:54
 AliMpVIndexed.h:55
 AliMpVIndexed.h:56
 AliMpVIndexed.h:57
 AliMpVIndexed.h:58
 AliMpVIndexed.h:59
 AliMpVIndexed.h:60
 AliMpVIndexed.h:61
 AliMpVIndexed.h:62
 AliMpVIndexed.h:63
 AliMpVIndexed.h:64
 AliMpVIndexed.h:65
 AliMpVIndexed.h:66
 AliMpVIndexed.h:67
 AliMpVIndexed.h:68
 AliMpVIndexed.h:69
 AliMpVIndexed.h:70