Line data Source code
1 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 : * See cxx source for full Copyright notice */
3 :
4 : // $Id$
5 : // $MpId: AliMpVRowSegment.h,v 1.9 2006/05/24 13:58:21 ivana Exp $
6 :
7 : /// \ingroup sector
8 : /// \class AliMpVRowSegment
9 : /// \brief An interface for a row segment.
10 : ///
11 : /// \author David Guez, Ivana Hrivnacova; IPN Orsay
12 :
13 : #ifndef ALI_MP_V_ROW_SEGMENT_H
14 : #define ALI_MP_V_ROW_SEGMENT_H
15 :
16 : #include "AliMpVIndexed.h"
17 :
18 : class AliMpRow;
19 : class AliMpVMotif;
20 :
21 0 : class AliMpVRowSegment : public AliMpVIndexed
22 : {
23 : public:
24 : AliMpVRowSegment();
25 : virtual ~AliMpVRowSegment();
26 :
27 : //
28 : // methods
29 : //
30 :
31 : /// Return the x coordinate of the left border in the global coordinate system.
32 : virtual Double_t LeftBorderX() const = 0;
33 : /// Return the x coordinate of the right border in the global coordinate system.
34 : virtual Double_t RightBorderX() const = 0;
35 : /// Return the half size in y of this row segment.
36 : virtual Double_t HalfSizeY() const = 0;
37 : virtual AliMpVPadIterator* CreateIterator() const;
38 :
39 : //
40 : // find methods
41 : //
42 :
43 : /// Find the motif in the given positions
44 : virtual AliMpVMotif* FindMotif(Double_t x, Double_t y) const = 0;
45 : /// Find the motif position Id in the given positions
46 : virtual Int_t FindMotifPositionId(Double_t x, Double_t y) const = 0;
47 : /// Has the motif position with the given Id ?
48 : virtual Bool_t HasMotifPosition(Int_t motifPositionId) const = 0;
49 :
50 : /// Fill the coordinates of the motif specified with the given motif position Id
51 : virtual void MotifCenter(Int_t motifPositionId,
52 : Double_t& x, Double_t& y) const = 0;
53 :
54 : //
55 : // geometry
56 : //
57 :
58 : /// Return the x position of the row segment centre.
59 : virtual Double_t GetPositionX() const = 0;
60 : /// Return the y position of the row segment centre.
61 : virtual Double_t GetPositionY() const = 0;
62 :
63 : /// Return the x dimension of the row segment centre.
64 : virtual Double_t GetDimensionX() const = 0;
65 : /// Return the y dimension of the row segment centre.
66 : virtual Double_t GetDimensionY() const = 0;
67 :
68 : //
69 : // set methods
70 : //
71 :
72 : /// Calculate offset
73 : virtual void SetOffset(Double_t x, Double_t y) = 0;
74 : /// Set global indices limits.
75 : virtual void SetGlobalIndices(AliMpRow* rowBefore) = 0;
76 : /// Set global indices to i-th motif position and returns next index in x.
77 : virtual Int_t SetIndicesToMotifPosition(Int_t i, MpPair_t indices) = 0;
78 :
79 : //
80 : // get methods
81 : //
82 :
83 : /// Return the row.which this row segment belongs to
84 : virtual AliMpRow* GetRow() const = 0;
85 : /// Return the number of motifs in this this row segment.
86 : virtual Int_t GetNofMotifs() const = 0;
87 : /// Return the i-th motif of this row segment.
88 : virtual AliMpVMotif* GetMotif(Int_t i) const = 0;
89 : /// Return the i-th motif position Id of this row segment.
90 : virtual Int_t GetMotifPositionId(Int_t i) const = 0;
91 :
92 18 : ClassDef(AliMpVRowSegment,1) //Row segment
93 : };
94 :
95 : #endif //ALI_MP_V_ROW_SEGMENT_H
96 :
|