1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
7 /// \class AliMUONGeometryBuilder
8 /// \brief Manager class for geometry construction via geometry builders.
10 /// Author: Ivana Hrivnacova, IPN Orsay
12 #ifndef ALI_MUON_GEOMETRY_BUILDER_H
13 #define ALI_MUON_GEOMETRY_BUILDER_H
16 #include <TGeoMatrix.h>
21 class AliMUONVGeometryBuilder;
23 class AliMUONGeometryBuilder : public TObject
26 AliMUONGeometryBuilder(AliModule* detector);
27 AliMUONGeometryBuilder();
28 virtual ~AliMUONGeometryBuilder();
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);
38 void AddBuilder(AliMUONVGeometryBuilder* geomBuilder);
39 void CreateGeometry();
40 void CreateMaterials();
42 void WriteTransformations();
43 void WriteSVMaps(Bool_t rebuild = true);
44 void SetGlobalTransformation(const TGeoCombiTrans& transform);
47 virtual Bool_t GetAlign() const;
48 virtual void SetAlign(Bool_t align);
51 AliMUONGeometryBuilder(const AliMUONGeometryBuilder& right);
52 AliMUONGeometryBuilder& operator = (const AliMUONGeometryBuilder& right);
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;
59 void FillGlobalTransformations(AliMUONVGeometryBuilder* builder);
60 void SetAlign(AliMUONVGeometryBuilder* builder);
63 AliModule* fModule; // the AliRoot module
64 Bool_t fAlign; // option to read transformations
66 TGeoCombiTrans fGlobalTransformation;// global transformation
67 // applied to the whole geometry
68 TObjArray* fGeometryBuilders; // list of Geometry Builders
70 ClassDef(AliMUONGeometryBuilder,4) // Geometry builder
75 inline Bool_t AliMUONGeometryBuilder::GetAlign() const
78 #endif //ALI_MUON_GEOMETRY_BUILDER_H