id4_common.devices.crl_device#

CRL.

Module Contents#

id4_common.devices.crl_device.logger#
id4_common.devices.crl_device.DEFAULT_MOTORS_IOC = '4idgSoft:'#
id4_common.devices.crl_device.EPICS_ENERGY_SLEEP = 0.15#
class id4_common.devices.crl_device.PyCRLSingleLens#

Bases: ophyd.PVPositioner

Single CRL lens stack positioner.

readback#
setpoint#
done#
done_value = 1#
num_lenses#
radius#
location#
material#
thickness_error#
in_limit#
set(new_position, *, timeout: float = None, moved_cb=None, wait: bool = False)#

Set lens position, returning immediately if already there.

class id4_common.devices.crl_device.PyCRLSignal#

Bases: ophyd.EpicsSignal

EpicsSignal with a value sub-component and EGU readback.

value#
egu#
class id4_common.devices.crl_device.BeamsizeSignal#

Bases: ophyd.Device

Beamsize handle in microns.

The underlying focalSize setpoint and fSize_actual readback PVs are in meters and do not fully converge, so this device writes to the setpoint (microns -> meters) and reports the readback (meters -> microns) without enforcing a match: mov crl.beamsize 10 writes 10 um to the setpoint and returns immediately. The raw meter-valued PVs remain available as crl.beamsize.setpoint and crl.beamsize.readback.

setpoint#
readback#
set(value, **kwargs)#

Move the setpoint to value (microns); finish immediately.

get(**kwargs)#

Return the readback in microns.

property position#

Readback in microns.

read()#

Report the readback as a single microns-valued field.

describe()#

Describe the microns-valued field reported by read().

property hints#

Hint the microns-valued field for plotting.

class id4_common.devices.crl_device.PyCRL(*args, **kwargs)#

Bases: ophyd.Device

PyCRL compound refractive lens controller.

energy_mono#
energy_local#
energy_select#
slit_hor_size#
slit_hor_pv#
slit_vert_size#
slit_vert_pv#
beamsize#
focal_power_index#
focal_sizes#
minimize_button#
system_done#
dq#
q#
z_offset#
z_offset_pv#
z_from_source#
sample_offset#
sample_offset_pv#
sample#
select_station#
offset_g#
offset_h#
binary#
ind_control#
readbacks#
preview_index#
focal_size_preview#
inter_lens_delay#
verbose_console#
thickness_error_flag#
beam_mode#
lens1#
lens2#
lens3#
lens4#
lens5#
lens6#
lens7#
lens8#
set(value, **kwargs)#

Set the system state.

class id4_common.devices.crl_device.EnergySignal#

Bases: ophyd.Signal

Signal that moves the crl to a new energy.

abstractmethod put(*args, **kwargs)#

Raise NotImplementedError — use set() instead.

set(value, **kwargs)#

Move crl to the specified energy.

class id4_common.devices.crl_device.ZMotor#

Bases: ophyd.EpicsMotor

EpicsMotor that optionally tracks X/Y when Z moves.

set(new_position, **kwargs)#

Move Z and optionally track X/Y.

stop(*, success=False)#

Stop Z and optionally X/Y.

id4_common.devices.crl_device.make_crl_class(motors_ioc=DEFAULT_MOTORS_IOC)#

Return a CRLClass with lens motors bound to motors_ioc.

Parameters:

motors_ioc (str) – IOC prefix for the crl stage motors, e.g. "4idgSoft:".

id4_common.devices.crl_device.CRLClass#