[1337] | 1 | #!/usr/bin/python |
---|
| 2 | # ================================================================== |
---|
| 3 | # An example for reading a GDML file |
---|
| 4 | # |
---|
| 5 | # ================================================================== |
---|
| 6 | from Geant4 import * |
---|
| 7 | import g4py.ExN01pl, g4py.ParticleGun |
---|
| 8 | |
---|
| 9 | # ================================================================== |
---|
| 10 | # user actions in python |
---|
| 11 | # ================================================================== |
---|
| 12 | class MyDetectorConstruction(G4VUserDetectorConstruction): |
---|
| 13 | "My Detector Construction" |
---|
| 14 | |
---|
| 15 | def __init__(self): |
---|
| 16 | G4VUserDetectorConstruction.__init__(self) |
---|
| 17 | self.world= None |
---|
| 18 | self.gdml_parser= G4GDMLParser() |
---|
| 19 | |
---|
| 20 | # ----------------------------------------------------------------- |
---|
| 21 | def __del__(self): |
---|
| 22 | pass |
---|
| 23 | |
---|
| 24 | # ----------------------------------------------------------------- |
---|
| 25 | def Construct(self): |
---|
| 26 | self.gdml_parser.Read("qgeom.gdml") |
---|
| 27 | self.world= self.gdml_parser.GetWorldVolume() |
---|
| 28 | |
---|
| 29 | return self.world |
---|
| 30 | |
---|
| 31 | |
---|
| 32 | # ================================================================== |
---|
| 33 | # main |
---|
| 34 | # ================================================================== |
---|
| 35 | # set geometry |
---|
| 36 | myDC= MyDetectorConstruction() |
---|
| 37 | gRunManager.SetUserInitialization(myDC) |
---|
| 38 | |
---|
| 39 | # minimal physics list |
---|
| 40 | g4py.ExN01pl.Construct() |
---|
| 41 | |
---|
| 42 | # set primary generator action |
---|
| 43 | g4py.ParticleGun.Construct() |
---|
| 44 | |
---|
| 45 | # initialize |
---|
| 46 | gRunManager.Initialize() |
---|
| 47 | |
---|
| 48 | # visualization |
---|
| 49 | gApplyUICommand("/vis/open OGLIX") |
---|
| 50 | gApplyUICommand("/vis/scene/create") |
---|
| 51 | gApplyUICommand("/vis/scene/add/volume") |
---|
| 52 | gApplyUICommand("/vis/sceneHandler/attach") |
---|
| 53 | gApplyUICommand("/vis/viewer/set/viewpointThetaPhi 90. -90.") |
---|
| 54 | |
---|