]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/mapping/AliMpArea.h
PMD module
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpArea.h
index 83c5b8ef84df0f684a3a49434f4e35c3188f4fe1..7a29d187edb08ab8e2c513436c7b96aff85e0c2a 100755 (executable)
 #define ALI_MP_AREA_H
 
 #include <TObject.h>
-#include <TVector2.h>
+
+using std::ostream;
 
 class AliMpArea : public TObject
 {
  public:
-  AliMpArea(const TVector2& position, const TVector2& dimensions);
+  AliMpArea(Double_t x, Double_t y, 
+            Double_t dx, Double_t dy);
   AliMpArea(const AliMpArea& rhs);
   AliMpArea();
   virtual ~AliMpArea();
@@ -33,35 +35,50 @@ class AliMpArea : public TObject
   Double_t UpBorder() const;
   Double_t DownBorder() const;
 
-  TVector2 LeftDownCorner() const;
-  TVector2 LeftUpCorner() const;
-  TVector2 RightDownCorner() const;
-  TVector2 RightUpCorner() const;
+  void LeftDownCorner(Double_t& x, Double_t& y) const;
+  void LeftUpCorner(Double_t& x, Double_t& y) const;
+  void RightDownCorner(Double_t& x, Double_t& y) const;
+  void RightUpCorner(Double_t& x, Double_t& y) const;
+
+  AliMpArea Intersect(const AliMpArea& area) const;
+  Bool_t    Overlap(const AliMpArea& area) const;
+  Bool_t    Contains(const AliMpArea& area) const;
+  
+  void Print(Option_t* opt="") const;
 
   // get methods
-  TVector2  Position() const;
-  TVector2  Dimensions() const;    
+  void      GetParameters(Double_t& x, Double_t& y,
+                          Double_t& dx, Double_t& dy) const;
+  Double_t  GetPositionX() const;
+  Double_t  GetPositionY() const;
+  Double_t  GetDimensionX() const;    
+  Double_t  GetDimensionY() const;    
   Bool_t    IsValid() const;
   
-  void Print(Option_t* opt="") const;
   
  private:
   // data members
-  TVector2  fPosition;  ///<  position
-  TVector2  fDimensions;///<  dimensions (half lengths)
-  Bool_t    fValidity;  ///<  validity
+  Double_t  fPositionX;  ///<  x position
+  Double_t  fPositionY;  ///<  y position
+  Double_t  fDimensionX; ///<   x dimension (half lengths)
+  Double_t  fDimensionY; ///<   y dimension (half lengths)
+  Bool_t    fValidity;   ///<  validity
 
-  ClassDef(AliMpArea,1) //utility class for area iterators
+  ClassDef(AliMpArea,2) //utility class for area iterators
 };
 
 ostream& operator << (ostream &stream,const AliMpArea& area);
 
 // inline functions
 
-                 /// Return position
-inline TVector2  AliMpArea::Position() const   { return fPosition; }
-                 /// Return dimensions
-inline TVector2  AliMpArea::Dimensions() const { return fDimensions; }    
+                 /// Return x position
+inline Double_t  AliMpArea::GetPositionX() const   { return fPositionX; }
+                 /// Return y position
+inline Double_t  AliMpArea::GetPositionY() const   { return fPositionY; }
+                 /// Return x dimensions
+inline Double_t  AliMpArea::GetDimensionX() const { return fDimensionX; }    
+                 /// Return y dimensions
+inline Double_t  AliMpArea::GetDimensionY() const { return fDimensionY; }    
                  /// Return validity
 inline Bool_t    AliMpArea::IsValid() const    { return fValidity; }