#include "construction.hh" #include "G4NistManager.hh" #include "G4SystemOfUnits.hh" #include "G4RunManager.hh" #include "messenger.hh" MyDetectorConstruction::MyDetectorConstruction() { fsizeXY = 50*cm; fsizeZ = 50*cm; G4cout << "valeurs initiales" << "sizeXY : "<ReinitializeGeometry(); } void MyDetectorConstruction::SetMiniX_Z(const G4double sizeZ ){ fsizeZ = sizeZ; G4RunManager::GetRunManager()->ReinitializeGeometry(); } void MyDetectorConstruction::DefineMaterial() { G4NistManager *nist = G4NistManager::Instance(); H2O = new G4Material("H2O", 1.0000*g/cm3, 2); H2O->AddElement(nist->FindOrBuildElement("H"),2); H2O->AddElement(nist->FindOrBuildElement("O"),1); worldMat = nist ->FindOrBuildMaterial("G4_AIR"); } G4VPhysicalVolume *MyDetectorConstruction::Construct() { // Option to switch on/off checking of volumes overlaps G4bool checkOverlaps = true; auto solidWorld = new G4Box("solidWorld",xWorld,yWorld,zWorld); auto logicWorld = new G4LogicalVolume(solidWorld,worldMat,"logicWorld"); auto physWorld = new G4PVPlacement(nullptr,G4ThreeVector(0.,0.,0.),logicWorld,"physWord", 0,false,0, checkOverlaps); // Box MiniX G4ThreeVector posMiniX = G4ThreeVector(0,0,-5*cm); G4cout << "dans construct " << "fsizeXY : " << fsizeXY << "fsizeZ : " << fsizeZ << G4endl; G4double MiniX_sizeXY= fsizeXY; G4double MiniX_sizeZ = fsizeZ; G4cout << "MiniX_sizeXY : "<