2# ==================================================================
3# [Geant4] module package
11__date__ = 'December/2019'
12__author__ = 'K.Murakami (Koichi.Murakami@kek.jp)'
15from .G4interfaces import *
16from .G4intercoms import *
17from .G4global import *
20from .G4tracking import *
22from .G4particles import *
23from .G4processes import *
24from .G4geometry import *
25from .G4materials import *
26from .G4physicslists import *
27from .G4digits_hits import *
28from .G4visualization import *
29from .G4graphics_reps import *
31from .colortable import *
34 print("""=============================================================
35 Welcome to Geant4Py (A Geant4-Python Bridge)
39=============================================================
40""" % ( __version__, __date__) )
42# ==================================================================
44# ==================================================================
45# set G4cout/G4cerr to Python stdout
46SetG4PyCoutDestination()
48# ==================================================================
49# globals, which start with "g"
50# ==================================================================
52if G4RunManager.GetRunManager() == None:
65gStackManager = gEventManager.GetStackManager()
68gTrackingManager = gEventManager.GetTrackingManager()
98_material_class_list = dir(G4materials)
99_qfind = _material_class_list.count(
"G4NistManager") > 0
104_visdriver_list = dir(G4visualization)
105_q_opengl_ix =
"G4OpenGLImmediateX" in _visdriver_list
106_q_opengl_sx =
"G4OpenGLStoredX" in _visdriver_list
107_q_opengl_ixm =
"G4OpenGLImmediateXm" in _visdriver_list
108_q_opengl_sxm =
"G4OpenGLStoredXm" in _visdriver_list
109_q_raytracer_x =
"G4RayTracerX" in _visdriver_list
131 gVisManager.RegisterGraphicsSystem(_opengl_ix)
133 gVisManager.RegisterGraphicsSystem(_opengl_sx)
135 gVisManager.RegisterGraphicsSystem(_opengl_ixm)
137 gVisManager.RegisterGraphicsSystem(_opengl_sxm)
139 gVisManager.RegisterGraphicsSystem(_raytracer_x)
141 gVisManager.RegisterGraphicsSystem(_vrml2)
142 gVisManager.RegisterGraphicsSystem(_dawn)
143 gVisManager.RegisterGraphicsSystem(_heprep_file)
144 gVisManager.RegisterGraphicsSystem(_atree)
145 gVisManager.RegisterGraphicsSystem(_raytracer)
147 gVisManager.Initialize()
150gG4Version = G4Version
152gG4VERSION_NUMBER = G4VERSION_NUMBER
157gControlExecute = gUImanager.ExecuteMacroFile
158gApplyUICommand = G4intercoms.ApplyUICommand
159gGetCurrentValues = gUImanager.GetCurrentValues
160gStartUISession = G4interfaces.StartUISession
171 "generate one event."
174G4RunManager.OneEvent = _one_event
181 n_materials = len(gMaterialTable)
182 print(
" +------------------------------------------------------------------")
183 print(
" | Table of G4Material-s (%d materails defined)" % (n_materials))
184 for i
in range(0, n_materials) :
185 material = gMaterialTable[i]
186 print(
" |--------------------------------------------------------"\
188 print(
" | %s: %s" % (material.GetName(),
189 G4BestUnit(material.GetDensity(),
"Volumic Mass")))
191 elementVec = material.GetElementVector()
192 fractionVec = material.GetFractionVector()
193 abundanceVec = material.GetVecNbOfAtomsPerVolume()
194 totNAtoms = material.GetTotNbOfAtomsPerVolume()
196 n_elements = len(elementVec)
197 for j
in range(0, n_elements):
198 print(
" | + (%1d) %s(%s): A=%4.1f, N=%5.1f, " \
199 "Frac.=(%4.1f%%m,%4.1f%%a)" % \
200 (j+1, elementVec[j].GetName(), elementVec[j].GetSymbol(),
201 elementVec[j].GetZ(),
202 elementVec[j].GetN(),
203 fractionVec[j]/hepunit.perCent,
204 abundanceVec[j]/totNAtoms/hepunit.perCent))
206 print(
" +------------------------------------------------------------------")
208G4MaterialTable.ListMaterial = _list_material
215 gGeometryManager.OpenGeometry()
225 state = gStateManager.GetCurrentState()
227 if(state == G4ApplicationState.G4State_GeomClosed
or
228 state == G4ApplicationState.G4State_EventProc):
229 print(
"aborting Run ...")
230 gRunManager.AbortRun(
True)
232 raise KeyboardInterrupt
234if (threading.activeCount() == 1):
235 signal.signal(signal.SIGINT, _run_abort)
void print(G4double elem)
static G4ElementTable * GetElementTable()
static G4EventManager * GetEventManager()
static G4GeometryManager * GetInstance()
static G4MaterialTable * GetMaterialTable()
static G4NistManager * Instance()
static G4ParticleTable * GetParticleTable()
static G4ProcessTable * GetProcessTable()
static G4ProductionCutsTable * GetProductionCutsTable()
static G4RunManagerKernel * GetRunManagerKernel()
static G4RunManager * GetRunManager()
static G4StateManager * GetStateManager()
static G4TransportationManager * GetTransportationManager()
static G4UImanager * GetUIpointer()
static G4VVisManager * GetConcreteInstance()
def _run_abort(signum, frame)