]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/AliMpSectorSegmentation.h
PadByLocation() - pass warning parameter to sector segmentation
[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"
20#include "AliMpIntPair.h"
21#include "AliMpPadPair.h"
22#include "AliMpPad.h"
23#include "AliMpArea.h"
24
25class AliMpSector;
26class AliMpMotifPosition;
27class AliMpVPadIterator;
28
29class AliMpSectorSegmentation : public AliMpVSegmentation
30{
31 public:
32 AliMpSectorSegmentation(const AliMpSector* sector);
33 AliMpSectorSegmentation();
34 virtual ~AliMpSectorSegmentation();
35
36 // factory methods
37 virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const;
38 AliMpVPadIterator* CreateIterator(const AliMpPad& centerPad,
39 Bool_t includeCenter=kFALSE) const;
40
41 // methods
42 virtual AliMpPad PadByLocation(const AliMpIntPair& location,
43 Bool_t warning = kTRUE) const;
44 virtual AliMpPad PadByIndices (const AliMpIntPair& indices,
45 Bool_t warning = kTRUE) const;
46 virtual AliMpPad PadByPosition(const TVector2& position ,
47 Bool_t warning = kTRUE) const;
48 virtual AliMpPad PadByDirection(const TVector2& startPosition,
49 Double_t distance) const;
50
51 virtual Int_t Zone(const AliMpPad& pad, Bool_t warning = kTRUE) const;
52 virtual TVector2 PadDimensions(Int_t zone, Bool_t warning = kTRUE) const;
53
54 virtual Bool_t HasPad(const AliMpIntPair& indices) const;
55 Bool_t HasMotifPosition(Int_t motifPositionID) const;
56 TVector2 GetMinPadDimensions() const;
57 Bool_t CircleTest(const AliMpIntPair& indices) const;
58
59 private:
60 // methods
61 void FillPadDimensionsMap();
62 AliMpMotifPosition* FindMotifPosition(const AliMpIntPair& indices) const;
63 virtual AliMpPad PadByXDirection(const TVector2& startPosition,
64 Double_t maxX) const;
65 virtual AliMpPad PadByYDirection(const TVector2& startPosition,
66 Double_t maxY) const;
67 virtual AliMpVPadIterator* CreateIterator() const;
68
69 // data members
70 const AliMpSector* fkSector; // Sector
71 AliMpPad* fPadBuffer; // The pad buffer
72 PadDimensionsMap fPadDimensionsMap; //! Map between zone IDs and pad dimensions
73 // EXCLUDED FOR CINT (does not compile on HP)
74
75 ClassDef(AliMpSectorSegmentation,1) // Segmentation
76};
77
78#endif //ALI_MP_SECTOR_SEGMENTATION_H
79