[807] | 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 | |
---|
| 18 | // %%%%%%%%%%%%% |
---|
| 19 | // gemc headers |
---|
| 20 | // %%%%%%%%%%%%% |
---|
| 21 | #include "detector.h" |
---|
| 22 | #include "usage.h" |
---|
| 23 | |
---|
| 24 | |
---|
| 25 | // %%%%%%%%%%% |
---|
| 26 | // C++ headers |
---|
| 27 | // %%%%%%%%%%% |
---|
| 28 | #include <string> |
---|
| 29 | #include <map> |
---|
| 30 | using namespace std; |
---|
| 31 | |
---|
| 32 | // %%%%%%%%%%%%%%%% |
---|
| 33 | // Class definition |
---|
| 34 | // %%%%%%%%%%%%%%%% |
---|
| 35 | class tree_item |
---|
| 36 | { |
---|
| 37 | public: |
---|
| 38 | tree_item(){;} |
---|
| 39 | ~tree_item(){;} |
---|
| 40 | |
---|
| 41 | public: |
---|
| 42 | string volume; |
---|
| 43 | string mother; |
---|
| 44 | QTreeWidgetItem *treeItem; |
---|
| 45 | int scanned; |
---|
| 46 | int exist; |
---|
| 47 | int visible; |
---|
| 48 | int wiresolid; |
---|
| 49 | }; |
---|
| 50 | |
---|
| 51 | |
---|
| 52 | // %%%%%%%%%%%%%%%% |
---|
| 53 | // Class definition |
---|
| 54 | // %%%%%%%%%%%%%%%% |
---|
| 55 | class detector_tree : public QWidget |
---|
| 56 | { |
---|
| 57 | // metaobject required for non-qt slots |
---|
| 58 | Q_OBJECT |
---|
| 59 | |
---|
| 60 | public: |
---|
| 61 | detector_tree(){;} |
---|
| 62 | detector_tree(map<string, detector>*, gemc_opts, G4RunManager*, G4VisManager*, G4UImanager*, map<string, G4Material*>); |
---|
| 63 | ~detector_tree(); |
---|
| 64 | |
---|
| 65 | gemc_opts gemcOpt; |
---|
| 66 | map<string, detector> *Hall_Map; |
---|
| 67 | |
---|
| 68 | map<string, tree_item> tree_map; |
---|
| 69 | map<string, tree_item> read_geometry(QTreeWidget *motherWidget); |
---|
| 70 | map<string, G4Material*> *MMats; |
---|
| 71 | |
---|
| 72 | QLinearGradient ActiveGrad; |
---|
| 73 | QLinearGradient NonActiveGrad; |
---|
| 74 | QLinearGradient NonVisibleGrad; |
---|
| 75 | |
---|
| 76 | QBrush ActiveBrush; |
---|
| 77 | QBrush NonActiveBrush; |
---|
| 78 | QBrush NonVisibleBrush; |
---|
| 79 | |
---|
| 80 | private: |
---|
| 81 | QTreeWidget *treeWidget; |
---|
| 82 | QAction *Switch_visibility; |
---|
| 83 | QAction *Switch_visibility_daughters; |
---|
| 84 | QAction *Switch_wiresolid; |
---|
| 85 | QAction *Switch_color; |
---|
| 86 | QAction *Edit_Detector; |
---|
| 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 | G4VisManager *visManager; |
---|
| 92 | G4UImanager *UImanager; |
---|
| 93 | |
---|
| 94 | private slots: |
---|
| 95 | void switch_visibility(); |
---|
| 96 | void switch_visibility_daughters(); |
---|
| 97 | void switch_wiresolid(); |
---|
| 98 | void switch_color(); |
---|
| 99 | void edit_detector(); |
---|
| 100 | |
---|
| 101 | private: |
---|
| 102 | void createActions(); |
---|
| 103 | |
---|
| 104 | }; |
---|
| 105 | |
---|
| 106 | #endif |
---|