* See cxx source for full Copyright notice */
// $Id$
-//
-// Class AliMUONGeometryDetElement
-// --------------------------------
-// The class defines the detection element.
-//
-// Author: Ivana Hrivnacova, IPN Orsay
+
+/// \ingroup geometry
+/// \class AliMUONGeometryDetElement
+/// \brief Class for storing detection element transformations
+///
+/// \author Ivana Hrivnacova, IPN Orsay
#ifndef ALI_MUON_GEOMETRY_DET_ELEMENT_H
#define ALI_MUON_GEOMETRY_DET_ELEMENT_H
#include <TObject.h>
+#include <TString.h>
-class TGeoCombiTrans;
+class TGeoHMatrix;
class AliMUONGeometryDetElement : public TObject
{
public:
- AliMUONGeometryDetElement(Int_t detElemId,
- const TString& alignedVolume,
- const TGeoCombiTrans& relTransform);
- AliMUONGeometryDetElement();
+ AliMUONGeometryDetElement(Int_t detElemId);
+ AliMUONGeometryDetElement(Int_t detElemId, const TString& volumePath);
+ AliMUONGeometryDetElement(TRootIOCtor* /*ioCtor*/);
virtual ~AliMUONGeometryDetElement();
+ // static methods
+ static TString GetDENamePrefix();
+ static TString GetDEName(Int_t detElemId);
+
// methods
void Global2Local(
Float_t xg, Float_t yg, Float_t zg,
void PrintGlobalTransform() const;
// set methods
- void SetGlobalTransformation(const TGeoCombiTrans& transform);
+ void SetLocalTransformation(const TGeoHMatrix& transform);
+ void SetGlobalTransformation(const TGeoHMatrix& transform);
+ void SetVolumePath(const TString& volumePath);
// get methods
- Int_t GetId() const;
- const TString& GetAlignedVolume() const;
- const TGeoCombiTrans* GetLocalTransformation() const;
- const TGeoCombiTrans* GetGlobalTransformation() const;
+ Int_t GetId() const;
+ TString GetDEName() const;
+ TString GetVolumePath() const;
+ TString GetVolumeName() const;
+ Int_t GetVolumeCopyNo() const;
+ const TGeoHMatrix* GetLocalTransformation() const;
+ const TGeoHMatrix* GetGlobalTransformation() const;
protected:
+ /// Not implemented
+ AliMUONGeometryDetElement();
+ /// Not implemented
AliMUONGeometryDetElement(const AliMUONGeometryDetElement& rhs);
-
- // operators
+ /// Not implemented
AliMUONGeometryDetElement& operator = (const AliMUONGeometryDetElement& rhs);
private:
// methods
- void PrintTransform(const TGeoCombiTrans* transform) const;
-
+ void PrintTransform(const TGeoHMatrix* transform) const;
+
+ // static data members
+ static const TString fgkDENamePrefix;///< Geometry module name prefix
+
// data members
- TString fAlignedVolume; // the name of aligned volume or envelope
- // representing this detection element
- TGeoCombiTrans* fLocalTransformation; // the transformation wrt module
- TGeoCombiTrans* fGlobalTransformation; // the transformation wrt world
+ TString fDEName; ///< detection element name
+ TString fVolumePath; ///< \brief the full path of aligned volume
+ /// or envelope in geometry
+ TGeoHMatrix* fLocalTransformation; ///< the transformation wrt module
+ TGeoHMatrix* fGlobalTransformation; ///< the transformation wrt world
- ClassDef(AliMUONGeometryDetElement,1) // MUON transformations store
+ ClassDef(AliMUONGeometryDetElement,2) // MUON det element transformations
};
// inline functions
+/// Return module name prefix
+inline TString AliMUONGeometryDetElement::GetDENamePrefix()
+{ return fgkDENamePrefix; }
+
+/// Set the full path of the aligned volume or envelope in geometry
+inline void AliMUONGeometryDetElement::SetVolumePath(const TString& volumePath)
+{ fVolumePath = volumePath; }
+
+/// Return detection element ID
inline Int_t AliMUONGeometryDetElement::GetId() const
{ return GetUniqueID(); }
-inline const TString& AliMUONGeometryDetElement::GetAlignedVolume() const
-{ return fAlignedVolume; }
+/// Return detection element ID
+inline TString AliMUONGeometryDetElement::GetDEName() const
+{ return fDEName; }
+
+/// Return the full path of the aligned volume or envelope in geometry
+inline TString AliMUONGeometryDetElement::GetVolumePath() const
+{ return fVolumePath; }
-inline const TGeoCombiTrans*
+/// Return the detection element transformation wrt module
+inline const TGeoHMatrix*
AliMUONGeometryDetElement::GetLocalTransformation() const
{ return fLocalTransformation; }
-inline const TGeoCombiTrans*
+/// Return the detection element transformation wrt world
+inline const TGeoHMatrix*
AliMUONGeometryDetElement::GetGlobalTransformation() const
{ return fGlobalTransformation; }