LCOV - code coverage report
Current view: top level - MUON/MUONmapping - AliMpFastSegmentation.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             : #ifndef ALIMPFASTSEGMENTATION_H
       2             : #define ALIMPFASTSEGMENTATION_H
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             : * See cxx source for full Copyright notice                               */
       6             : 
       7             : // $Id$
       8             : 
       9             : /// \ingroup management
      10             : /// \class AliMpFastSegmentation
      11             : /// \brief Fast version of AliMpVSegmentation
      12             : /// 
      13             : // author Laurent Aphecetche
      14             : 
      15             : #ifndef ROOT_TObject
      16             : #  include "TObject.h"
      17             : #endif
      18             : 
      19             : #ifndef ALI_MP_V_SEGMENTATION_H
      20             : #  include "AliMpVSegmentation.h"
      21             : #endif
      22             : 
      23             : #ifndef ROOT_TObjArray
      24             : #  include "TObjArray.h"
      25             : #endif
      26             : 
      27             : #ifndef ROOT_TExMap
      28             : #  include "TExMap.h"
      29             : #endif
      30             : 
      31             : class AliMpMotifPosition;
      32             : 
      33             : class AliMpFastSegmentation : public AliMpVSegmentation
      34             : {
      35             : public:
      36             :   AliMpFastSegmentation(AliMpVSegmentation* seg);
      37             :   virtual ~AliMpFastSegmentation();
      38             :   
      39             :   virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const;
      40             :   virtual AliMpVPadIterator* CreateIterator() const;
      41             :   
      42             :   virtual Int_t GetNeighbours(const AliMpPad& pad, TObjArray& neighbours,
      43             :                               Bool_t includeSelf=kFALSE,
      44             :                               Bool_t includeVoid=kFALSE) const;
      45             :   
      46             :   virtual Bool_t HasPadByIndices(Int_t ix, Int_t iy) const;
      47             :   virtual Bool_t HasPadByLocation(Int_t manuId, Int_t manuChannel) const;
      48             :   
      49             :   virtual AliMpPad PadByLocation(Int_t manuId, Int_t manuChannel, Bool_t warning = true) const;
      50             :   virtual AliMpPad PadByIndices (Int_t ix, Int_t iy, Bool_t warning = true) const;
      51             :   virtual AliMpPad PadByPosition(Double_t x, Double_t y, Bool_t warning = true) const;
      52             :   
      53             :   virtual Int_t  MaxPadIndexX() const;
      54             :   virtual Int_t  MaxPadIndexY() const;
      55             :   virtual Int_t  NofPads() const;
      56             :   
      57             :   virtual void GetAllElectronicCardIDs(TArrayI& ecn) const;
      58             :   
      59             :   virtual Int_t GetNofElectronicCards() const;
      60             :   
      61             :   virtual AliMp::PlaneType PlaneType() const;
      62             :   
      63             :   virtual Double_t  GetDimensionX() const;
      64             :   virtual Double_t  GetDimensionY() const;
      65             :     
      66             :   virtual Double_t  GetPositionX() const;
      67             :   virtual Double_t  GetPositionY() const;
      68             : 
      69             :   virtual AliMpMotifPosition* MotifPosition(Int_t manuId) const;
      70             : 
      71             :   virtual Bool_t HasMotifPosition(Int_t manuId) const;
      72             : 
      73             :   virtual void Print(Option_t* opt="") const;
      74             : 
      75             :   /// Return helper class 
      76      150720 :   AliMpVSegmentation* GetHelper() const { return fHelper; }
      77             :   
      78             :   /// Return segmentation station type
      79      150720 :   AliMp::StationType StationType() const { return fHelper->StationType(); }
      80             :   
      81             : private:
      82             :   /// Not implemented
      83             :   AliMpFastSegmentation(const AliMpFastSegmentation& rhs);
      84             :   /// Not implemented
      85             :   AliMpFastSegmentation& operator=(const AliMpFastSegmentation& rhs);
      86             : 
      87             :   virtual AliMpMotifPosition* InternalMotifPosition(Int_t index) const;
      88             : 
      89             : private:
      90             :   AliMpVSegmentation* fHelper; ///< helper class (owner)
      91             :   TObjArray fMotifPositions; ///< array of AliMpMotifPositions (not owner)
      92             :   mutable TExMap fIxIy; ///< map of (ix,iy) -> index in array above
      93             :   mutable TExMap fManuId; ///< map of (manuid) -> index in array above
      94             :   Double_t fPositionX; ///< to compute pad positions
      95             :   Double_t fPositionY; ///< to compute pad positions
      96             :  
      97         270 :   ClassDef(AliMpFastSegmentation,2) // Variant implementation for AliMpVSegmentation
      98             : };
      99             : 
     100             : #endif

Generated by: LCOV version 1.11