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