ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
run.py
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file run.py
1 #!/usr/bin/python
2 # ==================================================================
3 # python script for Geant4Py test
4 #
5 # gtest02
6 # - test for using site-module packages
7 # ==================================================================
8 from Geant4 import *
9 import g4py.NISTmaterials
10 import g4py.ezgeom
11 from g4py.ezgeom import G4EzVolume
12 import g4py.EMSTDpl
13 import g4py.ParticleGun
14 
15 # ==================================================================
16 # intialize
17 # ==================================================================
18 def Configure():
19  # ------------------------------------------------------------------
20  # setup for materials
21  # ------------------------------------------------------------------
22  # simple materials for Qgeom
23  g4py.NISTmaterials.Construct()
24 
25  # ------------------------------------------------------------------
26  # setup for geometry
27  # ------------------------------------------------------------------
28  #g4py.Qgeom.Construct()
29  g4py.ezgeom.Construct() # initialize
30 
31  # ------------------------------------------------------------------
32  # setup for physics list
33  # ------------------------------------------------------------------
34  g4py.EMSTDpl.Construct()
35 
36  # ------------------------------------------------------------------
37  # setup for primary generator action
38  # ------------------------------------------------------------------
39  g4py.ParticleGun.Construct()
40  gControlExecute("gun.mac")
41 
42 # ==================================================================
43 # constructing geometry
44 # ==================================================================
46  print "* Constructing geometry..."
47  # reset world material
48  air= G4Material.GetMaterial("G4_AIR")
49  g4py.ezgeom.SetWorldMaterial(air)
50 
51  # target
52  global target
53  target= G4EzVolume("Target")
54  au= G4Material.GetMaterial("G4_Au")
55  target.CreateTubeVolume(au, 0., 1.*cm, 1.*mm)
56  target.PlaceIt(G4ThreeVector(0.,0.,-10.*cm))
57 
58  # dummy box
59  global detector_box, detector_box_pv
60  detector_box= G4EzVolume("DetectorBox")
61  detector_box.CreateBoxVolume(air, 20.*cm, 20.*cm, 40.*cm)
62  detector_box_pv= detector_box.PlaceIt(G4ThreeVector(0.,0.,20.*cm))
63 
64  # calorimeter
65  global cal
66  cal= G4EzVolume("Calorimeter")
67  nai= G4Material.GetMaterial("G4_SODIUM_IODIDE")
68  cal.CreateBoxVolume(nai, 5.*cm, 5.*cm, 30.*cm)
69  dd= 5.*cm
70  for ical in range(-1, 2):
71  calPos= G4ThreeVector(dd*ical, 0., 0.)
72  print calPos
73  cal.PlaceIt(calPos, ical+1, detector_box)
74 
75 
76 # ==================================================================
77 # main
78 # ==================================================================
79 # ------------------------------------------------------------------
80 # randum number
81 # ------------------------------------------------------------------
82 rand_engine= Ranlux64Engine()
83 HepRandom.setTheEngine(rand_engine)
84 HepRandom.setTheSeed(20050830L)
85 
86 # setup...
87 Configure()
89 
90 # ------------------------------------------------------------------
91 # go...
92 # ------------------------------------------------------------------
93 gRunManager.Initialize()
94 
95 # visualization
96 gControlExecute("vis.mac")
97 
98 # beamOn
99 #gRunManager.BeamOn(3)
100