]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpArea.h
From Laurent
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpArea.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: AliMpArea.h,v 1.7 2005/08/26 15:43:36 ivana Exp $
6
7 /// \ingroup basic
8 /// \class AliMpArea
9 /// \brief A rectangle area positioned in plane..
10 ///
11 /// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
12
13 #ifndef ALI_MP_AREA_H
14 #define ALI_MP_AREA_H
15
16 #include <TObject.h>
17 #include <TVector2.h>
18
19 class AliMpArea : public TObject
20 {
21  public:
22   AliMpArea(const TVector2& position, const TVector2& dimensions);
23   AliMpArea(const AliMpArea& rhs);
24   AliMpArea();
25   virtual ~AliMpArea();
26
27   // operators
28   AliMpArea& operator = (const AliMpArea& right);
29
30   // methods
31   Double_t LeftBorder() const;
32   Double_t RightBorder() const;
33   Double_t UpBorder() const;
34   Double_t DownBorder() const;
35
36   TVector2 LeftDownCorner() const;
37   TVector2 LeftUpCorner() const;
38   TVector2 RightDownCorner() const;
39   TVector2 RightUpCorner() const;
40
41   // get methods
42   TVector2  Position() const;
43   TVector2  Dimensions() const;    
44   Bool_t    IsValid() const;
45   
46  private:
47   // data members
48   TVector2  fPosition;  // position
49   TVector2  fDimensions;// dimensions (half lengths)
50   Bool_t    fValidity;  // validity
51
52   ClassDef(AliMpArea,1) //utility class for area iterators
53 };
54
55 ostream& operator << (ostream &stream,const AliMpArea& area);
56
57 // inline functions
58
59 inline TVector2  AliMpArea::Position() const   { return fPosition; }
60 inline TVector2  AliMpArea::Dimensions() const { return fDimensions; }    
61 inline Bool_t    AliMpArea::IsValid() const    { return fValidity; }
62
63 #endif //ALI_MP_AREA_H