83 G4bool const overlapChecking =
false;
85 G4bool const overlapChecking =
true;
101 position.
set(0.0, 0.0, 0.0);
126 position.
set(0.0, 0.0, -floorH * 0.5);
154 position.
set(0.0, 0.0, tankH * 0.5);
165 G4Tubs*
const solidTankAir
168 tankOR - tankWallThickness,
177 position.
set(0.0, 0.0, (tankH - tankAirH) * 0.5);
187 const G4double tankH2OH = (tankH - (tankAirH + tankWallThickness));
188 G4Tubs*
const solidTankH2O
191 tankOR - tankWallThickness,
200 const G4double centerOfH2O = (tankH - tankH2OH) * 0.5 - tankAirH;
201 position.
set(0.0, 0.0, centerOfH2O);
224 G4Box*
const solidPlate
225 =
new G4Box(
"Plate_Cladding",
234 G4Box*
const solidMeat
235 =
new G4Box(
"Plate_Meat",
244 position.
set(0.0, 0.0, 0.0);
271 if(std::sqrt(
x *
x +
y *
y) < plateRadius)
275 if(std::sqrt(
x *
x + y * y) > 1.0 *
inch)
317 =
new G4Tubs(
"NeutronSource",
328 position.
set(0.0, 0.0, 0.0);
343 G4Box*
const solidPoly
353 G4double radiusToPolyCenter = (tankOR / std::sqrt(2.0)) + std::sqrt(2.0) * polyS;
354 position.
set(-radiusToPolyCenter, radiusToPolyCenter, polyH);
367 =
new G4Tubs(
"Detector_Shell",
378 position.
set(0.0, 0.0, 0.0);
391 =
new G4Tubs(
"Detector_BF3_Core",
402 position.
set(0.0, 0.0, 0.0);
412 return physicalWorld;
441 G4double const U235Enrichment = 0.2;
442 G4double const U238Enrichment = 0.8;
447 235.053930 * (
g /
mole));
452 238.050788 * (
g /
mole));
468 const G4double UO2MolecularWeight = U235->
GetA() * U235Enrichment
469 + U238->
GetA() * U238Enrichment
470 + oxygen->
GetA() * 2;
471 const G4double U235MassFraction = (U235->
GetA() * U235Enrichment)
472 / UO2MolecularWeight;
473 const G4double U238MassFraction = (U238->
GetA() * U238Enrichment)
474 / UO2MolecularWeight;
475 const G4double oxygenMassFraction = (oxygen->
GetA() * 2)
476 / UO2MolecularWeight;
493 G4double const B10Enrichment = 0.96;
494 G4double const B11Enrichment = 0.04;
499 10.0129370 * (
g /
mole));
504 11.0093054 * (
g /
mole));
520 const G4double BF3MolecularWeight = B10->
GetA() * B10Enrichment
521 + B11->
GetA() * B11Enrichment
522 + flouride->
GetA() * 3;
523 const G4double B10MassFraction = (B10->
GetA() * B10Enrichment)
524 / BF3MolecularWeight;
525 const G4double B11MassFraction = (B11->
GetA() * B11Enrichment)
526 / BF3MolecularWeight;
527 const G4double flourideMassFraction = (flouride->
GetA() * 3)
528 / BF3MolecularWeight;
538 flourideMassFraction);
552 "Plate@Location X:%.2f Y:%.2f",
void set(double x, double y, double z)
virtual G4VPhysicalVolume * Construct()
G4Material * fPolyethylene
void PlaceFuelPlate(double x, double y, G4LogicalVolume *const myLogicalVolume, G4LogicalVolume *const parentLogicalVolume)
virtual ~FFDetectorConstruction()
static constexpr double kg
const G4String & GetName() const
void AddIsotope(G4Isotope *isotope, G4double RelativeAbundance)
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
static constexpr double g
static constexpr double m3
static constexpr double deg
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
void AddElement(G4Element *element, G4int nAtoms)
G4GLOB_DLL std::ostream G4cout
static constexpr double cm
static const G4double inch
Definition of the FFDetectorConstruction class.
void DefineMaterials(void)
static constexpr double mole
static constexpr double cm3
G4Material * fStainlessSteel
const G4String & GetName() const
static G4NistManager * Instance()