LCOV - code coverage report
Current view: top level - MUON/MUONmapping - AliMpMotifType.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 6 7 85.7 %
Date: 2016-06-14 17:26:59 Functions: 7 11 63.6 %

          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: AliMpMotifType.h,v 1.11 2006/05/24 13:58:18 ivana Exp $
       6             : 
       7             : /// \ingroup motif
       8             : /// \class AliMpMotifType
       9             : /// \brief Class that defines the motif properties.
      10             : ///
      11             : /// \author David Guez, Ivana Hrivnacova; IPN Orsay
      12             : 
      13             : #ifndef ALI_MP_MOTIF_TYPE_H
      14             : #define ALI_MP_MOTIF_TYPE_H
      15             : 
      16             : #include <TObject.h>
      17             : 
      18             : #include "AliMpEncodePair.h"
      19             : 
      20             : #ifndef ROOT_TObjArray
      21             : #  include <TObjArray.h>
      22             : #endif
      23             : 
      24             : #include <TString.h>
      25             : 
      26             : class AliMpVPadIterator;
      27             : class AliMpConnection;
      28             : 
      29             : class AliMpMotifType : public TObject
      30             :   {
      31             :   public:
      32             :     AliMpMotifType(const TString &id);
      33             :     AliMpMotifType(const AliMpMotifType& rhs);
      34             :     AliMpMotifType& operator=(const AliMpMotifType& rhs);
      35             :     AliMpMotifType(TRootIOCtor* ioCtor);
      36             :     virtual ~AliMpMotifType();
      37             :     
      38             :     TObject* Clone(const char* newname="") const;
      39             :     
      40             :     virtual AliMpVPadIterator* CreateIterator() const;
      41             :     
      42             :     // find methods
      43             :     AliMpConnection *FindConnectionByPadNum(Int_t padNum) const;
      44             :     AliMpConnection *FindConnectionByLocalIndices(
      45             :                          MpPair_t localIndices) const;
      46             :     AliMpConnection *FindConnectionByLocalIndices(
      47             :                          Int_t localIx, Int_t localIy) const;
      48             :     AliMpConnection *FindConnectionByGassiNum(Int_t gassiNum) const;
      49             :     AliMpConnection *FindConnectionByKaptonNum(Int_t kaptonNum) const;
      50             :     AliMpConnection *FindConnectionByBergNum(Int_t bergNum) const;
      51             :     
      52             :     MpPair_t FindLocalIndicesByPadNum(Int_t padNum) const;
      53             :     MpPair_t FindLocalIndicesByGassiNum(Int_t gassiNum) const;
      54             :     MpPair_t FindLocalIndicesByKaptonNum(Int_t kaptonNum) const;
      55             :     MpPair_t FindLocalIndicesByBergNum(Int_t bergNum) const;
      56             :     MpPair_t FindLocalIndicesByConnection(
      57             :                          const AliMpConnection* connection) const;
      58             :     
      59             :     // set methods
      60             :     void SetNofPads(Int_t nofPadsX, Int_t nofPadY);
      61             :     
      62             :     // get methods
      63             :     /// Return unique motif ID
      64       21582 :     TString  GetID() const        {return fID;}
      65             :     /// Return number of pads in x direction
      66    13403842 :     Int_t    GetNofPadsX() const  {return fNofPadsX;}
      67             :     /// Return number of pads in y direction
      68    13323186 :     Int_t    GetNofPadsY() const  {return fNofPadsY;}
      69             :     /// Return the total number of pads
      70     1621392 :     Int_t    GetNofPads() const   {return fNofPads;}
      71             :     
      72             :     // Other methods
      73             :     Bool_t AddConnection(AliMpConnection* connection);
      74             : 
      75             :     virtual void Print(Option_t *option="") const;
      76             :     
      77             :     Int_t   PadNum(const TString &padName) const;
      78             :     
      79             :     TString PadName(Int_t padNum) const;
      80             : 
      81             :     Bool_t HasPadByLocalIndices(MpPair_t localIndices) const;
      82             :     Bool_t HasPadByLocalIndices(Int_t localIx, Int_t localIy) const;
      83             : 
      84             :     Bool_t HasPadByManuChannel(Int_t manuChannel) const;
      85             : 
      86             :     /// Return whether the pad with given manu channel exists
      87           0 :     Bool_t HasPadByGassiNum(Int_t gassiNum) const { return HasPadByManuChannel(gassiNum); }
      88             :     
      89             :     Bool_t IsFull() const;
      90             :     
      91             :     Bool_t Save(const char* motifName) const;
      92             :     Bool_t Save() const;
      93             :     
      94             :   private:
      95             :     /// Not implemented
      96             :     AliMpMotifType();
      97             : 
      98             :     // methods
      99             :     void Copy(TObject& o) const;
     100             : 
     101             :     // static data members
     102             :     static const Int_t  fgkPadNumForA; ///< the pad number for the pad "A"
     103             :     
     104             :     // data members
     105             :     TString   fID;              ///< unique motif ID
     106             :     Int_t     fNofPadsX;        ///< number of pads in x direction
     107             :     Int_t     fNofPadsY;        ///< number of pads in y direction
     108             :     Int_t     fNofPads;    ///< total number of pads (= the number of non-void entries in the arrays below)
     109             :     Int_t     fMaxNofPads; ///< max number of pads we can hold
     110             :     TObjArray fConnectionsByLocalIndices; ///< array [ix + 64*iy ] -> AliMpConnection*
     111             :     TObjArray fConnectionsByManuChannel;  ///< array [manuChannel] -> AliMpConnection*
     112             :     
     113        2148 :     ClassDef(AliMpMotifType,2)  // Motif type
     114             :   };
     115             : 
     116             : // inline functions
     117             : 
     118             : /// Return true if the motif conatins all pads
     119             : inline Bool_t AliMpMotifType::IsFull() const 
     120     1596570 : { return GetNofPads() == fNofPadsX*fNofPadsY; }
     121             : 
     122             : #endif //ALI_MP_MOTIF_TYPE_H
     123             : 
     124             : 

Generated by: LCOV version 1.11