fixed assign problems probably

This commit is contained in:
Jan Kieseler
2024-01-25 10:44:39 +01:00
parent 96e0b94eb7
commit cb736850e7
3 changed files with 22 additions and 1 deletions
+15 -1
View File
@@ -1,10 +1,24 @@
from G4Calo import GeometryDescriptor, G4System
import sys
cw = GeometryDescriptor()
for _ in range(25):
cw.addLayer(0.5, "G4Pb", False)
cw.addLayer(0.5, "G4_Pb", False)
cw.addLayer(1.,"G4_POLYSTYRENE",True,1)
#directly use G4System as a global singleton
G4System.init(cw)
df = G4System.run_batch(10, 'gamma', 1)
cw = GeometryDescriptor()
for _ in range(5):
cw.addLayer(0.5, "G4_Pb", False)
cw.addLayer(1.,"G4_POLYSTYRENE",True,1)
G4System.init(cw)
df = G4System.run_batch(10, 'gamma', 1)
+4
View File
@@ -134,6 +134,10 @@ public:
}
}
bool isEmpty()const{
return layers.size() == 0;
}
void setG4System(G4System* g4system){
this->g4system = g4system;
}
+3
View File
@@ -14,6 +14,9 @@ void G4System::init(GeometryDescriptor &CW){
if(CW.isAssigned()){
throw std::runtime_error("GeometryDescriptor already assigned");
}
if(CW.isEmpty()){
throw std::runtime_error("GeometryDescriptor is empty");
}
if(assigned_cw != nullptr){
//reassign
assigned_cw->unAssign();