Initial revision
This commit is contained in:
79
center.tex
Normal file
79
center.tex
Normal file
@ -0,0 +1,79 @@
|
||||
\subsection{Fit and Center}
|
||||
This is a fit routine for SICS. It takes a scan and tries to find a peak and
|
||||
its position. Trials showed that fitting a gauss function is not robust
|
||||
enough for this facility which has to cope with bizarre peak shapes, half
|
||||
finished measurements and the like. The algorithm choosen tries to find the
|
||||
center of gravity of the peak. It does this by searching for the maximum
|
||||
point in the diagram first. Then the points where the peak is below
|
||||
half maximum are searched for either side of the peak. Within these
|
||||
limits the COG is calculated. When this is done fit will print some
|
||||
info about the peak.
|
||||
|
||||
Center will the drive the scan variable to the COG of the peak.
|
||||
|
||||
The interface to this simple facility is simple:
|
||||
|
||||
\begin{flushleft} \small
|
||||
\begin{minipage}{\linewidth} \label{scrap1}
|
||||
$\langle$fitinter {\footnotesize ?}$\rangle\equiv$
|
||||
\vspace{-1ex}
|
||||
\begin{list}{}{} \item
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ typedef struct __FitCenter *pFit;@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@/*--------------------------------------------------------------------------*/@\\
|
||||
\mbox{}\verb@ pFit CreateFitCenter(pScanData pScan);@\\
|
||||
\mbox{}\verb@ void DeleteFitCenter(void *pData);@\\
|
||||
\mbox{}\verb@/*-------------------------------------------------------------------------*/@\\
|
||||
\mbox{}\verb@ int CalculateFit(pFit self);@\\
|
||||
\mbox{}\verb@ /* @\\
|
||||
\mbox{}\verb@ CalcluateFit returns: -1 when left FWHM could not be found@\\
|
||||
\mbox{}\verb@ -2 when right FWHM could not be found@\\
|
||||
\mbox{}\verb@ 1 on success@\\
|
||||
\mbox{}\verb@ */@\\
|
||||
\mbox{}\verb@ int CalculateFitFromData(pFit self, float fAxis[], long lSum[], @\\
|
||||
\mbox{}\verb@ int iLen);@\\
|
||||
\mbox{}\verb@ void GetFitResults(pFit self, float *fNewCenter, float *fStdDev,@\\
|
||||
\mbox{}\verb@ float *FWHM, float *fMax);@\\
|
||||
\mbox{}\verb@ int DriveCenter(pFit self, SConnection *pCon, SicsInterp *pSics);@\\
|
||||
\mbox{}\verb@/*-------------------------------------------------------------------------*/@\\
|
||||
\mbox{}\verb@ int FitFactory(SConnection *pCon,SicsInterp *pSics, void *pData,@\\
|
||||
\mbox{}\verb@ int argc, char *argv[]);@\\
|
||||
\mbox{}\verb@ int FitWrapper(SConnection *pCon,SicsInterp *pSics, void *pData,@\\
|
||||
\mbox{}\verb@ int argc, char *argv[]);@\\
|
||||
\mbox{}\verb@ int CenterWrapper(SConnection *pCon,SicsInterp *pSics, void *pData,@\\
|
||||
\mbox{}\verb@ int argc, char *argv[]);@\\
|
||||
\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{scrap2}
|
||||
\verb@"fitcenter.h"@ {\footnotesize ? }$\equiv$
|
||||
\vspace{-1ex}
|
||||
\begin{list}{}{} \item
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@/*---------------------------------------------------------------------------@\\
|
||||
\mbox{}\verb@ F I T C E N T E R@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ A simple peak finding and center of gravity determination facility for@\\
|
||||
\mbox{}\verb@ SICS.@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ copyright: see copyright.h@\\
|
||||
\mbox{}\verb@@\\
|
||||
\mbox{}\verb@ Mark Koennecke, October 1997@\\
|
||||
\mbox{}\verb@----------------------------------------------------------------------------*/@\\
|
||||
\mbox{}\verb@#ifndef SICSFITCENTER@\\
|
||||
\mbox{}\verb@#define SICSFITCENTER@\\
|
||||
\mbox{}\verb@@$\langle$fitinter {\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