3 // Class AliMUONGeometryEnvelope
4 // -----------------------------
5 // Helper class for definititon an assembly of volumes.
7 // Author: Ivana Hrivnacova, IPN Orsay
9 #ifndef ALI_MUON_GEOMETRY_ENVELOPE_H
10 #define ALI_MUON_GEOMETRY_ENVELOPE_H
14 class TGeoTranslation;
19 class AliMUONGeometryEnvelope : public TNamed
22 AliMUONGeometryEnvelope(const TString& name, Bool_t isVirtual);
23 AliMUONGeometryEnvelope(const TString& name, Int_t copyNo);
24 AliMUONGeometryEnvelope();
25 AliMUONGeometryEnvelope(const AliMUONGeometryEnvelope& rhs);
26 virtual ~AliMUONGeometryEnvelope();
29 AliMUONGeometryEnvelope& operator = (const AliMUONGeometryEnvelope& rhs);
32 void AddConstituent(const TString& name, Int_t copyNo);
33 void AddConstituent(const TString& name, Int_t copyNo,
34 const TGeoTranslation& translation);
35 void AddConstituent(const TString& name, Int_t copyNo,
36 const TGeoTranslation& translation,
37 const TGeoRotation& rotation);
39 void AddConstituentParam(const TString& name, Int_t copyNo,
40 Int_t npar, Double_t* param);
41 void AddConstituentParam(const TString& name, Int_t copyNo,
42 const TGeoTranslation& translation,
43 Int_t npar, Double_t* param);
44 void AddConstituentParam(const TString& name, Int_t copyNo,
45 const TGeoTranslation& translation,
46 const TGeoRotation& rotation,
47 Int_t npar, Double_t* param);
49 void SetTranslation(const TGeoTranslation& translation);
50 void SetRotation(const TGeoRotation& rotation);
53 Bool_t IsVirtual() const;
54 Int_t GetCopyNo() const;
55 const TGeoCombiTrans* GetTransformation() const;
56 const TObjArray* GetConstituents() const;
59 Bool_t fIsVirtual; // true if envelope is not represented
61 Int_t fCopyNo; // copy number
62 // (only non virtual envelope can have
63 // more than one copy)
64 TGeoCombiTrans* fTransformation;// the envelope transformation wrt to the
65 // mother frame (the chamber position)
66 TObjArray* fConstituents; // the constituents names and transformations
67 // wrt to the envelope position
69 ClassDef(AliMUONGeometryEnvelope,1) // MUON chamber geometry base class
74 inline Bool_t AliMUONGeometryEnvelope::IsVirtual() const
75 { return fIsVirtual; }
77 inline Int_t AliMUONGeometryEnvelope::GetCopyNo() const
80 inline const TGeoCombiTrans* AliMUONGeometryEnvelope::GetTransformation() const
81 { return fTransformation; }
83 inline const TObjArray* AliMUONGeometryEnvelope::GetConstituents() const
84 { return fConstituents; }
86 #endif //ALI_MUON_GEOMETRY_ENVELOPE_H