/// \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_TRANSFORMER_H
#define ALI_MUON_GEOMETRY_MODULE_TRANSFORMER_H
#include <TString.h>
class AliMUONGeometryDetElement;
-class AliMUONGeometryStore;
+
+class AliMpExMap;
class TGeoTranslation;
class TGeoRotation;
{
public:
AliMUONGeometryModuleTransformer(Int_t moduleId);
- AliMUONGeometryModuleTransformer();
+ AliMUONGeometryModuleTransformer(TRootIOCtor* /*ioCtor*/);
virtual ~AliMUONGeometryModuleTransformer();
+ // static methods
+ static TString GetModuleNamePrefix();
+ static TString GetModuleName(Int_t moduleId);
+
// methods
void Global2Local(Int_t detElemId,
Float_t xg, Float_t yg, Float_t zg,
// get methods
Int_t GetModuleId() const;
+ TString GetModuleName() const;
TString GetVolumePath() const;
TString GetVolumeName() const;
TString GetMotherVolumeName() const;
const TGeoHMatrix* GetTransformation() const;
-
- AliMUONGeometryStore* GetDetElementStore() const;
- AliMUONGeometryDetElement* GetDetElement(
- Int_t detElemId, Bool_t warn = true) 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
+ /// 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
- TString fVolumePath; // the full path of aligned module volume
- // or envelope in geometry
- TGeoHMatrix* 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,3) // MUON geometry module class
};
// inline functions
+/// 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; }
+/// 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*
+/// Return detection elements associated with this module
+inline AliMpExMap*
AliMUONGeometryModuleTransformer::GetDetElementStore() const
{ return fDetElements; }