]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUONGeometryDetElement.h
added new class to Makefile
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryDetElement.h
... / ...
CommitLineData
1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
4// $Id$
5
6/// \ingroup geometry
7/// \class AliMUONGeometryDetElement
8/// \brief Class for storing detection element transformations
9///
10/// Author: Ivana Hrivnacova, IPN Orsay
11
12#ifndef ALI_MUON_GEOMETRY_DET_ELEMENT_H
13#define ALI_MUON_GEOMETRY_DET_ELEMENT_H
14
15#include <TObject.h>
16#include <TString.h>
17
18class TGeoHMatrix;
19
20class AliMUONGeometryDetElement : public TObject
21{
22 public:
23 AliMUONGeometryDetElement(Int_t detElemId,
24 const TString& volumePath);
25 AliMUONGeometryDetElement();
26 virtual ~AliMUONGeometryDetElement();
27
28 // methods
29 void Global2Local(
30 Float_t xg, Float_t yg, Float_t zg,
31 Float_t& xl, Float_t& yl, Float_t& zl) const;
32 void Global2Local(
33 Double_t xg, Double_t yg, Double_t zg,
34 Double_t& xl, Double_t& yl, Double_t& zl) const;
35
36 void Local2Global(
37 Float_t xl, Float_t yl, Float_t zl,
38 Float_t& xg, Float_t& yg, Float_t& zg) const;
39 void Local2Global(
40 Double_t xl, Double_t yl, Double_t zl,
41 Double_t& xg, Double_t& yg, Double_t& zg) const;
42 void PrintLocalTransform() const;
43 void PrintGlobalTransform() const;
44
45 // set methods
46 void SetLocalTransformation(const TGeoHMatrix& transform);
47 void SetGlobalTransformation(const TGeoHMatrix& transform);
48 void SetVolumePath(const TString& volumePath);
49
50 // get methods
51 Int_t GetId() const;
52 TString GetVolumePath() const;
53 TString GetVolumeName() const;
54 Int_t GetVolumeCopyNo() const;
55 const TGeoHMatrix* GetLocalTransformation() const;
56 const TGeoHMatrix* GetGlobalTransformation() const;
57
58 protected:
59 AliMUONGeometryDetElement(const AliMUONGeometryDetElement& rhs);
60
61 // operators
62 AliMUONGeometryDetElement& operator = (const AliMUONGeometryDetElement& rhs);
63
64 private:
65 // methods
66 void PrintTransform(const TGeoHMatrix* transform) const;
67
68 // data members
69 TString fVolumePath; // the full path of aligned volume or envelope
70 // in geometry
71 TGeoHMatrix* fLocalTransformation; // the transformation wrt module
72 TGeoHMatrix* fGlobalTransformation; // the transformation wrt world
73
74 ClassDef(AliMUONGeometryDetElement,2) // MUON det element transformations
75};
76
77// inline functions
78
79inline void AliMUONGeometryDetElement::SetVolumePath(const TString& volumePath)
80{ fVolumePath = volumePath; }
81
82inline Int_t AliMUONGeometryDetElement::GetId() const
83{ return GetUniqueID(); }
84
85inline TString AliMUONGeometryDetElement::GetVolumePath() const
86{ return fVolumePath; }
87
88inline const TGeoHMatrix*
89AliMUONGeometryDetElement::GetLocalTransformation() const
90{ return fLocalTransformation; }
91
92inline const TGeoHMatrix*
93AliMUONGeometryDetElement::GetGlobalTransformation() const
94{ return fGlobalTransformation; }
95
96#endif //ALI_MUON_GEOMETRY_DET_ELEMENT_H