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

Last change on this file was 1337, checked in by garnier, 14 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.