# The Scan Command

An important concept in neutron scattering instrument control is a "scan". For a simple scan a range of instrument positions is divided into equidistant steps. The instrument then proceeds to drive to each of these points and collects data at each of them.

The general idea of the scan object is, that you configure the scan by typing commands at the command line. Once, the configuration is finished the requested scan is started. A data file will be written automatically to the default location. The scan command can not only scan over motors but also about some variables which relate to motors. For instance lamda for the wavelength. Scan can scan over more then one variable. The syntax of the scan command in some detail:

scan clear
  Clears current scan parameters.
scan list
  lists current scan parameters.
scan var name start step
  Defines a parameter (motor) to be scanned. The name of the parameter, a start value and a step width need to be given. More then one scan variable can be specified.
scan modvar name start step
  Modifies the scan parameters for scan variable name to the new values given.
scan getvars
  Returns a list of currently active scan variables terminated with the string -END-.
scan np num
  Sets the number of scan points.
scan preset [val]
  Sets the Preset value for the scan. Without a parameter, inquires the current value.
scan mode [val]
  Sets the count mode for the scan. Without a parameter, inquires the current value. Possible values are timer or monitor.
scan run
  Executes the scan.
scan cinterest
  This call enables automatic printing of scan counts to your connection when new values arise. This command is primariliy of interest for status display clients.
scan pinterest
  This function makes the scan command send a notification (the string ScanVarChange) to you whenever the scan variables get modified. This command is primarily of interest for status display clients.

## Center Scan

Center scan is a convenience command which starts a scan around a specified center value. This mostly used for centering purposes. The syntax is like this:

> cscan var center delta np preset

All parameters must be specified. The parameters and their meanings:

- var is the variable which is to be center scanned. Only one can be specified.
- center is the value to use as center of the scan.
- delta is the step width to use for the scan.
- np is the number of points to scan in each direction.
- preset is the preset to use for the counter. As the counter mode, the mode currently configured active in the scan object is used.

> example: cscan d2hr 0.5 0.01 10 10000

## Simple Scan

Simple scan is a convenience command which starts a scan for one to several variables with a simplified syntax. The syntax is like this:

> sscan var1 start end var2 start end ... np preset

All parameters must be specified. The parameters and their meanings:

- var1 start end This is how the variables to scan are specified. For each variable scanned the name of the variable, the start value and the end value of the scan must be given. More then one triplet can be given in order to allow for several scan variables.
- np is the number of points to scan.
- preset is the preset to use for the counter. As the counter mode, the mode currently configured active in the scan object is used.

## Fastscan

At some instruments there is a fastscan facility. This scan starts a motor and the counter. As often as possible or configured, the scan module will calculate the difference to the previous count, normalize it to the monitor difference and print it. This is usually faster then doing a step scan. There are limitations, though:

- Fastscans are restricted to one motor. There is no way that a coordinated movement of several motors can be enforced by fastscan without mechanical coupling.
- Due to the volatile nature of the beam at SINQ, this type of scans come into problems when the beam is off. A warning is printed, but...
- If the motor is driving to fast, there might not be enough neutrons around even in the peak to be registered.

Basically, if you see a feauture in fastscan, it is there, if not, that does not mean anything!. Fastscan comes into its own for alignment scans or when searching peaks. The syntax is:

fastscan motor start stop speed
  Runs a fastscan on motor between start and stop. Speed is the speed with which the motor is run. The motors speed is reset to the original value when fastscan finishes.
diffscan skip val
  If fastscan produces to much output on to short intervalls, increasing the skip parameter allows to control that. Skip is the number of SICS cyles to skip between measurements. Thus this value is highly dependent on the overall performance of SICS.

## Peak And Center

These two commands are related to the scan command insofar as they act upon the results of the last scan still in memory. The command peak prints the position, FWHM and maximum value of the peak in the last scan. The command center drives the first scan variable to the peak center of the last scan. Both peak and center use a rather simple but effective method for locating peaks. The prerequisite is that the peak is approximatly gaussian shaped. The algorithm first locates the peak maximum. Then it goes to the left and right of the maximum and tries to find the points of half maximum peak height. The two points are interpolated from the data and the peak position calculated as the middle point between the two halfheight points.

## PSD scans

Some instrument wish to perform scans with position sensitive detectors. In such cases the scan mode can be switched between PSD and normal mode. This is done through the commands:

scan2d
  Switches PSAD detetcor scanning on.
scan1d
  Switches back to normal scan mode on a single counter.