Update HFE v2 analyses
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpRowSegment.h
CommitLineData
dee1d5f1 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
5f91c9e8 4// $Id$
13985652 5// $MpId: AliMpRowSegment.h,v 1.10 2006/05/24 13:58:21 ivana Exp $
dee1d5f1 6
7/// \ingroup sector
8/// \class AliMpRowSegment
9/// \brief A row segment composed of the the identic motifs.
10///
13985652 11/// \author David Guez, Ivana Hrivnacova; IPN Orsay
5f91c9e8 12
13#ifndef ALI_MP_ROW_SEGMENT_H
14#define ALI_MP_ROW_SEGMENT_H
15
5f91c9e8 16#include "AliMpVRowSegment.h"
17
18class AliMpRow;
19class AliMpVMotif;
20
21class AliMpRowSegment : public AliMpVRowSegment
22{
23 public:
168e9c4d 24 AliMpRowSegment(AliMpRow* row, AliMpVMotif* motif,
25 Int_t padOffsetX, Int_t padOffsetY,
5f91c9e8 26 Int_t nofMotifs, Int_t motifPositionId, Int_t motifPositionDId);
27 AliMpRowSegment();
28 virtual ~AliMpRowSegment();
29
30 // methods
31 virtual Double_t LeftBorderX() const;
32 virtual Double_t RightBorderX() const;
33 virtual Double_t HalfSizeY() const;
34
35 // find methods
6e97fbb8 36 virtual AliMpVMotif* FindMotif(Double_t x, Double_t y) const;
37 virtual Int_t FindMotifPositionId(Double_t x, Double_t y) const;
5f91c9e8 38 virtual Bool_t HasMotifPosition(Int_t motifPositionId) const;
6e97fbb8 39 virtual void MotifCenter(Int_t motifPositionId,
40 Double_t& x, Double_t& y) const;
5f91c9e8 41
42 // geometry
6e97fbb8 43 virtual Double_t GetPositionX() const;
44 virtual Double_t GetPositionY() const;
45 virtual Double_t GetDimensionX() const;
46 virtual Double_t GetDimensionY() const;
5f91c9e8 47
48 // set methods
6e97fbb8 49 virtual void SetOffset(Double_t x, Double_t y);
580c28fd 50 virtual void SetGlobalIndices(AliMpRow* rowBefore);
168e9c4d 51 virtual Int_t SetIndicesToMotifPosition(Int_t i, MpPair_t indices);
5f91c9e8 52
53 // get methods
54 virtual AliMpRow* GetRow() const;
55 virtual Int_t GetNofMotifs() const;
ffb47139 56 virtual AliMpVMotif* GetMotif(Int_t /*i*/) const;
5f91c9e8 57 virtual Int_t GetMotifPositionId(Int_t i) const;
58
59 private:
f5671fc3 60 /// Not implemented
13e7956b 61 AliMpRowSegment(const AliMpRowSegment& right);
f5671fc3 62 /// Not implemented
13e7956b 63 AliMpRowSegment& operator = (const AliMpRowSegment& right);
64
5f91c9e8 65 // methods
66 Double_t FirstMotifCenterX() const;
67 Double_t LastMotifCenterX() const;
68 Double_t MotifCenterX(Int_t motifPositionId) const;
69 Double_t MotifCenterY(Int_t motifPositionId) const;
6e97fbb8 70 Bool_t IsInside(Double_t x, Double_t y, Bool_t warn = true) const;
5f91c9e8 71
72 // data members
829425a5 73 Int_t fNofMotifs; ///< number of motifs
168e9c4d 74 MpPair_t fLPadOffset; ///< the offset in nof pads
6e97fbb8 75 Double_t fOffsetX; ///< \brief the x position of the centre of the first motif
76 /// wrt to left border
77 Double_t fOffsetY; ///< \brief the y position of the centre of the first motif
78 /// wrt to row center
829425a5 79 AliMpRow* fRow; ///< the row containing this segment
80 AliMpVMotif* fMotif; ///< the motif
81 Int_t fMotifPositionId; ///< the first motif position id
82 Int_t fMotifPositionDId; ///< +1 if ids are increasing, -1 if decreasing
5f91c9e8 83
6e97fbb8 84 ClassDef(AliMpRowSegment,2) // Row segment
5f91c9e8 85};
86
87#endif //ALI_MP_ROW_SEGMENT_H
88