Source code for dodal.devices.beamlines.i15.focussing_mirror
from ophyd_async.core import StandardReadable
from ophyd_async.epics.motor import Motor
[docs]
class FocusingMirrorBase(StandardReadable):
"""Focusing Mirror with curve, ellip & pitch."""
def __init__(self, prefix: str, name: str = ""):
with self.add_children_as_readables():
self.curve = Motor(prefix + "CURVE")
self.ellipticity = Motor(prefix + "ELLIP")
self.pitch = Motor(prefix + "PITCH")
super().__init__(name)
[docs]
class FocusingMirrorHorizontal(FocusingMirrorBase):
"""Focusing Mirror with curve, ellip, pitch & X."""
def __init__(self, prefix: str, name: str = ""):
with self.add_children_as_readables():
self.x = Motor(prefix + "X")
super().__init__(prefix, name)
[docs]
class FocusingMirrorVertical(FocusingMirrorBase):
"""Focusing Mirror with curve, ellip, pitch & Y."""
def __init__(self, prefix: str, name: str = ""):
with self.add_children_as_readables():
self.y = Motor(prefix + "Y")
super().__init__(prefix, name)
[docs]
class FocusingMirror(FocusingMirrorBase):
"""Focusing Mirror with curve, ellip, pitch, yaw, X & Y."""
def __init__(self, prefix: str, name: str = ""):
with self.add_children_as_readables():
self.yaw = Motor(prefix + "YAW")
self.x = Motor(prefix + "X")
self.y = Motor(prefix + "Y")
super().__init__(prefix, name)
[docs]
class FocusingMirrorWithRoll(FocusingMirror):
"""Focusing Mirror with curve, ellip, pitch, roll, yaw, X & Y."""
def __init__(self, prefix: str, name: str = "") -> None:
with self.add_children_as_readables():
self.roll = Motor(prefix + "ROLL")
super().__init__(prefix, name)