Files
geant4/examples/advanced/Tiara/source/py_modules/parallelHall.py
T
2016-06-09 14:36:02 +02:00

61 lines
2.2 KiB
Python

# $Id: parallelHall.py,v 1.4 2003/06/20 12:41:06 dressel Exp $
# -------------------------------------------------------------------
# GEANT4 tag $Name: geant4-08-00 $
# -------------------------------------------------------------------
#
import G4Kernel
import CLHEP
import string
class ParallelHall(object):
def __init__(self, tiaraSpecs):
self.halfWidth = tiaraSpecs.dimensions.worldHalfWidth + \
10*CLHEP.cm
self.halfLength = tiaraSpecs.dimensions.worldHalfLength + \
10*CLHEP.cm
self.hallSolid = G4Kernel.G4Box("parallelBox",
self.halfWidth,
self.halfWidth,
self.halfLength)
vacuum = tiaraSpecs.materials.GetMaterial("vacuum")
self.logHall = G4Kernel.G4LogicalVolume(self.hallSolid,
vacuum,
"paralleleLog")
rot = G4Kernel.G4RotationMatrix()
self.worldVolume = G4Kernel.\
G4PVPlacement(rot,
CLHEP.Hep3Vector(0, 0, 0),
self.logHall,
"ParallelHall");
self.geoCells = []
def getWorldVolume(self):
return self.worldVolume
def placeCells(self, arrPosLogVol):
for ele in arrPosLogVol:
phys = self.placeOneCell(ele)
self.geoCells.append(G4Kernel.G4GeometryCell(phys, 0))
def placeOneCell(self, pLog, name = ""):
rot = G4Kernel.G4RotationMatrix()
z = int(pLog.pos)
zstr = "%(z)d" % vars()
zstr = string.rjust(zstr, 5)
zstr = string.replace(zstr,' ','0')
if not name:
name = "cell_z_" + zstr
vPhys = G4Kernel.\
G4PVPlacement(rot,
CLHEP.Hep3Vector(0, 0, pLog.pos),
pLog.log,
name,
self.logHall);
return vPhys
def getGeometryCells(self):
return self.geoCells