LCOV - code coverage report
Current view: top level - MUON/MUONmapping - AliMpSector.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 7 9 77.8 %
Date: 2016-06-14 17:26:59 Functions: 8 13 61.5 %

          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: AliMpSector.h,v 1.14 2006/05/24 13:58:21 ivana Exp $
       6             : 
       7             : /// \ingroup sector
       8             : /// \class AliMpSector
       9             : /// \brief A sector (quadrant) of the MUON chamber of stations 1 and 2.
      10             : ///
      11             : /// \author David Guez, Ivana Hrivnacova; IPN Orsay
      12             : 
      13             : #ifndef ALI_MP_SECTOR_H
      14             : #define ALI_MP_SECTOR_H
      15             : 
      16             : #include <TNamed.h>
      17             : 
      18             : #include "AliMpDirection.h"
      19             : #include "AliMpPlaneType.h"
      20             : #include "AliMpEncodePair.h"
      21             : 
      22             : #include <TString.h>
      23             : #include <TObjArray.h>
      24             : 
      25             : class AliMpZone;
      26             : class AliMpRow;
      27             : class AliMpVRowSegment;
      28             : class AliMpVMotif;
      29             : class AliMpVPadIterator;
      30             : class AliMpMotifMap;
      31             : 
      32             : class TArrayI;
      33             : 
      34             : class AliMpSector : public TNamed
      35             : {
      36             :   public:
      37             :     AliMpSector(const TString& id, Int_t nofZones, Int_t nofRows,
      38             :                 AliMp::Direction direction, 
      39             :                 Double_t offsetx, Double_t offsety);
      40             :     AliMpSector();
      41             :     virtual ~AliMpSector();
      42             :   
      43             :     // methods  
      44             :     virtual AliMpVPadIterator* CreateIterator() const;
      45             :     
      46             :     void  SetRowSegmentOffsets();
      47             :     void  Initialize(); 
      48             :     void  PrintGeometry() const;
      49             : 
      50             :     // find methods   
      51             :     Int_t  FindMotifPositionId(Double_t x, Double_t y) const;
      52             : 
      53             :     AliMpRow*          FindRow(Int_t motifPositionId) const;
      54             :     AliMpVRowSegment*  FindRowSegment(Int_t motifPositionId) const;
      55             : 
      56             : 
      57             :     // geometry 
      58             :     Double_t  GetPositionX() const;
      59             :     Double_t  GetPositionY() const;
      60             :     Double_t  GetDimensionX() const;
      61             :     Double_t  GetDimensionY() const;
      62             :    
      63             :     //
      64             :     // get methods
      65             : 
      66             :     Int_t       GetNofZones() const;
      67             :     AliMpZone*  GetZone(Int_t i) const;    
      68             : 
      69             :     Int_t       GetNofRows() const;
      70             :     AliMpRow*   GetRow(Int_t i) const;
      71             : 
      72             :     AliMp::Direction  GetDirection() const;  
      73             :     AliMp::PlaneType  GetPlaneType() const;  
      74             : 
      75             :     Double_t    GetMinPadDimensionX() const;
      76             :     Double_t    GetMinPadDimensionY() const;
      77             :     Double_t    GetMaxPadDimensionX() const;
      78             :     Double_t    GetMaxPadDimensionY() const;
      79             :     MpPair_t    GetMaxPadIndices() const;
      80             :     Int_t       GetNofPads() const;
      81             : 
      82             :     AliMpMotifMap*  GetMotifMap() const;
      83             : 
      84             :     Int_t  GetNofMotifPositions() const;
      85             :     void   GetAllMotifPositionsIDs(TArrayI& ecn) const;
      86             :     
      87             :     virtual void Print(Option_t* opt="") const;
      88             :     
      89             :     
      90             :   private:
      91             :     /// Not implemented
      92             :     AliMpSector(const AliMpSector& right);
      93             :     /// Not implemented
      94             :     AliMpSector&  operator = (const AliMpSector& right);
      95             : 
      96             :     // methods
      97             :     AliMpRow*         FindRow(Double_t y) const;    
      98             :     AliMpVRowSegment* FindRowSegment(Double_t x, Double_t y) const;
      99             : 
     100             :     void SetRowOffsets();
     101             :     void SetMotifPositions();
     102             :     void SetGlobalIndices();
     103             :     void SetMinMaxPadDimensions();
     104             :     void SetMaxPadIndices();
     105             :     void SetNofPads();
     106             :     void SetDimensions();
     107             : 
     108             :     // data members        
     109             :     TString    fID;       ///< sector ID
     110             :     Double_t   fOffsetX;  ///< sector x position
     111             :     Double_t   fOffsetY;  ///< sector y position
     112             :     Double_t   fDimensionX;  ///< sector x dimension
     113             :     Double_t   fDimensionY;  ///< sector y dimension
     114             :     TObjArray  fZones;    ///< zones
     115             :     TObjArray  fRows;     ///< rows
     116             :     AliMpMotifMap*   fMotifMap;         ///< motif map
     117             :     AliMp::Direction fDirection;        ///< the direction of constant pad size
     118             :     Double_t         fMinPadDimensionX; ///< minimum pad x dimensions
     119             :     Double_t         fMinPadDimensionY; ///< minimum pad y dimensions
     120             :     Double_t         fMaxPadDimensionX; ///< miximum pad x dimensions
     121             :     Double_t         fMaxPadDimensionY; ///< miximum pad y dimensions
     122             :     MpPair_t         fLMaxPadIndices;   ///< maximum pad indices    
     123             :     Int_t            fNofPads;          ///<  total number of pads
     124             : 
     125          58 :   ClassDef(AliMpSector,3)  // Sector
     126             : };
     127             : 
     128             : // inline functions
     129             : 
     130             : /// Return the direction of constant pad size
     131             : inline AliMp::Direction AliMpSector::GetDirection() const 
     132        7840 : { return fDirection; }    
     133             : 
     134             : /// Return minimum x pad dimensions
     135             : inline Double_t  AliMpSector::GetMinPadDimensionX() const
     136        3100 : { return fMinPadDimensionX; }
     137             : 
     138             : /// Return maximum y pad dimensions
     139             : inline Double_t  AliMpSector::GetMinPadDimensionY() const
     140        2966 : { return fMinPadDimensionY; }
     141             : 
     142             : /// Return maximum x pad dimensions
     143             : inline Double_t  AliMpSector::GetMaxPadDimensionX() const
     144           0 : { return fMaxPadDimensionX; }
     145             : 
     146             : /// Return minimum y pad dimensions
     147             : inline Double_t  AliMpSector::GetMaxPadDimensionY() const
     148           0 : { return fMaxPadDimensionY; }
     149             : 
     150             : /// Return maximum pad indices
     151             : inline MpPair_t  AliMpSector::GetMaxPadIndices() const
     152         512 : { return fLMaxPadIndices; }
     153             : 
     154             : /// Return total number of pads
     155             : inline Int_t  AliMpSector::GetNofPads() const
     156         256 : { return fNofPads; }
     157             : 
     158             : /// Return the motif map
     159             : inline AliMpMotifMap* AliMpSector::GetMotifMap() const 
     160      800938 : { return fMotifMap; }    
     161             : 
     162             : #endif //ALI_MP_SECTOR_H
     163             : 

Generated by: LCOV version 1.11