1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // Revision of includes 07/05/2004
7 // Class AliMUONGeometryEnvelope
8 // -----------------------------
9 // Helper class for definititon an assembly of volumes.
11 // Author: Ivana Hrivnacova, IPN Orsay
13 #ifndef ALI_MUON_GEOMETRY_ENVELOPE_H
14 #define ALI_MUON_GEOMETRY_ENVELOPE_H
18 class TGeoTranslation;
23 class AliMUONGeometryEnvelope : public TNamed
26 AliMUONGeometryEnvelope(const TString& name, Int_t id,
27 Bool_t isVirtual, const char* only);
28 AliMUONGeometryEnvelope(const TString& name, Int_t id,
29 Int_t copyNo, const char* only);
30 AliMUONGeometryEnvelope();
31 virtual ~AliMUONGeometryEnvelope();
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 void AddConstituent(const TString& name, Int_t copyNo,
41 const TGeoCombiTrans& transform);
43 void AddConstituentParam(const TString& name, Int_t copyNo,
44 Int_t npar, Double_t* param);
45 void AddConstituentParam(const TString& name, Int_t copyNo,
46 const TGeoTranslation& translation,
47 Int_t npar, Double_t* param);
48 void AddConstituentParam(const TString& name, Int_t copyNo,
49 const TGeoTranslation& translation,
50 const TGeoRotation& rotation,
51 Int_t npar, Double_t* param);
52 void AddConstituentParam(const TString& name, Int_t copyNo,
53 const TGeoCombiTrans& transform,
54 Int_t npar, Double_t* param);
56 void SetTranslation(const TGeoTranslation& translation);
57 void SetRotation(const TGeoRotation& rotation);
58 void SetTransform(const TGeoCombiTrans& transform);
61 Bool_t IsVirtual() const;
62 Bool_t IsMANY() const;
63 Int_t GetCopyNo() const;
64 const TGeoCombiTrans* GetTransformation() const;
65 const TObjArray* GetConstituents() const;
68 AliMUONGeometryEnvelope(const AliMUONGeometryEnvelope& rhs);
71 AliMUONGeometryEnvelope& operator = (const AliMUONGeometryEnvelope& rhs);
74 Bool_t fIsVirtual; // true if envelope is not represented
76 Bool_t fIsMANY; // true if envelope is placed with
78 Int_t fCopyNo; // copy number
79 // (only non virtual envelope can have
80 // more than one copy)
81 TGeoCombiTrans* fTransformation;// the envelope transformation wrt to the
82 // mother frame (the chamber position)
83 TObjArray* fConstituents; // the constituents names and transformations
84 // wrt to the envelope position
86 ClassDef(AliMUONGeometryEnvelope,1) // MUON chamber geometry base class
91 inline Bool_t AliMUONGeometryEnvelope::IsVirtual() const
92 { return fIsVirtual; }
94 inline Bool_t AliMUONGeometryEnvelope::IsMANY() const
97 inline Int_t AliMUONGeometryEnvelope::GetCopyNo() const
100 inline const TGeoCombiTrans* AliMUONGeometryEnvelope::GetTransformation() const
101 { return fTransformation; }
103 inline const TObjArray* AliMUONGeometryEnvelope::GetConstituents() const
104 { return fConstituents; }
106 #endif //ALI_MUON_GEOMETRY_ENVELOPE_H