//#include "Geometry.hh" //#include "G4SystemOfUnits.hh" #include "DetectorConstruction.hh" #include "CLHEP/Units/SystemOfUnits.h" DetectorConstruction::DetectorConstruction() { // Constructor } DetectorConstruction::~DetectorConstruction() { // Destructor } G4VPhysicalVolume* DetectorConstruction::Construct() { // Get NIST Manager G4NistManager* nistManager = G4NistManager::Instance(); // Define materials G4Material* nickel = nistManager->FindOrBuildMaterial("G4_Ni"); G4Material* iron = nistManager->FindOrBuildMaterial("G4_Fe"); G4Material* rhenium = nistManager->FindOrBuildMaterial("G4_Re"); G4Material* boron_carbide = nistManager->FindOrBuildMaterial("G4_BORON_CARBIDE"); G4Material* chromium = nistManager->FindOrBuildMaterial("G4_Cr"); G4Material* titanium = nistManager->FindOrBuildMaterial("G4_Ti"); G4Material* copper = nistManager->FindOrBuildMaterial("G4_Cu"); G4Material* tungsten = nistManager->FindOrBuildMaterial("G4_W"); // Define a box shape G4Box* solidBox = new G4Box("Box", 10.0 * cm, 10.0 * cm, 10.0 * cm); // Define a logical volume with a mixture of materials G4Material* mixture = new G4Material("Mixture", 2.5 * g / cm3, 8); mixture->AddMaterial(nickel, 20 * perCent); mixture->AddMaterial(iron, 20 * perCent); mixture->AddMaterial(rhenium, 10 * perCent); mixture->AddMaterial(boron_carbide, 10 * perCent); mixture->AddMaterial(chromium, 10 * perCent); mixture->AddMaterial(titanium, 10 * perCent); mixture->AddMaterial(copper, 10 * perCent); mixture->AddMaterial(tungsten, 10 * perCent); G4LogicalVolume* logicBox = new G4LogicalVolume(solidBox, mixture, "Box"); // Place the box at the center of the world volume G4VPhysicalVolume* physBox = new G4PVPlacement(0, G4ThreeVector(), logicBox, "Box", 0, false, 0); return physBox; }