/// \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 <TObject.h>
#include <TString.h>
+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:
AliMUONGeometryModuleTransformer(Int_t moduleId);
- AliMUONGeometryModuleTransformer();
+ AliMUONGeometryModuleTransformer(TRootIOCtor* /*ioCtor*/);
virtual ~AliMUONGeometryModuleTransformer();
+ // static methods
+ static const TString& GetModuleNamePrefix();
+ static TString GetModuleName(Int_t moduleId);
+
// methods
void Global2Local(Int_t detElemId,
Float_t xg, Float_t yg, Float_t zg,
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();
+ /// Not implemented
AliMUONGeometryModuleTransformer(const AliMUONGeometryModuleTransformer& rhs);
- // operators
- AliMUONGeometryModuleTransformer& operator = (const AliMUONGeometryModuleTransformer& rhs);
+ /// Not implemented
+ AliMUONGeometryModuleTransformer&
+ operator = (const AliMUONGeometryModuleTransformer& rhs);
private:
// 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
+/// 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