LightController

While the BeamPath object provides basic control functionality, the LightController is what does the organization of all of LCLS’s devices. After parsing through all of the given devices, each beamline is contsructed as a BeamPath object. This includes not only devices on the upstream beamline but all of the beamlines before it. For example, the MEC beampath will include devices in both the FEE and the XRT. The LightController handles this logic as well as a basic overview of where the beam is and what the state of the MPS system is currently.

class lightpath.LightController(client, endstations=None)[source]

Controller for the LCLS Lightpath

Handles grouping devices into beamlines and joining paths together. Also provides an overview of the state of the entire beamline

containers

list – List of happi Device objects that were unable to be instantiated

Parameters:
  • client (happi.Client) – Happi Client
  • endstations (list, optional) – List of experimental endstations to load BeamPath objects for. If left as None, all endstations will be loaded
destinations

Current device destinations for the LCLS photon beam

devices

All of the devices loaded into beampaths

incident_devices

List of all devices in contact with photons along the beamline

load_beamline(endstation)[source]

Load a beamline from the provided happi client

Parameters:endstation (str) – Name of endstation to load
Returns:path
Return type:BeamPath
path_to(device)[source]

Create a BeamPath from the source to the requested device

Parameters:device (Device) – A device somewhere in LCLS
Returns:path – Path to and including given device
Return type:BeamPath