FairShip
Loading...
Searching...
No Matches
evd_addParticleFollower.py
Go to the documentation of this file.
1# SPDX-License-Identifier: LGPL-3.0-or-later
2# SPDX-FileCopyrightText: Copyright CERN for the benefit of the SHiP Collaboration
3
4from array import array
5
6import evd_fillEnergy
7import ROOT
8
9gEve = ROOT.gEve
10import eveGlobal
11
12
13def execute() -> None:
14 if not gEve.GetViewers().FindChild("Bar Embedded Viewer side"):
15 slot = ROOT.TEveWindow.CreateWindowInTab(gEve.GetBrowser().GetTabRight())
16 pack1 = slot.MakePack()
17 pack1.SetShowTitleBar(ROOT.kFALSE)
18 pack1.SetElementName("Top/Side View")
19 pack1.SetVertical()
20 # Embedded viewer.
21 cams = ["side", "top"]
22 for c in cams:
23 slot = pack1.NewSlot()
24 v = ROOT.TEveViewer("BarViewer" + c)
25 v.SpawnGLEmbeddedViewer(gEve.GetEditor())
26 slot.ReplaceWindow(v)
27 v.SetElementName("Bar Embedded Viewer " + c) # gEve.GetViewers().FindChild('Bar Embedded Viewer')
28 v.SetShowTitleBar(ROOT.kFALSE)
29 gEve.GetViewers().AddElement(v)
30 v.AddScene(gEve.GetEventScene())
31 v.AddScene(gEve.GetScenes().FindChild("Geometry scene"))
32 vw = v.GetGLViewer()
33 if c == "top":
34 vw.SetCurrentCamera(ROOT.TGLViewer.kCameraOrthoZnOX)
35 else:
36 vw.SetCurrentCamera(ROOT.TGLViewer.kCameraOrthoZOY)
37 vw.ResetCameras()
38 cam = vw.CurrentCamera()
39 cam.Reset()
40 ed = v.GetEditorObject()
41 co = ed.GetCameraOverlay()
42 if c == "top":
43 # doesn't really work
44 center = array("d", [0, 500.0, 0])
45 cam.Configure(1.0, 0.0, center, 0.0, 0.0)
46 co.SetShowOrthographic(True)
47 co.SetOrthographicMode(ROOT.TGLCameraOverlay.kAll) # ROOT.TGLCameraOverlay.kAxis
48 # cam.SetExternalCenter(ROOT.kTRUE)
49 ls = vw.GetLightSet()
50 ls.SetSidePower(1.0)
51 ls.SetFrontPower(1.0)
52 ls.SetSpecularPower(1.0)
53 else:
54 center = array("d", [0, 0, 0])
55 cam.Configure(1.0, 0.0, center, 0, 0)
56 co.SetShowOrthographic(True)
57 co.SetOrthographicMode(ROOT.TGLCameraOverlay.kAll) # ROOT.TGLCameraOverlay.kAxis
58 ls = vw.GetLightSet()
59 ls.SetFrontPower(0.2)
60 ls.SetSidePower(0.4)
61 ls.SetSpecularPower(1.1)
62 # problems with light, Camera home
63 # cam.SetExternalCenter(ROOT.kTRUE)
64 vw.DoDraw()
65 #
66 slot = pack1.NewSlot()
67 slot.StartEmbedding()
68 can = ROOT.TCanvas("Root Canvas EnergyLoss") # ROOT.gROOT.FindObject('Root Canvas')
69 can.SetTitle("Energy as function of z")
70 can.ToggleEditor()
71 slot.StopEmbedding()
72 ls = ROOT.gROOT.GetListOfGlobals()
73 ls.Add(can)
74 SHiPDisplay = eveGlobal.SHiPDisplay
75 SHiPDisplay.transparentMode("on")
76
77
78if __name__ == "__main__":
79 execute()
80 v = ROOT.gEve.GetViewers().FindChild("Bar Embedded Viewer side")
81 vw = v.GetGLViewer()
82 cam = vw.CurrentCamera()
83 fr = vw.GetFrame()
84 test = ROOT.TGLVertex3(0.0, 0.0, 0.0)
85 vtest = cam.ViewportToWorld(test)
86 zmin = vtest.Z()
87 test = ROOT.TGLVertex3(fr.GetWidth(), 0.0, 0.0)
88 vtest = cam.ViewportToWorld(test)
89 zmax = vtest.Z()
90 print("?", zmin, zmax)