LCOV - code coverage report
Current view: top level - MUON/MUONmapping - AliMpSectorSegmentation.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 3 3 100.0 %
Date: 2016-06-14 17:26:59 Functions: 4 7 57.1 %

          Line data    Source code
       1             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       2             :  * See cxx source for full Copyright notice                               */
       3             : 
       4             : // $Id$
       5             : // $MpId: AliMpSectorSegmentation.h,v 1.15 2006/05/24 13:58:21 ivana Exp $
       6             : 
       7             : /// \ingroup sector
       8             : /// \class AliMpSectorSegmentation
       9             : /// \brief A segmentation of the sector.        
      10             : ///
      11             : /// Provides methods related to pads:                                     \n
      12             : /// conversion between pad indices, pad location, pad position;
      13             : /// finding pad neighbour.
      14             : ///
      15             : /// \author David Guez, Ivana Hrivnacova; IPN Orsay
      16             : 
      17             : #ifndef ALI_MP_SECTOR_SEGMENTATION_H
      18             : #define ALI_MP_SECTOR_SEGMENTATION_H
      19             : 
      20             : #include "AliMpVSegmentation.h"
      21             : #include "AliMpPad.h"
      22             : 
      23             : #include <TExMap.h>
      24             : 
      25             : class AliMpSector;
      26             : class AliMpMotifPosition;
      27             : class AliMpVPadIterator;
      28             : class AliMpArea;
      29             : 
      30             : class AliMpSectorSegmentation : public AliMpVSegmentation
      31             : {
      32             :   public:
      33             :     AliMpSectorSegmentation(const AliMpSector* sector, Bool_t own = false);
      34             :     AliMpSectorSegmentation();
      35             :     virtual ~AliMpSectorSegmentation();
      36             :     
      37             :     // factory methods  
      38             :     virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const;
      39             :     virtual AliMpVPadIterator* CreateIterator() const;
      40             : 
      41             :     virtual Int_t GetNeighbours(const AliMpPad& pad, TObjArray& neighbours,
      42             :                                Bool_t includeSelf = kFALSE,
      43             :                                Bool_t includeVoid = kFALSE) const;
      44             :     
      45             :     // methods  
      46             :     virtual AliMpPad PadByLocation(Int_t manuId, Int_t manuChannel,
      47             :                                Bool_t warning = kTRUE) const;
      48             :     virtual AliMpPad PadByIndices (Int_t ix, Int_t iy, 
      49             :                                Bool_t warning = kTRUE) const;
      50             :     virtual AliMpPad PadByPosition(Double_t x, Double_t y,
      51             :                                Bool_t warning = kTRUE) const;
      52             :     virtual AliMpPad PadByDirection(Double_t startx, Double_t starty, 
      53             :                                Double_t distance) const;
      54             :  
      55             :     virtual Bool_t HasPadByIndices(Int_t ix, Int_t iy) const;
      56             :     virtual Bool_t HasPadByLocation(Int_t manuId, Int_t manuChannel) const;
      57             :   
      58             :     virtual Int_t  MaxPadIndexX() const;
      59             :     virtual Int_t  MaxPadIndexY() const;
      60             :     virtual Int_t  NofPads() const;
      61             : 
      62             :     virtual void   GetAllElectronicCardIDs(TArrayI& ecn) const;
      63             :     virtual Int_t  GetNofElectronicCards() const;
      64             :     virtual Bool_t HasMotifPosition(Int_t motifPositionID) const;
      65             :     virtual AliMpMotifPosition* MotifPosition(Int_t manuId) const;
      66             : 
      67             :     virtual AliMp::PlaneType   PlaneType() const;
      68             :     virtual AliMp::StationType StationType() const;
      69             : 
      70             :     virtual Double_t  GetDimensionX() const;
      71             :     virtual Double_t  GetDimensionY() const;
      72             :  
      73             :     virtual Double_t  GetPositionX() const;
      74             :     virtual Double_t  GetPositionY() const;
      75             :   
      76             :     virtual void Print(Option_t* opt="") const;
      77             :     
      78             :     Double_t GetMinPadDimensionX() const;
      79             :     Double_t GetMinPadDimensionY() const;
      80             : 
      81             :     Bool_t CircleTest(Int_t ix, Int_t iy) const;
      82             :    
      83             :     const AliMpSector* GetSector() const;
      84             :   
      85             :   private:
      86             :     /// Not implemented
      87             :     AliMpSectorSegmentation(const AliMpSectorSegmentation& right);
      88             :     /// Not implemented
      89             :     AliMpSectorSegmentation&  operator = (const AliMpSectorSegmentation& right);
      90             : 
      91             :     // methods
      92             :     AliMpMotifPosition*  FindMotifPosition(Int_t ix, Int_t iy) const;
      93             :     virtual AliMpPad PadByXDirection(Double_t startx, Double_t starty, 
      94             :                                      Double_t maxX) const;
      95             :     virtual AliMpPad PadByYDirection(Double_t startx, Double_t starty, 
      96             :                                      Double_t maxY) const;
      97             :  
      98             :     // data members   
      99             :     const AliMpSector*  fkSector;     ///< Sector
     100             :     Bool_t              fIsOwner;     ///< Sector ownership     
     101             :     AliMpPad*           fPadBuffer;   ///< The pad buffer
     102             :     Int_t               fMaxIndexInX; ///< maximum pad index in x    
     103             :     Int_t               fMaxIndexInY; ///< maximum pad index in y  
     104             : 
     105          82 :   ClassDef(AliMpSectorSegmentation,3)  // Segmentation
     106             : };
     107             : 
     108             : 
     109             : // inline functions
     110             : 
     111             : /// Return the sector
     112             : inline const AliMpSector* AliMpSectorSegmentation::GetSector() const
     113       44690 : { return fkSector; }
     114             : 
     115             : /// Return station type
     116             : inline AliMp::StationType AliMpSectorSegmentation::StationType() const
     117       43112 : { return AliMp::kStation12; }
     118             : 
     119             : 
     120             : #endif //ALI_MP_SECTOR_SEGMENTATION_H
     121             : 

Generated by: LCOV version 1.11