22{
24
25
26
27 static std::mutex tableMutex;
28 std::scoped_lock lock(tableMutex);
29
30
31
32
33 const auto itr = definedTables.find(thePropTable);
34 if(itr != definedTables.end())
35 return itr->second;
36
37 G4MaterialPropertiesTable* newTable = new G4MaterialPropertiesTable();
38
39
40
41
44
45 for(;it1_first!=it1_last;++it1_first)
46 newTable->AddConstProperty((it1_first->first).c_str(),it1_first->second);
47
48
51
52 for(;it2_first!=it2_last;++it2_first)
53 {
54 GeoMaterialPropertyVector* geoMPV = it2_first->second;
55
56 G4MaterialPropertyVector* g4MPV = new G4MaterialPropertyVector();
57
59
60 while((*geoMPV).operator++())
61 {
62
63
65 }
66
67 newTable->AddProperty((it2_first->first).c_str(),g4MPV);
68 }
69
70
71 definedTables[thePropTable]=newTable;
72
73 return newTable;
74}
#define ATLAS_THREAD_SAFE
GeoMatPVMap::const_iterator GeoMatPVMap_ConstIt
GeoMatPMap_ConstIt endPMap() const
GeoMatPVMap_ConstIt beginPVMap() const
GeoMatPMap::const_iterator GeoMatPMap_ConstIt
GeoMatPMap_ConstIt beginPMap() const
GeoMatPVMap_ConstIt endPVMap() const
double GetPhotonMomentum() const
double GetProperty() const