diff --git a/debye_bec/file_writer/debye_nexus_structure.py b/debye_bec/file_writer/debye_nexus_structure.py index 351fab5..d1f1ce4 100644 --- a/debye_bec/file_writer/debye_nexus_structure.py +++ b/debye_bec/file_writer/debye_nexus_structure.py @@ -10,17 +10,88 @@ class DebyeNexusStructure(DefaultFormat): entry.attrs["NX_class"] = "NXentry" instrument = entry.create_group(name="instrument") instrument.attrs["NX_class"] = "NXinstrument" - monochromator = instrument.create_group(name="monochromator") - # monochromator.attrs["NX_class"] = "NXmonochromator" -> to be checked - crystal = monochromator.create_group(name="crystal") ################### ## mo1_bragg specific information ################### # Logic if device exist - if "mo_trx" in self.device_manager.devices: + if "mo1_bragg" in self.device_manager.devices: + + monochromator = instrument.create_group(name="monochromator") + monochromator.attrs["NX_class"] = "NXmonochromator" + crystal = monochromator.create_group(name="crystal") + crystal.attrs["NX_class"] = "NXcrystal" + + # Create a dataset + chemical_formular = crystal.create_dataset(name="chemical_formular", data='Si') + chemical_formular.attrs["NX_class"] = "NX_CHAR" + # Create a softlink - chemical_formular = crystal.create_soft_link(name="chemical_formular", target="/entry/collection/devices/mo_trx/mo_trx") - chemical_formular.attrs["NX_class"] = "NXdata" - \ No newline at end of file + d_spacing = crystal.create_soft_link(name="d_spacing", target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_d_spacing/value") + d_spacing.attrs["NX_class"] = "NX_FLOAT" + + offset = crystal.create_soft_link(name="offset", target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_offset/value") + offset.attrs["NX_class"] = "NX_FLOAT" + + reflection = crystal.create_soft_link(name="reflection", target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_xtal_string/value") + reflection.attrs["NX_class"] = "NX_CHAR" + + + ################## + ## cm mirror specific information + ################### + + collimating_mirror = instrument.create_group(name="collimating_mirror") + collimating_mirror.attrs["NX_class"] = "NXmirror" + + cm_substrate_material = collimating_mirror.create_dataset(name="substrate_material", data='Si') + cm_substrate_material.attrs["NX_class"] = "NX_CHAR" + + cm_bending_radius = collimating_mirror.create_soft_link(name="sagittal radius", target="/entry/collection/devices/cm_bnd_radius/cm_bnd_radius/value") + cm_bending_radius.attrs["NX_class"] = "NX_FLOAT" + cm_bending_radius.attrs["units"] = 'km' + + cm_incidence_angle = collimating_mirror.create_soft_link(name="incidence angle", target="/entry/collection/devices/cm_rotx/cm_rotx/value") + cm_incidence_angle.attrs["NX_class"] = "NX_FLOAT" + + cm_yaw_angle = collimating_mirror.create_soft_link(name="incident angle", target="/entry/collection/devices/cm_roty/cm_roty/value") + cm_yaw_angle.attrs["NX_class"] = "NX_FLOAT" + + ################## + ## fm mirror specific information + ################### + + focusing_mirror = instrument.create_group(name="focusing_mirror") + focusing_mirror.attrs["NX_class"] = "NXmirror" + + fm_substrate_material = focusing_mirror.create_dataset(name="substrate_material", data='Si') + fm_substrate_material.attrs["NX_class"] = "NX_CHAR" + + fm_bending_radius = focusing_mirror.create_soft_link(name="sagittal radius", target="/entry/collection/devices/fm_bnd_radius/fm_bnd_radius/value") + fm_bending_radius.attrs["NX_class"] = "NX_FLOAT" + + fm_incidence_angle = focusing_mirror.create_soft_link(name="incidence angle", target="/entry/collection/devices/fm_incidence_angle/fm_incidence_angle/value") + fm_incidence_angle.attrs["NX_class"] = "NX_FLOAT" + + fm_yaw_angle = focusing_mirror.create_soft_link(name="yaw angle", target="/entry/collection/devices/fm_roty/fm_roty/value") + fm_yaw_angle.attrs["NX_class"] = "NX_FLOAT" + + fm_roll_angle = focusing_mirror.create_soft_link(name="roll angle", target="/entry/collection/devices/fm_rotz/fm_rotz/value") + fm_roll_angle.attrs["NX_class"] = "NX_FLOAT" + + ################## + ## source specific information + ################### + + source = instrument.create_group(name="source") + source.attrs["NX_class"] = "NXsource" + + beamline_name = source.create_dataset(name="beamline_name", data='Debye') + beamline_name.attrs["NX_class"] = "NX_CHAR" + + facility_name = source.create_dataset(name="facility_name", data='Swiss Light Source') + facility_name.attrs["NX_class"] = "NX_CHAR" + + probe = source.create_dataset(name="probe", data='X-ray') + probe.attrs["NX_class"] = "NX_CHAR" \ No newline at end of file