X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=MUON%2Fmapping%2FAliMpSectorSegmentation.h;h=a3e1d44a670a176c7246bdc435de0a19888b0b66;hp=98ee1d6e57287b9870d3e4d8305f91e608850ec9;hb=cddcc1f3b00cdcdac20666f644fb42998a250ff6;hpb=bd984e1512328031d270337854fc056f81d9da56 diff --git a/MUON/mapping/AliMpSectorSegmentation.h b/MUON/mapping/AliMpSectorSegmentation.h index 98ee1d6e572..a3e1d44a670 100755 --- a/MUON/mapping/AliMpSectorSegmentation.h +++ b/MUON/mapping/AliMpSectorSegmentation.h @@ -2,7 +2,7 @@ * 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 @@ -12,132 +12,110 @@ /// 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 -#endif - -#ifdef WITH_ROOT -#include -#endif - -#include - #include "AliMpVSegmentation.h" #include "AliMpPad.h" +#include + class AliMpSector; class AliMpMotifPosition; class AliMpVPadIterator; -class AliMpIntPair; class AliMpArea; class AliMpSectorSegmentation : public AliMpVSegmentation { public: -#ifdef WITH_STL - typedef std::map PadDimensionsMap; - typedef PadDimensionsMap::const_iterator PadDimensionsMapCIterator; -#endif -#ifdef WITH_ROOT - typedef TExMap PadDimensionsMap; - 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; - AliMpVPadIterator* CreateIterator(const AliMpPad& centerPad, - Bool_t includeCenter=kFALSE) const; + virtual AliMpVPadIterator* CreateIterator() const; + virtual Int_t GetNeighbours(const AliMpPad& pad, TObjArray& neighbours, + Bool_t includeSelf = kFALSE, + Bool_t includeVoid = kFALSE) const; + // methods - virtual AliMpPad PadByLocation(const AliMpIntPair& location, + virtual AliMpPad PadByLocation(Int_t manuId, Int_t manuChannel, Bool_t warning = kTRUE) const; - virtual AliMpPad PadByIndices (const AliMpIntPair& indices, + virtual AliMpPad PadByIndices (Int_t ix, Int_t iy, Bool_t warning = kTRUE) const; - virtual AliMpPad PadByPosition(const TVector2& position , + virtual AliMpPad PadByPosition(Double_t x, Double_t y, Bool_t warning = kTRUE) const; - virtual AliMpPad PadByDirection(const TVector2& startPosition, + virtual AliMpPad PadByDirection(Double_t startx, Double_t starty, Double_t distance) const; + virtual Bool_t HasPadByIndices(Int_t ix, Int_t iy) const; + virtual Bool_t HasPadByLocation(Int_t manuId, Int_t manuChannel) const; + 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; + virtual void GetAllElectronicCardIDs(TArrayI& ecn) const; + virtual Int_t GetNofElectronicCards() const; + virtual Bool_t HasMotifPosition(Int_t motifPositionID) const; + virtual AliMpMotifPosition* MotifPosition(Int_t manuId) const; - virtual Bool_t HasPad(const AliMpIntPair& indices) const; - Bool_t HasMotifPosition(Int_t motifPositionID) const; - TVector2 GetMinPadDimensions() const; - Bool_t CircleTest(const AliMpIntPair& indices) const; - void PrintZones() const; - - const AliMpSector* GetSector() const; + virtual AliMp::PlaneType PlaneType() const; + virtual AliMp::StationType StationType() const; + virtual Double_t GetDimensionX() const; + virtual Double_t GetDimensionY() const; + + virtual Double_t GetPositionX() const; + virtual Double_t GetPositionY() const; + virtual void Print(Option_t* opt="") const; - virtual void GetAllElectronicCardIDs(TArrayI& ecn) const; + Double_t GetMinPadDimensionX() const; + Double_t GetMinPadDimensionY() const; - AliMpPlaneType PlaneType() const; - - TVector2 Dimensions() const; - -protected: + Bool_t CircleTest(Int_t ix, Int_t iy) const; + + const AliMpSector* GetSector() const; + + 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 - - // methods - Long_t GetIndex(const TVector2& vector2) const; - TVector2 GetVector(Long_t index) const; -#endif - // methods - void FillPadDimensionsMap(); - AliMpMotifPosition* FindMotifPosition(const AliMpIntPair& indices) const; - virtual AliMpPad PadByXDirection(const TVector2& startPosition, + AliMpMotifPosition* FindMotifPosition(Int_t ix, Int_t iy) const; + virtual AliMpPad PadByXDirection(Double_t startx, Double_t starty, Double_t maxX) const; - virtual AliMpPad PadByYDirection(const TVector2& startPosition, + virtual AliMpPad PadByYDirection(Double_t startx, Double_t starty, Double_t maxY) const; - // data members - const AliMpSector* fkSector; // Sector - 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) -#endif -#ifdef WITH_ROOT - 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 - - ClassDef(AliMpSectorSegmentation,1) // Segmentation + // data members + const AliMpSector* fkSector; ///< Sector + Bool_t fIsOwner; ///< Sector ownership + AliMpPad* fPadBuffer; ///< The pad buffer + Int_t fMaxIndexInX; ///< maximum pad index in x + Int_t fMaxIndexInY; ///< maximum pad index in y + + ClassDef(AliMpSectorSegmentation,3) // Segmentation }; // inline functions +/// Return the sector inline const AliMpSector* AliMpSectorSegmentation::GetSector() const { return fkSector; } +/// Return station type +inline AliMp::StationType AliMpSectorSegmentation::StationType() const +{ return AliMp::kStation12; } + + #endif //ALI_MP_SECTOR_SEGMENTATION_H