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