]>
Commit | Line | Data |
---|---|---|
d4bb94a1 | 1 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
2 | * See cxx source for full Copyright notice */ | |
3 | ||
4 | // $Id$ | |
692de412 | 5 | |
6 | /// \ingroup geometry | |
7 | /// \class AliMUONGeometryBuilder | |
8 | /// \brief Manager class for geometry construction via geometry builders. | |
9 | /// | |
10 | /// Author: Ivana Hrivnacova, IPN Orsay | |
d4bb94a1 | 11 | |
e118b27e | 12 | #ifndef ALI_MUON_GEOMETRY_BUILDER_H |
13 | #define ALI_MUON_GEOMETRY_BUILDER_H | |
14 | ||
d4bb94a1 | 15 | #include <TObject.h> |
e118b27e | 16 | #include <TGeoMatrix.h> |
d4bb94a1 | 17 | |
d4bb94a1 | 18 | class TObjArray; |
19 | ||
e118b27e | 20 | class AliModule; |
d4bb94a1 | 21 | class AliMUONVGeometryBuilder; |
22 | ||
23 | class AliMUONGeometryBuilder : public TObject | |
24 | { | |
25 | public: | |
e118b27e | 26 | AliMUONGeometryBuilder(AliModule* detector); |
d4bb94a1 | 27 | AliMUONGeometryBuilder(); |
d4bb94a1 | 28 | virtual ~AliMUONGeometryBuilder(); |
067866a3 | 29 | |
30 | // static methods | |
31 | static TGeoHMatrix Multiply(const TGeoMatrix& m1, const TGeoMatrix& m2); | |
32 | static TGeoHMatrix Multiply(const TGeoMatrix& m1, const TGeoMatrix& m2, | |
33 | const TGeoMatrix& m3); | |
34 | static TGeoHMatrix Multiply(const TGeoMatrix& m1, const TGeoMatrix& m2, | |
35 | const TGeoMatrix& m3, const TGeoMatrix& m4); | |
d4bb94a1 | 36 | |
e118b27e | 37 | // methods |
38 | void AddBuilder(AliMUONVGeometryBuilder* geomBuilder); | |
d4bb94a1 | 39 | void CreateGeometry(); |
40 | void CreateMaterials(); | |
41 | void InitGeometry(); | |
76497dec | 42 | void WriteTransformations(); |
43 | void WriteSVMaps(Bool_t rebuild = true); | |
e118b27e | 44 | void SetGlobalTransformation(const TGeoCombiTrans& transform); |
76497dec | 45 | |
46 | // Alignement | |
47 | virtual Bool_t GetAlign() const; | |
48 | virtual void SetAlign(Bool_t align); | |
d4bb94a1 | 49 | |
d4bb94a1 | 50 | protected: |
51 | AliMUONGeometryBuilder(const AliMUONGeometryBuilder& right); | |
52 | AliMUONGeometryBuilder& operator = (const AliMUONGeometryBuilder& right); | |
53 | ||
54 | private: | |
55 | // method | |
56 | void PlaceVolume(const TString& name, const TString& mName, Int_t copyNo, | |
57 | const TGeoHMatrix& matrix, Int_t npar, Double_t* param, | |
58 | const char* only) const; | |
e118b27e | 59 | void FillGlobalTransformations(AliMUONVGeometryBuilder* builder); |
d4bb94a1 | 60 | |
61 | // data members | |
e118b27e | 62 | AliModule* fModule; // the AliRoot module |
76497dec | 63 | Bool_t fAlign; // option to read transformations |
64 | // from a file | |
e118b27e | 65 | TGeoCombiTrans fGlobalTransformation;// global transformation |
d4bb94a1 | 66 | // applied to the whole geometry |
76497dec | 67 | TObjArray* fGeometryBuilders; // list of Geometry Builders |
d4bb94a1 | 68 | |
e118b27e | 69 | ClassDef(AliMUONGeometryBuilder,4) // Geometry builder |
d4bb94a1 | 70 | }; |
71 | ||
76497dec | 72 | // inline functions |
73 | ||
74 | inline Bool_t AliMUONGeometryBuilder::GetAlign() const | |
75 | { return fAlign; } | |
76 | ||
d4bb94a1 | 77 | #endif //ALI_MUON_GEOMETRY_BUILDER_H |
78 | ||
79 | ||
80 | ||
81 | ||
82 | ||
83 | ||
84 |