- Rearranged directory structure for forking out ANSTO
- Refactored site specific stuff into a site module - PSI specific stuff is now in the PSI directory. - The old version has been tagged with pre-ansto
This commit is contained in:
100
sanswave.tex
Normal file
100
sanswave.tex
Normal file
@ -0,0 +1,100 @@
|
||||
\subsection{SANS Wavelength Calculation}
|
||||
The instrument SANS has a neutron velocity selector. A wavelength is
|
||||
selected by varying tilt angle and rotation speed of the velocity selector.
|
||||
The relation between tilt angle and rotation speed to wavelength is given by
|
||||
a formula: \begin{eqnarray}
|
||||
\lambda & = & A + \frac{B}{rot}\\
|
||||
\lambda & = & wavelength in nm\\
|
||||
rot & = & rotation speed in revolutions per minute.
|
||||
\end{eqnarray}
|
||||
A and B are coefficients which are calculated from fourth degree polynoms.
|
||||
The coefficients of these polynoms have been obtained by fitting them
|
||||
against experimental data. This module now provides for this calculation and
|
||||
the driving of wavelength. This code does not vary tilt angle.
|
||||
|
||||
This object data structure is simple:
|
||||
\begin{flushleft} \small
|
||||
\begin{minipage}{\linewidth} \label{scrap1}
|
||||
$\langle$wavedat {\footnotesize ?}$\rangle\equiv$
|
||||
\vspace{-1ex}
|
||||
\begin{list}{}{} \item
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ typedef struct __SANSwave {@\\
|
||||
\mbox{}\verb@ pObjectDescriptor pDes;@\\
|
||||
\mbox{}\verb@ pIDrivable pDrivInt;@\\
|
||||
\mbox{}\verb@ pVelSel pSelector;@\\
|
||||
\mbox{}\verb@ };@\\
|
||||
\mbox{}\verb@@$\diamond$
|
||||
\end{list}
|
||||
\vspace{-1ex}
|
||||
\footnotesize\addtolength{\baselineskip}{-1ex}
|
||||
\begin{list}{}{\setlength{\itemsep}{-\parsep}\setlength{\itemindent}{-\leftmargin}}
|
||||
\item Macro never referenced.
|
||||
\end{list}
|
||||
\end{minipage}\\[4ex]
|
||||
\end{flushleft}
|
||||
The fields are:
|
||||
\begin{description}
|
||||
\item[pDes] The standard SICS object descriptor.
|
||||
\item[pDrivInt] A standard drivable interface.
|
||||
\item[pSelector] The velocity selector to act upon.
|
||||
\end{description}
|
||||
|
||||
Most functionality of this module is hidden in the functions comprising the
|
||||
drivable interface. Thus the external functions of this object are limited
|
||||
to:
|
||||
|
||||
\begin{flushleft} \small
|
||||
\begin{minipage}{\linewidth} \label{scrap2}
|
||||
$\langle$sanswaveint {\footnotesize ?}$\rangle\equiv$
|
||||
\vspace{-1ex}
|
||||
\begin{list}{}{} \item
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ typedef struct __SANSwave *pSANSWave;@\\
|
||||
\mbox{}\verb@/*-----------------------------------------------------------------------*/@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ int CalculateLambda(float fRot, float fTilt, float *fLambda);@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ int MakeSANSWave(SConnection *pCon, SicsInterp *pSics, void *pData,@\\
|
||||
\mbox{}\verb@ int argc, char *argv[]);@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ int SANSWaveAction(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}
|
||||
The coefficients for the calculation of A and B are hidden in the module
|
||||
static function CalculateCoefficients.
|
||||
|
||||
\begin{flushleft} \small
|
||||
\begin{minipage}{\linewidth} \label{scrap3}
|
||||
\verb@"sanswave.h"@ {\footnotesize ? }$\equiv$
|
||||
\vspace{-1ex}
|
||||
\begin{list}{}{} \item
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@/*---------------------------------------------------------------------------@\\
|
||||
\mbox{}\verb@ S A N S W A V E@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ Wavelength calculations for a neutron velocity selector. Allows to drive@\\
|
||||
\mbox{}\verb@ the neutron wavelength directly.@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ copyright: see copyright.h@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ Mark Koennecke, October 1998@\\
|
||||
\mbox{}\verb@---------------------------------------------------------------------------*/@\\
|
||||
\mbox{}\verb@#ifndef SANSWAVE@\\
|
||||
\mbox{}\verb@#define SANSWAVE@\\
|
||||
\mbox{}\verb@@$\langle$sanswaveint {\footnotesize ?}$\rangle$\verb@@\\
|
||||
\mbox{}\verb@#endif @\\
|
||||
\mbox{}\verb@@$\diamond$
|
||||
\end{list}
|
||||
\vspace{-2ex}
|
||||
\end{minipage}\\[4ex]
|
||||
\end{flushleft}
|
Reference in New Issue
Block a user