From 9cd1a93ceddcfd14cd940a8d83bc28b0c5ad1bff Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Mon, 9 Oct 2023 11:55:30 +0200 Subject: [PATCH] fix --- bind/example.py | 5 +---- include/G4System.hh | 2 +- src/DetectorConstruction.cc | 3 ++- src/G4System.cc | 2 +- src/PrimaryGeneratorAction.cc | 4 +++- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bind/example.py b/bind/example.py index aa373b1..9a7ab27 100644 --- a/bind/example.py +++ b/bind/example.py @@ -6,9 +6,6 @@ cw.addLayer(10,"G4_Si",True) #10 cm of Silicon, active cw.addLayer(1,"G4_Pb",False) #1 cm of Lead, passive cw.addLayer(10,"G4_Si",True, 3) #10 cm of Silicon, active, 3x3 segmentation -G4System = G4System +#directly use G4System as a global singleton G4System.init(cw) G4System.run_batch(100, "gamma", 1, 5) #100 events, photons, 1000 MeV to 5000 MeV - -#G4s.run_visualize("gamma", 1, 5) -G4System.printMaterial("G4_Pb") \ No newline at end of file diff --git a/include/G4System.hh b/include/G4System.hh index d9274fe..74589b7 100644 --- a/include/G4System.hh +++ b/include/G4System.hh @@ -21,7 +21,7 @@ class G4System{ public: -G4System(bool Gui=false):gui(Gui){}; +G4System(bool Gui=true):gui(Gui){}; ~G4System(){ if(visManager != nullptr){ delete visManager; diff --git a/src/DetectorConstruction.cc b/src/DetectorConstruction.cc index f9bd893..7f9e532 100644 --- a/src/DetectorConstruction.cc +++ b/src/DetectorConstruction.cc @@ -82,6 +82,7 @@ public: y = (copyNo / layer.nx) * layer.sens_ywidth*cm; } G4ThreeVector origin(x, y, z); + // G4ThreeVector(layer.sens_xwidth * (i % layer.nx) - layer.sens_xwidth * ((float)layer.nx-1) / 2.*cm, //from sensor position below origin -= G4ThreeVector(layer.sens_xwidth * ((float)layer.nx-1) / 2.*cm, layer.sens_ywidth * ((float)layer.ny-1) / 2.*cm, 0); origin += G4ThreeVector(0., 0., position); physVol->SetTranslation(origin); @@ -270,7 +271,7 @@ G4VPhysicalVolume* DetectorConstruction::DefineVolumes() if(layer.isActive){ for(int i = 0; i < layer.nx*layer.ny; i++){ Sensor sensor; - sensor.position = G4ThreeVector(layer.sens_xwidth * (i % layer.nx) - layer.sens_xwidth * ((float)layer.nx-1) / 2.*cm, + sensor.position = G4ThreeVector(layer.sens_xwidth * (i % layer.nx) - layer.sens_xwidth * ((float)layer.nx-1) / 2.*cm, // FIX!!!! layer.sens_ywidth * (i / layer.nx) - layer.sens_ywidth * ((float)layer.ny-1) / 2.*cm, position); sensor.size = G4ThreeVector(layer.sens_xwidth, layer.sens_ywidth, layer.thickness); sensor.energy = 0; diff --git a/src/G4System.cc b/src/G4System.cc index c71eb59..6ef87a3 100644 --- a/src/G4System.cc +++ b/src/G4System.cc @@ -25,7 +25,7 @@ void G4System::init(GeometryDescriptor &CW){ // runManager = G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default); - runManager->SetNumberOfThreads(20);//more doesn't make sense + runManager->SetNumberOfThreads(1);//more doesn't make sense runManager->SetVerboseLevel(0); } else{ diff --git a/src/PrimaryGeneratorAction.cc b/src/PrimaryGeneratorAction.cc index a1e1cad..aacec9b 100644 --- a/src/PrimaryGeneratorAction.cc +++ b/src/PrimaryGeneratorAction.cc @@ -78,7 +78,9 @@ void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) // This function is called at the begining of event - G4double rand = G4INCL::Random::shoot(); + G4double rand = 0; + while(rand > 1 || rand < 0) + rand = G4INCL::Random::shoot(); partEnergy = rand*(maxPartEnergy-minPartEnergy)+minPartEnergy; auto particleDefinition