Geometry construction functions separated from AliMUON, AliMUONv1into a new AliMUONGe...
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryBuilder.h
1 #ifndef ALI_MUON_GEOMETRY_BUILDER_H
2 #define ALI_MUON_GEOMETRY_BUILDER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 // $Id$
7 //
8 // Class AliMUONGeometryBuilder
9 // ----------------------------
10 // MUON manager class for geometry construction,
11 // separated form AliMUONv1
12 //
13 // Author: Ivana Hrivnacova, IPN Orsay
14
15 #include <TObject.h>
16
17 class TGeoCombiTrans;
18 class TGeoHMatrix;
19 class TObjArray;
20
21 class AliMUON;
22 class AliMUONVGeometryBuilder;
23
24 class AliMUONGeometryBuilder : public TObject 
25 {
26   public:
27     AliMUONGeometryBuilder();
28     AliMUONGeometryBuilder(AliMUON* muon);
29     virtual  ~AliMUONGeometryBuilder();
30
31     void  CreateGeometry();
32     void  CreateMaterials();
33     void  InitGeometry();
34  
35     void  AddBuilder(AliMUONVGeometryBuilder* geomBuilder);
36    
37   protected:
38     AliMUONGeometryBuilder(const AliMUONGeometryBuilder& right);
39     AliMUONGeometryBuilder&  operator = (const AliMUONGeometryBuilder& right);
40  
41   private:
42     // method
43     void PlaceVolume(const TString& name, const TString& mName, Int_t copyNo, 
44              const TGeoHMatrix& matrix, Int_t npar, Double_t* param,
45              const char* only) const;
46
47     // data members
48     AliMUON*        fMUON;                // MUON detector
49     TGeoCombiTrans* fGlobalTransformation;// global transformation 
50                                           // applied to the whole geometry 
51     TObjArray*      fGeometryBuilders;    // List of Geometry Builders
52
53   ClassDef(AliMUONGeometryBuilder,2)  // MUON Detector class Version 1
54 };
55
56 #endif //ALI_MUON_GEOMETRY_BUILDER_H
57
58
59
60
61
62
63