get tables from the aliroot directory if they are not in the current one
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryEnvelope.h
CommitLineData
d1cd2474 1// $Id$
2//
3// Class AliMUONGeometryEnvelope
4// -----------------------------
5// Helper class for definititon an assembly of volumes.
6//
7// Author: Ivana Hrivnacova, IPN Orsay
8
9#ifndef ALI_MUON_GEOMETRY_ENVELOPE_H
10#define ALI_MUON_GEOMETRY_ENVELOPE_H
11
12#include <TNamed.h>
13
14class TGeoTranslation;
15class TGeoRotation;
16class TGeoCombiTrans;
17class TObjArray;
18
19class AliMUONGeometryEnvelope : public TNamed
20{
21 public:
6b82c1f0 22 AliMUONGeometryEnvelope(const TString& name, Bool_t isVirtual,
23 const char* only);
24 AliMUONGeometryEnvelope(const TString& name, Int_t copyNo,
25 const char* only);
d1cd2474 26 AliMUONGeometryEnvelope();
27 AliMUONGeometryEnvelope(const AliMUONGeometryEnvelope& rhs);
28 virtual ~AliMUONGeometryEnvelope();
29
30 // operators
31 AliMUONGeometryEnvelope& operator = (const AliMUONGeometryEnvelope& rhs);
32
33 // methods
34 void AddConstituent(const TString& name, Int_t copyNo);
35 void AddConstituent(const TString& name, Int_t copyNo,
36 const TGeoTranslation& translation);
37 void AddConstituent(const TString& name, Int_t copyNo,
38 const TGeoTranslation& translation,
39 const TGeoRotation& rotation);
40
41 void AddConstituentParam(const TString& name, Int_t copyNo,
42 Int_t npar, Double_t* param);
43 void AddConstituentParam(const TString& name, Int_t copyNo,
44 const TGeoTranslation& translation,
45 Int_t npar, Double_t* param);
46 void AddConstituentParam(const TString& name, Int_t copyNo,
47 const TGeoTranslation& translation,
48 const TGeoRotation& rotation,
49 Int_t npar, Double_t* param);
50
51 void SetTranslation(const TGeoTranslation& translation);
52 void SetRotation(const TGeoRotation& rotation);
53
54 // get methods
55 Bool_t IsVirtual() const;
6b82c1f0 56 Bool_t IsMANY() const;
d1cd2474 57 Int_t GetCopyNo() const;
58 const TGeoCombiTrans* GetTransformation() const;
59 const TObjArray* GetConstituents() const;
60
61 private:
62 Bool_t fIsVirtual; // true if envelope is not represented
63 // by a real volume
6b82c1f0 64 Bool_t fIsMANY; // true if envelope is placed with
65 // MANY option
d1cd2474 66 Int_t fCopyNo; // copy number
67 // (only non virtual envelope can have
68 // more than one copy)
69 TGeoCombiTrans* fTransformation;// the envelope transformation wrt to the
70 // mother frame (the chamber position)
71 TObjArray* fConstituents; // the constituents names and transformations
72 // wrt to the envelope position
73
74 ClassDef(AliMUONGeometryEnvelope,1) // MUON chamber geometry base class
75};
76
77// inline functions
78
79inline Bool_t AliMUONGeometryEnvelope::IsVirtual() const
80{ return fIsVirtual; }
81
6b82c1f0 82inline Bool_t AliMUONGeometryEnvelope::IsMANY() const
83{ return fIsMANY; }
84
d1cd2474 85inline Int_t AliMUONGeometryEnvelope::GetCopyNo() const
86{ return fCopyNo; }
87
88inline const TGeoCombiTrans* AliMUONGeometryEnvelope::GetTransformation() const
89{ return fTransformation; }
90
91inline const TObjArray* AliMUONGeometryEnvelope::GetConstituents() const
92{ return fConstituents; }
93
94#endif //ALI_MUON_GEOMETRY_ENVELOPE_H