]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/mapping/AliMpVRowSegment.h
Error message removed when data is posted by other than the owner.
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpVRowSegment.h
... / ...
CommitLineData
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
20class AliMpRow;
21class AliMpVMotif;
22class AliMpIntPair;
23
24class 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