]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliLVTree.h
ALICE_VISUALIZE replaced with G4VIS_USE
[u/mrichter/AliRoot.git] / AliGeant4 / AliLVTree.h
1 // $Id$
2 // Category: geometry
3 //
4 // Author: I. Hrivnacova
5 //
6 // Class AliLVTree
7 // ---------------------------
8 // Class provides methods for browsing volumes trees, 
9 // and setting their visualization attributes.
10
11 #ifndef ALI_LV_TREE_H
12 #define ALI_LV_TREE_H
13
14 #include "AliLVTreeMessenger.h"
15
16 #include <globals.hh>
17
18 class AliLVStructure;
19
20 class G4LogicalVolume;
21 #ifdef G4VIS_USE
22 class G4Colour;
23 #endif
24
25 class AliLVTree
26 {
27   public:
28     // --> protected
29     // AliLVTree();
30     // AliLVTree(const AliLVTree& right);
31     virtual ~AliLVTree();
32
33     // static methods
34     static AliLVTree* Instance();
35
36     // methods
37     void List(const G4String& lvName) const;
38     void List(G4LogicalVolume* lv) const;
39     void ListLong(const G4String& lvName) const;
40     void ListLong(G4LogicalVolume* lv) const;
41
42 #ifdef G4VIS_USE
43     void SetLVTreeVisibility(G4LogicalVolume* lv, G4bool visibility) const;
44     void SetVolumeVisibility(G4LogicalVolume* lv, G4bool visibility) const;
45     void SetLVTreeColour(G4LogicalVolume* lv, const G4String& colName) const;
46     void SetVolumeColour(G4LogicalVolume* lv, const G4String& colName) const;     
47 #endif
48
49   protected:
50     AliLVTree(); 
51     AliLVTree(const AliLVTree& right);
52
53     // operators
54     AliLVTree& operator=(const AliLVTree &right);
55
56   private:
57     // methods
58     void RegisterLogicalVolume(G4LogicalVolume* lv, const G4String& path, 
59                                AliLVStructure& lvStructure) const;
60     void Warn(const G4String& where, const G4String& lvName) const;                            
61     void Warn(const G4String& where) const;                            
62
63     // static data members
64     static AliLVTree* fgInstance;
65
66     // data members
67     AliLVTreeMessenger  fMessenger; //messenger     
68 };
69
70 // inline methods
71
72 #endif //ALI_LV_TREE_H
73