source: trunk/examples/advanced/Tiara/source/py_modules/parallelHall.py @ 807

Last change on this file since 807 was 807, checked in by garnier, 16 years ago

update

File size: 2.2 KB
Line 
1# $Id: parallelHall.py,v 1.4 2003/06/20 12:41:06 dressel Exp $
2# -------------------------------------------------------------------
3# GEANT4 tag $Name:  $
4# -------------------------------------------------------------------
5#
6import G4Kernel
7import CLHEP
8import string
9
10class ParallelHall(object):
11    def __init__(self, tiaraSpecs):
12        self.halfWidth = tiaraSpecs.dimensions.worldHalfWidth + \
13                     10*CLHEP.cm
14        self.halfLength = tiaraSpecs.dimensions.worldHalfLength + \
15                      10*CLHEP.cm
16        self.hallSolid = G4Kernel.G4Box("parallelBox", 
17                                        self.halfWidth,
18                                        self.halfWidth,
19                                        self.halfLength)
20        vacuum = tiaraSpecs.materials.GetMaterial("vacuum")
21        self.logHall = G4Kernel.G4LogicalVolume(self.hallSolid,
22                                                vacuum,
23                                                "paralleleLog")
24        rot = G4Kernel.G4RotationMatrix()
25        self.worldVolume = G4Kernel.\
26                           G4PVPlacement(rot,
27                                         CLHEP.Hep3Vector(0, 0, 0),
28                                         self.logHall,
29                                         "ParallelHall");
30        self.geoCells = []
31
32    def getWorldVolume(self):
33        return self.worldVolume
34
35    def placeCells(self, arrPosLogVol):
36        for ele in arrPosLogVol:
37            phys = self.placeOneCell(ele)
38            self.geoCells.append(G4Kernel.G4GeometryCell(phys, 0))
39
40    def placeOneCell(self, pLog, name = ""):
41        rot = G4Kernel.G4RotationMatrix()
42        z = int(pLog.pos)
43        zstr = "%(z)d" % vars()
44        zstr = string.rjust(zstr, 5)
45        zstr = string.replace(zstr,' ','0')
46
47        if not name:
48            name = "cell_z_" + zstr
49        vPhys = G4Kernel.\
50                G4PVPlacement(rot,
51                              CLHEP.Hep3Vector(0, 0, pLog.pos),
52                              pLog.log,
53                              name,
54                              self.logHall);
55        return vPhys
56
57    def getGeometryCells(self):
58        return self.geoCells
59
60
Note: See TracBrowser for help on using the repository browser.