csaxs_bec.scans.LamNIFermatScan#

SCAN PLUGINS

All new scans should be derived from ScanBase. ScanBase provides various methods that can be customized and overriden but they are executed in a specific order:

  • self.initialize # initialize the class if needed

  • self.read_scan_motors # used to retrieve the start position (and the relative position shift if needed)

  • self.prepare_positions # prepare the positions for the scan. The preparation is split into multiple sub fuctions:
    • self._calculate_positions # calculate the positions

    • self._set_positions_offset # apply the previously retrieved scan position shift (if needed)

    • self._check_limits # tests to ensure the limits won’t be reached

  • self.open_scan # send an open_scan message including the scan name, the number of points and the scan motor names

  • self.stage # stage all devices for the upcoming acquisiton

  • self.run_baseline_readings # read all devices to get a baseline for the upcoming scan

  • self.scan_core # run a loop over all position
    • self._at_each_point(ind, pos) # called at each position with the current index and the target positions as arguments

  • self.finalize # clean up the scan, e.g. move back to the start position; wait everything to finish

  • self.unstage # unstage all devices that have been staged before

  • self.cleanup # send a close scan message and perform additional cleanups if needed

Module attributes