Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
examples/demos/water_phantom/test.py
Go to the documentation of this file.
1 #!/usr/bin/python
2 # ==================================================================
3 # python script for Geant4Py test
4 #
5 # ==================================================================
6 from Geant4 import *
7 import demo_wp
8 
9 # ==================================================================
10 # user actions in python
11 # ==================================================================
13  "My Primary Generator Action"
14 
15  def __init__(self):
16  G4VUserPrimaryGeneratorAction.__init__(self)
18 
19  def GeneratePrimaries(self, event):
20  self.particleGun.GeneratePrimaryVertex(event)
21 
22 # ------------------------------------------------------------------
24  "My Run Action"
25 
26  def EndOfRunAction(self, run):
27  print "*** End of Run"
28  print "- Run sammary : (id= %d, #events= %d)" \
29  % (run.GetRunID(), run.GetNumberOfEventToBeProcessed())
30 
31 # ------------------------------------------------------------------
33  "My Event Action"
34 
35  def EndOfEventAction(self, event):
36  pass
37 
38 # ------------------------------------------------------------------
39 class MySteppingAction(G4UserSteppingAction):
40  "My Stepping Action"
41 
42  def UserSteppingAction(self, step):
43  pass
44  #print "*** dE/dx in current step=", step.GetTotalEnergyDeposit()
45  preStepPoint= step.GetPreStepPoint()
46  track= step.GetTrack()
47  touchable= track.GetTouchable()
48  #print "*** vid= ", touchable.GetReplicaNumber()
49 
50 
51 # ==================================================================
52 # main
53 # ==================================================================
54 myMaterials= demo_wp.MyMaterials()
55 myMaterials.Construct()
56 
57 myDC= demo_wp.MyDetectorConstruction()
58 gRunManager.SetUserInitialization(myDC)
59 
60 myPL= FTFP_BERT()
61 gRunManager.SetUserInitialization(myPL)
62 
63 # set user actions...
65 gRunManager.SetUserAction(myPGA)
66 
67 myRA= MyRunAction()
68 gRunManager.SetUserAction(myRA)
69 
70 myEA= MyEventAction()
71 gRunManager.SetUserAction(myEA)
72 
73 mySA= MySteppingAction()
74 gRunManager.SetUserAction(mySA)
75 
76 
77 # set particle gun
78 pg= myPGA.particleGun
79 pg.SetParticleByName("proton")
80 pg.SetParticleEnergy(230.*MeV)
81 pg.SetParticleMomentumDirection(G4ThreeVector(0., 0., 1.))
82 pg.SetParticlePosition(G4ThreeVector(0.,0.,-20.)*cm)
83 
84 gRunManager.Initialize()
85 
86 # visualization
87 gApplyUICommand("/control/execute vis.mac")
88 
89 # beamOn
90 #gRunManager.BeamOn(3)
91 
92