Volume and Surface properties
After creating the Setup and adding the necessary volumes and surfaces,
the user can add properties to volumes and surfaces through the Setup class:
setup->set_volume_property(vol_name, property_name, property);
setup->set_surface_property(surf_name, property_name, property);
where vol_name, surf_name and property_name are std::strings, and property
is the actual property (of any type),
which must be a class data member since Setup uses a
reference to the property (and not a copy of it).
Currently the following volume properties are available:
And the following surface properties:
A property is retrieved as follows:
property_type property =
setup->volume_properties(vol_name).retrieve < property_type > (property_name);
where property_type is int, double, EVector, EMatrix, etc. For example
double X0 = setup->volume_properties("TPC").retrieve < double > ("X0");