]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpVRowSegment.h
In Print(): added an option to print area borders
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpVRowSegment.h
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 #include <TVector2.h>
19
20 class AliMpRow;
21 class AliMpVMotif;
22 class AliMpIntPair;
23
24 class AliMpVRowSegment : public AliMpVIndexed
25 {
26   public:
27     AliMpVRowSegment();
28     virtual ~AliMpVRowSegment();
29
30     //
31     // methods  
32     //
33     
34     /// Return the x coordinate of the left border in the global coordinate system.
35     virtual Double_t  LeftBorderX() const = 0;
36     /// Return the x coordinate of the right border in the global coordinate system.
37     virtual Double_t  RightBorderX() const = 0;
38     /// Return the half size in y of this row segment.
39     virtual Double_t  HalfSizeY() const = 0;
40     virtual AliMpVPadIterator* CreateIterator() const;
41
42     //
43     // find methods
44     //
45
46     /// Find the motif in the given positions
47     virtual AliMpVMotif*  FindMotif(const TVector2& position) const = 0;    
48     /// Find the motif position Id in the given positions
49     virtual Int_t     FindMotifPositionId(const TVector2& position) const = 0;
50     /// Has the motif position with the given Id ?
51     virtual Bool_t    HasMotifPosition(Int_t motifPositionId) const = 0;
52     /// Return the coordinates of the motif specified with the given motif position Id
53     virtual TVector2  MotifCenter(Int_t motifPositionId) const = 0;
54
55     //
56     // geometry
57     //
58     
59     /// Return the position of the row segment centre.
60     virtual TVector2  Position() const = 0;
61     /// Return the dimensions the row segment centre.
62     virtual TVector2  Dimensions() const = 0;
63     
64     //
65     // set methods
66     //
67
68     /// Calculate offset
69     virtual void      SetOffset(const TVector2& offset) = 0;
70     /// Set global indices limits.
71     virtual void      SetGlobalIndices(AliMpRow* rowBefore) = 0;
72     /// Set global indices to i-th motif position and returns next index in x.
73     virtual Int_t     SetIndicesToMotifPosition(Int_t i, 
74                                        const AliMpIntPair& indices) = 0;
75     
76     //
77     // get methods
78     //
79     
80     /// Return the row.which this row segment belongs to
81     virtual AliMpRow*  GetRow() const = 0;
82     /// Return the number of motifs in this this row segment.
83     virtual Int_t      GetNofMotifs() const = 0;
84     /// Return the i-th motif of this row segment.
85     virtual AliMpVMotif*  GetMotif(Int_t i) const = 0;
86     /// Return the i-th motif position Id of this row segment.
87     virtual Int_t      GetMotifPositionId(Int_t i) const = 0;
88     
89   ClassDef(AliMpVRowSegment,1)  //Row segment
90 };
91
92 #endif //ALI_MP_V_ROW_SEGMENT_H
93