]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/mapping/AliMpSector.h
Fix for the problem during PbPb run of Nov 2010 (Indra)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSector.h
index 1f6e08f7f6ea0423fe4497a5bbc73594439abf5b..3ec31eb3c58d2a2f3716c28403ee61cd076cacc9 100755 (executable)
 
 #include <TNamed.h>
 
-#include "AliMpContainers.h"
-
 #include "AliMpDirection.h"
 #include "AliMpPlaneType.h"
-#include "AliMpIntPair.h"
+#include "AliMpEncodePair.h"
 
 #include <TString.h>
-#include <TVector2.h>
-#ifdef WITH_ROOT
 #include <TObjArray.h>
-#endif
-
-#ifdef WITH_STL
-#include <vector>
-#endif
 
 class AliMpZone;
 class AliMpRow;
@@ -42,46 +33,32 @@ class TArrayI;
 
 class AliMpSector : public TNamed
 {
-  public:
-#ifdef WITH_STL
-    /// Row vector type
-    typedef std::vector<AliMpRow*> RowVector;
-    /// Zone vector type
-    typedef std::vector<AliMpZone*> ZoneVector;
-#endif
-#ifdef WITH_ROOT
-    /// Row vector type
-    typedef TObjArray  RowVector;
-    /// Zone vector type
-    typedef TObjArray  ZoneVector;
-#endif
-
   public:
     AliMpSector(const TString& id, Int_t nofZones, Int_t nofRows,
-                AliMp::Direction direction, const TVector2& offset);
+                AliMp::Direction direction, 
+                Double_t offsetx, Double_t offsety);
     AliMpSector();
     virtual ~AliMpSector();
   
     // methods  
     virtual AliMpVPadIterator* CreateIterator() const;
+    
     void  SetRowSegmentOffsets();
     void  Initialize(); 
     void  PrintGeometry() const;
 
     // find methods   
-    AliMpRow*     FindRow(const TVector2& position) const;    
-    AliMpVMotif*  FindMotif(const TVector2& position) const;
-    Int_t         FindMotifPositionId(const TVector2& position) const;
+    Int_t  FindMotifPositionId(Double_t x, Double_t y) const;
 
     AliMpRow*          FindRow(Int_t motifPositionId) const;
     AliMpVRowSegment*  FindRowSegment(Int_t motifPositionId) const;
-    TVector2           FindPosition(Int_t motifPositionId) const;
 
-    AliMpZone*  FindZone(const TVector2& padDimensions) const;
 
     // geometry 
-    TVector2  Position() const;
-    TVector2  Dimensions() const;
+    Double_t  GetPositionX() const;
+    Double_t  GetPositionY() const;
+    Double_t  GetDimensionX() const;
+    Double_t  GetDimensionY() const;
    
     //
     // get methods
@@ -95,13 +72,17 @@ class AliMpSector : public TNamed
     AliMp::Direction  GetDirection() const;  
     AliMp::PlaneType  GetPlaneType() const;  
 
-    TVector2        GetMinPadDimensions() const;
-    TVector2        GetMaxPadDimensions() const;
-    AliMpIntPair    GetMaxPadIndices() const;
-    Int_t           GetNofPads() const;
+    Double_t    GetMinPadDimensionX() const;
+    Double_t    GetMinPadDimensionY() const;
+    Double_t    GetMaxPadDimensionX() const;
+    Double_t    GetMaxPadDimensionY() const;
+    MpPair_t    GetMaxPadIndices() const;
+    Int_t       GetNofPads() const;
 
     AliMpMotifMap*  GetMotifMap() const;
-    void            GetAllMotifPositionsIDs(TArrayI& ecn) const;
+
+    Int_t  GetNofMotifPositions() const;
+    void   GetAllMotifPositionsIDs(TArrayI& ecn) const;
     
     virtual void Print(Option_t* opt="") const;
     
@@ -113,27 +94,35 @@ class AliMpSector : public TNamed
     AliMpSector&  operator = (const AliMpSector& right);
 
     // methods
-    AliMpVRowSegment* FindRowSegment(const TVector2& position) const;
+    AliMpRow*         FindRow(Double_t y) const;    
+    AliMpVRowSegment* FindRowSegment(Double_t x, Double_t y) const;
+
     void SetRowOffsets();
     void SetMotifPositions();
     void SetGlobalIndices();
     void SetMinMaxPadDimensions();
     void SetMaxPadIndices();
     void SetNofPads();
+    void SetDimensions();
 
     // data members        
     TString    fID;       ///< sector ID
-    TVector2   fOffset;   ///< sector position
-    ZoneVector fZones;    ///< zones
-    RowVector  fRows;     ///< rows
+    Double_t   fOffsetX;  ///< sector x position
+    Double_t   fOffsetY;  ///< sector y position
+    Double_t   fDimensionX;  ///< sector x dimension
+    Double_t   fDimensionY;  ///< sector y dimension
+    TObjArray  fZones;    ///< zones
+    TObjArray  fRows;     ///< rows
     AliMpMotifMap*   fMotifMap;         ///< motif map
     AliMp::Direction fDirection;        ///< the direction of constant pad size
-    TVector2         fMinPadDimensions; ///< minimum pad dimensions
-    TVector2         fMaxPadDimensions; ///< miximum pad dimensions
-    AliMpIntPair     fMaxPadIndices;    ///< maximum pad indices    
+    Double_t         fMinPadDimensionX; ///< minimum pad x dimensions
+    Double_t         fMinPadDimensionY; ///< minimum pad y dimensions
+    Double_t         fMaxPadDimensionX; ///< miximum pad x dimensions
+    Double_t         fMaxPadDimensionY; ///< miximum pad y dimensions
+    MpPair_t         fLMaxPadIndices;   ///< maximum pad indices    
     Int_t            fNofPads;          ///<  total number of pads
 
-  ClassDef(AliMpSector,1)  // Sector
+  ClassDef(AliMpSector,3)  // Sector
 };
 
 // inline functions
@@ -142,17 +131,25 @@ class AliMpSector : public TNamed
 inline AliMp::Direction AliMpSector::GetDirection() const 
 { return fDirection; }    
 
-/// Return minimum pad dimensions
-inline TVector2   AliMpSector::GetMinPadDimensions() const
-{ return fMinPadDimensions; }
+/// Return minimum x pad dimensions
+inline Double_t  AliMpSector::GetMinPadDimensionX() const
+{ return fMinPadDimensionX; }
+
+/// Return maximum y pad dimensions
+inline Double_t  AliMpSector::GetMinPadDimensionY() const
+{ return fMinPadDimensionY; }
+
+/// Return maximum x pad dimensions
+inline Double_t  AliMpSector::GetMaxPadDimensionX() const
+{ return fMaxPadDimensionX; }
 
-/// Return maxmum pad dimensions
-inline TVector2   AliMpSector::GetMaxPadDimensions() const
-{ return fMaxPadDimensions; }
+/// Return minimum y pad dimensions
+inline Double_t  AliMpSector::GetMaxPadDimensionY() const
+{ return fMaxPadDimensionY; }
 
 /// Return maximum pad indices
-inline AliMpIntPair  AliMpSector::GetMaxPadIndices() const
-{ return fMaxPadIndices; }
+inline MpPair_t  AliMpSector::GetMaxPadIndices() const
+{ return fLMaxPadIndices; }
 
 /// Return total number of pads
 inline Int_t  AliMpSector::GetNofPads() const