csaxs_bec.scans.scan_plugin_template#
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.pre_scan # perform additional actions before the scan starts
- 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