]> git.uio.no Git - u/mrichter/AliRoot.git/blame - 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
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: AliMpVRowSegment.h,v 1.9 2006/05/24 13:58:21 ivana Exp $
dee1d5f1 6
7/// \ingroup sector
8/// \class AliMpVRowSegment
9/// \brief An interface for a row segment.
10///
13985652 11/// \author David Guez, Ivana Hrivnacova; IPN Orsay
5f91c9e8 12
13#ifndef ALI_MP_V_ROW_SEGMENT_H
14#define ALI_MP_V_ROW_SEGMENT_H
15
5f91c9e8 16#include "AliMpVIndexed.h"
5f91c9e8 17
2a7ea2e6 18#include <TVector2.h>
19
5f91c9e8 20class AliMpRow;
21class AliMpVMotif;
d1d8330f 22class AliMpIntPair;
5f91c9e8 23
24class AliMpVRowSegment : public AliMpVIndexed
25{
26 public:
27 AliMpVRowSegment();
28 virtual ~AliMpVRowSegment();
29
f5671fc3 30 //
5f91c9e8 31 // methods
f5671fc3 32 //
33
34 /// Return the x coordinate of the left border in the global coordinate system.
5f91c9e8 35 virtual Double_t LeftBorderX() const = 0;
f5671fc3 36 /// Return the x coordinate of the right border in the global coordinate system.
5f91c9e8 37 virtual Double_t RightBorderX() const = 0;
f5671fc3 38 /// Return the half size in y of this row segment.
5f91c9e8 39 virtual Double_t HalfSizeY() const = 0;
40 virtual AliMpVPadIterator* CreateIterator() const;
41
f5671fc3 42 //
5f91c9e8 43 // find methods
f5671fc3 44 //
45
46 /// Find the motif in the given positions
5f91c9e8 47 virtual AliMpVMotif* FindMotif(const TVector2& position) const = 0;
f5671fc3 48 /// Find the motif position Id in the given positions
5f91c9e8 49 virtual Int_t FindMotifPositionId(const TVector2& position) const = 0;
f5671fc3 50 /// Has the motif position with the given Id ?
5f91c9e8 51 virtual Bool_t HasMotifPosition(Int_t motifPositionId) const = 0;
f5671fc3 52 /// Return the coordinates of the motif specified with the given motif position Id
5f91c9e8 53 virtual TVector2 MotifCenter(Int_t motifPositionId) const = 0;
54
f5671fc3 55 //
5f91c9e8 56 // geometry
f5671fc3 57 //
58
59 /// Return the position of the row segment centre.
5f91c9e8 60 virtual TVector2 Position() const = 0;
f5671fc3 61 /// Return the dimensions the row segment centre.
5f91c9e8 62 virtual TVector2 Dimensions() const = 0;
63
f5671fc3 64 //
5f91c9e8 65 // set methods
f5671fc3 66 //
67
68 /// Calculate offset
5f91c9e8 69 virtual void SetOffset(const TVector2& offset) = 0;
f5671fc3 70 /// Set global indices limits.
580c28fd 71 virtual void SetGlobalIndices(AliMpRow* rowBefore) = 0;
f5671fc3 72 /// Set global indices to i-th motif position and returns next index in x.
d1d8330f 73 virtual Int_t SetIndicesToMotifPosition(Int_t i,
580c28fd 74 const AliMpIntPair& indices) = 0;
5f91c9e8 75
f5671fc3 76 //
5f91c9e8 77 // get methods
f5671fc3 78 //
79
80 /// Return the row.which this row segment belongs to
5f91c9e8 81 virtual AliMpRow* GetRow() const = 0;
f5671fc3 82 /// Return the number of motifs in this this row segment.
5f91c9e8 83 virtual Int_t GetNofMotifs() const = 0;
f5671fc3 84 /// Return the i-th motif of this row segment.
5f91c9e8 85 virtual AliMpVMotif* GetMotif(Int_t i) const = 0;
f5671fc3 86 /// Return the i-th motif position Id of this row segment.
5f91c9e8 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