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");