2 # ================================================================== 3 # [Geant4] module package 7 # This package contains a set of Python interface with Geant4. 8 # ================================================================== 12 __date__ =
'December/2017' 13 __author__ =
'K.Murakami (Koichi.Murakami@kek.jp)' 16 from G4interface
import *
17 from G4intercoms
import *
18 from G4global
import *
21 from G4tracking
import *
23 from G4particles
import *
24 from G4processes
import *
25 from G4geometry
import *
26 from G4materials
import *
27 from G4physicslists
import *
28 from G4digits_hits
import *
29 from G4visualization
import *
31 from G4graphics_reps
import *
33 from colortable
import *
36 print """============================================================= 37 Welcome to Geant4Py (A Geant4-Python Bridge) 42 ============================================================= 43 """ % ( __version__, __date__, __author__)
49 SetG4PyCoutDestination()
55 if G4RunManager.GetRunManager() ==
None:
56 gRunManager = G4RunManager()
58 gRunManager = G4RunManager.GetRunManager()
59 gRunManagerKernel = G4RunManagerKernel.GetRunManagerKernel()
62 gUImanager = G4UImanager.GetUIpointer()
65 gEventManager = G4EventManager.GetEventManager()
68 gStackManager = gEventManager.GetStackManager()
71 gTrackingManager = gEventManager.GetTrackingManager()
74 gStateManager = G4StateManager.GetStateManager()
75 gExceptionHandler = G4ExceptionHandler()
78 gGeometryManager = G4GeometryManager.GetInstance()
81 gTransportationManager = G4TransportationManager.GetTransportationManager()
84 gParticleTable = G4ParticleTable.GetParticleTable()
85 gParticleIterator = PyG4ParticleList()
88 gProcessTable = G4ProcessTable.GetProcessTable()
91 gProductionCutsTable = G4ProductionCutsTable.GetProductionCutsTable()
94 gEmCalculator = G4EmCalculator()
97 gMaterialTable = G4Material.GetMaterialTable()
98 gElementTable = G4Element.GetElementTable()
101 _material_class_list =
dir(G4materials)
102 _qfind = _material_class_list.count(
"G4NistManager") > 0
104 gNistManager = G4NistManager.Instance()
107 _visdriver_list =
dir(G4visualization)
108 _q_opengl_ix =
"G4OpenGLImmediateX" in _visdriver_list
109 _q_opengl_sx =
"G4OpenGLStoredX" in _visdriver_list
110 _q_opengl_ixm =
"G4OpenGLImmediateXm" in _visdriver_list
111 _q_opengl_sxm =
"G4OpenGLStoredXm" in _visdriver_list
112 _q_raytracer_x =
"G4RayTracerX" in _visdriver_list
114 if G4VisManager.GetConcreteInstance() ==
None:
115 gVisManager = G4VisManager()
117 _opengl_ix = G4OpenGLImmediateX()
119 _opengl_sx = G4OpenGLStoredX()
121 _opengl_ixm = G4OpenGLImmediateXm()
123 _opengl_sxm = G4OpenGLStoredXm()
125 _raytracer_x = G4RayTracerX()
127 _vrml1 = G4VRML1File()
128 _vrml2 = G4VRML2File()
130 _heprep_xml = G4HepRep()
131 _heprep_file = G4HepRepFile()
132 _atree = G4ASCIITree()
133 _raytracer = G4RayTracer()
136 gVisManager.RegisterGraphicsSystem(_opengl_ix)
138 gVisManager.RegisterGraphicsSystem(_opengl_sx)
140 gVisManager.RegisterGraphicsSystem(_opengl_ixm)
142 gVisManager.RegisterGraphicsSystem(_opengl_sxm)
144 gVisManager.RegisterGraphicsSystem(_raytracer_x)
146 gVisManager.RegisterGraphicsSystem(_vrml1)
147 gVisManager.RegisterGraphicsSystem(_vrml2)
148 gVisManager.RegisterGraphicsSystem(_dawn)
149 gVisManager.RegisterGraphicsSystem(_heprep_xml)
150 gVisManager.RegisterGraphicsSystem(_heprep_file)
151 gVisManager.RegisterGraphicsSystem(_atree)
152 gVisManager.RegisterGraphicsSystem(_raytracer)
154 gVisManager.Initialize()
157 gG4Version = G4Version
159 gG4VERSION_NUMBER = G4VERSION_NUMBER
164 gControlExecute = gUImanager.ExecuteMacroFile
165 gApplyUICommand = G4intercoms.ApplyUICommand
166 gGetCurrentValues = gUImanager.GetCurrentValues
167 gStartUISession = G4interface.StartUISession
178 "generate one event." 181 G4RunManager.OneEvent = _one_event
188 n_materials = len(gMaterialTable)
189 print " +------------------------------------------------------------------" 190 print " | Table of G4Material-s (%d materails defined)" % (n_materials)
191 for i
in range(0, n_materials) :
192 material = gMaterialTable[i]
193 print " |--------------------------------------------------------"\
195 print " | %s: %s" % (material.GetName(),
196 G4BestUnit(material.GetDensity(),
"Volumic Mass"))
198 elementVec = material.GetElementVector()
199 fractionVec = material.GetFractionVector()
200 abundanceVec = material.GetVecNbOfAtomsPerVolume()
201 totNAtoms = material.GetTotNbOfAtomsPerVolume()
203 n_elements = len(elementVec)
204 for j
in range(0, n_elements):
205 print " | + (%1d) %s(%s): A=%4.1f, N=%5.1f, " \
206 "Frac.=(%4.1f%%m,%4.1f%%a)" % \
207 (j+1, elementVec[j].
GetName(), elementVec[j].GetSymbol(),
208 elementVec[j].GetZ(),
209 elementVec[j].GetN(),
210 fractionVec[j]/hepunit.perCent,
211 abundanceVec[j]/totNAtoms/hepunit.perCent)
213 print " +------------------------------------------------------------------" 215 G4MaterialTable.ListMaterial = _list_material
222 gGeometryManager.OpenGeometry()
232 state = gStateManager.GetCurrentState()
234 if(state == G4ApplicationState.G4State_GeomClosed
or 235 state == G4ApplicationState.G4State_EventProc):
236 print "aborting Run ..." 237 gRunManager.AbortRun(
True)
239 raise KeyboardInterrupt
241 if (threading.activeCount() == 1):
242 signal.signal(signal.SIGINT, _run_abort)
def _run_abort(signum, frame)
std::string GetName(int i)