27#include "G4Material.hh"
30class G4MaterialPropertiesTable;
54 G4Element*
GetElement(
const G4String& symbol)
const;
61 const G4String& prepend,
62 G4bool prependWasUsed);
67 void AddMaterial(G4Material* material, G4String name);
96 template <
typename Type>
100 G4double temperature,
102 const std::list<G4String>& components,
103 const std::list<Type>& componentFractions);
125 void AddElement(G4Element* element,
const G4String& symbol);
126 void AddElement(
const G4String& name,
const G4String& symbol, G4double itsZ, G4double itsA);
131 const G4String& materialName)
const;
A class for all material definitions known to BDSIM. Additional materials can be added in the parser ...
void DefineMetals()
Methods called by constructor.
void DefineLHCComponents()
Methods called by constructor.
void DefineGases()
Methods called by constructor.
void DefineNonMetalSolids()
Methods called by constructor.
void DensityCheck(G4double density, const G4String &materialName) const
Print warning if density suspiciously high. Should be in g/cm3 in G4 units already.
void DefineScintillators()
Methods called by constructor.
void DefineVacuums()
Methods called by constructor.
static BDSMaterials * Instance()
Singleton pattern access.
G4MaterialPropertiesTable * CreatePropertiesTable()
Create new properties table and store in vector.
std::map< G4String, G4Material * > aliases
Maps of other names to existing materials. To avoid double deletion. Also in lower case.
static BDSMaterials * instance
Singleton instance.
std::map< G4String, G4Material * > materials
<ap of materials, convention name lowercase.
std::map< G4String, G4Element * > elements
Map of elements, no lowercase convention.
void DefineLiquids()
Methods called by constructor.
void CacheMaterialsFromGDML(const std::map< G4String, G4Material * > &materialsGDML, const G4String &prepend, G4bool prependWasUsed)
G4Material * GetMaterial(G4String material) const
Get material by name.
void PrepareRequiredMaterials(G4bool verbose=false)
converts parser material list
void ListMaterials() const
output available materials
void DefinePlasmas()
Methods called by constructor.
void AddElement(G4Element *element, const G4String &symbol)
Add a G4Element.
void AddMaterial(G4Material *material, G4String name)
Add G4Material.
void DefineSuperconductors()
Methods called by constructor.
G4Element * CheckElement(const G4String &symbol) const
Return element if defined (nullptr if not)
void AddExistingMaterialAlias(const G4String &existingMaterialName, G4String alias)
Add alias to a material.
std::map< G4String, G4int > possibleDuplicates
G4Element * GetElement(const G4String &symbol) const
Get element by name.
void PrintBasicMaterialMassFraction(G4Material *material) const
Print mass fractions of consituents of a given material.
std::vector< G4MaterialPropertiesTable * > propertiesTables
Material tables for storing pointers.