]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliLVStructure.h
Containers definition
[u/mrichter/AliRoot.git] / AliGeant4 / AliLVStructure.h
1 // $Id$
2 // Category: geometry
3 //
4 // Class that associates the name tree with logical volumes tree. 
5 // Used for printing volumes trees.  
6
7 #ifndef ALI_LV_STRUCTURE_H
8 #define ALI_LV_STRUCTURE_H
9
10 #include <G4LogicalVolume.hh>
11 #include <globals.hh>
12
13 #include <g4rw/tpordvec.h>
14
15 class AliLVStructure 
16 {
17   public:
18     AliLVStructure(G4String aPath);
19     AliLVStructure(const AliLVStructure& right);
20     // --> protected 
21     // AliLVStructure();
22     virtual ~AliLVStructure();
23
24     // operators
25     AliLVStructure& operator=(const AliLVStructure& right);
26     G4int operator==(const AliLVStructure &right) const;
27
28     // methods
29     void AddNewVolume(G4LogicalVolume* lv, G4String treeStructure);
30     void ListTree() const;
31     void ListTreeLong() const;
32
33     // set methods
34     void SetVerboseLevel(G4int verbose); 
35 #ifdef ALICE_VISUALIZE
36     void SetTreeVisibility(G4bool visibility);       
37     void SetTreeColour(G4String colName);
38 #endif             
39
40     // get methods
41     G4LogicalVolume* GetVolume(G4String name);
42     G4LogicalVolume* FindVolume(G4String name);
43
44   protected:
45     AliLVStructure(); 
46
47   private:
48     // methods
49     AliLVStructure* FindSubDirectory(G4String subDir);
50     G4String ExtractDirName(G4String path);
51
52     // data members
53     G4RWTPtrOrderedVector<AliLVStructure>   fStructures;                     //.
54                                                 //vector of
55                                                 //contained structures
56     G4RWTPtrOrderedVector<G4LogicalVolume>  fLogicalVolumes;                 //.
57                                                 //vector of
58                                                 //contained logical volumes
59                                                 //(parallel to fStructures)
60     G4String  fPathName;     //full path name
61     G4String  fDirName;      //directory name
62     G4int     fVerboseLevel; //verbose level
63 };
64
65 #endif //ALI_LV_STRUCTURE_H
66