Diffractometer Geometries#
Source Code Documentation#
Create a Diffractometer for any Geometry.
|
Build a custom class for this diffractometer geometry. |
|
Factory function to create a diffractometer instance. |
- hklpy2.geom.creator(*, prefix: str = '', name: str = '', solver: str = 'hkl_soleil', geometry: str = 'E4CV', solver_kwargs: dict = {'engine': 'hkl'}, pseudos: list = [], reals: dict = {}, motor_labels: list = ['motors'], labels: list = ['diffractometer'], class_name: str = 'Hklpy2Diffractometer', class_bases: list = [<class 'hklpy2.diffract.DiffractometerBase'>], auto_assign: bool = True, **kwargs)[source]#
Factory function to create a diffractometer instance.
EXAMPLES:
Four-circle diffractometer, vertical orientation, Eulerian rotations, canonical real axis names, EPICS motor PVs:
e4cv = creator(name="e4cv", solver="hkl_soleil", geometry="E4CV", reals=dict(omega="IOC:m1", chi="IOC:m2", phi="IOC:m3", tth="IOC:m4"), )
Four-circle diffractometer, vertical orientation, Eulerian rotations, custom real axis names, simulated positioners:
sim4c = creator(name="sim4c", solver="hkl_soleil", geometry="E4CV", reals=dict(uno=None, dos=None, tres=None, cuatro=None), )
(Simplest case to get a simulator.) Four-circle diffractometer, vertical orientation, Eulerian rotations, canonical real axis names, simulated positioners (all default settings):
sim4c = creator(name="sim4c")
Kappa six-circle diffractometer, simulated motors:
simk6c = creator(name="simk6c", solver="hkl_soleil", geometry="K6C" )
PARAMETERS
- prefixstr
EPICS PV prefix (default: empty string)
- namestr
Name of the ophyd diffractometer object to be created. (default: ‘””’)
- solverstr
Name of the backend solver providing the geometry. (default: ‘“hkl_soleil”’)
- geometrystr
Name of the diffractometer geometry. (default: ‘“E4CV”’)
- solver_kwargsstr
Additional configuration for the solver. (default: ‘{“engine”: “hkl”}’)
- pseudoslist
Specification of the names of any pseudo axis positioners in addition to the ones provided by the solver.
(default: ‘[]’ which means no additional pseudo axes)
- realsdict
Specification of the real axis motors. Dictionary keys are the motor names, values are the EPICS motor PV for that axis. If the PV is ‘None’, use a simulated positioner.
The dictionary can be empty or must have at least the canonical number of real axes. The order of the axes is important. The names provided will be mapped to the canonical order defined by the solver. Components will be created for any extra reals.
(default: ‘{}’ which means use the canonical names for the real axes and use simulated positioners)
- motor_labelslist
Ophyd object labels for each real positioner. (default: ‘[“motors”]’)
- labelslist
Ophyd object labels for the diffractometer object. (default: ‘[“diffractometer”]’)
- class_namestr
Name to use for the diffractometer class. (default: ‘“Hklpy2Diffractometer”’)
- class_baseslist
List of base classes to use for the diffractometer class. (default: ‘[DiffractometerBase]’)
- auto_assignbool
When ‘True’, call
auto_assign_axes()
. (default: ‘True’)- kwargsany
Additional keyword arguments will be added when constructing the new diffractometer object.
- hklpy2.geom.diffractometer_class_factory(*, solver: str = 'hkl_soleil', geometry: str = 'E4CV', solver_kwargs: dict = {'engine': 'hkl'}, pseudos: list = [], reals: dict = {}, motor_labels: list = ['motors'], class_name: str = 'Hklpy2Diffractometer', class_bases: list = [<class 'hklpy2.diffract.DiffractometerBase'>])[source]#
Build a custom class for this diffractometer geometry.
PARAMETERS
- solverstr
Name of the backend solver providing the geometry. (default: ‘“hkl_soleil”’)
- geometrystr
Name of the diffractometer geometry. (default: ‘“E4CV”’)
- solver_kwargsstr
Additional configuration for the solver. (default: ‘{“engine”: “hkl”}’)
- pseudoslist
Specification of the names of any pseudo axis positioners in addition to the ones provided by the solver.
(default: ‘[]’ which means no additional pseudo axes)
- realsdict
Specification of the real axis motors. Dictionary keys are the motor names, values are the EPICS motor PV for that axis. If the PV is ‘None’, use a simulated positioner.
The dictionary can be empty or must have at least the canonical number of real axes. The order of the axes is important. The names provided will be mapped to the canonical order defined by the solver. Components will be created for any extra reals.
(default: ‘{}’ which means use the canonical names for the real axes and use simulated positioners)
- motor_labelslist
Ophyd object labels for each real positioner. (default: ‘[“motors”]’)
- class_namestr
Name to use for the diffractometer class. (default: ‘“Hklpy2Diffractometer”’)
- class_baseslist
List of base classes to use for the diffractometer class. (default: ‘[DiffractometerBase]’)