76 xercesc::XMLPlatformUtils::Terminate();
87 for(std::vector<G4GDMLAuxStructType>::const_iterator
88 iaux = auxInfoList->begin(); iaux != auxInfoList->end(); iaux++ )
90 if (iaux->type !=
"Region")
return;
94 if (name.
contains(
"DefaultRegionForTheWorld"))
continue;
100 "Invalid definition of geometrical region!");
107 for(std::vector<G4GDMLAuxStructType>::const_iterator
108 raux = iaux->auxList->begin(); raux != iaux->auxList->end(); raux++ )
121 const G4String& cvalue = raux->value;
124 G4Exception(
"G4GDMLParser::ImportRegions()",
"InvalidRead",
131 const G4String& cvalue = raux->value;
134 G4Exception(
"G4GDMLParser::ImportRegions()",
"InvalidRead",
141 const G4String& cvalue = raux->value;
144 G4Exception(
"G4GDMLParser::ImportRegions()",
"InvalidRead",
151 const G4String& cvalue = raux->value;
154 G4Exception(
"G4GDMLParser::ImportRegions()",
"InvalidRead",
163 const G4String& ulname = raux->value;
164 for(std::vector<G4GDMLAuxStructType>::const_iterator
165 uaux=raux->auxList->begin(); uaux!=raux->auxList->end(); uaux++ )
168 const G4String& uvalue = uaux->value;
171 if (ultag==
"ustepMax") { ustepMax = ulvalue; }
else
172 if (ultag==
"utrakMax") { utrakMax = ulvalue; }
else
173 if (ultag==
"utimeMax") { utimeMax = ulvalue; }
else
174 if (ultag==
"uekinMin") { uekinMin = ulvalue; }
else
175 if (ultag==
"urangMin") { urangMin = ulvalue; }
180 "Invalid definition of user-limits!");
184 utimeMax, uekinMin, urangMin);
197 for (
size_t i=0; i<rstore->size(); ++i)
199 const G4String& tname = (*rstore)[i]->GetName();
200 if (tname.
contains(
"DefaultRegionForParallelWorld"))
continue;
204 std::vector<G4LogicalVolume*>::iterator rlvol_iter
205 = (*rstore)[i]->GetRootLogicalVolumeIterator();
206 for (
size_t j=0; j<(*rstore)[i]->GetNumberOfRootVolumes(); ++j)
213 rlist->push_back(rsubaux);
216 G4double gam_cut = (*rstore)[i]->GetProductionCuts()->GetProductionCut(
"gamma");
218 rlist->push_back(caux1);
219 G4double e_cut = (*rstore)[i]->GetProductionCuts()->GetProductionCut(
"e-");
221 rlist->push_back(caux2);
222 G4double pos_cut = (*rstore)[i]->GetProductionCuts()->GetProductionCut(
"e+");
224 rlist->push_back(caux3);
225 G4double p_cut = (*rstore)[i]->GetProductionCuts()->GetProductionCut(
"proton");
227 rlist->push_back(caux4);
228 if ((*rstore)[i]->GetUserLimits())
232 const G4String& utype = (*rstore)[i]->GetUserLimits()->GetType();
234 G4double max_step = (*rstore)[i]->GetUserLimits()->GetMaxAllowedStep(fake_trk);
236 ullist->push_back(ulaux1);
237 G4double max_trk = (*rstore)[i]->GetUserLimits()->GetUserMaxTrackLength(fake_trk);
239 ullist->push_back(ulaux2);
240 G4double max_time = (*rstore)[i]->GetUserLimits()->GetUserMaxTime(fake_trk);
242 ullist->push_back(ulaux3);
243 G4double min_ekin = (*rstore)[i]->GetUserLimits()->GetUserMinEkine(fake_trk);
245 ullist->push_back(ulaux4);
246 G4double min_rng = (*rstore)[i]->GetUserLimits()->GetUserMinRange(fake_trk);
248 ullist->push_back(ulaux5);
249 rlist->push_back(uaux);