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