]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONGeometryEnvelope.h
Addapting AliMUONEventReconstructor to AliLog framework (Gines)
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryEnvelope.h
CommitLineData
30178c30 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
d1cd2474 4// $Id$
30178c30 5// Revision of includes 07/05/2004
d1cd2474 6//
7// Class AliMUONGeometryEnvelope
8// -----------------------------
9// Helper class for definititon an assembly of volumes.
10//
11// Author: Ivana Hrivnacova, IPN Orsay
12
13#ifndef ALI_MUON_GEOMETRY_ENVELOPE_H
14#define ALI_MUON_GEOMETRY_ENVELOPE_H
15
16#include <TNamed.h>
17
18class TGeoTranslation;
19class TGeoRotation;
20class TGeoCombiTrans;
21class TObjArray;
22
23class AliMUONGeometryEnvelope : public TNamed
24{
25 public:
c0b51181 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);
d1cd2474 30 AliMUONGeometryEnvelope();
d1cd2474 31 virtual ~AliMUONGeometryEnvelope();
d1cd2474 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);
c0b51181 40 void AddConstituent(const TString& name, Int_t copyNo,
41 const TGeoCombiTrans& transform);
d1cd2474 42
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);
c0b51181 52 void AddConstituentParam(const TString& name, Int_t copyNo,
53 const TGeoCombiTrans& transform,
54 Int_t npar, Double_t* param);
d1cd2474 55
56 void SetTranslation(const TGeoTranslation& translation);
57 void SetRotation(const TGeoRotation& rotation);
c0b51181 58 void SetTransform(const TGeoCombiTrans& transform);
d1cd2474 59
60 // get methods
61 Bool_t IsVirtual() const;
6b82c1f0 62 Bool_t IsMANY() const;
d1cd2474 63 Int_t GetCopyNo() const;
64 const TGeoCombiTrans* GetTransformation() const;
65 const TObjArray* GetConstituents() const;
66
30178c30 67 protected:
68 AliMUONGeometryEnvelope(const AliMUONGeometryEnvelope& rhs);
69
70 // operators
71 AliMUONGeometryEnvelope& operator = (const AliMUONGeometryEnvelope& rhs);
72
d1cd2474 73 private:
74 Bool_t fIsVirtual; // true if envelope is not represented
75 // by a real volume
6b82c1f0 76 Bool_t fIsMANY; // true if envelope is placed with
77 // MANY option
d1cd2474 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
85
86 ClassDef(AliMUONGeometryEnvelope,1) // MUON chamber geometry base class
87};
88
89// inline functions
90
91inline Bool_t AliMUONGeometryEnvelope::IsVirtual() const
92{ return fIsVirtual; }
93
6b82c1f0 94inline Bool_t AliMUONGeometryEnvelope::IsMANY() const
95{ return fIsMANY; }
96
d1cd2474 97inline Int_t AliMUONGeometryEnvelope::GetCopyNo() const
98{ return fCopyNo; }
99
100inline const TGeoCombiTrans* AliMUONGeometryEnvelope::GetTransformation() const
101{ return fTransformation; }
102
103inline const TObjArray* AliMUONGeometryEnvelope::GetConstituents() const
104{ return fConstituents; }
105
106#endif //ALI_MUON_GEOMETRY_ENVELOPE_H