id4_common.devices.polar_diffractometer#

Polar diffractometer

Module Contents#

id4_common.devices.polar_diffractometer.WAVELENGTH_CONSTANT = 12.39#
id4_common.devices.polar_diffractometer.PTTH_MIN_DEGREES = 79#
id4_common.devices.polar_diffractometer.PTTH_MAX_DEGREES = 101#
id4_common.devices.polar_diffractometer.PTH_MIN_DEGREES = 39#
id4_common.devices.polar_diffractometer.PTH_MAX_DEGREES = 51#
id4_common.devices.polar_diffractometer.ANALYZER_LIST_PATH#
class id4_common.devices.polar_diffractometer.AnalyzerDevice#

Bases: ophyd.PseudoPositioner

Crystal polarization analyzer with pseudo-energy axis and crystal setup.

energy#
th#
tth_trans#
th_motor#
tth#
eta#
chi#
d_spacing#
crystal#
tth_detector_distance#
tracking#
move_single(pseudo, position, **kwargs)#

Guard move_single to require analyzer setup before moving energy.

property beamline_wavelength#

Return the current beamline wavelength from the parent diffractometer calc.

property beamline_energy#

Return the current beamline energy in keV from the parent diffractometer.

convert_energy_to_theta(energy)#

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

convert_energy_to_tth_trans(energy)#

Convert photon energy (keV) to the two-theta translation stage 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)#

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

calc(acal='No')#

Print analyzer Bragg angles and optionally calibrate the theta motor.

setup(analyzer_energy=None, analyzer_list_path=ANALYZER_LIST_PATH)#

List compatible analyzer crystals and interactively configure d-spacing and crystal.

class id4_common.devices.polar_diffractometer.SixCircleDiffractometer#

Bases: hkl.geometries.ApsPolar

ApsPolar: Huber diffractometer in 6-circle horizontal geometry with energy.

HKL engine.

h#
k#
l#
tau#
mu#
gamma#
delta#
tablex#
tabley#
pad_rail#
point_rail#
filter#
detslt#
ana#
energy#
energy_update_calc_flag#
energy_offset#
property hints#

Return hinted fields, excluding non-hinted components to prevent busy plotting.

default_settings()#

Update the HKL calc engine energy from the EPICS monochromator readback.

class id4_common.devices.polar_diffractometer.CradleDiffractometer#

Bases: SixCircleDiffractometer

SixCircleDiffractometer with cradle chi/phi motors and sample XYZ positioning.

chi#
phi#
x#
y#
z#
class id4_common.devices.polar_diffractometer.HPDiffractometer#

Bases: SixCircleDiffractometer

SixCircleDiffractometer for the HP press setup with base and nano- positioning motors.

chi#
phi#
basex#
basey#
basez#
basey_motor#
basez_motor#
sample_tilt#
x#
y#
z#
nanox#
nanoy#
nanoz#
class id4_common.devices.polar_diffractometer.PolarPSI#

Bases: hkl.geometries.ApsPolar

ApsPolar: Huber diffractometer in 6-circle horizontal geometry with energy.

Psi engine.

psi#
tau#
mu#
gamma#
delta#
class id4_common.devices.polar_diffractometer.CradlePSI#

Bases: PolarPSI

PolarPSI diffractometer with cradle chi and phi motors.

chi#
phi#
class id4_common.devices.polar_diffractometer.HPPSI#

Bases: PolarPSI

PolarPSI diffractometer for the HP press with its chi and phi motors.

chi#
phi#