]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONGeometryDetElement.h
Macro for checking dimuon trigger efficiency (Fabien)
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryDetElement.h
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 Detection element
9 ///
10 /// The class defines the detection element.
11 ///
12 /// Author: Ivana Hrivnacova, IPN Orsay
13
14 #ifndef ALI_MUON_GEOMETRY_DET_ELEMENT_H
15 #define ALI_MUON_GEOMETRY_DET_ELEMENT_H
16
17 #include <TObject.h>
18
19 class TGeoCombiTrans;
20
21 class AliMUONGeometryDetElement : public TObject
22 {
23   public:
24     AliMUONGeometryDetElement(Int_t detElemId,
25                               const TString& alignedVolume, 
26                               const TGeoCombiTrans& relTransform);
27     AliMUONGeometryDetElement();
28     virtual ~AliMUONGeometryDetElement();
29
30     // methods
31     void Global2Local(
32                  Float_t xg, Float_t yg, Float_t zg, 
33                  Float_t& xl, Float_t& yl, Float_t& zl) const;
34     void Global2Local(
35                  Double_t xg, Double_t yg, Double_t zg, 
36                  Double_t& xl, Double_t& yl, Double_t& zl) const;
37
38     void Local2Global(
39                  Float_t xl, Float_t yl, Float_t zl, 
40                  Float_t& xg, Float_t& yg, Float_t& zg) const;
41     void Local2Global(
42                  Double_t xl, Double_t yl, Double_t zl, 
43                  Double_t& xg, Double_t& yg, Double_t& zg) const;
44     void PrintLocalTransform() const;
45     void PrintGlobalTransform() const;
46
47     // set methods
48     void SetGlobalTransformation(const TGeoCombiTrans& transform);
49     
50     // get methods
51     Int_t  GetId() const;
52     const TString&        GetAlignedVolume() const;
53     const TGeoCombiTrans* GetLocalTransformation() const;
54     const TGeoCombiTrans* GetGlobalTransformation() const;
55
56   protected:
57     AliMUONGeometryDetElement(const AliMUONGeometryDetElement& rhs);
58
59     // operators  
60     AliMUONGeometryDetElement& operator = (const AliMUONGeometryDetElement& rhs);
61   
62   private:
63     // methods
64     void PrintTransform(const TGeoCombiTrans* transform) const;
65   
66     // data members
67     TString          fAlignedVolume; // the name of aligned volume or envelope
68                                       // representing this detection element
69     TGeoCombiTrans*  fLocalTransformation;  // the transformation wrt module
70     TGeoCombiTrans*  fGlobalTransformation; // the transformation wrt world
71
72   ClassDef(AliMUONGeometryDetElement,1) // MUON transformations store
73 };
74
75 // inline functions
76
77 inline Int_t AliMUONGeometryDetElement::GetId() const
78 { return GetUniqueID(); }
79
80 inline const TString& AliMUONGeometryDetElement::GetAlignedVolume() const
81 { return fAlignedVolume; }
82
83 inline const TGeoCombiTrans* 
84 AliMUONGeometryDetElement::GetLocalTransformation() const
85 { return fLocalTransformation; }
86
87 inline const TGeoCombiTrans* 
88 AliMUONGeometryDetElement::GetGlobalTransformation() const
89 { return fGlobalTransformation; }
90
91 #endif //ALI_MUON_GEOMETRY_DET_ELEMENT_H