* See cxx source for full Copyright notice */
// $Id$
-// $MpId: AliMpSectorSegmentation.h,v 1.12 2006/03/14 09:03:48 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;
{
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;
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;
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; }