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

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

/// \ingroup sector
/// \class AliMpSectorPadIterator
/// \brief An iterator over the pads of a sector
///
/// \author David Guez, Ivana Hrivnacova; IPN Orsay

#ifndef ALI_MP_SECTOR_PAD_ITERATOR_H
#define ALI_MP_SECTOR_PAD_ITERATOR_H

#include "AliMpVPadIterator.h"
#include "AliMpMotifPositionPadIterator.h"

class AliMpSector;
class AliMpMotifPosition;


class AliMpSectorPadIterator : public AliMpVPadIterator
{
  public:
    AliMpSectorPadIterator();
    AliMpSectorPadIterator(const AliMpSector* sector);
    AliMpSectorPadIterator(const AliMpSectorPadIterator& src);
    virtual ~AliMpSectorPadIterator();

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

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

  private:
    // private methods
    AliMpMotifPosition* ResetToCurrentMotifPosition();
    Bool_t IsValid() const;

    // private data members
    const AliMpSector*  fkSector;  ///< the sector over which to iterate
    UInt_t              fCurrentIndex; ///< the current motif position index
    AliMpMotifPosition* fMotifPos; ///< the current motif position
    AliMpMotifPositionPadIterator  fIterator; ///< iterator over the current motif type

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

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