## Command Initialisation

Besides the general SICS commands which are available for all instruments, there exist instrument specific commands. Such instrument specific objects are configured into the system through special commands in the initialisation file. Such special commands are described here.

MakeRuenBuffer
  MakeRuenBuffer makes the RünBuffer system available.
MakeDrive
  MakeDrive craetes the drive command.
MakeScanCommand name countername headfile recoverfil
  MakeScanCommand initialises the SICS internal scan command. It will be accessible as name in the system. The next parameter is the name of a valid counter object to use for counting. The next parameter is the full pathname of a header description file. This file describes the contents of the header of the data file. The format of this file is described below. The parameter recoverfil is the full pathname of a file to store recover data. The internal scan command writes the state of the scan to a binary file after each scan point. This allows for restarting of aborted scans.
MakePeakCenter scancommand
  MakePeakCenter initialises the peak analysis commands peak and center. The only parameter is the name of the internal scan command.
DMCInit
  DMCInit creates the DMC StoreData command. This command writes NeXus files for DMC.
InitSANS dictionary-filename
  InitSANS creates the StoreData command for SANS. This command writes the current state of the instrument into a NeXus file. The structure of the NeXus file is described in a special dictionary file which is a required parameter to this command. For details about the format of this file see the NXDICT-API documentation.
Publish name access
  The SICS server uses Tcl as its internal macro language. However, it was felt that the whole Tcl command set should not be available to all users from the command line without any protection. There are reasons for this: careless use of Tcl may clog up memory, thereby grinding the system to a halt. Invalid Tcl statements may cause the server to hang. Last not least, Tcl contains commands to manipulate files and access the operating system. This is a potential security problem when the server is hacked. However, in order to make macro procedures available the Publish command exists. It makes a Tcl command name available to SICS users with the access code access. Valid values for access are: Internal, Mugger, User and Spy.
MakeMulti name
  SANS uses a special syntax feature where several motors are grouped into a component group. For example beamstop or detector. MakeMulti creates such a group with the name name. Once such a group has been created, it has to be configured. For this a few configuration commands are available:
  name alias motname compname
    This command makes motor motname available as component motor compname. For example: bs alias bsx x makes motor bsx available as x in the beamstop group. Then the bsx motor can be driven by the command bx x = 12..
  name pos posname motname value motname value ....
    The group command supports the notion of named positions. This means that a special combination of angles can be accessed through a name. This commands defines such a named position with the name posname. posname is followed by pairs of motorname value which define the position.
  name endconfig
    Once a group has been completely defined the configuration process must be ended with endconfig.
MakeMono name M1 M2 M3 M4
  This command creates a crystal monochromator object. Such a monochromator object is necessary for the usage of the wavelength or energy variables. The parameter name defines the name of the monochromator object in the system. M1 and M2 are the names of the Theta and two Theta motors respectively. M3 is an optional parameter defining a motor for driving the horizontal curvature. M4 is an optional parameter defining a motor for driving the vertical curvature of the monochromator.
InitToken tokenpassword
  This command initialises the token control management system with the token command. The single parameter tokenpassword specifies the password for the token force command.
MakeHKL theta omega chi phi
  MakeHKL creates the hkl command for the calculation of settings for a four circle diffractometer. The four parameters are the names of the motors driving the two theta, omega, chi and phi circles of the diffractometer. These motors must already exists before this command may succeed.
MakeDifrac tth om chi phi cter
  This command installs the Difrac subsystem into SICS. Difrac is a whole F77 package for controlling a four circle diffractometer. Afterwards Difrac commands are available in SICS with the prefix dif, for example dif ah calls the difrac ah command. Difrac is described in more detail elsewhere. The parameters are the four circle motors two theta, omega, chi and phi and the counter.
MakeOptimise name countername
  This command installs the Peak Optimiser into the SICS server. The Peak Optimiser is an object which can locate the maximum of a peak with respect to several variables. The arguments are: name, the name under which the Peak Optimiser can be accessed within SICS and countername, which is the name of an already configured SICS counter box.
MakeTRICSNEXUS datanumber fileroot dictionaryfile
  MakeTRICSNEXUS creates the object for writing TRICS NeXus files. This command creates a new command with the name nexus which is is used for interacting with this object. MakeTRICSNEXUS expects three parameters: The first one is the name of a data number object used for automatic data file name creation. The second is the full pathname to the directory where the dat should go. The third one is the full path name of the NXDICT dictionary file to use for positioning data in the NeXus file. Besides these explicit parameter the nexus object relies on the presence of a plethora of other objects in the system. The MakeTRICSNEXUS command should be at the end of the file.
MakeAmor2T name da
  This creates a virtual two theta motor for the reflectometer AMOR. The two parameters are the name of the object in SICS and a Tcl-array with configuration parameters. The needed elements of this array are:
  mom
    The monochromator omega motor.
  som
    The sample omega motor.
  coz
    The height movement of the detector.
  cox
    The movement of the detector along the optical bench.
  stz
    The height movement of the sample connected to the omega circle.
  soz
    The height movement of the sample table.
  d4b
    The motor moving the whole diaphragm 4 up.
  d5b
    The motor moving the whole diaphragm 5 up.
  com
    The omega mevement of the detector.
  An example:

      set a2t(mom) mom
      set a2t(som) som
      set a2t(coz) coz
      set a2t(cox) cox
      set a2t(stz) stz
      set a2t(soz) soz
      set a2t(d4b) d4b
      set a2t(d5b) d5b
      set a2t(com) com
      MakeAmor2T a2t a2t

  creates a virtual AMOR two theta motor with the name a2t.
MakeStoreAmor hm
  Creates an object for writing reflectometer data files. The name of the command is storeamor. The parameter hm denotes the histogram memory object.
MakeAmorStatus name scan hm
  This creates a helper object for the reflectometer status display with name name. This object performs some operations on behalf of the status display for the reflectometer AMOR. The parameter scan denotes the name of the scan object. The parameter hm the name of the histogram memory object.
MakeMesure name scanobject hklobject omega o2t fileroot datanumberobject
  MakeMesure installs the single counter four circle diffractometer measurement procedure into SICS. It will be accessible as object name afterwards. MakeMesure takes a lot of parameters:
  scanobject
    The name of the internal scan object.
  hklobject
    The name of the object which does crystallographic calculations.
  omega
    The name of the motor driving omega.
  o2t
    The name of the omega two theta virtual motor for omega two theta scans.
  fileroot
    The full path to the data file directory without final /
  datanumberobject
    The name of the SICS data number object for creating unique file numbers.
MakeSANSWave name velo_name
  > Installs a velocity selector wavelength variable into SICS. The variable will have the name given as first parameter. Usually lambda is a good idea. The second parameter, velo_name, is the name of the velocity selector which is controlled by this wavelength variable.
MakeHklscan scan hkl
  Installs a command named hklscan which allows scans in reciprocal space expressed as Miller Indizes on a four circle diffractometer. scan must be the name of a scan object as created by MakeScanCommand. hkl is the name of a hkl calculation object as created by makeHKL.
MakeXYTable myname
  Creates a XYTable object with the name myname. This object can store a list of x-y values.

#### The Scan Command Header Description File

The SICS internal scan command allows to configure the contents of the header of the ASCII scan data file through a template header file. This section describes the contents of this file. This header description file consists of normal text mixed with a few special keywords. The normal test will be copied to output verbatim. The keywords indicate that their place will be replaced by values at run time. Currently only one keyword per line is supported. Keywords recognized are:

!!DATE!!
  Will be replaced with the file creation date.
!!VAR(name)!!
  Will be replaced with the value of the SICS variable name.
!!DRIV(name)!!
  Will be replaced with the value drivable variable name. Drivable variables are all motors and all variables which may be used in a drive or run command.
!!ZERO(name)!!
  Will be replaced with the value of the softzero point for motor name.
!!FILE!!
  Will be replaced by the creation name of the file.

Please note that text behind such a keyword in the line will not be copied to the output.