54 G4tgbMaterialMgr::G4tgbMaterialMgr()
76 G4mstgbisot::const_iterator isotcite;
77 for( isotcite = theG4tgbIsotopes.begin();
78 isotcite != theG4tgbIsotopes.end(); isotcite++)
80 delete (*isotcite).second;
82 theG4tgbIsotopes.clear();
84 G4mstgbelem::const_iterator elemcite;
85 for( elemcite = theG4tgbElements.begin();
86 elemcite != theG4tgbElements.end(); elemcite++)
88 delete (*elemcite).second;
90 theG4tgbElements.clear();
92 G4mstgbmate::const_iterator matcite;
93 for( matcite = theG4tgbMaterials.begin();
94 matcite != theG4tgbMaterials.end(); matcite++)
96 delete (*matcite).second;
98 theG4tgbMaterials.clear();
109 G4mstgrisot::const_iterator cite;
110 for( cite = tgrIsots.begin(); cite != tgrIsots.end(); cite++ )
114 theG4tgbIsotopes[tgb->
GetName()] = tgb;
124 G4mstgrelem::const_iterator cite;
125 for( cite = tgrElems.begin(); cite != tgrElems.end(); cite++ )
129 theG4tgbElements[tgb->
GetName()] = tgb;
139 G4mstgrmate::const_iterator cite;
140 for( cite = tgrMates.begin(); cite != tgrMates.end(); cite++ )
144 if( tgr->
GetType() ==
"MaterialSimple" ) {
146 }
else if( tgr->
GetType() ==
"MaterialMixtureByWeight" ) {
148 }
else if( tgr->
GetType() ==
"MaterialMixtureByNoAtoms" ) {
150 }
else if( tgr->
GetType() ==
"MaterialMixtureByVolume" ) {
155 theG4tgbMaterials[tgb->
GetName()] = tgb;
171 theG4Isotopes[isotname] = g4isot;
178 G4cout <<
" G4tgbMaterialMgr::FindOrBuildG4Isotope() -"
179 <<
" G4Isotope already built: " << g4isot->
GetName() <<
G4endl;
187 G4cout <<
" G4tgbMaterialMgr::FindOrBuildG4Isotope() - Isotope: "
200 G4msg4isot::const_iterator cite = theG4Isotopes.find( name );
201 if( cite != theG4Isotopes.end() )
203 g4isot = (*cite).second;
207 G4cout <<
" G4tgbMaterialMgr::FindBuiltG4Isotope() - Isotope: "
208 << name <<
" = " << g4isot <<
G4endl;
224 G4mstgbisot::const_iterator cite = theG4tgbIsotopes.find( name );
225 if( cite != theG4tgbIsotopes.end() )
230 G4cout <<
" G4tgbMaterialMgr::FindG4tgbIsotope() -"
231 <<
" G4tgbIsotope found: " << ( (*cite).second )->GetName()
235 isot = (*cite).second;
237 if( (isot == 0) && bMustExist )
239 G4String ErrMessage =
"Isotope " + name +
" not found !";
240 G4Exception(
"G4tgbMaterialMgr::FindG4tgbIsotope()",
259 G4cout <<
" G4NistManager::Instance()->FindOrBuildElement( " <<
G4endl;
264 if( tgbelem->
GetType() ==
"ElementSimple" )
268 else if( tgbelem->
GetType() ==
"ElementFromIsotopes" )
275 +
" does not exist !";
283 theG4Elements[g4elem->
GetName()] = g4elem;
287 G4cout <<
" G4tgbMaterialMgr::FindOrBuildG4Element() - Element: "
296 G4String ErrMessage =
"Element " + name +
" not found !";
297 G4Exception(
"G4tgbMaterialMgr::FindOrBuildG4Element()",
303 G4cout <<
" G4tgbMaterialMgr::FindOrBuildG4Element() - Element: "
304 << name <<
" not found " <<
G4endl;
314 G4cout <<
" G4tgbMaterialMgr::GetG4Element() -"
315 <<
" G4Element already built: " << g4elem->
GetName() <<
G4endl;
329 G4msg4elem::const_iterator cite = theG4Elements.find( name );
330 if( cite != theG4Elements.end() )
332 g4elem = (*cite).second;
336 G4cout <<
" G4tgbMaterialMgr::FindBuiltG4Element() - Element: "
337 << name <<
" = " << g4elem <<
G4endl;
352 G4mstgbelem::const_iterator cite = theG4tgbElements.find( name );
353 if( cite != theG4tgbElements.end() )
358 G4cout <<
" G4tgbMaterialMgr::FindG4tgbElement() -"
359 <<
" G4tgbElement found: " << ( (*cite).second )->GetName()
363 elem = (*cite).second;
365 if( (elem == 0) && bMustExist )
367 G4String ErrMessage =
"Element " + name +
" not found !";
368 G4Exception(
"G4tgbMaterialMgr::FindG4tgbElement()",
397 GetTgrMate()->GetIonisationMeanExcitationEnergy());
404 theG4Materials[g4mate->
GetName()] = g4mate;
408 G4cout <<
" G4tgbMaterialMgr::FindOrBuildG4Material() - Material: "
417 G4String ErrMessage =
"Material " + name +
" not found !";
418 G4Exception(
"G4tgbMaterialMgr::FindOrBuildG4Material()",
424 G4cout <<
" G4tgbMaterialMgr::FindOrBuildG4Material() - Element: "
425 << name <<
" not found " <<
G4endl;
435 G4cout <<
" G4tgbMaterialMgr::FindOrBuildG4Material() -"
436 <<
" G4Material already built: " << g4mate->
GetName() <<
G4endl;
450 G4msg4mate::const_iterator cite = theG4Materials.find( name );
451 if( cite != theG4Materials.end() )
453 g4mate = (*cite).second;
457 G4cout <<
" G4tgbMaterialMgr::FindBuiltG4Material() - Material: "
458 << name <<
" = " << g4mate <<
G4endl;
472 G4mstgbmate::const_iterator cite = theG4tgbMaterials.find( name );
473 if( cite != theG4tgbMaterials.end() )
475 mate = (*cite).second;
479 G4cout <<
" G4tgbMaterialMgr::FindG4tgbMaterial() -"
480 <<
" G4tgbMaterial found: " << ( (*cite).second )->GetName()
481 <<
" type " << ( (*cite).second )->GetName() <<
G4endl;
486 if( (mate == 0) && bMustExist )
488 G4String ErrMessage =
"Material " + name +
" not found !";
489 G4Exception(
"G4tgbMaterialMgr::FindG4tgbMaterial()",
G4tgbMaterial * FindG4tgbMaterial(const G4String &name, G4bool bMustExist=0) const
G4IonisParamMat * GetIonisation() const
const G4String & GetName() const
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
G4tgbElement * FindG4tgbElement(const G4String &name, G4bool bMustExist=0) const
const G4mstgrisot & GetIsotopeList() const
const G4String & GetName() const
G4Isotope * FindOrBuildG4Isotope(const G4String &name)
const G4mstgrmate & GetMaterialList() const
void SetMeanExcitationEnergy(G4double value)
const G4String & GetName() const
G4tgrMaterial * GetTgrMate() const
G4Element * BuildG4ElementSimple()
static G4NistManager * Instance()
G4Element * FindOrBuildG4Element(const G4String &name, G4bool bMustExist=1)
G4GLOB_DLL std::ostream G4cout
virtual G4Material * BuildG4Material()=0
static G4int GetVerboseLevel()
G4Material * FindOrBuildG4Material(const G4String &name, G4bool bMustExist=1)
std::map< G4String, G4tgrMaterial * > G4mstgrmate
G4tgbIsotope * FindG4tgbIsotope(const G4String &name, G4bool bMustExist=0) const
const G4String & GetType() const
G4double GetIonisationMeanExcitationEnergy() const
const G4String & GetType() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4Material * FindBuiltG4Material(const G4String &name) const
G4Element * FindBuiltG4Element(const G4String &name) const
G4Element * BuildG4ElementFromIsotopes()
const G4mstgrelem & GetElementList() const
static G4tgrMaterialFactory * GetInstance()
const G4String & GetName() const
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
G4Isotope * BuildG4Isotope()
static G4tgbMaterialMgr * GetInstance()
G4Isotope * FindBuiltG4Isotope(const G4String &name) const
const G4String & GetName() const
std::map< G4String, G4tgrElement * > G4mstgrelem
std::map< G4String, G4tgrIsotope * > G4mstgrisot
const G4String & GetName() const