Scans are described as a sequence of instrument states at which measurements are made. Virtual devices can be used in scan description just like any other device.
A string describing a scan is used to transfer the scan information between processes. This string is parsed and translated into a sequence of instrument states.
In some cases, additional parameters might be needed for the scan description to be complete. For example, when defining a scan in terms of Q and E, the following parameters have to be included in the description:
Choice of fixed energy: initial (monochromator) or final (analyzer)
Value of fixed energy [meV]
Energy transfer list or initial value (the convention is E = Einitial – Efinal) [meV]
H, K and L list or initial value
In addition, some scans might require server parameters to be set. For example, a scan defined in terms of Q and E will require the following server parameters to be set already:
Monochromator and analyzer d-spacings [Å]
Two orientation vectors
Lattice parameters (a, b, c, α, β, γ)
Example: Scan:Title=”QA4”:Fixed=0:FixedE=14.7:CountType=Time:Counts=10: Npts=5:Range=E=0.1 0:Range=Q=1~0~0 0~0.1~0:Range=A4= 21 1
The description string should always start with the word Scan. Colons separate tokens and values in a list are separated by a space. Each token is made of a field descriptor following by an equal (=) sign and one or several values. The list of available field descriptors is:
Title: Title of the scan.
Type: Scan type. Can be supplied as an integer or a string. See below for discussion.
Fixed: Sets the energy to fix: 0=monochromator, 1=analyzer.
FixedE: Sets the value of the fixed energy [meV].
Counts: The number of counts for the point.
CountType: The device that will be used to count.
DetectorType: The device that will be used to accumulate the data. This tag only needs to be supplied to select the data to be sent to Xpeek and to specify meta data in the data file. No information will be lost by omitting this tag.
Prefac: Gives a multiplication factor for the number of counts.
Npts: The number of points in the scan.
Range: The functional relation between the scan points for a given device. The format is Range=[device name]=[central position] [increment]. Alternatively, it is possible to define a scan range the following way: Range=[device name]=[start] [stop] S. An “S” at the end of the string indicates that we are using start and stop positions. An I at the end means that the scan specifies initial, step, number of points.
The Range token can be used to specify any value, including Q and E. Values that are constant throughout the scan can also be specified with a zero increment.
Dev: As an alternative to Range, the complete list of values to be visited can be supplied: Dev=[device name]=value1 value2 value3…
Timeout: Time after which the preset counter will be stopped regardless of whether it has reached its preset value.
HoldPoint: Holding time before the preset counter is started at each point.
HoldScan: Holding time before the preset counter is started for the first point of a scan.
Npts2: Number of points of the second dimension in a 2D scan.
Range2: The functional relation between the scan points for a given device used in the second dimension of a 2D scan.
Comment: The user can enter a comment here.
Filename: Specifies a string to be added at the beginning of the data file name.
Any additional tokens can be appended to the scan description as meta data. These additional tokens must be separated by colons.
Scans in ICE are stored in a list in memory. The scan descriptions contained in the list are available to users to run on an instrument. In order to save scans for repeated uses over time, the scan list must be backed up to disk. Several commands exist for manipulating the scan list and moving its contents to and from disk.