90 , fWorldMaterialName(
"G4_Galactic")
91 , fTargetMaterialName(
"G4_B")
92 , fCasingMaterialName(
"G4_WATER")
93 , fWorldDim(G4ThreeVector(0.5 * m, 0.5 * m, 0.5 * m))
94 , fTargetDim(G4ThreeVector(0.5 * m, 0.5 * m, 0.5 * m))
95 , fTargetSections(G4ThreeVector(5, 5, 5))
96 , fMfdName(
"Target_MFD")
134 G4bool check_overlap =
false;
139 new G4LogicalVolume(world_solid, materials.find(
"World")->second,
"World");
141 false, 0, check_overlap);
163 white->SetVisibility(
true);
164 red->SetVisibility(
true);
165 green->SetVisibility(
true);
166 blue->SetVisibility(
true);
168 white->SetForceWireframe(
true);
169 red->SetForceSolid(
true);
170 green->SetForceSolid(
true);
171 blue->SetForceSolid(
true);
173 world_log->SetVisAttributes(white);
175 for(G4int k = 0; k < nz; ++k)
176 for(G4int j = 0; j < ny; ++j)
177 for(G4int i = 0; i < nx; ++i)
181 0.5 * sx +
static_cast<G4double
>(i) * sx - 0.5 *
fWorldDim.x();
183 0.5 * sy +
static_cast<G4double
>(j) * sy - 0.5 *
fWorldDim.y();
185 0.5 * sz +
static_cast<G4double
>(k) * sz - 0.5 *
fWorldDim.z();
186 G4ThreeVector td = G4ThreeVector(dx, dy, -dz);
188 std::stringstream ss_name;
189 ss_name <<
"Target_" << i <<
"_" << j <<
"_" << k;
191 G4Box* target_solid =
192 new G4Box(ss_name.str(), 0.5 * sx, 0.5 * sy, 0.5 * sz);
195 G4bool is_casing =
true;
197 if(j == 0 || j + 1 == ny || i == 0 || i + 1 == nx ||
198 (nz > 1 && (k == 0 || k + 1 == nz)))
199 target_material = materials.find(
"Casing")->second;
202 target_material = materials.find(
"Target")->second;
209 target_log->SetUserLimits(steplimit);
212 k * nx * ny + j * nx + i, check_overlap);
217 target_log->SetVisAttributes(blue);
221 G4bool even_z = (k % 2 == 0) ?
true :
false;
222 G4bool even_y = (j % 2 == 0) ?
true :
false;
223 G4bool even_x = (i % 2 == 0) ?
true :
false;
229 if((even_y && even_x) || (!even_y && !even_x))
236 if((!even_y && even_x) || (even_y && !even_x))
242 target_log->SetVisAttributes(theColor);