41 componentsFractions.clear();
42 componentsWeights.clear();
54 publish(
"components" ,&Material::components);
55 publish(
"componentsWeights" ,&Material::componentsWeights);
56 publish(
"componentsFractions",&Material::componentsFractions);
61 std::cout <<
"material: " <<
name <<
" ";
63 if (components.empty()) {
64 std::cout <<
"A= " <<
A <<
"g/mole "
67 std::cout <<
"ncomponents= " << components.size() <<
" ";
69 std::cout <<
"density= " <<
density <<
"g/cm3 "
70 <<
"state= " <<
state <<
" "
80 std::cout <<
"parser> Setting value " << std::setw(25) << std::left <<
property << std::endl;
82 if(property==
"components")
86 else if(property==
"componentsWeights")
90 else if(property==
"componentsFractions")
96 std::cerr <<
"Error: parser> unknown material option \"" <<
property <<
"\", or doesn't expect vector type" << std::endl;
Representation of arrays used in tokens.
void set_vector(Container< std::string, std::allocator< std::string > > &dst) const
Copy symbols into STL string containers.
void publish(const std::string &name, T C::*mp)
Make pointer to member from class C and type T with accessible with a name.
Parser namespace for GMAD language. Combination of Geant4 and MAD.
std::string state
"solid", "liquid", or "gas"
void PublishMembers()
publish members so these can be looked up from parser
void print() const
printout
void set_value(const std::string &property, T value)
set methods by property name and value