112 lines
4.6 KiB
TeX
112 lines
4.6 KiB
TeX
\subsection{hklscan}
|
|
hklscan is an object which implements scanning in reciprocal space. It belongs
|
|
to the four circle diffraction line of commands. It requires the hkl object
|
|
for doing four circle calculations and a scan object for doing the scanning.
|
|
The scan object is configured by overloading its WriteScanPoints and
|
|
ScanDrive functions to do the right thing for this. Thus most of the work
|
|
is done in scan and hkl.
|
|
|
|
hklscan has its own data structure looking like this:
|
|
|
|
\begin{flushleft} \small
|
|
\begin{minipage}{\linewidth} \label{scrap1}
|
|
$\langle$hklscandat {\footnotesize ?}$\rangle\equiv$
|
|
\vspace{-1ex}
|
|
\begin{list}{}{} \item
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@ typedef struct __HKLSCAN {@\\
|
|
\mbox{}\verb@ pObjectDescriptor pDes;@\\
|
|
\mbox{}\verb@ pScanData pScan;@\\
|
|
\mbox{}\verb@ pHKL pCalc; @\\
|
|
\mbox{}\verb@ float fStart[3];@\\
|
|
\mbox{}\verb@ float fStep[3];@\\
|
|
\mbox{}\verb@ float fPos[3];@\\
|
|
\mbox{}\verb@ } sHklscan;@\\
|
|
\mbox{}\verb@@$\diamond$
|
|
\end{list}
|
|
\vspace{-1ex}
|
|
\footnotesize\addtolength{\baselineskip}{-1ex}
|
|
\begin{list}{}{\setlength{\itemsep}{-\parsep}\setlength{\itemindent}{-\leftmargin}}
|
|
\item Macro referenced in scrap ?.
|
|
\end{list}
|
|
\end{minipage}\\[4ex]
|
|
\end{flushleft}
|
|
\begin{description}
|
|
\item[pDes] The standard object descriptor.
|
|
\item[pScan] The scan object used for scanning.
|
|
\item[pCalc] The hkl object used for crystallographic computations.
|
|
\item[fStart] The start values in H, K, L for scanning.
|
|
\item[fStep] The step width in H, K, L.
|
|
\item[fPos] The last position in H, K, L.
|
|
\end{description}
|
|
|
|
The hklscan object defines the following external interface:
|
|
|
|
\begin{flushleft} \small
|
|
\begin{minipage}{\linewidth} \label{scrap2}
|
|
$\langle$hklscanfunc {\footnotesize ?}$\rangle\equiv$
|
|
\vspace{-1ex}
|
|
\begin{list}{}{} \item
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@ typedef struct __HKLSCAN *pHklscan;@\\
|
|
\mbox{}\verb@/*--------------------------------------------------------------------------*/@\\
|
|
\mbox{}\verb@ int HklScan(pHklscan self, SConnection *pCon, int iNP, int iMode,@\\
|
|
\mbox{}\verb@ float fPreset);@\\
|
|
\mbox{}\verb@/*---------------- interpreter functions -----------------------------------*/@\\
|
|
\mbox{}\verb@ int HklscanFactory(SConnection *pCon, SicsInterp *pSics, void *pData,@\\
|
|
\mbox{}\verb@ int argc, char *argv[]);@\\
|
|
\mbox{}\verb@ int HklscanAction(SConnection *pCon, SicsInterp *pSics, void *pData,@\\
|
|
\mbox{}\verb@ int argc, char *argv[]);@\\
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@@$\diamond$
|
|
\end{list}
|
|
\vspace{-1ex}
|
|
\footnotesize\addtolength{\baselineskip}{-1ex}
|
|
\begin{list}{}{\setlength{\itemsep}{-\parsep}\setlength{\itemindent}{-\leftmargin}}
|
|
\item Macro referenced in scrap ?.
|
|
\end{list}
|
|
\end{minipage}\\[4ex]
|
|
\end{flushleft}
|
|
\begin{flushleft} \small
|
|
\begin{minipage}{\linewidth} \label{scrap3}
|
|
\verb@"hklscan.i"@ {\footnotesize ? }$\equiv$
|
|
\vspace{-1ex}
|
|
\begin{list}{}{} \item
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@/*-------------------------------------------------------------------------@\\
|
|
\mbox{}\verb@ Internal data structure for the hklscan object. DO NOT MODIFY. @\\
|
|
\mbox{}\verb@ Modifications only in hklscan.i@\\
|
|
\mbox{}\verb@ @\\
|
|
\mbox{}\verb@ Mark Koennecke, June 1999@\\
|
|
\mbox{}\verb@--------------------------------------------------------------------------*/@\\
|
|
\mbox{}\verb@@$\langle$hklscandat {\footnotesize ?}$\rangle$\verb@@\\
|
|
\mbox{}\verb@@$\diamond$
|
|
\end{list}
|
|
\vspace{-2ex}
|
|
\end{minipage}\\[4ex]
|
|
\end{flushleft}
|
|
\begin{flushleft} \small
|
|
\begin{minipage}{\linewidth} \label{scrap4}
|
|
\verb@"hklscan.h"@ {\footnotesize ? }$\equiv$
|
|
\vspace{-1ex}
|
|
\begin{list}{}{} \item
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@/*--------------------------------------------------------------------------@\\
|
|
\mbox{}\verb@ H K L S C A N@\\
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@ A class for doing scans in reciprocal space. This makes only sense at an@\\
|
|
\mbox{}\verb@ four circle diffractometer. Most of the work is done in the HKL and scan@\\
|
|
\mbox{}\verb@ objects. This class just adapts and used both objects to do the right thing.@\\
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@ Mark Koennecke, June 1999@\\
|
|
\mbox{}\verb@---------------------------------------------------------------------------*/@\\
|
|
\mbox{}\verb@#ifndef HKLSCAN@\\
|
|
\mbox{}\verb@#define HKLSCAN@\\
|
|
\mbox{}\verb@@$\langle$hklscanfunc {\footnotesize ?}$\rangle$\verb@@\\
|
|
\mbox{}\verb@#endif@\\
|
|
\mbox{}\verb@@$\diamond$
|
|
\end{list}
|
|
\vspace{-2ex}
|
|
\end{minipage}\\[4ex]
|
|
\end{flushleft}
|