]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONChamberGeometry.h
Using TGeo as default transport package
[u/mrichter/AliRoot.git] / MUON / AliMUONChamberGeometry.h
CommitLineData
30178c30 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
4/* $Id$ */
5// Revision of includes 07/05/2004
6
d1cd2474 7//
8// Class AliMUONChamberGeometry
9// -----------------------------
10// Class for definititon of the MUON chamber positions in ALIC.
11//
12// Author: Ivana Hrivnacova, IPN Orsay
13
14#ifndef ALI_MUON_CHAMBER_GEOMETRY_H
15#define ALI_MUON_CHAMBER_GEOMETRY_H
16
17#include <TObject.h>
87894cc7 18#include <TString.h>
d1cd2474 19
20class TGeoTranslation;
21class TGeoRotation;
22class TGeoCombiTrans;
23class TObjArray;
24class TArrayI;
25
26class AliMUONChamber;
27class AliMUONGeometryEnvelope;
87894cc7 28class AliMUONGeometryEnvelopeStore;
29class AliMUONGeometryTransformStore;
30class AliMUONGeometrySVMap;
d1cd2474 31
32class AliMUONChamberGeometry : public TObject
33{
34 public:
35 AliMUONChamberGeometry(Int_t chamberId);
36 AliMUONChamberGeometry();
d1cd2474 37 virtual ~AliMUONChamberGeometry();
38
d1cd2474 39 // methods
d1cd2474 40 void SetMotherVolume(const TString& motherVolumeName);
41 void SetTranslation(const TGeoTranslation& translation);
42 void SetRotation(const TGeoRotation& rotation);
43
44 void SetSensitiveVolume(Int_t volId);
45 void SetSensitiveVolume(const TString& name);
87894cc7 46 void SetAlign(Bool_t align);
47
d1cd2474 48 // get methods
49 TString GetMotherVolume() const;
87894cc7 50 const TGeoCombiTrans* GetTransformation() const;
51 AliMUONGeometryEnvelopeStore* GetEnvelopeStore() const;
52 AliMUONGeometryTransformStore* GetTransformStore() const;
53 AliMUONGeometrySVMap* GetSVMap() const;
d1cd2474 54 Bool_t IsSensitiveVolume(Int_t volId) const;
87894cc7 55 Bool_t IsSensitiveVolume(const TString& volName) const;
56//
57//Int_t GetDEVolId(Int_t svVolId) const;
d1cd2474 58
30178c30 59 protected:
60 AliMUONChamberGeometry(const AliMUONChamberGeometry& rhs);
61 // operators
62 AliMUONChamberGeometry& operator = (const AliMUONChamberGeometry& rhs);
63
d1cd2474 64 private:
65 // methods
87894cc7 66 Int_t GetSVIndex(Int_t svVolId) const;
d1cd2474 67
68 // data members
69 Int_t fChamberId; // the chamber Id
70 TString fMotherVolume; // mother volume name
87894cc7 71 Int_t fNofSVs; // number of sensitive volumes
72 TArrayI* fSVVolumeIds; // densitive volumes IDs
d1cd2474 73 TGeoCombiTrans* fTransformation;// the chamber transformation wrt to mother
74 // volume
87894cc7 75 AliMUONGeometryTransformStore* fDETransforms; // det elements transformations
76 AliMUONGeometryEnvelopeStore* fEnvelopes; // envelopes
77 AliMUONGeometrySVMap* fSVMap; // sensitive volumes map
d1cd2474 78
118f308a 79 ClassDef(AliMUONChamberGeometry,2) // MUON chamber geometry base class
d1cd2474 80};
81
82// inline functions
83
87894cc7 84inline void
85AliMUONChamberGeometry::SetMotherVolume(const TString& motherVolumeName)
d1cd2474 86{ fMotherVolume = motherVolumeName; }
87
d1cd2474 88inline TString AliMUONChamberGeometry::GetMotherVolume() const
89{ return fMotherVolume; }
90
91inline const TGeoCombiTrans* AliMUONChamberGeometry::GetTransformation() const
92{ return fTransformation; }
93
87894cc7 94inline AliMUONGeometryEnvelopeStore*
95AliMUONChamberGeometry::GetEnvelopeStore() const
d1cd2474 96{ return fEnvelopes; }
97
87894cc7 98inline AliMUONGeometryTransformStore*
99AliMUONChamberGeometry::GetTransformStore() const
100{ return fDETransforms; }
101
102inline AliMUONGeometrySVMap* AliMUONChamberGeometry::GetSVMap() const
103{ return fSVMap; }
104
105#endif //ALI_MUON_CHAMBER_GEOMETRY_H