diff --git a/debye_bec/bec_widgets/widgets/digital_twin/calc_positions.py b/debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_positions.py similarity index 99% rename from debye_bec/bec_widgets/widgets/digital_twin/calc_positions.py rename to debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_positions.py index f463286..79cb809 100644 --- a/debye_bec/bec_widgets/widgets/digital_twin/calc_positions.py +++ b/debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_positions.py @@ -5,7 +5,7 @@ Calculates the positions of axes based on a beamline config import numpy as np from bec_lib import bec_logger -import debye_bec.bec_widgets.widgets.x01da_parameters as bl +import debye_bec.bec_widgets.widgets.digital_twin.x01da_parameters as bl from debye_bec.bec_widgets.widgets.digital_twin.types import ConfigDict logger = bec_logger.logger diff --git a/debye_bec/bec_widgets/widgets/digital_twin/calc_sideview.py b/debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_sideview.py similarity index 97% rename from debye_bec/bec_widgets/widgets/digital_twin/calc_sideview.py rename to debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_sideview.py index 092d5d4..afa0b29 100644 --- a/debye_bec/bec_widgets/widgets/digital_twin/calc_sideview.py +++ b/debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_sideview.py @@ -4,7 +4,7 @@ Calculates the sideview coordinates based on a beamline config. import numpy as np -import debye_bec.bec_widgets.widgets.x01da_parameters as bl +import debye_bec.bec_widgets.widgets.digital_twin.x01da_parameters as bl from debye_bec.bec_widgets.widgets.digital_twin.types import ConfigDict, DataDict diff --git a/debye_bec/bec_widgets/widgets/digital_twin/calc_surfaces.py b/debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_surfaces.py similarity index 98% rename from debye_bec/bec_widgets/widgets/digital_twin/calc_surfaces.py rename to debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_surfaces.py index 168f977..dcac3dd 100644 --- a/debye_bec/bec_widgets/widgets/digital_twin/calc_surfaces.py +++ b/debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_surfaces.py @@ -7,7 +7,7 @@ import re import numpy as np from bec_lib import bec_logger -import debye_bec.bec_widgets.widgets.x01da_parameters as bl +import debye_bec.bec_widgets.widgets.digital_twin.x01da_parameters as bl from debye_bec.bec_widgets.widgets.digital_twin.types import ConfigDict, SurfaceDict logger = bec_logger.logger diff --git a/debye_bec/bec_widgets/widgets/digital_twin/calc_varia.py b/debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_varia.py similarity index 99% rename from debye_bec/bec_widgets/widgets/digital_twin/calc_varia.py rename to debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_varia.py index 9ec7cc8..0cc43f0 100644 --- a/debye_bec/bec_widgets/widgets/digital_twin/calc_varia.py +++ b/debye_bec/bec_widgets/widgets/digital_twin/calculations/calc_varia.py @@ -10,7 +10,7 @@ from bec_lib import bec_logger from scipy.interpolate import UnivariateSpline from xrt.backends.raycing.physconsts import AVOGADRO, CHeVcm -import debye_bec.bec_widgets.widgets.x01da_parameters as bl +import debye_bec.bec_widgets.widgets.digital_twin.x01da_parameters as bl logger = bec_logger.logger diff --git a/debye_bec/bec_widgets/widgets/digital_twin/digital_twin.py b/debye_bec/bec_widgets/widgets/digital_twin/digital_twin.py index a9c87af..7b7ee59 100644 --- a/debye_bec/bec_widgets/widgets/digital_twin/digital_twin.py +++ b/debye_bec/bec_widgets/widgets/digital_twin/digital_twin.py @@ -31,10 +31,10 @@ from qtpy.QtWidgets import ( QWidget, ) -from debye_bec.bec_widgets.widgets.digital_twin.calc_positions import calc_positions -from debye_bec.bec_widgets.widgets.digital_twin.calc_sideview import calc_sideview -from debye_bec.bec_widgets.widgets.digital_twin.calc_surfaces import calc_surfaces -from debye_bec.bec_widgets.widgets.digital_twin.calc_varia import ( +from debye_bec.bec_widgets.widgets.digital_twin.calculations.calc_positions import calc_positions +from debye_bec.bec_widgets.widgets.digital_twin.calculations.calc_sideview import calc_sideview +from debye_bec.bec_widgets.widgets.digital_twin.calculations.calc_surfaces import calc_surfaces +from debye_bec.bec_widgets.widgets.digital_twin.calculations.calc_varia import ( cm_critical_angle, cm_reflectivity, cm_stripe_to_trx, @@ -47,15 +47,15 @@ from debye_bec.bec_widgets.widgets.digital_twin.calc_varia import ( mo1_energy_resolution, sldi_gap_to_acc, ) -from debye_bec.bec_widgets.widgets.digital_twin.input_panel import InputPanel -from debye_bec.bec_widgets.widgets.digital_twin.mover_panel import MoverPanel -from debye_bec.bec_widgets.widgets.digital_twin.plots import SideviewPlot, SurfacePlots -from debye_bec.bec_widgets.widgets.digital_twin.settings_panel import SettingsPanel +from debye_bec.bec_widgets.widgets.digital_twin.panels.input_panel import InputPanel +from debye_bec.bec_widgets.widgets.digital_twin.panels.mover_panel import MoverPanel +from debye_bec.bec_widgets.widgets.digital_twin.panels.plots import SideviewPlot, SurfacePlots +from debye_bec.bec_widgets.widgets.digital_twin.panels.settings_panel import SettingsPanel from debye_bec.bec_widgets.widgets.digital_twin.types import ConfigDict logger = bec_logger.logger -OFFSET_FILE = "debye_bec/debye_bec/bec_widgets/widgets/x01da_offsets.yaml" +OFFSET_FILE = "debye_bec/debye_bec/bec_widgets/widgets/digital_twin/x01da_offsets.yaml" class DigitalTwin(BECWidget, QWidget): diff --git a/debye_bec/bec_widgets/widgets/digital_twin/input_panel.py b/debye_bec/bec_widgets/widgets/digital_twin/panels/input_panel.py similarity index 98% rename from debye_bec/bec_widgets/widgets/digital_twin/input_panel.py rename to debye_bec/bec_widgets/widgets/digital_twin/panels/input_panel.py index 3364af4..093dae9 100644 --- a/debye_bec/bec_widgets/widgets/digital_twin/input_panel.py +++ b/debye_bec/bec_widgets/widgets/digital_twin/panels/input_panel.py @@ -5,7 +5,7 @@ Panel for user inputs of the digital twin widget # pylint: disable=E0611 from qtpy.QtWidgets import QLayout, QVBoxLayout, QWidget -from debye_bec.bec_widgets.widgets.qt_widgets import ( +from debye_bec.bec_widgets.widgets.digital_twin.widgets.qt_widgets import ( Button, ComboBox, Group, diff --git a/debye_bec/bec_widgets/widgets/digital_twin/mover_panel.py b/debye_bec/bec_widgets/widgets/digital_twin/panels/mover_panel.py similarity index 97% rename from debye_bec/bec_widgets/widgets/digital_twin/mover_panel.py rename to debye_bec/bec_widgets/widgets/digital_twin/panels/mover_panel.py index 2260c8a..3f26f06 100644 --- a/debye_bec/bec_widgets/widgets/digital_twin/mover_panel.py +++ b/debye_bec/bec_widgets/widgets/digital_twin/panels/mover_panel.py @@ -7,8 +7,11 @@ from typing import Literal # pylint: disable=E0611 from qtpy.QtWidgets import QLayout, QVBoxLayout, QWidget -from debye_bec.bec_widgets.widgets.digital_twin.move_widget import AbsorberWidget, MoveWidget -from debye_bec.bec_widgets.widgets.qt_widgets import Group +from debye_bec.bec_widgets.widgets.digital_twin.widgets.move_widget import ( + AbsorberWidget, + MoveWidget, +) +from debye_bec.bec_widgets.widgets.digital_twin.widgets.qt_widgets import Group class MoverPanel(QWidget): diff --git a/debye_bec/bec_widgets/widgets/digital_twin/plots.py b/debye_bec/bec_widgets/widgets/digital_twin/panels/plots.py similarity index 98% rename from debye_bec/bec_widgets/widgets/digital_twin/plots.py rename to debye_bec/bec_widgets/widgets/digital_twin/panels/plots.py index 666abc2..5e17c85 100644 --- a/debye_bec/bec_widgets/widgets/digital_twin/plots.py +++ b/debye_bec/bec_widgets/widgets/digital_twin/panels/plots.py @@ -15,14 +15,14 @@ from qtpy.QtGui import QBrush, QColor # pylint: disable=E0611 from qtpy.QtWidgets import QApplication, QGraphicsRectItem, QHBoxLayout, QVBoxLayout, QWidget -from debye_bec.bec_widgets.widgets.digital_twin.calc_varia import ( +from debye_bec.bec_widgets.widgets.digital_twin.calculations.calc_varia import ( mirror_surface_geometries, mo_surface_geometries, pipe_geometries, wall_geometries, ) from debye_bec.bec_widgets.widgets.digital_twin.types import DataDict, SurfaceDict -from debye_bec.bec_widgets.widgets.qt_widgets import Group +from debye_bec.bec_widgets.widgets.digital_twin.widgets.qt_widgets import Group logger = bec_logger.logger diff --git a/debye_bec/bec_widgets/widgets/digital_twin/settings_panel.py b/debye_bec/bec_widgets/widgets/digital_twin/panels/settings_panel.py similarity index 88% rename from debye_bec/bec_widgets/widgets/digital_twin/settings_panel.py rename to debye_bec/bec_widgets/widgets/digital_twin/panels/settings_panel.py index d715c65..8947ea3 100644 --- a/debye_bec/bec_widgets/widgets/digital_twin/settings_panel.py +++ b/debye_bec/bec_widgets/widgets/digital_twin/panels/settings_panel.py @@ -5,7 +5,11 @@ Settings panel for the digital twin widget # pylint: disable=E0611 from qtpy.QtWidgets import QLayout, QVBoxLayout, QWidget -from debye_bec.bec_widgets.widgets.qt_widgets import Button, Group, TextIndicator +from debye_bec.bec_widgets.widgets.digital_twin.widgets.qt_widgets import ( + Button, + Group, + TextIndicator, +) class SettingsPanel(QWidget): diff --git a/debye_bec/bec_widgets/widgets/digital_twin/move_widget.py b/debye_bec/bec_widgets/widgets/digital_twin/widgets/move_widget.py similarity index 100% rename from debye_bec/bec_widgets/widgets/digital_twin/move_widget.py rename to debye_bec/bec_widgets/widgets/digital_twin/widgets/move_widget.py diff --git a/debye_bec/bec_widgets/widgets/qt_widgets.py b/debye_bec/bec_widgets/widgets/digital_twin/widgets/qt_widgets.py similarity index 100% rename from debye_bec/bec_widgets/widgets/qt_widgets.py rename to debye_bec/bec_widgets/widgets/digital_twin/widgets/qt_widgets.py diff --git a/debye_bec/bec_widgets/widgets/x01da_offsets.yaml b/debye_bec/bec_widgets/widgets/digital_twin/x01da_offsets.yaml similarity index 100% rename from debye_bec/bec_widgets/widgets/x01da_offsets.yaml rename to debye_bec/bec_widgets/widgets/digital_twin/x01da_offsets.yaml diff --git a/debye_bec/bec_widgets/widgets/x01da_parameters.py b/debye_bec/bec_widgets/widgets/digital_twin/x01da_parameters.py similarity index 100% rename from debye_bec/bec_widgets/widgets/x01da_parameters.py rename to debye_bec/bec_widgets/widgets/digital_twin/x01da_parameters.py diff --git a/debye_bec/file_writer/debye_nexus_structure.py b/debye_bec/file_writer/debye_nexus_structure.py index 5a44ad9..8364845 100644 --- a/debye_bec/file_writer/debye_nexus_structure.py +++ b/debye_bec/file_writer/debye_nexus_structure.py @@ -1,6 +1,7 @@ from bec_server.file_writer.default_writer import DefaultFormat -import debye_bec.bec_widgets.widgets.x01da_parameters as bl +import debye_bec.bec_widgets.widgets.digital_twin.x01da_parameters as bl + class DebyeNexusStructure(DefaultFormat): """Nexus Structure for Debye""" @@ -31,8 +32,7 @@ class DebyeNexusStructure(DefaultFormat): if "curr" in self.device_manager.devices: ring_current = source.create_soft_link( - name="ring_current", - target="/entry/collection/devices/curr/curr/value", + name="ring_current", target="/entry/collection/devices/curr/curr/value" ) ring_current.attrs["NX_class"] = "NX_FLOAT" ring_current.attrs["units"] = "mA" @@ -57,12 +57,12 @@ class DebyeNexusStructure(DefaultFormat): name="reflection", target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_xtal_string/value", ) - reflection.attrs["NX_class"] = "NX_CHAR" + reflection.attrs["NX_class"] = "NX_CHAR" # Create a softlink d_spacing = crystal.create_soft_link( - name="d_spacing", - target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_d_spacing/value", + name="d_spacing", + target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_d_spacing/value", ) d_spacing.attrs["NX_class"] = "NX_FLOAT" d_spacing.attrs["units"] = "angstrom" @@ -71,40 +71,40 @@ class DebyeNexusStructure(DefaultFormat): name="bragg_offset", target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_bragg_off/value", ) - bragg_offset.attrs["NX_class"] = "NX_FLOAT" - bragg_offset.attrs["units"] = "degree" + bragg_offset.attrs["NX_class"] = "NX_FLOAT" + bragg_offset.attrs["units"] = "degree" phi_offset = crystal.create_soft_link( name="phi_offset", target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_phi_off/value", ) - phi_offset.attrs["NX_class"] = "NX_FLOAT" + phi_offset.attrs["NX_class"] = "NX_FLOAT" phi_offset.attrs["units"] = "degree" ## Logic if device exist - if "mo1_roty" in self.device_manager.devices: + if "mo1_roty" in self.device_manager.devices: # Create a softlink azimuthal_angle = crystal.create_soft_link( - name="azimuthal_angle", - target="/entry/collection/devices/mo1_roty/mo1_roty/value", + name="azimuthal_angle", + target="/entry/collection/devices/mo1_roty/mo1_roty/value", ) - azimuthal_angle.attrs["NX_class"] = "NX_FLOAT" - azimuthal_angle.attrs["units"] = "degree" - + azimuthal_angle.attrs["NX_class"] = "NX_FLOAT" + azimuthal_angle.attrs["units"] = "degree" + azm_offset = crystal.create_soft_link( name="azm_offset", target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_azm_off/value", ) - azm_offset.attrs["NX_class"] = "NX_FLOAT" + azm_offset.attrs["NX_class"] = "NX_FLOAT" azm_offset.attrs["units"] = "degree" miscut = crystal.create_soft_link( name="miscut", target="/entry/collection/devices/mo1_bragg/mo1_bragg_crystal_current_miscut/value", ) - miscut.attrs["NX_class"] = "NX_FLOAT" - miscut.attrs["units"] = "degree" + miscut.attrs["NX_class"] = "NX_FLOAT" + miscut.attrs["units"] = "degree" ################### ### cm mirror specific information @@ -118,7 +118,7 @@ class DebyeNexusStructure(DefaultFormat): ) cm_substrate_material.attrs["NX_class"] = "NX_CHAR" - #previous error due to space in name field + # previous error due to space in name field if "cm_bnd_radius" in self.device_manager.devices: cm_bending_radius = collimating_mirror.create_soft_link( @@ -149,15 +149,15 @@ class DebyeNexusStructure(DefaultFormat): cm_roll_angle.attrs["NX_class"] = "NX_FLOAT" cm_roll_angle.attrs["units"] = "mrad" - if 'cm_trx' in self.device_manager.devices: - cm_trx = - self.device_manager.devices.cm_trx.read(cached=True).get('cm_trx').get('value') - stripe = 'Unknown' + if "cm_trx" in self.device_manager.devices: + cm_trx = ( + -self.device_manager.devices.cm_trx.read(cached=True).get("cm_trx").get("value") + ) + stripe = "Unknown" for name, low, high in zip(bl.cm.surface, bl.cm.limOptX[0], bl.cm.limOptX[1]): if low <= cm_trx <= high: stripe = name - cm_stripe = collimating_mirror.create_dataset( - name="stripe", data=stripe - ) + cm_stripe = collimating_mirror.create_dataset(name="stripe", data=stripe) cm_stripe.attrs["NX_class"] = "NX_CHAR" ################### @@ -167,9 +167,7 @@ class DebyeNexusStructure(DefaultFormat): 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 = focusing_mirror.create_dataset(name="substrate_material", data="Si") fm_substrate_material.attrs["NX_class"] = "NX_CHAR" if "fm_bnd_radius" in self.device_manager.devices: @@ -201,18 +199,22 @@ class DebyeNexusStructure(DefaultFormat): fm_roll_angle.attrs["NX_class"] = "NX_FLOAT" fm_roll_angle.attrs["units"] = "mrad" - if 'fm_trx' in self.device_manager.devices: - fm_trx = - self.device_manager.devices.fm_trx.read(cached=True).get('fm_trx').get('value') - stripe = 'Unknown' - for name, low, high in zip(bl.fm.surfaceFlat, bl.fm.limOptXFlat[1], bl.fm.limOptXFlat[0]): - if low <= fm_trx <= high: - stripe = name + ' (flat)' - for name, low, high in zip(bl.fm.surfaceToroid, bl.fm.limOptXToroid[1], bl.fm.limOptXToroid[0]): - if low <= fm_trx <= high: - stripe = name + ' (toroid)' - fm_stripe = focusing_mirror.create_dataset( - name="stripe", data=stripe + if "fm_trx" in self.device_manager.devices: + fm_trx = ( + -self.device_manager.devices.fm_trx.read(cached=True).get("fm_trx").get("value") ) + stripe = "Unknown" + for name, low, high in zip( + bl.fm.surfaceFlat, bl.fm.limOptXFlat[1], bl.fm.limOptXFlat[0] + ): + if low <= fm_trx <= high: + stripe = name + " (flat)" + for name, low, high in zip( + bl.fm.surfaceToroid, bl.fm.limOptXToroid[1], bl.fm.limOptXToroid[0] + ): + if low <= fm_trx <= high: + stripe = name + " (toroid)" + fm_stripe = focusing_mirror.create_dataset(name="stripe", data=stripe) fm_stripe.attrs["NX_class"] = "NX_CHAR" ################### @@ -220,45 +222,65 @@ class DebyeNexusStructure(DefaultFormat): ################### ## Logic if device exist - if "nidaq" in self.device_manager.devices: - - #ai_chans_bits = self.device_manager.devices.nidaq.ai_chans.read(cached=True).get("nidaq_ai_chans").get("value") - ai_chans_bits = self.configuration.get("nidaq", {}).get("nidaq_ai_chans", {}).get("value") - ci_chans_bits = self.configuration.get("nidaq", {}).get("nidaq_ci_chans", {}).get("value") - #add_chans_bits = self.device_manager.devices.nidaq.add_chans.read(cached=True).get("nidaq_add_chans").get("value") - add_chans_bits = self.configuration.get("nidaq", {}).get("nidaq_add_chans", {}).get("value") + if "nidaq" in self.device_manager.devices: + + # ai_chans_bits = self.device_manager.devices.nidaq.ai_chans.read(cached=True).get("nidaq_ai_chans").get("value") + ai_chans_bits = ( + self.configuration.get("nidaq", {}).get("nidaq_ai_chans", {}).get("value") + ) + ci_chans_bits = ( + self.configuration.get("nidaq", {}).get("nidaq_ci_chans", {}).get("value") + ) + # add_chans_bits = self.device_manager.devices.nidaq.add_chans.read(cached=True).get("nidaq_add_chans").get("value") + add_chans_bits = ( + self.configuration.get("nidaq", {}).get("nidaq_add_chans", {}).get("value") + ) measurement_mode = entry.create_group(name="mode") measurement_mode.attrs["NX_class"] = "NX_CHAR" if (int(ci_chans_bits) & 0x7F) != 0: # Create a dataset - rayspec_sdd_active = measurement_mode.create_group(name="Multi_Element_Partial_Fluorescence_Yield") - me_sdd = rayspec_sdd_active.create_dataset(name="Detector", data="Rayspec 7 element Silicon Drift Detector") + rayspec_sdd_active = measurement_mode.create_group( + name="Multi_Element_Partial_Fluorescence_Yield" + ) + me_sdd = rayspec_sdd_active.create_dataset( + name="Detector", data="Rayspec 7 element Silicon Drift Detector" + ) me_sdd.attrs["NX_class"] = "NX_CHAR" - if (int(ci_chans_bits) & (1<<8)) != 0: + if (int(ci_chans_bits) & (1 << 8)) != 0: # Create a dataset - ketek_sdd_active = measurement_mode.create_group(name="Single_Element_Partial_Fluorescence_Yield") - se_sdd = ketek_sdd_active.create_dataset(name="Detector", data="Ketex mini single element Silicon Drift Detector") + ketek_sdd_active = measurement_mode.create_group( + name="Single_Element_Partial_Fluorescence_Yield" + ) + se_sdd = ketek_sdd_active.create_dataset( + name="Detector", data="Ketex mini single element Silicon Drift Detector" + ) se_sdd.attrs["NX_class"] = "NX_CHAR" - if ((int(ai_chans_bits) & (1<<6)) != 0): + if (int(ai_chans_bits) & (1 << 6)) != 0: # Create a dataset pips_active = measurement_mode.create_group(name="Total_Flourescence_Yield") - tfy = pips_active.create_dataset(name="Detector", data="Mirion Technologies Partially Depeleted PIPS Detector") + tfy = pips_active.create_dataset( + name="Detector", data="Mirion Technologies Partially Depeleted PIPS Detector" + ) tfy.attrs["NX_class"] = "NX_CHAR" - if ((int(ai_chans_bits) & (1<<0)) != 0) & ((int(ai_chans_bits) & (1<<2)) != 0): + if ((int(ai_chans_bits) & (1 << 0)) != 0) & ((int(ai_chans_bits) & (1 << 2)) != 0): # Create a dataset ai0ai2_active = measurement_mode.create_group(name="Sample_Transmission") - sam_trans = ai0ai2_active.create_dataset(name="Detector", data="Ionitec 15 cm gas filled Ionisation Chambers") + sam_trans = ai0ai2_active.create_dataset( + name="Detector", data="Ionitec 15 cm gas filled Ionisation Chambers" + ) sam_trans.attrs["NX_class"] = "NX_CHAR" - if ((int(ai_chans_bits) & (1<<2)) != 0) & ((int(ai_chans_bits) & (1<<4)) != 0): + if ((int(ai_chans_bits) & (1 << 2)) != 0) & ((int(ai_chans_bits) & (1 << 4)) != 0): # Create a dataset ai2ai4_active = measurement_mode.create_group(name="Reference_Transmission") - ref_trans = ai2ai4_active.create_dataset(name="Detector", data="Ionitec 15 cm gas filled Ionisation Chambers") + ref_trans = ai2ai4_active.create_dataset( + name="Detector", data="Ionitec 15 cm gas filled Ionisation Chambers" + ) ref_trans.attrs["NX_class"] = "NX_CHAR" main_data = entry.create_group(name="data") @@ -267,45 +289,57 @@ class DebyeNexusStructure(DefaultFormat): ################## ## energy, test whether the signal exists. how to check from config? ################### - + energy = main_data.create_group(name="energy") energy.attrs["NX_class"] = "NXdata" energy.attrs["units"] = "eV" - - main_data.create_soft_link(name="energy", target="/entry/collection/readout_groups/async/nidaq/nidaq_energy/value") - + + main_data.create_soft_link( + name="energy", + target="/entry/collection/readout_groups/async/nidaq/nidaq_energy/value", + ) + ################## ## i0 ################### - - if (int(ai_chans_bits) & (1<<0)) !=0: + + if (int(ai_chans_bits) & (1 << 0)) != 0: i0 = main_data.create_group(name="i0") i0.attrs["NX_class"] = "NXdata" i0.attrs["units"] = "V" - - main_data.create_soft_link(name="i0", target="/entry/collection/readout_groups/async/nidaq/nidaq_ai0_mean/value") + + main_data.create_soft_link( + name="i0", + target="/entry/collection/readout_groups/async/nidaq/nidaq_ai0_mean/value", + ) ################## ## i1 ################### - - if (int(ai_chans_bits) & (1<<2)) !=0: + + if (int(ai_chans_bits) & (1 << 2)) != 0: i1 = main_data.create_group(name="i1") i1.attrs["NX_class"] = "NXdata" i1.attrs["units"] = "V" - main_data.create_soft_link(name="i1", target="/entry/collection/readout_groups/async/nidaq/nidaq_ai2_mean/value") + main_data.create_soft_link( + name="i1", + target="/entry/collection/readout_groups/async/nidaq/nidaq_ai2_mean/value", + ) ################## ## i2 ################### - if (int(ai_chans_bits) & (1<<4)) !=0: + if (int(ai_chans_bits) & (1 << 4)) != 0: i2 = main_data.create_group(name="i2") i2.attrs["NX_class"] = "NXdata" i2.attrs["units"] = "V" - main_data.create_soft_link(name="i2", target="/entry/collection/readout_groups/async/nidaq/nidaq_ai4_mean/value") + main_data.create_soft_link( + name="i2", + target="/entry/collection/readout_groups/async/nidaq/nidaq_ai4_mean/value", + ) ################## ## ci sum @@ -316,38 +350,46 @@ class DebyeNexusStructure(DefaultFormat): ci_sum.attrs["NX_class"] = "NXdata" ci_sum.attrs["units"] = "counts" - main_data.create_soft_link(name="Fluorescence_Sum", target="/entry/collection/readout_groups/async/nidaq/nidaq_cisum/value") + main_data.create_soft_link( + name="Fluorescence_Sum", + target="/entry/collection/readout_groups/async/nidaq/nidaq_cisum/value", + ) ################## ## mu sample, test whether the signal exists. how to check from config? ################### - if (int(add_chans_bits) & (1<<0)) !=0: + if (int(add_chans_bits) & (1 << 0)) != 0: mu_sample = main_data.create_group(name="mu_sample") mu_sample.attrs["NX_class"] = "NXdata" - - main_data.create_soft_link(name="mu_sample", target="/entry/collection/readout_groups/async/nidaq/nidaq_smpl_abs/value") + + main_data.create_soft_link( + name="mu_sample", + target="/entry/collection/readout_groups/async/nidaq/nidaq_smpl_abs/value", + ) ################## ## fluo sample, test whether the signal exists. how to check from config? ################### - if (int(add_chans_bits) & (1<<1)) !=0: + if (int(add_chans_bits) & (1 << 1)) != 0: mu_sample = main_data.create_group(name="fluo_sample") mu_sample.attrs["NX_class"] = "NXdata" - - main_data.create_soft_link(name="fluo_sample", target="/entry/collection/readout_groups/async/nidaq/nidaq_smpl_fluo/value") + + main_data.create_soft_link( + name="fluo_sample", + target="/entry/collection/readout_groups/async/nidaq/nidaq_smpl_fluo/value", + ) ################## ## mu reference, test whether the signal exists. how to check from config? ################### - - if (int(add_chans_bits) & (1<<2)) !=0: + + if (int(add_chans_bits) & (1 << 2)) != 0: mu_reference = main_data.create_group(name="mu_reference") mu_reference.attrs["NX_class"] = "NXdata" - - main_data.create_soft_link(name="mu_reference", target="/entry/collection/readout_groups/async/nidaq/nidaq_ref_abs/value") - - - + main_data.create_soft_link( + name="mu_reference", + target="/entry/collection/readout_groups/async/nidaq/nidaq_ref_abs/value", + )