1. Added functions for writing detection element transformations and sensitive volume...
[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     void  WriteTransformations();
35     void  WriteSVMaps(Bool_t rebuild = true);
36
37     // Alignement
38     virtual Bool_t  GetAlign() const;
39     virtual void    SetAlign(Bool_t align);
40  
41     void  AddBuilder(AliMUONVGeometryBuilder* geomBuilder);
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
53     // data members
54     AliMUON*        fMUON;                // MUON detector
55     Bool_t          fAlign;               // option to read transformations 
56                                           // from a file
57     TGeoCombiTrans* fGlobalTransformation;// global transformation 
58                                           // applied to the whole geometry 
59     TObjArray*      fGeometryBuilders;    // list of Geometry Builders
60
61   ClassDef(AliMUONGeometryBuilder,2)  // MUON Detector class Version 1
62 };
63
64 // inline functions
65
66 inline Bool_t  AliMUONGeometryBuilder::GetAlign() const
67 { return fAlign; }
68
69 #endif //ALI_MUON_GEOMETRY_BUILDER_H
70
71
72
73
74
75
76