77 std::map<std::string,G4MaterialPropertiesTable*> MaterialTables;
78 std::map<std::string,bool> MaterialsSet;
81 <<
"UPDATING GEOMETRY";
86 MaterialsSet[Material] =
true;
87 MaterialTables[Material] =
new G4MaterialPropertiesTable;
94 if(!MaterialsSet[Material]){
95 MaterialsSet[Material] =
true;
96 MaterialTables[Material] =
new G4MaterialPropertiesTable;
104 for(
auto const& itr : fPropertyList){
106 for(
auto const& jitr : itr.second){
108 std::vector<G4double> g4MomentumVector;
109 std::vector<G4double> g4PropertyVector;
111 for(
auto const& kitr : jitr.second){
112 g4MomentumVector.push_back(kitr.first);
113 g4PropertyVector.push_back(kitr.second);
115 int NoOfElements = g4MomentumVector.size();
116 MaterialTables[Material]->AddProperty(Property.c_str(),
117 &g4MomentumVector[0],
118 &g4PropertyVector[0],
123 <<
" to material table " 129 for(
auto const& itr : fConstPropertyList){
131 for(
auto const& jitr : itr.second){
133 G4double PropertyValue = jitr.second;
134 MaterialTables[Material]->AddConstProperty(Property.c_str(), PropertyValue);
137 <<
"Added const property " 139 <<
" to material table " 146 G4LogicalVolume*
volume = (*i);
147 G4Material* TheMaterial = volume->GetMaterial();
149 for(
auto const& jitr : MaterialTables){
150 if(Material == jitr.first){
151 TheMaterial->SetMaterialPropertiesTable(jitr.second);
154 TheMaterial->GetIonisation()->SetBirksConstant(
fBirksConstants[Material]);
155 volume->SetMaterial(TheMaterial);
std::map< std::string, double > fBirksConstants
static const std::string volume[nvol]
std::map< std::string, std::map< std::string, double > > fConstPropertyList
#define MF_LOG_INFO(category)
std::map< std::string, std::map< std::string, std::map< double, double > > > fPropertyList