45 : rlist(0), ullist(0), urcode(false), uwcode(false), strip(true), rexp(false)
55 : rlist(0), ullist(0), urcode(true), uwcode(false), strip(true), rexp(false)
66 : rlist(0), ullist(0), urcode(true), uwcode(true), strip(true), rexp(false)
77 xercesc::XMLPlatformUtils::Terminate();
88 for(std::vector<G4GDMLAuxStructType>::const_iterator
89 iaux = auxInfoList->begin(); iaux != auxInfoList->end(); iaux++ )
91 if (iaux->type !=
"Region")
return;
95 if (name.
contains(
"DefaultRegionForTheWorld"))
continue;
101 "Invalid definition of geometrical region!");
108 for(std::vector<G4GDMLAuxStructType>::const_iterator
109 raux = iaux->auxList->begin(); raux != iaux->auxList->end(); raux++ )
122 const G4String& cvalue = raux->value;
129 const G4String& cvalue = raux->value;
136 const G4String& cvalue = raux->value;
143 const G4String& cvalue = raux->value;
152 const G4String& ulname = raux->value;
153 for(std::vector<G4GDMLAuxStructType>::const_iterator
154 uaux=raux->auxList->begin(); uaux!=raux->auxList->end(); uaux++ )
157 const G4String& uvalue = uaux->value;
160 if (ultag==
"ustepMax") { ustepMax = ulvalue; }
else
161 if (ultag==
"utrakMax") { utrakMax = ulvalue; }
else
162 if (ultag==
"utimeMax") { utimeMax = ulvalue; }
else
163 if (ultag==
"uekinMin") { uekinMin = ulvalue; }
else
164 if (ultag==
"urangMin") { urangMin = ulvalue; }
169 "Invalid definition of user-limits!");
173 utimeMax, uekinMin, urangMin);
186 for (
size_t i=0; i<rstore->size(); ++i)
188 const G4String& tname = (*rstore)[i]->GetName();
189 if (tname.
contains(
"DefaultRegionForParallelWorld"))
continue;
193 std::vector<G4LogicalVolume*>::iterator rlvol_iter
194 = (*rstore)[i]->GetRootLogicalVolumeIterator();
195 for (
size_t j=0; j<(*rstore)[i]->GetNumberOfRootVolumes(); ++j)
202 rlist->push_back(rsubaux);
205 G4double gam_cut = (*rstore)[i]->GetProductionCuts()->GetProductionCut(
"gamma");
207 rlist->push_back(caux1);
208 G4double e_cut = (*rstore)[i]->GetProductionCuts()->GetProductionCut(
"e-");
210 rlist->push_back(caux2);
211 G4double pos_cut = (*rstore)[i]->GetProductionCuts()->GetProductionCut(
"e+");
213 rlist->push_back(caux3);
214 G4double p_cut = (*rstore)[i]->GetProductionCuts()->GetProductionCut(
"proton");
216 rlist->push_back(caux4);
217 if ((*rstore)[i]->GetUserLimits())
221 const G4String& utype = (*rstore)[i]->GetUserLimits()->GetType();
223 G4double max_step = (*rstore)[i]->GetUserLimits()->GetMaxAllowedStep(fake_trk);
225 ullist->push_back(ulaux1);
226 G4double max_trk = (*rstore)[i]->GetUserLimits()->GetUserMaxTrackLength(fake_trk);
228 ullist->push_back(ulaux2);
229 G4double max_time = (*rstore)[i]->GetUserLimits()->GetUserMaxTime(fake_trk);
231 ullist->push_back(ulaux3);
232 G4double min_ekin = (*rstore)[i]->GetUserLimits()->GetUserMinEkine(fake_trk);
234 ullist->push_back(ulaux4);
235 G4double min_rng = (*rstore)[i]->GetUserLimits()->GetUserMinRange(fake_trk);
237 ullist->push_back(ulaux5);
238 rlist->push_back(uaux);
void AddRootLogicalVolume(G4LogicalVolume *lv)
void SetProductionCut(G4double cut, G4int index=-1)
G4bool IsReflected(G4LogicalVolume *lv) const
const G4GDMLAuxListType * GetAuxList() const
G4LogicalVolume * GetVolume(const G4String &name, G4bool verbose=true) const
static G4ReflectionFactory * Instance()
static G4RegionStore * GetInstance()
G4GDMLReadStructure * reader
G4GDMLAuxListType * rlist
static G4double GetValueOf(const G4String &)
G4String ConvertToString(G4int ival)
static G4LogicalVolumeStore * GetInstance()
G4GDMLAuxListType * ullist
G4String GenerateName(const G4String &, const void *const)
void StripName(G4String &) const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void ExportRegions(G4bool storeReferences=true)
G4bool contains(const std::string &) const
std::vector< G4GDMLAuxStructType > G4GDMLAuxListType
G4LogicalVolume * GetReflectedLV(G4LogicalVolume *lv) const
G4GDMLMessenger * messenger
void SetProductionCuts(G4ProductionCuts *cut)
void SetUserLimits(G4UserLimits *ul)
void AddAuxiliary(G4GDMLAuxStructType myaux)
const G4String & GetName() const
G4GDMLWriteStructure * writer
G4bool IsConstituent(G4LogicalVolume *lv) const
G4double Evaluate(const G4String &)