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

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

/// \ingroup sector
/// \class AliMpSectorAreaHPadIterator
/// \brief An iterator over the pads inside a given area in a sector
/// in horizontal direction.
///
/// \author David Guez, Ivana Hrivnacova; IPN Orsay

#ifndef ALI_MP_SECTOR_AREA_H_PAD_ITERATOR_H
#define ALI_MP_SECTOR_AREA_H_PAD_ITERATOR_H

#include "AliMpVPadIterator.h"
#include "AliMpArea.h"
#include "AliMpPad.h"

class AliMpSectorSegmentation;

class AliMpSectorAreaHPadIterator : public AliMpVPadIterator
{
  public:
    AliMpSectorAreaHPadIterator(const AliMpSectorSegmentation* segmentation, 
                                const AliMpArea& area);
    AliMpSectorAreaHPadIterator(const AliMpSectorAreaHPadIterator& src);
    AliMpSectorAreaHPadIterator();
    virtual ~AliMpSectorAreaHPadIterator();

    // operators
    AliMpSectorAreaHPadIterator& 
      operator = (const AliMpSectorAreaHPadIterator& right);

    // methods
    virtual void First();
    virtual void Next();
    virtual Bool_t IsDone() const;
    virtual AliMpPad CurrentItem() const;
    virtual void Invalidate();

  private:
    // private methods
    Bool_t IsValid() const;
    void MoveUp();

    // private data members
    const AliMpSectorSegmentation*  fkSegmentation; ///< \brief the sector segmentation 
                                    /// over which we iterate
    //const AliMpArea  fkArea;      ///< \brief the area
                                    /// (const caused problem with CINT)
    AliMpArea  fkArea;              ///< the area
    AliMpPad   fCurrentPad;         ///< the current pad
    Double_t   fCurrentRowPosition; ///< the current row position

 ClassDef(AliMpSectorAreaHPadIterator,1) // iterator over motif's pads
};

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