id4_common.devices.phaseplates#

Phase retarders.

Module Contents#

class id4_common.devices.phaseplates.MicronsSignal(parent_attr, *, parent=None, **kwargs)#

Bases: ophyd.DerivedSignal

A signal that converts the offset from degrees to microns

describe()#

Override describe to report units as microns.

inverse(value)#

Compute original signal value -> derived signal value

forward(value)#

Compute derived signal value -> original signal value

class id4_common.devices.phaseplates.PRPzt(PV, *args, drio_prefix='4idaSoft:232DRIO:1:', **kwargs)#

Bases: ophyd.Device

Phase retarder PZT

remote_setpoint#
remote_readback#
localdc#
center#
offset_degrees#
offset_microns#
servoon#
servooff#
servostatus#
selectDC#
selectAC#
ACstatus#
conversion_factor#
class id4_common.devices.phaseplates.PRDeviceBase(prefix, name, motorsDict, **kwargs)#

Bases: ophyd.PseudoPositioner

Base class for phase retarder devices mapping energy to Bragg angle.

energy#
th#
x#
y#
d_spacing#
offset_degrees#
motor_switch#
tracking#
convert_energy_to_theta(energy)#

Convert photon energy (keV) to Bragg angle (degrees) using the crystal d-spacing.

convert_theta_to_energy(theta)#

Convert Bragg angle (degrees) to photon energy (keV) using the crystal d-spacing.

forward(pseudo_pos)#

Run a forward (pseudo -> real) calculation

inverse(real_pos)#

Run an inverse (real -> pseudo) calculation

set_energy(energy)#

Calibrate the Bragg-angle motor to match the given photon energy (keV).

default_settings()#

Apply default d-spacing and motor-switch settings for this phase retarder.

class id4_common.devices.phaseplates.PRDevice(prefix, name, prnum, motorsDict, **kwargs)#

Bases: PRDeviceBase

Phase retarder with PZT piezo control and crystal-plane auto-selection.

pzt#
select_pr#
default_settings()#

Set PZT conversion factor and d-spacing based on the selected crystal plane.