Geant4-11
g4viscp.py
Go to the documentation of this file.
1"""
2# ==================================================================
3# Python module
4#
5# Visualization Control Panel
6#
7# Q, 2005
8# ==================================================================
9"""
10from G4interface import *
11
12# ------------------------------------------------------------------
13# Scene
14# ------------------------------------------------------------------
15class G4Scene :
16 "Scene"
17 def __init__(self, aname, vol= "world", acopyno=0,
18 amode=0, bmode=1):
19 self.name= aname
20 self.volume= vol
21 self.copyno= acopyno
22 self.mode_eventaction= amode # 0: accumulate / 1: refresh
23 self.mode_runaction= bmode # 0: accumulate / 1: refresh
24 self.mode= ("accumulate", "refresh")
25
26 def create_scene(self):
27 ApplyUICommand("/vis/scene/create " + self.name)
28 ApplyUICommand("/vis/scene/add/volume %s %d" %
29 (self.volume, self.copyno))
30 ApplyUICommand("/vis/scene/add/trajectories")
31 self.update_scene()
32
33 def update_scene(self):
34 ApplyUICommand("/vis/scene/select " + self.name)
35 ApplyUICommand("/vis/sceneHandler/attach")
36 ApplyUICommand("/vis/scene/endOfEventAction %s" %
37 (self.mode[self.mode_eventaction]) )
38 ApplyUICommand("/vis/scene/endOfRunAction %s" %
39 (self.mode[self.mode_runaction]) )
40
41# ------------------------------------------------------------------
42# Visualization Control Panel
43# ------------------------------------------------------------------
44class G4VisCP :
45 "G4 Visualization Control Panel"
46
47 def __init__(self, gsys="OGLIX"):
48 self.gsystem= gsys
49 self.scenelist= [G4Scene("default")]
50 self.viewpoint= [270., 90.]
51
52 rc= ApplyUICommand("/vis/open " + gsys)
53 if (rc != 0):
54 return
55
56 self.scenelist[0].create_scene()
57 ApplyUICommand("/vis/viewer/set/viewpointThetaPhi %f %f"
58 % (self.viewpoint[0], self.viewpoint[1]) )
59 ApplyUICommand("/tracking/storeTrajectory 1")
60
61 def add_scene(self, ascene):
62 self.scenelist.append(ascene)
63
64 def select_scene(self, iscene):
65 self.scenelist[iscene].update_scene()
66 ApplyUICommand("/vis/viewer/set/viewpointThetaPhi %f %f"
67 % (self.viewpoint[0], self.viewpoint[1]) )
68
def update_scene(self)
Definition: g4viscp.py:33
def __init__(self, aname, vol="world", acopyno=0, amode=0, bmode=1)
Definition: g4viscp.py:18
def create_scene(self)
Definition: g4viscp.py:26
def __init__(self, gsys="OGLIX")
Definition: g4viscp.py:47
def select_scene(self, iscene)
Definition: g4viscp.py:64
def add_scene(self, ascene)
Definition: g4viscp.py:61