52 G4int numberOfVoxelsX,
53 G4int numberOfVoxelsY,
54 G4int numberOfVoxelsZ):
57 detectorToWorldPosition(pos),
58 detectorSizeX(detectorDimX),
59 detectorSizeY(detectorDimY),
60 detectorSizeZ(detectorDimZ),
61 numberOfVoxelsAlongX(numberOfVoxelsX),
62 numberOfVoxelsAlongY(numberOfVoxelsY),
63 numberOfVoxelsAlongZ(numberOfVoxelsZ)
85 G4double halfDetectorSizeX = detectorSizeX;
86 G4double halfDetectorSizeY = detectorSizeY;
87 G4double halfDetectorSizeZ = detectorSizeZ;
115 detectorToWorldPosition,
124 G4double halfXVoxelSizeX = halfDetectorSizeX/numberOfVoxelsAlongX;
125 G4double halfXVoxelSizeY = halfDetectorSizeY;
126 G4double halfXVoxelSizeZ = halfDetectorSizeZ;
127 G4double voxelXThickness = 2*halfXVoxelSizeX;
129 G4Box *RODetectorXDivision =
new G4Box(
"RODetectorXDivision",
136 "RODetectorXDivisionLog",
140 RODetectorXDivisionLog,
143 numberOfVoxelsAlongX,
148 G4double halfYVoxelSizeX = halfXVoxelSizeX;
149 G4double halfYVoxelSizeY = halfDetectorSizeY/numberOfVoxelsAlongY;
150 G4double halfYVoxelSizeZ = halfDetectorSizeZ;
151 G4double voxelYThickness = 2*halfYVoxelSizeY;
153 G4Box *RODetectorYDivision =
new G4Box(
"RODetectorYDivision",
160 "RODetectorYDivisionLog",
164 RODetectorYDivisionLog,
165 RODetectorXDivisionPhys,
167 numberOfVoxelsAlongY,
172 G4double halfZVoxelSizeX = halfXVoxelSizeX;
173 G4double halfZVoxelSizeY = halfYVoxelSizeY;
174 G4double halfZVoxelSizeZ = halfDetectorSizeZ/numberOfVoxelsAlongZ;
175 G4double voxelZThickness = 2*halfZVoxelSizeZ;
177 G4Box *RODetectorZDivision =
new G4Box(
"RODetectorZDivision",
184 "RODetectorZDivisionLog",
187 RODetectorZDivisionPhys =
new G4PVReplica(
"RODetectorZDivisionPhys",
188 RODetectorZDivisionLog,
189 RODetectorYDivisionPhys,
191 numberOfVoxelsAlongZ,
195 RODetectorZDivisionLog -> SetSensitiveDetector(dummySD);