1 |
|
---|
2 | #include "TEveManager.h"
|
---|
3 | #include "TEveViewer.h"
|
---|
4 | #include "TGLViewer.h"
|
---|
5 | #include "TGLWidget.h"
|
---|
6 | #include "TEveScene.h"
|
---|
7 | #include "TEveProjectionManager.h"
|
---|
8 | #include "TEveProjectionAxes.h"
|
---|
9 | #include "TEveBrowser.h"
|
---|
10 | #include "TEveWindow.h"
|
---|
11 | #include "TGTab.h"
|
---|
12 |
|
---|
13 | #include "TEveCalo2DGL.h"
|
---|
14 | #include "TEveCalo3DGL.h"
|
---|
15 | #include "TEveCaloLegoGL.h"
|
---|
16 | #include "TEveCaloLegoOverlay.h"
|
---|
17 | #include "TEveLegoEventHandler.h"
|
---|
18 |
|
---|
19 | #include "display/DelphesDisplay.h"
|
---|
20 |
|
---|
21 | //------------------------------------------------------------------------------
|
---|
22 |
|
---|
23 | DelphesDisplay::DelphesDisplay()
|
---|
24 | {
|
---|
25 | TEveProjectionAxes *axes;
|
---|
26 | TEveWindowSlot *slot;
|
---|
27 | TEveWindowPack *packH, *pack0, *pack1;
|
---|
28 |
|
---|
29 | fRPhiMgr = new TEveProjectionManager(TEveProjection::kPT_RPhi);
|
---|
30 | fRhoZMgr = new TEveProjectionManager(TEveProjection::kPT_RhoZ);
|
---|
31 |
|
---|
32 | fRPhiGeomScene = gEve->SpawnNewScene("RPhi Geometry");
|
---|
33 | fRhoZGeomScene = gEve->SpawnNewScene("RhoZ Geometry");
|
---|
34 |
|
---|
35 | fRPhiCaloScene = gEve->SpawnNewScene("RPhi Calorimeter");
|
---|
36 | fRhoZCaloScene = gEve->SpawnNewScene("RhoZ Calorimeter");
|
---|
37 | fLegoCaloScene = gEve->SpawnNewScene("Lego Calorimeter");
|
---|
38 |
|
---|
39 | fRPhiEventScene = gEve->SpawnNewScene("RPhi Event Data");
|
---|
40 | fRhoZEventScene = gEve->SpawnNewScene("RhoZ Event Data");
|
---|
41 |
|
---|
42 | axes = new TEveProjectionAxes(fRPhiMgr);
|
---|
43 | fRPhiGeomScene->AddElement(axes);
|
---|
44 |
|
---|
45 | axes = new TEveProjectionAxes(fRhoZMgr);
|
---|
46 | fRhoZGeomScene->AddElement(axes);
|
---|
47 |
|
---|
48 | // close default tab
|
---|
49 | gEve->GetBrowser()->GetTabRight()->CloseTab(0);
|
---|
50 |
|
---|
51 | // frames
|
---|
52 | slot = TEveWindow::CreateWindowInTab(gEve->GetBrowser()->GetTabRight());
|
---|
53 | packH = slot->MakePack();
|
---|
54 |
|
---|
55 | packH->SetElementName("Delphes Display");
|
---|
56 | packH->SetHorizontal();
|
---|
57 | packH->SetShowTitleBar(kFALSE);
|
---|
58 |
|
---|
59 | pack0 = packH->NewSlot()->MakePack();
|
---|
60 | pack0->SetShowTitleBar(kFALSE);
|
---|
61 |
|
---|
62 | pack1 = packH->NewSlot()->MakePack();
|
---|
63 | pack1->SetShowTitleBar(kFALSE);
|
---|
64 |
|
---|
65 | pack1->NewSlot()->MakeCurrent();
|
---|
66 | f3DimView = gEve->SpawnNewViewer("3D View", "");
|
---|
67 | f3DimView->AddScene(gEve->GetGlobalScene());
|
---|
68 | f3DimView->AddScene(gEve->GetEventScene());
|
---|
69 |
|
---|
70 | pack1->NewSlot()->MakeCurrent();
|
---|
71 | fLegoView = gEve->SpawnNewViewer("Lego View", "");
|
---|
72 | fLegoView->GetGLViewer()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
|
---|
73 | fLegoView->AddScene(fLegoCaloScene);
|
---|
74 |
|
---|
75 | pack0->NewSlot()->MakeCurrent();
|
---|
76 | fRPhiView = gEve->SpawnNewViewer("RPhi View", "");
|
---|
77 | fRPhiView->GetGLViewer()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
|
---|
78 | fRPhiView->AddScene(fRPhiGeomScene);
|
---|
79 | fRPhiView->AddScene(fRPhiCaloScene);
|
---|
80 | fRPhiView->AddScene(fRPhiEventScene);
|
---|
81 |
|
---|
82 | pack0->NewSlot()->MakeCurrent();
|
---|
83 | fRhoZView = gEve->SpawnNewViewer("RhoZ View", "");
|
---|
84 | fRhoZView->GetGLViewer()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
|
---|
85 | fRhoZView->AddScene(fRhoZGeomScene);
|
---|
86 | fRhoZView->AddScene(fRhoZCaloScene);
|
---|
87 | fRhoZView->AddScene(fRhoZEventScene);
|
---|
88 | }
|
---|
89 |
|
---|
90 | //------------------------------------------------------------------------------
|
---|
91 |
|
---|
92 | DelphesDisplay::~DelphesDisplay()
|
---|
93 | {
|
---|
94 | }
|
---|
95 |
|
---|
96 | //------------------------------------------------------------------------------
|
---|
97 |
|
---|
98 | void DelphesDisplay::ImportGeomRPhi(TEveElement* el)
|
---|
99 | {
|
---|
100 | fRPhiMgr->ImportElements(el, fRPhiGeomScene);
|
---|
101 | }
|
---|
102 |
|
---|
103 | void DelphesDisplay::ImportGeomRhoZ(TEveElement* el)
|
---|
104 | {
|
---|
105 | fRhoZMgr->ImportElements(el, fRhoZGeomScene);
|
---|
106 | }
|
---|
107 |
|
---|
108 | void DelphesDisplay::ImportCaloRPhi(TEveCalo3D *calo)
|
---|
109 | {
|
---|
110 | fRPhiMgr->ImportElements(calo, fRPhiCaloScene);
|
---|
111 | }
|
---|
112 |
|
---|
113 | void DelphesDisplay::ImportCaloRhoZ(TEveCalo3D *calo)
|
---|
114 | {
|
---|
115 | fRhoZMgr->ImportElements(calo, fRhoZCaloScene);
|
---|
116 | }
|
---|
117 |
|
---|
118 | void DelphesDisplay::ImportCaloLego(TEveCaloLego *calo)
|
---|
119 | {
|
---|
120 | TEveCaloLegoOverlay *overlay = new TEveCaloLegoOverlay();
|
---|
121 |
|
---|
122 | overlay->SetCaloLego(calo);
|
---|
123 | fLegoView->GetGLViewer()->AddOverlayElement(overlay);
|
---|
124 |
|
---|
125 | fLegoCaloScene->AddElement(calo);
|
---|
126 | }
|
---|
127 |
|
---|
128 | void DelphesDisplay::ImportEventRPhi(TEveElement* el)
|
---|
129 | {
|
---|
130 | fRPhiMgr->ImportElements(el, fRPhiEventScene);
|
---|
131 | }
|
---|
132 |
|
---|
133 | void DelphesDisplay::ImportEventRhoZ(TEveElement* el)
|
---|
134 | {
|
---|
135 | fRhoZMgr->ImportElements(el, fRhoZEventScene);
|
---|
136 | }
|
---|
137 |
|
---|
138 | //---------------------------------------------------------------------------
|
---|
139 |
|
---|
140 | void DelphesDisplay::DestroyEventRPhi()
|
---|
141 | {
|
---|
142 | fRPhiEventScene->DestroyElements();
|
---|
143 | }
|
---|
144 |
|
---|
145 | void DelphesDisplay::DestroyEventRhoZ()
|
---|
146 | {
|
---|
147 | fRhoZEventScene->DestroyElements();
|
---|
148 | }
|
---|
149 | //------------------------------------------------------------------------------
|
---|
150 |
|
---|