GEMC  2.2
Geant4 Monte-Carlo Framework
detector_tree.h
Go to the documentation of this file.
1 #ifndef detector_tree_H
2 #define detector_tree_H 1
3 
4 // Qt headers
5 #include <QTreeWidgetItem>
6 #include <QAction>
7 #include <QContextMenuEvent>
8 
9 // G4 headers
10 #include "G4RunManager.hh"
11 #include "G4VisManager.hh"
12 #include "G4UImanager.hh"
13 #include "G4GDMLParser.hh"
14 
15 // gemc headers
16 #include "detector.h"
17 #include "options.h"
18 #include "detector_editor.h"
19 
20 // C++ headers
21 #include <string>
22 #include <map>
23 using namespace std;
24 
25 
26 // Class definition
27 class tree_item
28 {
29  public:
30  tree_item(){;}
32 
33  public:
34  string volume;
35  string mother;
36  QTreeWidgetItem *treeItem;
37  int scanned;
38  int sensitive;
39  int exist;
40  int visible;
41  int wiresolid;
42 };
43 
44 
45 
46 class detector_tree : public QWidget
47 {
48  // metaobject required for non-qt slots
49  Q_OBJECT
50 
51  public:
53  detector_tree(QWidget *parent, goptions, G4RunManager*, map<string, detector>*, map<string, G4Material*>);
54  ~detector_tree();
55 
57  map<string, detector> *Hall_Map;
58 
59  map<string, tree_item> tree_map;
60  map<string, tree_item> read_geometry(QTreeWidget *motherWidget);
61  map<string, G4Material*> MMats;
62 
63  QLinearGradient ActiveGrad;
64  QLinearGradient SensitiveGrad;
65  QLinearGradient NonActiveGrad;
66  QLinearGradient NonVisibleGrad;
67 
68  QBrush ActiveBrush;
72 
74 
75 
76 
77  private:
78  QTreeWidget *treeWidget;
79  QAction *Switch_visibility;
80  QAction *Switch_visibility_daughters;
81  QAction *Switch_wiresolid;
82  QAction *Switch_color;
83  QAction *Write_GDML_File;
84 
85  // passing G4 managers to QT so we can delete them when QT quits
86  // and can access directly the UImanager
87  G4RunManager *runManager;
88  G4UImanager *UImanager;
89 
90  private slots:
91  void switch_visibility();
92  void switch_visibility_daughters();
93  void switch_wiresolid();
94  void switch_color();
95  void show_detector();
96  void write_gdml_file();
97  void change_placement();
98 
99  private:
100  void createActions();
101 
102 };
103 
104 #endif
string volume
Definition: detector_tree.h:34
QBrush NonActiveBrush
Definition: detector_tree.h:70
QLinearGradient NonActiveGrad
Definition: detector_tree.h:65
STL namespace.
goptions gemcOpt
Definition: detector_tree.h:56
descriptionTab * dTab
Definition: detector_tree.h:73
QTreeWidgetItem * treeItem
Definition: detector_tree.h:36
map< string, tree_item > tree_map
Definition: detector_tree.h:59
QBrush ActiveBrush
Definition: detector_tree.h:68
QBrush SensitiveBrush
Definition: detector_tree.h:69
QBrush NonVisibleBrush
Definition: detector_tree.h:71
map< string, G4Material * > MMats
Definition: detector_tree.h:61
QLinearGradient NonVisibleGrad
Definition: detector_tree.h:66
map< string, detector > * Hall_Map
Definition: detector_tree.h:57
QLinearGradient SensitiveGrad
Definition: detector_tree.h:64
string mother
Definition: detector_tree.h:35
QLinearGradient ActiveGrad
Definition: detector_tree.h:63