pcdsdevices.pseudopos.delay_instance_factory

pcdsdevices.pseudopos.delay_instance_factory(prefix, motor_class, egu='s', n_bounces=2, invert=False, **kwargs)

Laser delay stage to rescale a physical axis to a time axis.

The optical laser travels along the motor’s axis and bounces off a number of mirrors, then continues to the destination. In this way, the path length of the laser changes, which introduces a variable delay. This delay is a simple multiplier based on the speed of light.

pcdsdevices.pseudopos.delay

The fake axis. It has configurable units and number of bounces.

Type:

PseudoSingle

pcdsdevices.pseudopos.motor

The real axis. This can be a number of things based on the inheriting class, but it must have a valid egu so we know how to convert to the time axis.

Type:

PositionerBase

pcdsdevices.pseudopos.user_offset

An optional offset for the delay. This must be in the same units as delay.

Type:

Signal

Parameters:
  • prefix (str) – The EPICS prefix of the real motor.

  • name (str) – A name to assign to this delay stage.

  • egu (str, optional) – The units to use for the delay axis. The default is seconds. Any time unit is acceptable.

  • n_bounces (int, optional) – The number of times the laser bounces on the delay stage, e.g. the number of mirrors that this stage moves. The default is 2, a delay branch that bounces the laser back along the axis it enters.

  • invert (bool, optional) – If True, increasing the real motor will decrease the delay. If False (default), increasing the real motor will increase the delay.