source: trunk/environments/g4py/source/python/__init__.py@ 1344

Last change on this file since 1344 was 1337, checked in by garnier, 15 years ago

tag geant4.9.4 beta 1 + modifs locales

File size: 7.5 KB
Line 
1"""
2# ==================================================================
3# [Geant4] module package
4#
5# Welcome to Geant4Py.
6#
7# This package contains a set of Python interface with Geant4.
8# Hava A Fun!
9# ==================================================================
10"""
11# $Id: __init__.py,v 1.22 2010/06/04 05:47:44 kmura Exp $
12__version__ ='9.4.0 beta'
13__date__ = '25/June/2010'
14__author__ = 'K.Murakami (Koichi.Murakami@kek.jp)'
15
16# import submodules
17from G4interface import *
18from G4intercoms import *
19from G4global import *
20from G4run import *
21from G4event import *
22from G4tracking import *
23from G4track import *
24from G4particles import *
25from G4processes import *
26from G4geometry import *
27from G4materials import *
28from G4physicslists import *
29from G4digits_hits import *
30from G4visualization import *
31from G4gdml import *
32from G4graphics_reps import *
33from hepunit import *
34from colortable import *
35
36def print_version():
37 print """=============================================================
38 Welcome to Geant4Py (A Geant4-Python Bridge)
39
40 Version : %s
41 Date : %s
42 Contact : %s
43=============================================================
44""" % ( __version__, __date__, __author__)
45
46# ==================================================================
47# initialize
48# ==================================================================
49# set G4cout/G4cerr to Python stdout
50SetG4PyCoutDestination()
51
52# ==================================================================
53# globals, which start with "g"
54# ==================================================================
55# gRunManager
56if G4RunManager.GetRunManager() == None:
57 gRunManager = G4RunManager()
58else:
59 gRunManager = G4RunManager.GetRunManager()
60gRunManagerKernel = G4RunManagerKernel.GetRunManagerKernel()
61
62# gUImanager
63gUImanager = G4UImanager.GetUIpointer()
64
65# gEventManager
66gEventManager = G4EventManager.GetEventManager()
67
68# gStackManager
69gStackManager = gEventManager.GetStackManager()
70
71# gTrackingManager
72gTrackingManager = gEventManager.GetTrackingManager()
73
74# gStateManager
75gStateManager = G4StateManager.GetStateManager()
76gExceptionHandler = G4ExceptionHandler() # automatically registered
77
78# gGeometryManager
79gGeometryManager = G4GeometryManager.GetInstance()
80
81# gTransportationManager
82gTransportationManager = G4TransportationManager.GetTransportationManager()
83
84# gParticleTable
85gParticleTable = G4ParticleTable.GetParticleTable()
86gParticleIterator = PyG4ParticleList()
87
88# gProcessTable
89gProcessTable = G4ProcessTable.GetProcessTable()
90
91# gLossTableManager
92gLossTableManager = G4LossTableManager.Instance()
93
94# gProductionCutsTable
95gProductionCutsTable = G4ProductionCutsTable.GetProductionCutsTable()
96
97# gEmCalculator
98gEmCalculator = G4EmCalculator()
99
100# gMaterial/ElementTable
101gMaterialTable = G4Material.GetMaterialTable()
102gElementTable = G4Element.GetElementTable()
103
104# gNistManager (since 7.1)
105_material_class_list = dir(G4materials)
106_qfind = _material_class_list.count("G4NistManager") > 0
107if _qfind:
108 gNistManager = G4NistManager.Instance()
109
110# gVisManager
111_visdriver_list = dir(G4visualization)
112_q_opengl_ix = "G4OpenGLImmediateX" in _visdriver_list
113_q_opengl_sx = "G4OpenGLStoredX" in _visdriver_list
114_q_opengl_ixm = "G4OpenGLImmediateXm" in _visdriver_list
115_q_opengl_sxm = "G4OpenGLStoredXm" in _visdriver_list
116_q_raytracer_x = "G4RayTracerX" in _visdriver_list
117
118if G4VisManager.GetConcreteInstance() == None:
119 gVisManager = G4VisManager()
120 if _q_opengl_ix:
121 _opengl_ix = G4OpenGLImmediateX()
122 if _q_opengl_sx:
123 _opengl_sx = G4OpenGLStoredX()
124 if _q_opengl_ixm:
125 _opengl_ixm = G4OpenGLImmediateXm()
126 if _q_opengl_sxm:
127 _opengl_sxm = G4OpenGLStoredXm()
128 if _q_raytracer_x:
129 _raytracer_x = G4RayTracerX()
130
131 _vrml1 = G4VRML1File()
132 _vrml2 = G4VRML2File()
133 _dawn = G4DAWNFILE()
134 _heprep_xml = G4HepRep()
135 _heprep_file = G4HepRepFile()
136 _atree = G4ASCIITree()
137 _raytracer = G4RayTracer()
138
139 if _q_opengl_ix:
140 gVisManager.RegisterGraphicsSystem(_opengl_ix)
141 if _q_opengl_sx:
142 gVisManager.RegisterGraphicsSystem(_opengl_sx)
143 if _q_opengl_ixm:
144 gVisManager.RegisterGraphicsSystem(_opengl_ixm)
145 if _q_opengl_sxm:
146 gVisManager.RegisterGraphicsSystem(_opengl_sxm)
147 if _q_raytracer_x:
148 gVisManager.RegisterGraphicsSystem(_raytracer_x)
149
150 gVisManager.RegisterGraphicsSystem(_vrml1)
151 gVisManager.RegisterGraphicsSystem(_vrml2)
152 gVisManager.RegisterGraphicsSystem(_dawn)
153 gVisManager.RegisterGraphicsSystem(_heprep_xml)
154 gVisManager.RegisterGraphicsSystem(_heprep_file)
155 gVisManager.RegisterGraphicsSystem(_atree)
156 gVisManager.RegisterGraphicsSystem(_raytracer)
157
158 gVisManager.Initialize()
159
160# version information
161gG4Version = G4Version
162gG4Date = G4Date
163gG4VERSION_NUMBER = G4VERSION_NUMBER
164
165# ------------------------------------------------------------------
166# functions
167# ------------------------------------------------------------------
168gControlExecute = gUImanager.ExecuteMacroFile
169gApplyUICommand = G4intercoms.ApplyUICommand
170gGetCurrentValues = gUImanager.GetCurrentValues
171gStartUISession = G4interface.StartUISession
172
173
174# ==================================================================
175# extentions
176# ==================================================================
177
178# ------------------------------------------------------------------
179# generate one event
180# ------------------------------------------------------------------
181def _one_event(self):
182 "generate one event."
183 self.BeamOn(1)
184
185G4RunManager.OneEvent = _one_event
186
187# ------------------------------------------------------------------
188# list material information
189# ------------------------------------------------------------------
190def _list_material(self):
191 "list materials."
192 n_materials = len(gMaterialTable)
193 print " +------------------------------------------------------------------"
194 print " | Table of G4Material-s (%d materails defined)" % (n_materials)
195 for i in range(0, n_materials) :
196 material = gMaterialTable[i]
197 print " |--------------------------------------------------------"\
198 "----------"
199 print " | %s: %s" % (material.GetName(),
200 G4BestUnit(material.GetDensity(),"Volumic Mass"))
201
202 elementVec = material.GetElementVector()
203 fractionVec = material.GetFractionVector()
204 abundanceVec = material.GetVecNbOfAtomsPerVolume()
205 totNAtoms = material.GetTotNbOfAtomsPerVolume()
206
207 n_elements = len(elementVec)
208 for j in range(0, n_elements):
209 print " | + (%1d) %s(%s): A=%4.1f, N=%5.1f, " \
210 "Frac.=(%4.1f%%m,%4.1f%%a)" % \
211 (j+1, elementVec[j].GetName(), elementVec[j].GetSymbol(),
212 elementVec[j].GetZ(),
213 elementVec[j].GetN(),
214 fractionVec[j]/hepunit.perCent,
215 abundanceVec[j]/totNAtoms/hepunit.perCent)
216
217 print " +------------------------------------------------------------------"
218
219G4MaterialTable.ListMaterial = _list_material
220
221
222# ------------------------------------------------------------------
223# termination
224# ------------------------------------------------------------------
225def gTerminate():
226 gGeometryManager.OpenGeometry()
227
228
229# ------------------------------------------------------------------
230# signal handler
231# ------------------------------------------------------------------
232import signal
233import threading
234
235def _run_abort(signum, frame):
236 state = gStateManager.GetCurrentState();
237
238 if(state == G4ApplicationState.G4State_GeomClosed or
239 state == G4ApplicationState.G4State_EventProc):
240 print "aborting Run ...";
241 gRunManager.AbortRun(True);
242 else:
243 raise KeyboardInterrupt
244
245if (threading.activeCount() == 1):
246 signal.signal(signal.SIGINT, _run_abort)
247
248
Note: See TracBrowser for help on using the repository browser.