]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/mapping/AliMpSectorSegmentation.h
bugfix: stopwatches for HLT benchmarks had been resumed at wrong point and measuremen...
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSectorSegmentation.h
index eb306ed0040cbb9a48a94c3e8051bcc5dcbeb9f6..7c4bdfa29b5ad4ee9e0cbaf6d998495a415a7a14 100755 (executable)
@@ -41,24 +41,34 @@ class AliMpSectorSegmentation : public AliMpVSegmentation
 {
   public:
 #ifdef WITH_STL
+    /// Pad dimensions map type
     typedef std::map<Int_t, TVector2>         PadDimensionsMap;
+    /// Pad dimensions map iterator type
     typedef PadDimensionsMap::const_iterator  PadDimensionsMapCIterator;
 #endif
 #ifdef WITH_ROOT
+    /// Pad dimensions map type
     typedef  TExMap      PadDimensionsMap;
+    /// Pad dimensions map iterator type
     typedef  TExMapIter  PadDimensionsMapCIterator;
 #endif
 
   public:
-    AliMpSectorSegmentation(const AliMpSector* sector);
+    AliMpSectorSegmentation(const AliMpSector* sector, Bool_t own = false);
     AliMpSectorSegmentation();
     virtual ~AliMpSectorSegmentation();
     
     // factory methods  
     virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const;
+    virtual AliMpVPadIterator* CreateIterator() const;
+    
     AliMpVPadIterator* CreateIterator(const AliMpPad& centerPad,
-                                  Bool_t includeCenter=kFALSE) const;
+                                      Bool_t includeCenter=kFALSE) const;
 
+     Int_t GetNeighbours(const AliMpPad& pad, TObjArray& neighbours,
+                         Bool_t includeSelf = kFALSE,
+                         Bool_t includeVoid = kFALSE) const;
+    
     // methods  
     virtual AliMpPad PadByLocation(const AliMpIntPair& location,
                                Bool_t warning = kTRUE) const;
@@ -88,17 +98,19 @@ class AliMpSectorSegmentation : public AliMpVSegmentation
     
     virtual void GetAllElectronicCardIDs(TArrayI& ecn) const;
 
-    AliMpPlaneType PlaneType() const;
+    AliMp::PlaneType PlaneType() const;
     
     TVector2 Dimensions() const;
     
   private:
+    /// Not implemented
     AliMpSectorSegmentation(const AliMpSectorSegmentation& right);
+    /// Not implemented
     AliMpSectorSegmentation&  operator = (const AliMpSectorSegmentation& right);
 
 #ifdef WITH_ROOT
-    static const Double_t   fgkS1;  // the separators used for conversion
-    static const Double_t   fgkS2;  // of TVector2 to Long_t
+    static const Double_t   fgkS1;  ///< the separators used for conversion
+    static const Double_t   fgkS2;  ///< of TVector2 to Long_t
     
     // methods
     Long_t    GetIndex(const TVector2& vector2) const;
@@ -113,8 +125,9 @@ class AliMpSectorSegmentation : public AliMpVSegmentation
     virtual AliMpPad PadByYDirection(const TVector2& startPosition, 
                                      Double_t maxY) const;
  
-    // data members        
+    // data members   
     const AliMpSector*  fkSector;   ///< Sector
+    Bool_t              fIsOwner;   ///< Sector ownership     
     AliMpPad*           fPadBuffer; ///< The pad buffer
 #ifdef WITH_STL
     PadDimensionsMap    fPadDimensionsMap; ///< Map between zone IDs and pad dimensions
@@ -126,12 +139,13 @@ class AliMpSectorSegmentation : public AliMpVSegmentation
     Int_t  fMaxIndexInX;  ///< maximum pad index in x    
     Int_t  fMaxIndexInY;  ///< maximum pad index in y    
 
-  ClassDef(AliMpSectorSegmentation,1)  // Segmentation
+  ClassDef(AliMpSectorSegmentation,2)  // Segmentation
 };
 
 
 // inline functions
 
+/// Return the sector
 inline const AliMpSector* AliMpSectorSegmentation::GetSector() const
 { return fkSector; }