58 lines
1.7 KiB
OpenEdge ABL
58 lines
1.7 KiB
OpenEdge ABL
\subsection{Amor Scan}
|
|
This is a special adaption of the general scan routines for the
|
|
reflectometer AMOR at SINQ. It works by replacing the configurable
|
|
routines in the general scan command with special ones, suited to the
|
|
reflectometers purpose. There are several adaptions to the standard
|
|
scan command:
|
|
\begin{itemize}
|
|
\item Data is written to NeXus files instead of ASCII files.
|
|
\item There are two counters to keep track of.
|
|
\item Furthermore stubs are provided for dealing with spin flippers.
|
|
\end{itemize}
|
|
|
|
In order to keep track of counters and monitors the following
|
|
convention has been devised:
|
|
\begin{itemize}
|
|
\item GetCounts gets the main detector.
|
|
\item GetMonitor 0 the second detector
|
|
\item GetMonitor 1 the first detector other spin
|
|
\item GetMonitor 2 the second detector other spin
|
|
\item GetMonitor 3 the first monitor
|
|
\item GetMonitor 4 the second monitor
|
|
\end{itemize}
|
|
Thus the monitor channels are used to keep the additional counter
|
|
information.
|
|
|
|
This module provides only one external function:
|
|
@d amorscan @{
|
|
int ConfigureAmor(pScanData pScan);
|
|
@}
|
|
which configures the variable fields and function pointers in pScan to
|
|
functions defined in this module. These then do the right thing. This
|
|
module is also an example of how the scan command can be configured to do
|
|
tricks based on the syntax and hooks defined in scan.*.
|
|
|
|
|
|
@o amorscan.h @{
|
|
/*-----------------------------------------------------------------------
|
|
A M O R S C A N
|
|
Adaption of the scan command to do things specific to the
|
|
reflectometer AMOR at SINQ.
|
|
|
|
Mark Koennecke, September 1999
|
|
-----------------------------------------------------------------------*/
|
|
#ifndef AMORSCAN
|
|
#define AMORSCAN
|
|
@<amorscan@>
|
|
#endif
|
|
|
|
@}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|