X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONGeometryModuleTransformer.h;h=12d3279c258a3883956d74529a539704a3425d8f;hb=69e406a75103fa07021c452da6ea770a8ed6b342;hp=f4544a15c2400a35abb72caf874c99ba4e476f15;hpb=b75f649bfd9ad2bceee3c2a0f5439105289f90e2;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONGeometryModuleTransformer.h b/MUON/AliMUONGeometryModuleTransformer.h index f4544a15c24..12d3279c258 100644 --- a/MUON/AliMUONGeometryModuleTransformer.h +++ b/MUON/AliMUONGeometryModuleTransformer.h @@ -6,29 +6,29 @@ /// \ingroup geometry /// \class AliMUONGeometryModuleTransformer -/// \brief Geometry transformationer for detector module +/// \brief Geometry transformer for a detector module /// -/// Class for definition of the detector module parameters -/// (the transformations of detection elements, mapping between -/// sensitive volumes and detection elements). +/// Class for definition of the transformation for a detector module +/// and its detection elements /// -/// Author: Ivana Hrivnacova, IPN Orsay +/// \author Ivana Hrivnacova, IPN Orsay -#ifndef ALI_MUON_GEOMETRY_MODULE_TRANSFORMS_H -#define ALI_MUON_GEOMETRY_MODULE_TRANSFORMS_H +#ifndef ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H +#define ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H #include #include +class AliMUONGeometryDetElement; + +class AliMpExMap; + class TGeoTranslation; class TGeoRotation; -class TGeoCombiTrans; +class TGeoHMatrix; class TObjArray; class TArrayI; -class AliMUONGeometryDetElement; -class AliMUONGeometryStore; - class AliMUONGeometryModuleTransformer : public TObject { public: @@ -36,6 +36,9 @@ class AliMUONGeometryModuleTransformer : public TObject AliMUONGeometryModuleTransformer(); virtual ~AliMUONGeometryModuleTransformer(); + // static methods + static TString GetModuleNamePrefix(); + // methods void Global2Local(Int_t detElemId, Float_t xg, Float_t yg, Float_t zg, @@ -52,40 +55,79 @@ class AliMUONGeometryModuleTransformer : public TObject Double_t& xg, Double_t& yg, Double_t& zg) const; // set methods - void SetTransformation(const TGeoCombiTrans& transform); + void SetTransformation(const TGeoHMatrix& transform); + void SetVolumePath(const TString& volumePath); // get methods - Int_t GetModuleId() const; - const TGeoCombiTrans* GetTransformation() const; + Int_t GetModuleId() const; + TString GetModuleName() const; + TString GetVolumePath() const; + TString GetVolumeName() const; + TString GetMotherVolumeName() const; - AliMUONGeometryStore* GetDetElementStore() const; - AliMUONGeometryDetElement* GetDetElement( - Int_t detElemId, Bool_t warn = true) const; + const TGeoHMatrix* GetTransformation() const; + AliMpExMap* GetDetElementStore() const; + AliMUONGeometryDetElement* + GetDetElement(Int_t detElemId, Bool_t warn = true) const; protected: + /// Not implemented AliMUONGeometryModuleTransformer(const AliMUONGeometryModuleTransformer& rhs); - // operators - AliMUONGeometryModuleTransformer& operator = (const AliMUONGeometryModuleTransformer& rhs); + /// Not implemented + AliMUONGeometryModuleTransformer& + operator = (const AliMUONGeometryModuleTransformer& rhs); private: + // static data members + static const TString fgkModuleNamePrefix; ///< Geometry module name prefix + // data members - Int_t fModuleId; // the module Id - TGeoCombiTrans* fTransformation;// the module transformation wrt to top - // volume - AliMUONGeometryStore* fDetElements; // detection elements + Int_t fModuleId; ///< the module Id + TString fModuleName; ///< the module name + TString fVolumePath; ///< \brief the full path of aligned module volume + /// or envelope in geometry + TGeoHMatrix* fTransformation;///< \brief the module transformation wrt to top + /// volume (world) + AliMpExMap* fDetElements; ///< detection elements - ClassDef(AliMUONGeometryModuleTransformer,2) // MUON geometry module class + ClassDef(AliMUONGeometryModuleTransformer,3) // MUON geometry module class }; // inline functions -inline Int_t AliMUONGeometryModuleTransformer::GetModuleId() const +/// Return module name prefix +inline TString +AliMUONGeometryModuleTransformer::GetModuleNamePrefix() +{ return fgkModuleNamePrefix; } + +/// Set the full path of aligned module volume or envelope in geometry +inline void +AliMUONGeometryModuleTransformer::SetVolumePath(const TString& volumePath) +{ fVolumePath = volumePath; } + +/// Return module ID +inline Int_t +AliMUONGeometryModuleTransformer::GetModuleId() const { return fModuleId; } -inline const TGeoCombiTrans* AliMUONGeometryModuleTransformer::GetTransformation() const +/// Return module name +inline TString +AliMUONGeometryModuleTransformer::GetModuleName() const +{ return fModuleName; } + +/// Return the full path of aligned module volume or envelope in geometry +inline TString +AliMUONGeometryModuleTransformer::GetVolumePath() const +{ return fVolumePath; } + +/// Return the module transformation wrt to the top volume (world) +inline const TGeoHMatrix* +AliMUONGeometryModuleTransformer::GetTransformation() const { return fTransformation; } -inline AliMUONGeometryStore* AliMUONGeometryModuleTransformer::GetDetElementStore() const +/// Return detection elements associated with this module +inline AliMpExMap* +AliMUONGeometryModuleTransformer::GetDetElementStore() const { return fDetElements; } -#endif //ALI_MUON_GEOMETRY_MODULE_PARAM_H +#endif //ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H