]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/AliMpSectorSegmentation.h
Coding conventions corrections only
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSectorSegmentation.h
CommitLineData
5f91c9e8 1// $Id$
2// Category: sector
3//
4// Class AliMpSectorSegmentation
5// -----------------------------
6// Class describing the segmentation of the sector.
7// Provides methods related to pads:
8// conversion between pad indices, pad location, pad position;
9// finding pad neighbour.
10//
11// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
12
13#ifndef ALI_MP_SECTOR_SEGMENTATION_H
14#define ALI_MP_SECTOR_SEGMENTATION_H
15
16#include <TVector2.h>
17
18#include "AliMpSectorTypes.h"
19#include "AliMpVSegmentation.h"
5f91c9e8 20#include "AliMpPad.h"
5f91c9e8 21
22class AliMpSector;
23class AliMpMotifPosition;
24class AliMpVPadIterator;
2998a151 25class AliMpIntPair;
26class AliMpArea;
5f91c9e8 27
28class AliMpSectorSegmentation : public AliMpVSegmentation
29{
30 public:
31 AliMpSectorSegmentation(const AliMpSector* sector);
32 AliMpSectorSegmentation();
33 virtual ~AliMpSectorSegmentation();
34
35 // factory methods
36 virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const;
37 AliMpVPadIterator* CreateIterator(const AliMpPad& centerPad,
38 Bool_t includeCenter=kFALSE) const;
39
40 // methods
41 virtual AliMpPad PadByLocation(const AliMpIntPair& location,
42 Bool_t warning = kTRUE) const;
43 virtual AliMpPad PadByIndices (const AliMpIntPair& indices,
44 Bool_t warning = kTRUE) const;
45 virtual AliMpPad PadByPosition(const TVector2& position ,
46 Bool_t warning = kTRUE) const;
47 virtual AliMpPad PadByDirection(const TVector2& startPosition,
48 Double_t distance) const;
49
50 virtual Int_t Zone(const AliMpPad& pad, Bool_t warning = kTRUE) const;
51 virtual TVector2 PadDimensions(Int_t zone, Bool_t warning = kTRUE) const;
52
53 virtual Bool_t HasPad(const AliMpIntPair& indices) const;
54 Bool_t HasMotifPosition(Int_t motifPositionID) const;
55 TVector2 GetMinPadDimensions() const;
56 Bool_t CircleTest(const AliMpIntPair& indices) const;
57
58 private:
59 // methods
60 void FillPadDimensionsMap();
61 AliMpMotifPosition* FindMotifPosition(const AliMpIntPair& indices) const;
62 virtual AliMpPad PadByXDirection(const TVector2& startPosition,
63 Double_t maxX) const;
64 virtual AliMpPad PadByYDirection(const TVector2& startPosition,
65 Double_t maxY) const;
66 virtual AliMpVPadIterator* CreateIterator() const;
67
68 // data members
69 const AliMpSector* fkSector; // Sector
70 AliMpPad* fPadBuffer; // The pad buffer
71 PadDimensionsMap fPadDimensionsMap; //! Map between zone IDs and pad dimensions
72 // EXCLUDED FOR CINT (does not compile on HP)
73
74 ClassDef(AliMpSectorSegmentation,1) // Segmentation
75};
76
77#endif //ALI_MP_SECTOR_SEGMENTATION_H
78