Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / AliGeant3 / AliG3toRoot.h
1 #ifndef ALIG3toRoot_H
2 #define ALIG3toRoot_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 #include <TObject.h>
9 #include <TGeant3.h>
10
11 class TClonesArray;
12 class TObjArray;
13 class TGPicture;
14 class TFolder;
15 class TGeometry;
16
17 class AliG3Volume;
18 class AliNode;
19
20
21 class AliG3toRoot : public TObject 
22 {
23  public:
24     AliG3toRoot();
25     virtual ~AliG3toRoot(){}
26     virtual void G3toRoot();
27     void ConvertToRootShapes(TFolder *item=0, AliNode** node=0,
28                              Int_t nNodes=1);
29     // Setters
30     virtual void SetExpandDivisions(Int_t flag = 1)
31         {fExpand = flag;}
32     // Getters
33     TFolder*      GetTopFolder() {return fTopFolder;}
34     TClonesArray* GetMaterials() {return fMaterials;}    
35     TClonesArray* GetMedia()     {return fMedia;}
36  private:
37     void ExpandDivisions(AliNode* node=0);
38     void ReadGeometryTree();
39     void ReadMaterials();    
40     void ReadRotations();
41     TFolder* AddVolume(TObject * obj, TFolder *parent, const char* name);
42     virtual AliG3Volume* Volume(Int_t id);
43     Int_t Medium(Int_t idvol);
44     Int_t Material(Int_t idvol);
45     Float_t Cut(Int_t imed, Int_t icut);
46     // Return number of children for volume idvol
47     Int_t NChildren(Int_t idvol);
48     // Return child number idc of volume idvol
49     Int_t Child(Int_t idvol, Int_t idc);
50     AliG3toRoot &operator=(const AliG3toRoot &) {return *this;}
51  private:
52     TClonesArray   *fVolumes;    //! array of volumes  
53     TClonesArray   *fMaterials;  //! array of materials
54     TClonesArray   *fMedia;      //! array of materials
55     TObjArray      *fRotations;  //! Rotation Matrices
56     // Zebra bank related information   
57     Int_t*     fZlq;              //! pointer to Zebra bank lq
58     Float_t*   fZq;               //! pointer to Zebra bank q
59     Int_t*     fZiq;              //! pointer to Zebra bank iq
60     Gclink_t*  fGclink;           //! pointer to Geant common block 
61     Gcnum_t*   fGcnum;            //! pointer to Geant common block
62     // List Tree
63     TFolder*   fTopFolder;        //! Folder structure containing volumes
64     TGeometry* fGeometry;         //  Pointer to geometry
65     Int_t      fExpand;           //  Flag for division expansion
66     
67     ClassDef(AliG3toRoot,1) // Material Object for GUI 
68 };
69
70 #endif
71
72
73
74
75
76
77
78