id4_common.devices.monochromator#

Monochromator with energy controller by bluesky

Module Contents#

class id4_common.devices.monochromator.MonoDevice(prefix, *, pzt_thf2_pv='4idaSoft:LJ:Ao5', pzt_chi2_pv='4idaSoft:LJ:Ao3', **kwargs)#

Bases: ophyd.PseudoPositioner

Double-crystal monochromator as a pseudo-positioner converting energy to theta and y2.

energy#
th#
y2#
crystal_select#
thf2#
chi2#
pzt_thf2#
pzt_chi2#
y_offset#
crystal_h#
crystal_k#
crystal_l#
crystal_a#
crystal_2d#
crystal_type#
convert_energy_to_theta(energy)#

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

convert_energy_to_y(energy)#

Convert photon energy (keV) to second-crystal vertical position (mm).

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)#

Update the theta readback offset so that the current theta corresponds to energy (keV).

default_settings()#

Remove crystal_select from the sub-device list so it is not staged.