]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONGeometryEnvelope.h
No need to liknk with lhapdf, pythia6 and microcern libraries
[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
692de412 6
7/// \ingroup geometry
8/// \class AliMUONGeometryEnvelope
9/// \brief Geometry envelope helper class
10///
11/// Helper class for definititon of an assembly of volumes.
12///
a9aad96e 13/// \author Ivana Hrivnacova, IPN Orsay
d1cd2474 14
15#ifndef ALI_MUON_GEOMETRY_ENVELOPE_H
16#define ALI_MUON_GEOMETRY_ENVELOPE_H
17
18#include <TNamed.h>
19
20class TGeoTranslation;
21class TGeoRotation;
22class TGeoCombiTrans;
23class TObjArray;
24
25class AliMUONGeometryEnvelope : public TNamed
26{
27 public:
c0b51181 28 AliMUONGeometryEnvelope(const TString& name, Int_t id,
29 Bool_t isVirtual, const char* only);
30 AliMUONGeometryEnvelope(const TString& name, Int_t id,
31 Int_t copyNo, const char* only);
d1cd2474 32 AliMUONGeometryEnvelope();
d1cd2474 33 virtual ~AliMUONGeometryEnvelope();
d1cd2474 34
35 // methods
36 void AddConstituent(const TString& name, Int_t copyNo);
37 void AddConstituent(const TString& name, Int_t copyNo,
38 const TGeoTranslation& translation);
39 void AddConstituent(const TString& name, Int_t copyNo,
40 const TGeoTranslation& translation,
41 const TGeoRotation& rotation);
c0b51181 42 void AddConstituent(const TString& name, Int_t copyNo,
43 const TGeoCombiTrans& transform);
d1cd2474 44
45 void AddConstituentParam(const TString& name, Int_t copyNo,
46 Int_t npar, Double_t* param);
47 void AddConstituentParam(const TString& name, Int_t copyNo,
48 const TGeoTranslation& translation,
49 Int_t npar, Double_t* param);
50 void AddConstituentParam(const TString& name, Int_t copyNo,
51 const TGeoTranslation& translation,
52 const TGeoRotation& rotation,
53 Int_t npar, Double_t* param);
c0b51181 54 void AddConstituentParam(const TString& name, Int_t copyNo,
55 const TGeoCombiTrans& transform,
56 Int_t npar, Double_t* param);
d1cd2474 57
58 void SetTranslation(const TGeoTranslation& translation);
59 void SetRotation(const TGeoRotation& rotation);
c0b51181 60 void SetTransform(const TGeoCombiTrans& transform);
d1cd2474 61
62 // get methods
63 Bool_t IsVirtual() const;
6b82c1f0 64 Bool_t IsMANY() const;
d1cd2474 65 Int_t GetCopyNo() const;
66 const TGeoCombiTrans* GetTransformation() const;
67 const TObjArray* GetConstituents() const;
68
30178c30 69 protected:
71a2d3aa 70 /// Not implemented
30178c30 71 AliMUONGeometryEnvelope(const AliMUONGeometryEnvelope& rhs);
71a2d3aa 72 /// Not implemented
30178c30 73 AliMUONGeometryEnvelope& operator = (const AliMUONGeometryEnvelope& rhs);
74
d1cd2474 75 private:
829425a5 76 Bool_t fIsVirtual; ///< \brief true if envelope is not represented
77 /// by a real volume
78 Bool_t fIsMANY; ///< \brief true if envelope is placed with
79 /// MANY option
80 Int_t fCopyNo; ///< \brief copy number
81 /// (only non virtual envelope can have
82 /// more than one copy)
83 TGeoCombiTrans* fTransformation;///< \brief the envelope transformation wrt to the
84 /// mother frame (the chamber position)
85 TObjArray* fConstituents; ///< \brief the constituents names and transformations
86 /// wrt to the envelope position
d1cd2474 87
88 ClassDef(AliMUONGeometryEnvelope,1) // MUON chamber geometry base class
89};
90
91// inline functions
92
a9aad96e 93/// Return true if envelope is virtual
d1cd2474 94inline Bool_t AliMUONGeometryEnvelope::IsVirtual() const
95{ return fIsVirtual; }
96
a9aad96e 97/// Return true if envelope is placed with MANY option
6b82c1f0 98inline Bool_t AliMUONGeometryEnvelope::IsMANY() const
99{ return fIsMANY; }
100
a9aad96e 101/// Return copy number
d1cd2474 102inline Int_t AliMUONGeometryEnvelope::GetCopyNo() const
103{ return fCopyNo; }
104
a9aad96e 105/// Return the envelope transformation wrt to the mother frame
106/// (the chamber position)
d1cd2474 107inline const TGeoCombiTrans* AliMUONGeometryEnvelope::GetTransformation() const
108{ return fTransformation; }
109
a9aad96e 110/// Return the array of constituents names and transformations
111/// wrt to the envelope position
d1cd2474 112inline const TObjArray* AliMUONGeometryEnvelope::GetConstituents() const
113{ return fConstituents; }
114
115#endif //ALI_MUON_GEOMETRY_ENVELOPE_H