219def ConstructGeom():
220 print("* Constructing geometry...")
221 world_r = 100.*m
222
223 vac = G4Material.GetMaterial("G4_Galactic")
224 g4py.ezgeom.SetWorldMaterial(vac)
225 g4py.ezgeom.ResizeWorld(world_r, world_r, world_r)
226
227 global snoopy,snoopyPhys,scoreLog
228 snoopy = G4EzVolume("Snoopy")
229 snoopy.CreateTubeVolume(vac, 0., 10*m, 50.*m)
230 snoopyPhys = snoopy.PlaceIt(G4ThreeVector(0.,0.,0.*m))
231 snoopyLog = snoopyPhys.GetLogicalVolume()
232 snoopy.SetVisibility(False)
233
234 global target,targetPhys
235 iron = G4Material.GetMaterial("G4_Fe")
236 air = G4Material.GetMaterial("G4_AIR")
237 tungsten = G4Material.GetMaterial("G4_W")
238 lead = G4Material.GetMaterial("G4_Pb")
239 alum = G4Material.GetMaterial("G4_Al")
240 target = G4EzVolume("Target")
241 target.CreateTubeVolume(tungsten, 0., 25.*cm, 25.*cm)
242 targetPhys = target.PlaceIt(G4ThreeVector(0.,0.,-50.*m+25.*cm),1,snoopy)
243 target.SetColor(G4Color(0.0,0.5,0.5,1.0))
244 target.SetVisibility(True)
245
246
247 absorber = G4EzVolume("Absorber")
248
249
250 absorber.CreateTubeVolume(iron, 0., 100.*cm, 150.*cm)
251 absorberPhys = absorber.PlaceIt(G4ThreeVector(0.,0.,-50*m+2*25.*cm+150.*cm),1,snoopy)
252 absorber.SetColor(G4Color(0.898,0.902,0.91,1.0))
253 absorber.SetVisibility(True)
254 xx = G4VisAttributes()
255 xx.SetForceWireframe(True)
256 absorberlog = absorberPhys.GetLogicalVolume()
257 absorberlog.SetVisAttributes(xx)
258
259 scorez = -50.*m+2*25.*cm+2*150.*cm+1*mm
260 score = G4EzVolume("Score")
261 score.CreateTubeVolume(vac, 0., 50.*m, 1.*mm)
262 scorePhys = score.PlaceIt(G4ThreeVector(0.,0.,scorez),1,snoopy)
263 scoreLog = scorePhys.GetLogicalVolume()
264 g4py.ezgeom.Construct()
265