- Added makefile_slinux

- Changed mesure to be a silver bullet


SKIPPED:
	psi/ecbcounter.c
	psi/ecbdriv.c
	psi/el734hp.c
	psi/el737hpdriv.c
	psi/fowrite.c
	psi/nextrics.c
	psi/tasscan.c
This commit is contained in:
koennecke
2005-03-03 13:54:07 +00:00
parent ce3790c148
commit 164682c028
17 changed files with 954 additions and 386 deletions

View File

@ -1,15 +1,22 @@
\subsection{Four Circle Single Counter Measurement Object}
This object implements a basic single counter reflection measurement routine
This object implements a single counter reflection measurement routine
for four circle diffractometers. This object is able to read a reflection
listing, drive to each reflection in the list, do a scan on it, integrate
the scan results and write the results to ASCII files. Nothing sophisticated
such as optimised measurement procedures and special background measurement
programs. Three files will be created as output: one file with the ending
the scan results and write the results to ASCII files.
Three files will be created as output: one file with the ending
.rfl which contains the reflection profiles for each reflection, a file .asc
which contains a summary in form of HKL, I, sigma(I) for each reflection
and a file ending .err which contains all the error messages obtained during
the run.
This module has evolved to support the following mode advanced feautures:
\begin{itemize}
\item Vary step width and scanned variable in dependence on two theta
\item Calculation mode in order to determine the number of reflections which
can actually be measured from a given list.
\item Remeasuring of weak reflections.
\item Fast scans.
\end{itemize}
The interface to this object consists of these functions:
@ -22,7 +29,7 @@ $\langle$mesureint {\footnotesize ?}$\rangle\equiv$
\mbox{}\verb@ typedef struct __Mesure *pMesure;@\\
\mbox{}\verb@/*--------------------- live & death --------------------------------------*/@\\
\mbox{}\verb@ pMesure CreateMesure(pHKL pCryst, pScanData pScanner, @\\
\mbox{}\verb@ pMotor pOmega, char *pom, char *po2t,@\\
\mbox{}\verb@ pMotor pOmega, char *pom,@\\
\mbox{}\verb@ char *pFileRoot,pDataNumber pDanu);@\\
\mbox{}\verb@ void DeleteMesure(void *pData);@\\
\mbox{}\verb@@\\
@ -95,13 +102,57 @@ Mesure supports the following parameters:
\item[preset] The preset value for counting.
\item[countmode] the counting mode, can be 0 for timer or 1 for monitor
mode.
\item[mode] can be 0 for omega 2theta scans or 1 for omega scans.
\item[step] the scan step widths. This is allways in omega, in omega 2theta
mode 2theta is always the double of this.
\end{description}
\subsubsection{Four Circle Table}
In order to support the variation of scan parameters with two theta a table is needed which
holds the necessary parameters. This table is implemented in a separate module. The
interface to this module is:
\begin{flushleft} \small
\begin{minipage}{\linewidth} \label{scrap2}
$\langle$fourtableint {\footnotesize ?}$\rangle\equiv$
\vspace{-1ex}
\begin{list}{}{} \item
\mbox{}\verb@@\\
\mbox{}\verb@ int MakeFourCircleTable();@\\
\mbox{}\verb@ void DeleteFourCircleTable(int handle);@\\
\mbox{}\verb@ int HandleFourCircleCommands(int handle, SConnection *pCon, @\\
\mbox{}\verb@ int argc, char *argv[], int *err);@\\
\mbox{}\verb@ char *GetFourCircleScanVar(int handle, double two_theta);@\\
\mbox{}\verb@ double GetFourCircleStep(int handle, double two_theta);@\\
\mbox{}\verb@ int SaveFourCircleTable(int handle, char *objName, FILE *fd);@\\
\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}
Many functions takes as the first argument a handle to the four circle table as
created by MakeFourCircleTable.
\begin{description}
\item[MakeFourCircleTable] creats a four circle table. Returns a handle with which
the table can be referred to later.
\item[DeleteFourCircleTable] removes a four circle table. The single argument is
a handle to a four circle tbale as created by MakeFourCircle.
\item[HandleFourCircleCommands] handles interpreter commands which allow to
edit or list the table described by handle. pCon is used for output. argc, argv are
the arguments to the command. The returns 1 when the command was handled, 0 else.
If there was an error, err is set to 0.
\item[GetFourCircleScanVar] retrieves the scan variable to use for the two theta
value given.
\item[GetFourCircleStep] retrieves the step width to use for the two theta
value given.
\item[SaveFourCircleTable] saves the configuration of the table into fd. objName is the
name of the object to which this table belongs.
\end{description}
\begin{flushleft} \small
\begin{minipage}{\linewidth} \label{scrap3}
\verb@"mesure.h"@ {\footnotesize ? }$\equiv$
\vspace{-1ex}
\begin{list}{}{} \item
@ -109,12 +160,13 @@ mode 2theta is always the double of this.
\mbox{}\verb@/*----------------------------------------------------------------------------@\\
\mbox{}\verb@ M E S U R E@\\
\mbox{}\verb@@\\
\mbox{}\verb@ A SICS object for doing simple four circle measurements with a single@\\
\mbox{}\verb@ A SICS object for doing four circle measurements with a single@\\
\mbox{}\verb@ counter. @\\
\mbox{}\verb@@\\
\mbox{}\verb@ copyright: see copyright.h@\\
\mbox{}\verb@@\\
\mbox{}\verb@ Mark Koenencke, April 1998@\\
\mbox{}\verb@ Mark Koennecke, April 1998@\\
\mbox{}\verb@ Heavily reworked: Mark Koennecke, February-March 2005 @\\
\mbox{}\verb@---------------------------------------------------------------------------*/@\\
\mbox{}\verb@#ifndef SICSMESURE@\\
\mbox{}\verb@#define SICSMESURE@\\
@ -125,3 +177,27 @@ mode 2theta is always the double of this.
\vspace{-2ex}
\end{minipage}\\[4ex]
\end{flushleft}
\begin{flushleft} \small
\begin{minipage}{\linewidth} \label{scrap4}
\verb@"fourtable.h"@ {\footnotesize ? }$\equiv$
\vspace{-1ex}
\begin{list}{}{} \item
\mbox{}\verb@@\\
\mbox{}\verb@/*---------------------------------------------------------------------------@\\
\mbox{}\verb@ F O U R T A B L E@\\
\mbox{}\verb@@\\
\mbox{}\verb@ A SICS object which holds the variation of scan parameters for four circle@\\
\mbox{}\verb@ reflection list measurements.@\\
\mbox{}\verb@ copyright: see copyright.h@\\
\mbox{}\verb@@\\
\mbox{}\verb@ Mark Koennecke, February 2005@\\
\mbox{}\verb@---------------------------------------------------------------------------*/@\\
\mbox{}\verb@#ifndef FOURTABLE@\\
\mbox{}\verb@#define FOURTABLE@\\
\mbox{}\verb@@$\langle$fourtableint {\footnotesize ?}$\rangle$\verb@@\\
\mbox{}\verb@#endif@\\
\mbox{}\verb@@$\diamond$
\end{list}
\vspace{-2ex}
\end{minipage}\\[4ex]
\end{flushleft}