]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONGeometry.h
New class for managing buspatch<>DDL<>DE maps separated from
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometry.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 /// \ingroup geometry
7 /// \class AliMUONGeometry
8 /// \brief Container class for geometry modules
9 ///
10 /// Author: Ivana Hrivnacova, IPN Orsay
11
12 #ifndef ALI_MUON_GEOMETRY_H
13 #define ALI_MUON_GEOMETRY_H
14
15 #include <TObject.h>
16 #include <TGeoMatrix.h>
17
18 class TObjArray;
19
20 class AliMUONGeometryModule;
21 class AliMUONGeometryTransformer;
22
23 class AliMUONGeometry : public TObject
24 {
25   public:
26     AliMUONGeometry(Bool_t isOwner);
27     AliMUONGeometry();
28     virtual  ~AliMUONGeometry();
29     
30     // methods
31     void    AddModule(AliMUONGeometryModule* module);
32
33     Bool_t  ReadSVMap(const TString& fileName);
34     Bool_t  WriteSVMap(const TString& fileName) const;
35
36
37     // get methods
38     const AliMUONGeometryModule* GetModule(
39                                     Int_t index, Bool_t warn = true) const;
40
41     const AliMUONGeometryModule* GetModuleByDEId(
42                                     Int_t detElemId, Bool_t warn = true) const;
43
44     AliMUONGeometryTransformer* GetTransformer() const;
45
46
47   protected:
48     AliMUONGeometry(const AliMUONGeometry& right);
49     AliMUONGeometry&  operator = (const AliMUONGeometry& right);
50  
51   private:
52     //methods
53     TString  ComposePath(const TString& volName, Int_t copyNo) const; 
54
55     void    FillData3(const TString& sensVolumePath, Int_t detElemId);             
56     TString ReadData3(ifstream& in);
57     void    WriteData3(ofstream& out) const;
58
59     // data members
60     TObjArray*                  fModules;     // Array of geometry modules
61     AliMUONGeometryTransformer* fTransformer; // Geometry transformer
62
63   ClassDef(AliMUONGeometry,1)  // Geometry parametrisation
64 };
65
66 inline AliMUONGeometryTransformer* AliMUONGeometry::GetTransformer() const
67 { return fTransformer; }
68
69 #endif //ALI_MUON_GEOMETRY_H
70
71
72
73
74
75
76