]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/AliMpNeighboursPadIterator.h
gAlice->Particle(lab) removed. TParticle obj. accessed via AliMC
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpNeighboursPadIterator.h
CommitLineData
5f91c9e8 1// $Id$
2// Category: sector
3//
4// Class AliMpNeighboursPadIterator
5// --------------------------------
6// Class, which defines an iterator over the pads surrounding a given pad
7//
8// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
9
10#ifndef ALI_MP_NEIGHBOURS_PAD_ITERATOR_H
11#define ALI_MP_NEIGHBOURS_PAD_ITERATOR_H
12
5f91c9e8 13#include "AliMpSectorTypes.h"
14#include "AliMpVPadIterator.h"
5f91c9e8 15#include "AliMpPad.h"
16
17class AliMpSectorSegmentation;
2998a151 18class AliMpIntPair;
5f91c9e8 19
20class AliMpNeighboursPadIterator : public AliMpVPadIterator
21{
22 public:
23 AliMpNeighboursPadIterator();
24 AliMpNeighboursPadIterator(const AliMpSectorSegmentation* segmentation,
25 const AliMpPad& centerPad,
26 Bool_t includeCenter=kFALSE);
27 AliMpNeighboursPadIterator(const AliMpNeighboursPadIterator& right);
28 virtual ~AliMpNeighboursPadIterator();
29
30 // operators
31 AliMpNeighboursPadIterator&
32 operator = (const AliMpNeighboursPadIterator& right);
33
34 // methods
35 virtual void First();
36 virtual void Next();
37 virtual Bool_t IsDone() const;
38 virtual AliMpPad CurrentItem() const;
39 virtual void Invalidate();
40
41 private:
42 // static members
2998a151 43 static const UInt_t fgkInvalidIndex; // invalid index number
5f91c9e8 44
45 // private methods
46 Bool_t IsNeighbours(const AliMpPad& pad) const;
47 PadVector PadVectorLine(const AliMpPad& from,
48 const AliMpIntPair& direction) const;
49 void FillPadsVector(Bool_t includeCenter);
50 Bool_t IsValid() const;
51
52 // private data members
53 const AliMpSectorSegmentation* fkSegmentation; // The sector segmentation
54 // over which to iterate
55 AliMpPad fCenterPad; // Pad arround which we iterate
56 PadVector fPads; // The list of pad arround fCenterIndices
57 UInt_t fIndex; // Current index inside the fPads vector
58
59 ClassDef(AliMpNeighboursPadIterator,1) // iterator over motif's pads
60};
61
62#endif // ALI_MP_NEIGHBOURS_PAD_ITERATOR_H