]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONGeometryConstituent.h
Changes to compile with Root6 on macosx64
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryConstituent.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 // Revision of includes 07/05/2004
6 //
7 /// \ingroup geometry
8 /// \class AliMUONGeometryConstituent
9 /// \brief Helper class for definititon of an assembly of volumes.
10 ///
11 /// \author Ivana Hrivnacova, IPN Orsay
12
13 #ifndef ALI_MUON_GEOMETRY_CONSTITUENT_H
14 #define ALI_MUON_GEOMETRY_CONSTITUENT_H
15
16 #include <TNamed.h>
17
18 class TGeoTranslation;
19 class TGeoRotation;
20 class TGeoCombiTrans;
21 class TObjArray;
22
23 class AliMUONGeometryConstituent : public TNamed
24 {
25   public:
26     AliMUONGeometryConstituent(const TString& name, Int_t copyNo, 
27                          Int_t npar, Double_t* param); 
28     AliMUONGeometryConstituent(const TString& name, Int_t copyNo, 
29                          const TGeoTranslation& translation,
30                          Int_t npar, Double_t* param); 
31     AliMUONGeometryConstituent(const TString& name, Int_t copyNo, 
32                          const TGeoTranslation& translation, 
33                          const TGeoRotation& rotation,
34                          Int_t npar, Double_t* param);
35      AliMUONGeometryConstituent(const TString& name, Int_t copyNo, 
36                          const TGeoCombiTrans& transform,
37                          Int_t npar, Double_t* param);
38    AliMUONGeometryConstituent();
39     virtual ~AliMUONGeometryConstituent();
40
41     // get methods
42     Int_t                  GetCopyNo() const;  
43     Int_t                  GetNpar() const;
44     Double_t*              GetParam() const;
45     const TGeoCombiTrans*  GetTransformation() const;
46
47   protected:
48     /// Not implemented
49     AliMUONGeometryConstituent(const AliMUONGeometryConstituent& rhs);
50     /// Not implemented
51     AliMUONGeometryConstituent& operator = (const AliMUONGeometryConstituent& rhs);
52
53   private:
54     Int_t            fCopyNo;        ///< copy number
55     Int_t            fNpar;          ///< number of shape parameters
56     
57     /// shape parameters
58     Double_t*        fParam;         //[fNpar] shape parameters
59
60     TGeoCombiTrans*  fTransformation;///< \brief the constituent transformation
61                                      ///  wrt to the envelope
62  
63   ClassDef(AliMUONGeometryConstituent,1) // MUON chamber geometry base class
64 };
65
66 // inline functions
67
68 /// Return copy number
69 inline Int_t AliMUONGeometryConstituent::GetCopyNo() const
70 { return fCopyNo; }  
71
72 /// Return number of shape parameters
73 inline Int_t AliMUONGeometryConstituent::GetNpar() const
74 { return fNpar; }
75
76 /// Return the array of shape parameters
77 inline Double_t* AliMUONGeometryConstituent::GetParam() const
78 { return fParam; }
79
80 /// Return the constituent transformation wrt to the envelope
81 inline const TGeoCombiTrans* AliMUONGeometryConstituent::GetTransformation() const 
82 { return fTransformation; }
83
84 #endif //ALI_MUON_GEOMETRY_CONSTITUENT_H