LCOV - code coverage report
Current view: top level - MUON/MUONgeometry - AliMUONGeometryModuleTransformer.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             : // Revision of includes 07/05/2004
       6             : 
       7             : /// \ingroup geometry
       8             : /// \class AliMUONGeometryModuleTransformer
       9             : /// \brief Geometry transformer for a detector module
      10             : ///
      11             : /// Class for definition of the transformation for a detector module
      12             : /// and its detection elements
      13             : ///
      14             : /// \author Ivana Hrivnacova, IPN Orsay
      15             : 
      16             : #ifndef ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H
      17             : #define ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H
      18             : 
      19             : #include <TObject.h>
      20             : #include <TString.h>
      21             : 
      22             : class AliMUONGeometryDetElement;
      23             : 
      24             : class AliMpExMap;
      25             : 
      26             : class TGeoTranslation;
      27             : class TGeoRotation;
      28             : class TGeoHMatrix;
      29             : class TObjArray;
      30             : class TArrayI;
      31             : 
      32             : class AliMUONGeometryModuleTransformer : public TObject
      33             : {
      34             :   public:
      35             :     AliMUONGeometryModuleTransformer(Int_t moduleId);
      36             :     AliMUONGeometryModuleTransformer(TRootIOCtor* /*ioCtor*/);
      37             :     virtual ~AliMUONGeometryModuleTransformer();
      38             : 
      39             :     // static methods
      40             :     static const TString& GetModuleNamePrefix();
      41             :     static       TString  GetModuleName(Int_t moduleId);
      42             : 
      43             :     // methods
      44             :     void Global2Local(Int_t detElemId,
      45             :                  Float_t xg, Float_t yg, Float_t zg, 
      46             :                  Float_t& xl, Float_t& yl, Float_t& zl) const;
      47             :     void Global2Local(Int_t detElemId,
      48             :                  Double_t xg, Double_t yg, Double_t zg, 
      49             :                  Double_t& xl, Double_t& yl, Double_t& zl) const;
      50             : 
      51             :     void Local2Global(Int_t detElemId,
      52             :                  Float_t xl, Float_t yl, Float_t zl, 
      53             :                  Float_t& xg, Float_t& yg, Float_t& zg) const;
      54             :     void Local2Global(Int_t detElemId,
      55             :                  Double_t xl, Double_t yl, Double_t zl, 
      56             :                  Double_t& xg, Double_t& yg, Double_t& zg) const;
      57             : 
      58             :     // set methods
      59             :     void  SetTransformation(const TGeoHMatrix& transform);
      60             :     void  SetVolumePath(const TString& volumePath);
      61             :  
      62             :     // get methods
      63             :     Int_t    GetModuleId() const;
      64             :     TString  GetModuleName() const;
      65             :     TString  GetVolumePath() const;
      66             :     TString  GetVolumeName() const;
      67             :     TString  GetMotherVolumeName() const;
      68             : 
      69             :     const TGeoHMatrix*  GetTransformation() const;    
      70             :     AliMpExMap*         GetDetElementStore() const; 
      71             :     AliMUONGeometryDetElement*  
      72             :                         GetDetElement(Int_t detElemId, Bool_t warn = true) const;    
      73             : 
      74             :   protected:
      75             :     /// Not implemented
      76             :     AliMUONGeometryModuleTransformer();
      77             :     /// Not implemented
      78             :     AliMUONGeometryModuleTransformer(const AliMUONGeometryModuleTransformer& rhs);
      79             :     /// Not implemented
      80             :     AliMUONGeometryModuleTransformer& 
      81             :       operator = (const AliMUONGeometryModuleTransformer& rhs);
      82             : 
      83             :   private:
      84             :     // data members
      85             :     Int_t                 fModuleId;   ///< the module Id
      86             :     TString               fModuleName; ///< the module name
      87             :     TString               fVolumePath; ///< \brief the full path of aligned module volume
      88             :                                        /// or envelope in geometry
      89             :     TGeoHMatrix*          fTransformation;///< \brief the module transformation wrt to top
      90             :                                           /// volume (world)
      91             :     AliMpExMap*           fDetElements;   ///< detection elements
      92             :  
      93         742 :   ClassDef(AliMUONGeometryModuleTransformer,3) // MUON geometry module class
      94             : };
      95             : 
      96             : // inline functions
      97             : 
      98             : /// Set the full path of aligned module volume or envelope in geometry
      99             : inline void 
     100             : AliMUONGeometryModuleTransformer::SetVolumePath(const TString& volumePath)
     101          80 : { fVolumePath = volumePath; }
     102             : 
     103             : /// Return module ID
     104             : inline Int_t  
     105             : AliMUONGeometryModuleTransformer::GetModuleId() const
     106       47344 : { return fModuleId; }
     107             : 
     108             : /// Return module name
     109             : inline TString
     110             : AliMUONGeometryModuleTransformer::GetModuleName() const
     111           0 : { return fModuleName; }
     112             : 
     113             : /// Return the full path of aligned module volume or envelope in geometry
     114             : inline TString 
     115             : AliMUONGeometryModuleTransformer::GetVolumePath() const
     116         576 : { return fVolumePath; }
     117             : 
     118             : /// Return the module transformation wrt to the top volume (world)
     119             : inline const TGeoHMatrix* 
     120             : AliMUONGeometryModuleTransformer::GetTransformation() const 
     121         536 : { return fTransformation; }
     122             : 
     123             : /// Return detection elements associated with this module
     124             : inline  AliMpExMap* 
     125             : AliMUONGeometryModuleTransformer::GetDetElementStore() const
     126        1152 : { return fDetElements; }
     127             : 
     128             : #endif //ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H

Generated by: LCOV version 1.11