opengate.geometry.materials =========================== .. py:module:: opengate.geometry.materials Classes ------- .. autoapisummary:: opengate.geometry.materials.ElementBuilder opengate.geometry.materials.MaterialBuilder opengate.geometry.materials.MaterialDatabase Functions --------- .. autoapisummary:: opengate.geometry.materials.read_voxel_materials opengate.geometry.materials.HU_read_materials_table opengate.geometry.materials.HU_read_density_table opengate.geometry.materials.HU_linear_interpolate_densities opengate.geometry.materials.HU_find_max_density_difference opengate.geometry.materials.HounsfieldUnit_to_material opengate.geometry.materials.dump_material_like_Gate opengate.geometry.materials.assert_same_material opengate.geometry.materials.read_next_line opengate.geometry.materials.read_tag opengate.geometry.materials.read_tag_with_unit Module Contents --------------- .. py:function:: read_voxel_materials(filename, def_mat='G4_AIR') .. py:function:: HU_read_materials_table(file_mat) .. py:function:: HU_read_density_table(file_density) .. py:function:: HU_linear_interpolate_densities(hu, densities) .. py:function:: HU_find_max_density_difference(hu_min, hu_max, d_min, d_max, densities) .. py:function:: HounsfieldUnit_to_material(simulation, density_tolerance, file_mat, file_density) Same function than in GateHounsfieldToMaterialsBuilder class. Probably far from optimal, put we keep the compatibility .. py:function:: dump_material_like_Gate(mat) .. py:function:: assert_same_material(m1, m2) .. py:function:: read_next_line(f) .. py:function:: read_tag(s, tag) .. py:function:: read_tag_with_unit(s, tag) .. py:class:: ElementBuilder(material_database) A description of a G4Element that can be build. .. py:attribute:: type :value: 'element' .. py:attribute:: name :value: None .. py:attribute:: symbol :value: None .. py:attribute:: Zeff :value: None .. py:attribute:: Aeff :value: None .. py:attribute:: material_database .. py:method:: __repr__() .. py:method:: read(line) .. py:method:: build() .. py:class:: MaterialBuilder(material_database) A description of a material, that will can be built on demand. A material is described by a list of components that can be elements or sub-materials. .. py:attribute:: type :value: 'material' .. py:attribute:: name :value: None .. py:attribute:: symbol :value: None .. py:attribute:: density :value: None .. py:attribute:: n :value: None .. py:attribute:: state :value: None .. py:attribute:: components .. py:attribute:: material_database .. py:method:: __repr__() .. py:method:: read(f, line) .. py:method:: read_one_element(line) .. py:method:: read_one_submat(line) .. py:method:: build() .. py:method:: add_element_to_material(mat, elem) .. py:method:: add_submat_to_material(mat, elem) .. py:class:: MaterialDatabase Manage a unique list of Geant4 materials and elements. The materials/elements are read in a DB txt file or in NIST. They are only build on demand, during the geometry Construct .. py:attribute:: filenames :value: [] .. py:attribute:: material_builders .. py:attribute:: material_builders_by_filename .. py:attribute:: element_builders .. py:attribute:: element_builders_by_filename .. py:attribute:: new_materials_nb_atoms .. py:attribute:: new_materials_weights .. py:attribute:: g4_materials .. py:attribute:: g4_elements .. py:attribute:: current_section :value: None .. py:attribute:: current_filename :value: None .. py:attribute:: g4_NistManager :value: None .. py:attribute:: nist_material_names :value: None .. py:attribute:: nist_element_names :value: None .. py:method:: read_from_file(filename) .. py:method:: read_one_item(f, line) .. py:method:: init_NIST() .. py:method:: add_material_nb_atoms(*args) Usage example: "Lead", ["Pb"], [1], 11.4 * gcm3 "BGO", ["Bi", "Ge", "O"], [4, 3, 12], 7.13 * gcm3) .. py:method:: add_material_weights(*args) Usage example : add_material_weights(name, elems_symbol_nz, weights_nz, 3 * gcm3) .. py:method:: initialize() .. py:method:: init_user_mat() .. py:method:: FindOrBuildMaterial(material_name) .. py:method:: FindOrBuildElement(element_name) .. py:method:: get_database_material_names(db=None)