]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/mapping/AliMpSectorSegmentation.h
Updated/added comments for Doxygen
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSectorSegmentation.h
index 1d2246ee10ef468856ad929837d6eeacf4b5ad3a..7c4bdfa29b5ad4ee9e0cbaf6d998495a415a7a14 100755 (executable)
@@ -2,7 +2,7 @@
  * See cxx source for full Copyright notice                               */
 
 // $Id$
-// $MpId: AliMpSectorSegmentation.h,v 1.11 2006/03/02 16:35:06 ivana Exp $
+// $MpId: AliMpSectorSegmentation.h,v 1.15 2006/05/24 13:58:21 ivana Exp $
 
 /// \ingroup sector
 /// \class AliMpSectorSegmentation
 /// conversion between pad indices, pad location, pad position;
 /// finding pad neighbour.
 ///
-/// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
+/// \author David Guez, Ivana Hrivnacova; IPN Orsay
 
 #ifndef ALI_MP_SECTOR_SEGMENTATION_H
 #define ALI_MP_SECTOR_SEGMENTATION_H
 
-
 #include "AliMpContainers.h"
 
-#ifdef WITH_STL
-#include <map>
-#endif
+#include "AliMpVSegmentation.h"
+#include "AliMpPad.h"
 
+#include <TVector2.h>
 #ifdef WITH_ROOT
 #include <TExMap.h>
 #endif
 
-#include <TVector2.h>
-
-#include "AliMpVSegmentation.h"
-#include "AliMpPad.h"
+#ifdef WITH_STL
+#include <map>
+#endif
 
 class AliMpSector;
 class AliMpMotifPosition;
@@ -43,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;
@@ -71,8 +79,9 @@ class AliMpSectorSegmentation : public AliMpVSegmentation
     virtual AliMpPad PadByDirection(const TVector2& startPosition, 
                                Double_t distance) const;
  
-    virtual Int_t  MaxPadIndexX();
-    virtual Int_t  MaxPadIndexY();
+    virtual Int_t  MaxPadIndexX() const;
+    virtual Int_t  MaxPadIndexY() const;
+    virtual Int_t  NofPads() const;
 
     virtual Int_t    Zone(const AliMpPad& pad, Bool_t warning = kTRUE) const;
     virtual TVector2 PadDimensions(Int_t zone, Bool_t warning = kTRUE) const;
@@ -89,18 +98,19 @@ class AliMpSectorSegmentation : public AliMpVSegmentation
     
     virtual void GetAllElectronicCardIDs(TArrayI& ecn) const;
 
-    AliMpPlaneType PlaneType() const;
+    AliMp::PlaneType PlaneType() const;
     
     TVector2 Dimensions() const;
     
-protected:
+  private:
+    /// Not implemented
     AliMpSectorSegmentation(const AliMpSectorSegmentation& right);
+    /// Not implemented
     AliMpSectorSegmentation&  operator = (const AliMpSectorSegmentation& right);
 
-  private:
 #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;
@@ -115,26 +125,27 @@ protected:
     virtual AliMpPad PadByYDirection(const TVector2& startPosition, 
                                      Double_t maxY) const;
  
-    // data members        
-    const AliMpSector*  fkSector;   // Sector
-    AliMpPad*           fPadBuffer; // The pad buffer
+    // 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
-                              // EXCLUDED FOR CINT (does not compile on HP)    
+    PadDimensionsMap    fPadDimensionsMap; ///< Map between zone IDs and pad dimensions
 #endif    
 #ifdef WITH_ROOT
-    mutable PadDimensionsMap  fPadDimensionsMap; //  Map between zone IDs and pad dimensions
+    mutable PadDimensionsMap  fPadDimensionsMap; ///< Map between zone IDs and pad dimensions
 #endif 
 
-    Int_t  fMaxIndexInX;  // maximum pad index in x    
-    Int_t  fMaxIndexInY;  // maximum pad index in y    
+    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; }