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

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

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

#ifndef ALI_MP_SECTOR_AREA_V_PAD_ITERATOR_H
#define ALI_MP_SECTOR_AREA_V_PAD_ITERATOR_H

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

class AliMpSectorSegmentation;

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

    // operators
    AliMpSectorAreaVPadIterator& 
      operator = (const AliMpSectorAreaVPadIterator& 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 MoveRight();

    // 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   fCurrentColumnPosition; ///< the current column position

 ClassDef(AliMpSectorAreaVPadIterator,1) // iterator over motif's pads
};
#endif // ALI_MP_SECTOR_AREA_V_PAD_ITERATOR_H
 AliMpSectorAreaVPadIterator.h:1
 AliMpSectorAreaVPadIterator.h:2
 AliMpSectorAreaVPadIterator.h:3
 AliMpSectorAreaVPadIterator.h:4
 AliMpSectorAreaVPadIterator.h:5
 AliMpSectorAreaVPadIterator.h:6
 AliMpSectorAreaVPadIterator.h:7
 AliMpSectorAreaVPadIterator.h:8
 AliMpSectorAreaVPadIterator.h:9
 AliMpSectorAreaVPadIterator.h:10
 AliMpSectorAreaVPadIterator.h:11
 AliMpSectorAreaVPadIterator.h:12
 AliMpSectorAreaVPadIterator.h:13
 AliMpSectorAreaVPadIterator.h:14
 AliMpSectorAreaVPadIterator.h:15
 AliMpSectorAreaVPadIterator.h:16
 AliMpSectorAreaVPadIterator.h:17
 AliMpSectorAreaVPadIterator.h:18
 AliMpSectorAreaVPadIterator.h:19
 AliMpSectorAreaVPadIterator.h:20
 AliMpSectorAreaVPadIterator.h:21
 AliMpSectorAreaVPadIterator.h:22
 AliMpSectorAreaVPadIterator.h:23
 AliMpSectorAreaVPadIterator.h:24
 AliMpSectorAreaVPadIterator.h:25
 AliMpSectorAreaVPadIterator.h:26
 AliMpSectorAreaVPadIterator.h:27
 AliMpSectorAreaVPadIterator.h:28
 AliMpSectorAreaVPadIterator.h:29
 AliMpSectorAreaVPadIterator.h:30
 AliMpSectorAreaVPadIterator.h:31
 AliMpSectorAreaVPadIterator.h:32
 AliMpSectorAreaVPadIterator.h:33
 AliMpSectorAreaVPadIterator.h:34
 AliMpSectorAreaVPadIterator.h:35
 AliMpSectorAreaVPadIterator.h:36
 AliMpSectorAreaVPadIterator.h:37
 AliMpSectorAreaVPadIterator.h:38
 AliMpSectorAreaVPadIterator.h:39
 AliMpSectorAreaVPadIterator.h:40
 AliMpSectorAreaVPadIterator.h:41
 AliMpSectorAreaVPadIterator.h:42
 AliMpSectorAreaVPadIterator.h:43
 AliMpSectorAreaVPadIterator.h:44
 AliMpSectorAreaVPadIterator.h:45
 AliMpSectorAreaVPadIterator.h:46
 AliMpSectorAreaVPadIterator.h:47
 AliMpSectorAreaVPadIterator.h:48
 AliMpSectorAreaVPadIterator.h:49
 AliMpSectorAreaVPadIterator.h:50
 AliMpSectorAreaVPadIterator.h:51
 AliMpSectorAreaVPadIterator.h:52
 AliMpSectorAreaVPadIterator.h:53
 AliMpSectorAreaVPadIterator.h:54
 AliMpSectorAreaVPadIterator.h:55
 AliMpSectorAreaVPadIterator.h:56
 AliMpSectorAreaVPadIterator.h:57
 AliMpSectorAreaVPadIterator.h:58
 AliMpSectorAreaVPadIterator.h:59