jj_transfocators#

Import: apstools.devices.jj_transfocators

JJ-Xray Transfocators

Device uses PyDevice for focal size calculation and lens configuration control

prefix:

EPICS prefix required to communicate with transfocator IOC, ex: “100idPyCRL:CRL:”

pitch1_motor:

The motor record PV controlling the real pitch motor on CRL1, ex “100id:m4”

yaw1_motor:

The motor record PV controlling the real yaw motor on CRL1, ex “100id:m5”

x1_motor:

The motor record PV controlling the real lateral motor on CRL1, ex: “100id:m1”

y1_motor:

The motor record PV controlling the real vertical motor on CRL1, ex: “100id:m2”

For CRL with translation (JJtransfocator1xZ) there’s one more motor:

z1_motor:

The motor record PV controlling the real translation motor on CRL1, ex: “100id:m3”

For two CRL system (JJtransfocator2x) there’s 4 more motors:

pitch2_motor:

The motor record PV controlling the real pitch motor on CRL1, ex “100id:m29”

yaw2_motor:

The motor record PV controlling the real yaw motor on CRL1, ex “100id:m30”

x2_motor:

The motor record PV controlling the real lateral motor on CRL1, ex: “100id:m26”

y2_motor:

The motor record PV controlling the real vertical motor on CRL1, ex: “100id:m27”

For two CRL system with Translation (JJtransfocator2xZ), there’s yet another motor:

z2_motor:

The motor record PV controlling the real translation motor on CRL2, ex: “100id:m28”

Module Contents#

class apstools.devices.jj_transfocators.JJtransfocator(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, child_name_separator='_', connection_timeout=DEFAULT_CONNECTION_TIMEOUT, **kwargs)[source]#

Import: apstools.devices.jj_transfocators.JJtransfocator

Bases: ophyd.Device

Base class for device objects

This class provides attribute access to one or more Signals, which can be a mixture of read-only and writable. All must share the same base_name.

Parameters#

prefixstr, optional

The PV prefix for all components of the device

namestr, keyword only

The name of the device (as will be reported via read()`

kinda member of the Kind IntEnum

(or equivalent integer), optional Default is Kind.normal. See Kind for options.

read_attrssequence of attribute names

DEPRECATED: the components to include in a normal reading (i.e., in read())

configuration_attrssequence of attribute names

DEPRECATED: the components to be read less often (i.e., in read_configuration()) and to adjust via configure()

parentinstance or None, optional

The instance of the parent device, if applicable

connection_timeoutfloat or None, optional

Timeout for connection of all underlying signals.

The default value DEFAULT_CONNECTION_TIMEOUT means, “Fall back to class-wide default.” See Device.set_defaults to configure class defaults.

Explicitly passing None means, “Wait forever.”

Attributes#

lazy_wait_for_connectionbool

When instantiating a lazy signal upon first access, wait for it to connect before returning control to the user. See also the context manager helpers: wait_for_lazy_connection and do_not_wait_for_lazy_connection.

Subscriptions#

SUB_ACQ_DONE

A one-time subscription indicating the requested trigger-based acquisition has completed.

beamMode#
dq#
energyMode#
energy_keV_local#
energy_keV_lookup#
energy_keV_mono#
focalPower#
focalSize#
q#
sam_position_offset_readback#
sam_position_readback#
class apstools.devices.jj_transfocators.JJtransfocator1x(prefix: str, pitch1_motor: str, yaw1_motor: str, x1_motor: str, y1_motor: str, *args, **kwargs)[source]#

Import: apstools.devices.jj_transfocators.JJtransfocator1x

Bases: JJtransfocator

Handles single transfocator system

binary_crl1_config#
bw_crl1_config#
crl1_z_pos#
interLensDelay1#
pitch1#
rbv_crl1_config#
x1#
y1#
yaw1#
class apstools.devices.jj_transfocators.JJtransfocator1xZ(prefix: str, z1_motor: str, *args, **kwargs)[source]#

Import: apstools.devices.jj_transfocators.JJtransfocator1xZ

Bases: JJtransfocator1x

Handles single transfocator system

z1#
class apstools.devices.jj_transfocators.JJtransfocator2x(prefix: str, pitch2_motor: str, yaw2_motor: str, x2_motor: str, y2_motor: str, *args, **kwargs)[source]#

Import: apstools.devices.jj_transfocators.JJtransfocator2x

Bases: JJtransfocator1x

Adds a second transfocator to beamline

binary_crl2_config#
bw_crl2_config#
crl2_z_pos#
interLensDelay2#
pitch2#
rbv_crl2_config#
x2#
y2#
yaw2#
class apstools.devices.jj_transfocators.JJtransfocator2xZ(prefix: str, z2_motor: str, *args, **kwargs)[source]#

Import: apstools.devices.jj_transfocators.JJtransfocator2xZ

Bases: JJtransfocator2x

Adds a second transfocator to beamline

z2#
class apstools.devices.jj_transfocators.focal_size(prefix='', *, limits=None, name=None, read_attrs=None, configuration_attrs=None, parent=None, egu='', **kwargs)[source]#

Import: apstools.devices.jj_transfocators.focal_size

Bases: ophyd.PVPositioner

focal size positioner

done#
readback#
setpoint#
class apstools.devices.jj_transfocators.fpower_index(prefix='', *, limits=None, name=None, read_attrs=None, configuration_attrs=None, parent=None, egu='', **kwargs)[source]#

Import: apstools.devices.jj_transfocators.fpower_index

Bases: ophyd.PVPositioner

focal power index “positioner”; increasing index, increasing focal power

done#
readback#
setpoint#