and hyphenation patterns for english, usenglishmax, dumylang, noh
+yphenation, arabic, basque, bulgarian, coptic, welsh, czech, slovak, german, ng
+erman, danish, esperanto, spanish, catalan, galician, estonian, farsi, finnish,
+ french, greek, monogreek, ancientgreek, croatian, hungarian, interlingua, ibyc
+us, indonesian, icelandic, italian, latin, mongolian, dutch, norsk, polish, por
+tuguese, pinyin, romanian, russian, slovenian, uppersorbian, serbian, swedish,
+turkish, ukenglish, ukrainian, loaded.
+
+(/usr/share/texmf/tex/latex/base/article.cls
+Document Class: article 2005/09/16 v1.4f Standard LaTeX document class
+(/usr/share/texmf/tex/latex/base/size10.clo
+File: size10.clo 2005/09/16 v1.4f Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+) (/usr/share/texmf/tex/latex/base/ifthen.sty
+Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
+) (/usr/share/texmf/tex/latex/amsfonts/amssymb.sty
+Package: amssymb 2002/01/22 v2.2d
+(/usr/share/texmf/tex/latex/amsfonts/amsfonts.sty
+Package: amsfonts 2001/10/25 v2.2f
+\@emptytoks=\toks14
+\symAMSa=\mathgroup4
+\symAMSb=\mathgroup5
+LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
+(Font) U/euf/m/n --> U/euf/b/n on input line 132.
+)) (/usr/share/texmf/tex/latex/graphics/graphicx.sty
+Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
+(/usr/share/texmf/tex/latex/graphics/keyval.sty
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks15
+) (/usr/share/texmf/tex/latex/graphics/graphics.sty
+Package: graphics 2006/02/20 v1.0o Standard LaTeX Graphics (DPC,SPQR)
+(/usr/share/texmf/tex/latex/graphics/trig.sty
+Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
+) (/usr/share/texmf/tex/latex/config/graphics.cfg
+File: graphics.cfg 2007/01/18 v1.5 graphics configuration of teTeX/TeXLive
+)
+Package graphics Info: Driver file: dvips.def on input line 90.
+(/usr/share/texmf/tex/latex/graphics/dvips.def
+File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
+))
+\Gin@req@height=\dimen103
+\Gin@req@width=\dimen104
+) (/usr/share/texmf/tex/latex/tools/verbatim.sty
+Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements
+\every@verbatim=\toks16
+\verbatim@line=\toks17
+\verbatim@in@stream=\read1
+) (/usr/share/texmf/tex/latex/tools/xspace.sty
+Package: xspace 2006/05/08 v1.12 Space after command names (DPC,MH)
+) (/usr/share/texmf/tex/latex/graphics/color.sty
+Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
+(/usr/share/texmf/tex/latex/config/color.cfg
+File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
+)
+Package color Info: Driver file: dvips.def on input line 130.
+(/usr/share/texmf/tex/latex/graphics/dvipsnam.def
+File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
+)) (/usr/share/texmf/tex/latex/base/inputenc.sty
+Package: inputenc 2006/05/05 v1.1b Input encoding file
+\inpenc@prehook=\toks18
+\inpenc@posthook=\toks19
+)
+\sizebox=\box26
+\lthtmlwrite=\write3
+(./images.aux)
+\openout1 = `images.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 118.
+LaTeX Font Info: ... okay on input line 118.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 118.
+LaTeX Font Info: ... okay on input line 118.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 118.
+LaTeX Font Info: ... okay on input line 118.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 118.
+LaTeX Font Info: ... okay on input line 118.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 118.
+LaTeX Font Info: ... okay on input line 118.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 118.
+LaTeX Font Info: ... okay on input line 118.
+
+latex2htmlLength hsize=349.0pt
+
+latex2htmlLength vsize=633.0pt
+
+latex2htmlLength hoffset=0.0pt
+
+latex2htmlLength voffset=0.0pt
+
+latex2htmlLength topmargin=0.0pt
+
+latex2htmlLength topskip=0.00003pt
+
+latex2htmlLength headheight=0.0pt
+
+latex2htmlLength headsep=0.0pt
+
+latex2htmlLength parskip=0.0pt plus 1.0pt
+
+latex2htmlLength oddsidemargin=62.0pt
+
+latex2htmlLength evensidemargin=62.0pt
+
+LaTeX Font Info: Try loading font information for U+msa on input line 147.
+(/usr/share/texmf/tex/latex/amsfonts/umsa.fd
+File: umsa.fd 2002/01/19 v2.2g AMS font definitions
+)
+LaTeX Font Info: Try loading font information for U+msb on input line 147.
+(/usr/share/texmf/tex/latex/amsfonts/umsb.fd
+File: umsb.fd 2002/01/19 v2.2g AMS font definitions
+)
+l2hSize :tex2html_wrap_inline171:6.45831pt::0.0pt::6.00351pt.
+[1
+
+
+
+]
+l2hSize :tex2html_wrap_inline173:6.95831pt::6.95831pt::23.83336pt.
+[2
+
+
+] (./images.aux) )
+Here is how much of TeX's memory you used:
+ 1154 strings out of 256217
+ 14471 string characters out of 1917094
+ 56367 words of memory out of 1500000
+ 4466 multiletter control sequences out of 10000+200000
+ 5339 words of font info for 22 fonts, out of 1200000 for 2000
+ 645 hyphenation exceptions out of 8191
+ 25i,5n,24p,212b,147s stack positions out of 5000i,500n,6000p,200000b,15000s
+
+Output written on images.dvi (2 pages, 648 bytes).
diff --git a/manual/docs/html/slsDetectorClientHowTo/images.pl b/manual/docs/html/slsDetectorClientHowTo/images.pl
new file mode 100644
index 000000000..f70822e9d
--- /dev/null
+++ b/manual/docs/html/slsDetectorClientHowTo/images.pl
@@ -0,0 +1,18 @@
+# LaTeX2HTML 2008 (1.71)
+# Associate images original text with physical files.
+
+
+$key = q/tau;MSF=1.6;AAT/;
+$cached_env_img{$key} = q| |;
+
+$key = q/=-1;MSF=1.6;AAT/;
+$cached_env_img{$key} = q| |;
+
+1;
+
diff --git a/manual/docs/html/slsDetectorClientHowTo/images.tex b/manual/docs/html/slsDetectorClientHowTo/images.tex
new file mode 100644
index 000000000..4ee370db2
--- /dev/null
+++ b/manual/docs/html/slsDetectorClientHowTo/images.tex
@@ -0,0 +1,188 @@
+\batchmode
+\documentclass{article}
+\RequirePackage{ifthen}
+
+
+\usepackage{amssymb}
+\usepackage[dvips]{graphicx}
+\usepackage{verbatim}
+\usepackage{xspace}%
+\providecommand{\E}{EIGER\xspace}
+
+
+\usepackage[dvips]{color}
+
+
+\pagecolor[gray]{.7}
+
+\usepackage[]{inputenc}
+
+
+
+\makeatletter
+
+\makeatletter
+\count@=\the\catcode`\_ \catcode`\_=8
+\newenvironment{tex2html_wrap}{}{}%
+\catcode`\<=12\catcode`\_=\count@
+\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname #1\endcsname}%
+\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname #1\endcsname{}%
+ \expandafter\renewcommand\csname #1\endcsname}%
+\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}%
+\let\newedcommand\renewedcommand
+\let\renewedenvironment\newedenvironment
+\makeatother
+\let\mathon=$
+\let\mathoff=$
+\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi
+\newbox\sizebox
+\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt}
+\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt}
+\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt}
+\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt}
+\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt}
+\setlength{\textwidth}{349pt}
+\newwrite\lthtmlwrite
+\makeatletter
+\let\realnormalsize=\normalsize
+\global\topskip=2sp
+\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float
+\def\@float{\let\@savefreelist\@freelist\real@float}
+\def\liih@math{\ifmmode$\else\bad@math\fi}
+\def\end@float{\realend@float\global\let\@freelist\@savefreelist}
+\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float
+\let\@largefloatcheck=\relax
+\let\if@boxedmulticols=\iftrue
+\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt}
+\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize
+ \parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}%
+ \def\phantompar{\csname par\endcsname}\normalsize}%
+\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}%
+\newcommand\lthtmlhboxmathA{\adjustnormalsize\setbox\sizebox=\hbox\bgroup\kern.05em }%
+\newcommand\lthtmlhboxmathB{\adjustnormalsize\setbox\sizebox=\hbox to\hsize\bgroup\hfill }%
+\newcommand\lthtmlvboxmathA{\adjustnormalsize\setbox\sizebox=\vbox\bgroup %
+ \let\ifinner=\iffalse \let\)\liih@math }%
+\newcommand\lthtmlboxmathZ{\@next\next\@currlist{}{\def\next{\voidb@x}}%
+ \expandafter\box\next\egroup}%
+\newcommand\lthtmlmathtype[1]{\gdef\lthtmlmathenv{#1}}%
+\newcommand\lthtmllogmath{\dimen0\ht\sizebox \advance\dimen0\dp\sizebox
+ \ifdim\dimen0>.95\vsize
+ \lthtmltypeout{%
+*** image for \lthtmlmathenv\space is too tall at \the\dimen0, reducing to .95 vsize ***}%
+ \ht\sizebox.95\vsize \dp\sizebox\z@ \fi
+ \lthtmltypeout{l2hSize %
+:\lthtmlmathenv:\the\ht\sizebox::\the\dp\sizebox::\the\wd\sizebox.\preveqno}}%
+\newcommand\lthtmlfigureA[1]{\let\@savefreelist\@freelist
+ \lthtmlmathtype{#1}\lthtmlvboxmathA}%
+\newcommand\lthtmlpictureA{\bgroup\catcode`\_=8 \lthtmlpictureB}%
+\newcommand\lthtmlpictureB[1]{\lthtmlmathtype{#1}\egroup
+ \let\@savefreelist\@freelist \lthtmlhboxmathB}%
+\newcommand\lthtmlpictureZ[1]{\hfill\lthtmlfigureZ}%
+\newcommand\lthtmlfigureZ{\lthtmlboxmathZ\lthtmllogmath\copy\sizebox
+ \global\let\@freelist\@savefreelist}%
+\newcommand\lthtmldisplayA{\bgroup\catcode`\_=8 \lthtmldisplayAi}%
+\newcommand\lthtmldisplayAi[1]{\lthtmlmathtype{#1}\egroup\lthtmlvboxmathA}%
+\newcommand\lthtmldisplayB[1]{\edef\preveqno{(\theequation)}%
+ \lthtmldisplayA{#1}\let\@eqnnum\relax}%
+\newcommand\lthtmldisplayZ{\lthtmlboxmathZ\lthtmllogmath\lthtmlsetmath}%
+\newcommand\lthtmlinlinemathA{\bgroup\catcode`\_=8 \lthtmlinlinemathB}
+\newcommand\lthtmlinlinemathB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA
+ \vrule height1.5ex width0pt }%
+\newcommand\lthtmlinlineA{\bgroup\catcode`\_=8 \lthtmlinlineB}%
+\newcommand\lthtmlinlineB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA}%
+\newcommand\lthtmlinlineZ{\egroup\expandafter\ifdim\dp\sizebox>0pt %
+ \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetinline}
+\newcommand\lthtmlinlinemathZ{\egroup\expandafter\ifdim\dp\sizebox>0pt %
+ \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetmath}
+\newcommand\lthtmlindisplaymathZ{\egroup %
+ \centerinlinemath\lthtmllogmath\lthtmlsetmath}
+\def\lthtmlsetinline{\hbox{\vrule width.1em \vtop{\vbox{%
+ \kern.1em\copy\sizebox}\ifdim\dp\sizebox>0pt\kern.1em\else\kern.3pt\fi
+ \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}}
+\def\lthtmlsetmath{\hbox{\vrule width.1em\kern-.05em\vtop{\vbox{%
+ \kern.1em\kern0.8 pt\hbox{\hglue.17em\copy\sizebox\hglue0.8 pt}}\kern.3pt%
+ \ifdim\dp\sizebox>0pt\kern.1em\fi \kern0.8 pt%
+ \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}}
+\def\centerinlinemath{%
+ \dimen1=\ifdim\ht\sizebox<\dp\sizebox \dp\sizebox\else\ht\sizebox\fi
+ \advance\dimen1by.5pt \vrule width0pt height\dimen1 depth\dimen1
+ \dp\sizebox=\dimen1\ht\sizebox=\dimen1\relax}
+
+\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize
+ \ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill
+ \else\expandafter\vss\fi}%
+\providecommand{\selectlanguage}[1]{}%
+\makeatletter \tracingstats = 1
+
+
+\begin{document}
+\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}%
+\makeatletter
+\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}%
+\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi%
+\lthtmltypeout{}%
+\makeatother
+\setcounter{page}{1}
+\onecolumn
+
+% !!! IMAGES START HERE !!!
+
+\stepcounter{section}
+\stepcounter{section}
+\stepcounter{section}
+\stepcounter{subsection}
+\stepcounter{subsection}
+{\newpage\clearpage
+\lthtmlinlinemathA{tex2html_wrap_inline171}%
+$\tau$%
+\lthtmlinlinemathZ
+\lthtmlcheckvsize\clearpage}
+
+\stepcounter{subsubsection}
+\stepcounter{subsection}
+\stepcounter{subsection}
+\stepcounter{subsubsection}
+\stepcounter{subsubsection}
+\stepcounter{subsubsection}
+\stepcounter{subsubsection}
+\stepcounter{subsubsection}
+\stepcounter{subsubsection}
+{\newpage\clearpage
+\lthtmlinlinemathA{tex2html_wrap_inline173}%
+$=-1$%
+\lthtmlinlinemathZ
+\lthtmlcheckvsize\clearpage}
+
+\stepcounter{subsection}
+\stepcounter{subsection}
+\stepcounter{section}
+\stepcounter{subsection}
+\stepcounter{subsection}
+\stepcounter{subsubsection}
+\stepcounter{subsection}
+\stepcounter{subsection}
+\stepcounter{subsubsection}
+\stepcounter{subsubsection}
+\stepcounter{subsection}
+\stepcounter{subsubsection}
+\stepcounter{subsubsection}
+\stepcounter{subsubsection}
+\stepcounter{subsubsection}
+\stepcounter{subsubsection}
+\stepcounter{subsection}
+\stepcounter{section}
+\stepcounter{subsection}
+\stepcounter{subsection}
+\stepcounter{subsection}
+
+\end{document}
diff --git a/manual/docs/html/slsDetectorClientHowTo/img1.png b/manual/docs/html/slsDetectorClientHowTo/img1.png
new file mode 100644
index 000000000..bd3ad3ad1
Binary files /dev/null and b/manual/docs/html/slsDetectorClientHowTo/img1.png differ
diff --git a/manual/docs/html/slsDetectorClientHowTo/img2.png b/manual/docs/html/slsDetectorClientHowTo/img2.png
new file mode 100644
index 000000000..f774e5e52
Binary files /dev/null and b/manual/docs/html/slsDetectorClientHowTo/img2.png differ
diff --git a/manual/docs/html/slsDetectorClientHowTo/index.html b/manual/docs/html/slsDetectorClientHowTo/index.html
new file mode 100644
index 000000000..9e12192a6
--- /dev/null
+++ b/manual/docs/html/slsDetectorClientHowTo/index.html
@@ -0,0 +1,154 @@
+
+
+
+
+
+SLS Detector text clients manual
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Introduction
+
+
+
+
+
+
+
SLS Detector text clients manual
+
+
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorClientHowTo/labels.pl b/manual/docs/html/slsDetectorClientHowTo/labels.pl
new file mode 100644
index 000000000..e5b868d94
--- /dev/null
+++ b/manual/docs/html/slsDetectorClientHowTo/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2008 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2008 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/manual/docs/html/slsDetectorClientHowTo/node1.html b/manual/docs/html/slsDetectorClientHowTo/node1.html
new file mode 100644
index 000000000..de9ddf858
--- /dev/null
+++ b/manual/docs/html/slsDetectorClientHowTo/node1.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+Introduction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Acquisition
+ Up: SLS Detector text clients
+ Previous: SLS Detector text clients
+
+
+
+
+
+
+
+This program is intended to control the SLS detectors via command line interface.
+
+This is the only way to access all possible functionality of the detectors, however it is often recommendable to avoid changing the most advanced settings, rather leaving the task to configuration files, as when using the GUI or the API provided.
+
+
+The command line interface consists in four main functions:
+
+sls_detector_acquire
+to acquire data from the detector
+
+sls_detector_put
+to set detector parameters
+
+sls_detector_get
+to retrieve detector parameters
+
+sls_detector_help
+to get help concerning the text commands
+
+
+Additionally the program slsReceiver should be started on the machine expected to receive the data from the detector.
+
+
+If you need control a single detector, the use of the command line interface does not need any additional arguments.
+
+
+For commands addressing a single controller of your detector, the command cmd
should be called with the index i
of the controller:
+sls_detector_clnt i:cmd
+
+where sls_detector_clnt
is the text client (put, get, acquire, help).
+
+
+In case more than one detector is configured on the control PC, the command cmd
should be called with their respective index j
:
+sls_detector_clnt j-cmd
+
+where sls_detector_clnt
is the text client (put, get, acquire, help).
+
+
+To address a specific controller i
of detector j
use:
+sls_detector_clnt j-i:cmd
+
+
+For additional questions concerning the indexing of the detector, please refer to the SLS Detectors FAQ documentation.
+
+
+
+
+
+
+
+
+
+
+
+ Next: Acquisition
+ Up: SLS Detector text clients
+ Previous: SLS Detector text clients
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorClientHowTo/node2.html b/manual/docs/html/slsDetectorClientHowTo/node2.html
new file mode 100644
index 000000000..7b7ddbac0
--- /dev/null
+++ b/manual/docs/html/slsDetectorClientHowTo/node2.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+Acquisition
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Detector setup
+ Up: SLS Detector text clients
+ Previous: Introduction
+
+
+
+
+
+
+
+By calling:
+sls\_detector\_acquire [j-]
+
+the detector j
is started and the data are acquired, postprocessed and written to file according to the configuration and setup of the measurements.
+
+A progress index of the acquisition in percentage is shown on the command line.
+
+
+For additional questions concerning the acquisition flow, please refer to the SLS Detectors FAQ documentation.
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorClientHowTo/node3.html b/manual/docs/html/slsDetectorClientHowTo/node3.html
new file mode 100644
index 000000000..4ab6a0c0d
--- /dev/null
+++ b/manual/docs/html/slsDetectorClientHowTo/node3.html
@@ -0,0 +1,769 @@
+
+
+
+
+
+Detector setup
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Retrieving detector parameters
+ Up: SLS Detector text clients
+ Previous: Acquisition
+
+
+
+
+Subsections
+
+
+
+
+
+
+
+
+sls\_detector\_put [j-][i:]var arg
+
+
+is used to configure the detector parameters var
with the value arg
.
+
+It returns the actual value of the variable, as when calling sls\_detector\_get
with the same command.
+
+
+
+
+
+
+
+config fname
+Load the configuration file fname.
+
+Examples of configuration files are available in the directory examples
. This should be done every time the configuration of the detectors(s) changes or the control PC is rebooted. Must be executed on all the control PCs, before executing other commands.
+
+parameters fname
+Load the parameter file fname.
+
+The syntax of the commands in the parameter file is exactly the same as for the command line interface. Can be used to load a standard mode of acquisition and/or to hide advanced parameters from the final user. Examples of parameter files are available in the directory examples
.
+
+settings sett
+Configures the settings of the detector. Refer to detailed detector documentation for more details:
+
+for MYTHEN sett can be: standard, fast, highgain;
+
+for GOTTHARD sett can be: veryhighgain, highgain, mediumgain, lowgain, dynamicgain;
+
+for EIGER sett can be: standard, highgain, lowgain.
+
+threshold ev
+For photon counting detectors, sets the detector threshold in eV. The detector should be properly calibrated, otherwise standard calibration coefficients are used, which can give an uncertainty up to a few keVs.
+
+timing sync
+Sets the timing mode of the detector. Can be auto, gating (works only if at least one of the signals is configured as gate_in), trigger (works only if at least one of the signals is configured as trigger_in), ro_trigger (works only if at least one of the signals is configured as ro_trigger_in), triggered_gating (works only if one of the signals is configured as gate_in and one as trigger_in).
+
+Refer to the detailed documentation to understand how the different timing modes work.
+
+outdir path
+Defines the path where the output files will be saved to.
+
+fname prefix
+Defines the prefix of the file name for the data output.
+
+The final file name will be:
+prefix[_d
d ][_S
v0 ][_s
v1 ][_p
p ][_f
f ]_
i .
ext
+
+where:
+d is the controller index, in case of data receiver and more than one controller;
+v0 is the scan0 variable with the desired precision, if scan0 is enabled;
+v1 is the scan1 variable with the desired precision, if scan1 is enabled;
+p is the position index, if different positions are configured;
+f is the frame index of the first frame stored in the file, if many frames and cycles are configured;
+i is the file index;
+ext is the file extension e.g. .raw for MYTHEN and EIGER raw data, .dat for MYTHEN processed data.
+
+index i
+Sets the starting index of the file i at the beginning of the acquisition (automatically incremented for each measurement).
+
+enablefwrite b
+Enables (1) or disables (0) file writing.
+
+exptime ts
+Sets the exposure time of a single acquisition to ts (in s). It is overridden in case the detector is in gating mode.
+
+Refere to detailed documentation to understand how the different timing modes work.
+
+subexptime ts
+Sets the subexposure time of a single subacquisition to ts (in s) in EIGER autosumming mode (=dr 32 ). Refer to detailed documentation to understand how the different timing modes work.
+
+period ts
+Sets the frames period (in s). It is overridden in case the detector is in gating mode.
+
+Refer to detailed documentation to understand how the different timing modes work.
+
+delay ts
+Sets the delay after trigger in triggered mode (in s).
+
+Refer to the detailed documentation to understand how the different timing modes work.
+
+gates n
+Sets the number of gates per frame in gated (stroboscopic) mode.
+
+Refer to the detailed documentation to understand how the different timing modes work.
+
+frames n
+Sets the number of frames acquired sequentially per cycle (e.g. after each trigger), with the exposure time defined by exptime and the period defined by period (unless in gated mode). The frame index in the output file name will automatically be incremented.
+
+Note that the total number of images will be frames times cycles. Refer to detailed documentation to understand how the different timing modes work.
+
+cycles n
+Sets the number of cycles (e.g. number of triggers). The frame index in the output file name will automatically be incremented.
+
+Note that the total number of images will be by frames times cycles. Refer to the detailed documentation to understand how the different timing modes work.
+
+probes
+Sets the number of probes to accumulate for stroboscopic measurements.
+
+Refer to detailed documentation to understand how the different timing modes work.
+
+measurements
+Sets the number of repetitions of the acquisitions (non real time!). The file index in the file name will be automatically incremented.
+
+Refer to detailed documentation to understand how the different timing modes work.
+
+dr n
+Sets the dynamic range n (in bits) of the data for a photon counting detector. For EIGER it can be set to 4, 8, 16 (but the real counter depth will still be limited to 12 bits) or 32 when one wants to activate the internal subframe summing mode.
+
+
+
+flags s
+Sets some particular flags for your detector. For MYTHEN s can be none , storeinram (for buffered readout) or tot (for time over threshold). For EIGER, s can be continous (for continous readout- still buffer on memories happens), storeinram (for buffered readout. Do not use as has no graet advantages), parallel for parallel exposure to the next frame and readout of the previous frame, nonparallel to decouple sequentially readout and exposure, safe (rowclock interleaved).
+
+help cmd
+Returns the help for command cmd.
+
+lock
+Locks (1) or unlocks (0) the detector to this particular control PC. An be unlocked again only from the same PC or by rebooting the detector.
+
+nmod n
+Sets the number of modules for the detector to n for partial readout. Will be replaced by ROI.
+
+
+
+
+
+
+
+flatfield fname
+Sets the flat field file name. File ffdir/fname will be used to calculate the flat field coefficients. none to unset flat field corrections.
+
+ratecorr ns
+Sets the deadtime to be used for rate corrections in ns. 0 to unset, -1 to use default dead time for the actual settings.In the case of EIGER, as online data rate correctiosn are applied, then a correction table has to be calculated every time the rate correction is changed, activated, or the subexposure time is changed.
+
+
+
+
+
+
+
+
+
+
+
+fineoff deg
+Sets the fine offset for the experiment.
+
+samplex mm
+Sets the sample displacement from the center of the diffractometer in the X-ray direction, to improve angular conversion (unused).
+
+sampley mm
+Sets the sample displacement from the center of the diffractometer in the ortogonal direction, to improve angular conversion (unused)
+
+
+
+
+
+
+See SLS Detectors Documentation for a detailed description of the acquisition flow.
+
+positions n p1 p2...pn
+Sets the number of positions n and their value.
+
+
+startscript s
+Sets the script to be executed at the beginning of each measurement. none unsets.
+
+
+startscriptpar p
+Sets the parameter to be passed to the start script
+
+
+stopscript s
+Sets the script to be executed at the end of each measurement. none unsets.
+
+
+stopscriptpar p
+Sets the parameter to be passed to the stop script.
+
+
+scriptbefore s
+Sets the script to be executed before each acquisition. none unsets.
+
+
+scriptbeforepar p
+Sets the parameter to be passed to the script before.
+
+
+scriptafter s
+Sets the script to be executed after each acquisition. none unsets.
+
+
+scriptafterpar p
+Sets the parameter to be passed to the script after.
+
+
+headerbefore s
+Sets the script to be executed to acquire the header of the acquisition. none unsets.
+
+
+headerbeforepar p
+Sets the parameter to be passed to the header before.
+
+
+headerafter s
+Sets the script to be executed to append to the header of the acquisition. none unsets.
+
+
+headerafterpar p
+Sets the parameter to be passed to the header after.
+
+
+scan0scripts s
+Sets the script to execute at scan 0 level. none unsets, threshold, energy, trimbits, position perform the corresponding scans without need of a custom script.
+
+
+scan0par p
+Sets a parameter to be passed to the scan 0 level script.
+
+
+scan0prec i
+Sets the number of decimal digits for the scan0 level parameter in the file name (default is 0).
+
+
+scan0steps n s1 s2..sn
+Sets the number of scan 0 level steps n and their value.
+
+
+scan0range min max step
+Sets the minimum, the maximum and the step for the scan 0 level steps (easier to use than scan0steps if equally spaced steps in a range)
+
+
+scan1script s
+Sets the script to execute at scan 1 level. none unsets, threshold, energy, trimbits, position perform the corresponding scans without need of a custom script.
+
+
+scan1par p
+Sets a parameter to be passed to the scan 1 level script.
+
+
+scan1prec i
+Sets the number of decimal digits for the scan1 level parameter in the file name (default is 0).
+
+
+scan1steps n s1 s2...sn
+Sets the number of scan 0 level steps n and their value.
+
+
+scan1range min max step
+Sets the minimum, the maximum and the step for the scan 0 level steps (easier to use than scan0steps if equally spaced steps in a range)
+
+
+
+
+
+
+
+
+
+
+This operations should be performed only rarely to configure the detector
+
+
+
+trim:mode fname
+Trims the detector according to mode (can be noise, beam, improve, fix) and saves the resulting trimbits to file fname. Take care to set a proper exptime and vthreshold before trimming.
+
+
+encallog b
+Sets (1) or unsets (0) the logging for energy calibration.
+
+
+angcallog b
+Sets (1) or unsets (0) the logging for angular calibration.
+
+
+
+
+
+
+
+
+It is normally recommended to use sls\_detector\_acquire [j-]
, which takes care of everything
+
+status s
+Starts (start) or stops (stop) the detector acquisition.
+
+online b
+Sets the detector in online (1) or offline (0) mode.
+
+resetctr i
+GOTTHARD- ADVANCED- resets counter in detector, restarts acquisition if i=1
+
+resmat i
+EIGER- ADVANCED - resets counter in detector before the following acquisition. Default settings is resmat 1 . resmat 0 does not reset the counter bit before the acquisition. Note that in EIGER the counter is always reset after the acquisition.
+
+
+
+
+
+
+Advanced commands to configure the detector system. Should be left to the configuration file
+
+type s
+Sets the types of detector controllers in the system. Can be Mythen, Gotthard, EIGER and multiple controllers should be catenated with a + (e.g. Mythen+Mythen for 2 Mythen controllers).
+
+d:hostname s
+Sets the hostname or IP address for the controller d, where d is the controller index within the detector structure.
+
+d:extsig:i s
+Configures the usage of the external IO signals to synchronize the detectors. s can be: off, gate_in_active_high, gate_in_active_low, trigger_in_rising_edge,
+ trigger_in_falling_edge,
+ ro_trigger_in_rising_edge,
+ ro_trigger_in_falling_edge,
+ gate_out_active_high,
+ gate_out_active_low,
+ trigger_out_rising_edge,
+ trigger_out_falling_edge,
+ ro_trigger_out_rising_edge,
+ ro_trigger_out_falling_edge, sync.
+
+Usually left to the configuration file. Gating, triggering etc. are enabled only by calling the timing command.
+
+Please refer to SLS Detectors FAQ documentation for more detailed information about the usage.
+
+
+
+master i
+Sets the master of a multi-controller detector to the controller with index i. -1 removes master. Setting a master is useful only if the controllers are synchronized via hardware using the external IO signals. Usually left to the configuration file. Please refer to SLS Detectors FAQ documentation for more detailed information about the usage.
+
+sync s
+Sets the synchronization mode of the various controller within a detector structure. s acn be none, gating, trigger, complementary. Check that the detectors are correctly connected to avoid freezing of the acquisition. Usually left to the configuration file. Please refer to SLS Detectors FAQ documentation for more detailed information about the usage.
+
+trimdir s
+Obsolete. Same ad settingsdir.
+
+settingsdir s
+Sets the path of the drectory where the trim/settings files are stored. Usually left to the configuration file.
+
+caldir s
+Sets the path of the drectory where the calibration files are stored. Can be the same as settingsdir. Usually left to the configuration file.
+
+trimen n e1 e2 ...en
+Unused. Sets the list of energies for which trimfiles exist.
+
+port p
+Sets the port used by the sockets to control the detector. Do not change! Usually left to the configuration file.
+
+stopport p
+Sets the port used by the sockets to stop/get the status of the detector. Do not change! Usually left to the configuration file.
+
+add s
+Avoid using it. Adds the controller s to the detector structure.
+
+remove i
+Avoid using it. Removes the controller in position i from the detector structure.
+
+id:i l
+Avoid using it. configures the id of the detector structure. i is the detector position in a multi detector system and l is the id of the detector to be added.
+
+free i
+Avoid using it. Frees the shared memory.
+
+exitserver
+Avoid using it. Turns off the communication server on the detector.
+
+
+
+
+
+
+
+detectormac mac
+sets the mac of the detector udp interface to mac (if configurable). Should be left to the configuration file.
+
+rx_tcpport i
+sets the communication port between client and receiver. Should be left to the configuration file.
+
+rx_udpport i
+sets the communication port between detector and receiver. Should be left to the configuration file.
+
+rx_hostname s
+sets the hostname (or IP address) of the receiver for the TCP/IP interface with the client.
+
+rx_udpip ip
+sets the IP address of the receiver for the UDP interface with the detector.
+
+rx_fifodepth v
+sets receiver fifo depth to value v. Default for EIGER is 100 frames betweeen listening and writing.
+
+r_online b
+sets the receiver in online (1) or offline (0) mode.
+
+r_lock b
+Locks (1) or unlocks (0) the receiver to this PC.
+
+receiver s
+starts/stops the receiver to listen to detector packets. - can be start or stop
+
+
+
+
+
+
+Some advanced commands to configure data postprocessing.
+
+ffdir dir
+Sets the directory where the flat field files are stored. Normally left to the configuration file.
+
+darkimage fname
+GOTTHARD- ADVANCED- Sets fname as dark image file for the detector.
+
+gainimage fname
+GOTTHARD- ADVANCED- Sets fname as gain image file for the detector.
+
+badchannels fname
+Sets the bad channel file to fname. Bad channels will be omitted in the .dat file. none to unset. Normally left to the configuration file.
+
+threaded b
+Avoid changing it. Sets if the data are written to disk in parallel with the acquisition (1) or after the acquisition (0). Normally left to the configuration file.
+
+
+
+
+Angular conversion
+
+
+
+globaloff deg
+Sets the offset of the beamline i.e. angular position of channel 0 when angular encoder at 0. Normally left to the configuration file.
+
+angconv fname
+Sets the file with the coefficients for angular conversion. none disables angular conversion. Normally left to the configuration file.
+
+binsize deg
+Sets the size of the angular bins for angular coversion. Normally left to the configuration file.
+
+angdir i
+Sets the angular direction of the detector (1 means channel number in the same direction as the angular encoder, -1 different direction). Normally left to the configuration file.
+
+d:moveflag i
+Related to a single controller d. 1 if the detector modules move with the angular encoder, 0 if they are static (useful for multidetector systems). Normally left to the configuration file.
+
+
+
+
+
+
+Some VERY ADVANCED testing functions implemented for EIGER:
+
+pulsechip n
+sets the chip into test mode with resmat = 0 and externalenable =1. Pulses chip by togglying the enable n number of times. The acquire is then done with no pixel matrix reset before the acquisition. If n , the chip will be set into normal mode. This is necessary to restore normal chip operations after the test.
+
+pulse n x y
+Pulses pixel at coordinates (x,y) n number of times.
+
+pulsenmove n x y
+Pulses pixel n number of times and moves relatively by x value (x axis) and y value (y axis)
+
+
+
+
+
+
+Advanced settings changing the analog or digital performance of the acquisition. Use them only if you are sure of what you are doing!
+
+
+
+vthreshold n
+Sets the DAC value of the detector threshold to n.
+
+vcalibration n
+Sets the DAC value of the calibration pulse amplitude to n.
+
+vtrimbit n
+Sets the DAC value defining the trimbits LSB size to n.
+
+vpreamp n
+Sets the DAC value of the preamp feedback to n.
+
+vshaper1 n
+Sets the DAC value of the shaper1 feedback to n.
+
+vshaper2 n
+Sets the DAC value of the shaper2 feedback to n.
+
+vhighvoltage n
+Sets the DAC value of the high voltage to n (in V).
+
+vapower n
+CHIPTEST BOARD ONLY - Sets the DAC value of the analog voltage to n.
+
+vddpower n
+CHIPTEST BOARD ONLY - Sets the DAC value of the analog voltage to n.
+
+vshpower n
+CHIPTEST BOARD ONLY - Sets the comparator power supply in dac units (0-1024).
+
+viopower n
+CHIPTEST BOARD ONLY - Sets the FPGA I/O power supply in dac units (0-1024).
+
+vref_ds n
+Sets vrefds
+
+vcascn_pb n
+Sets vcascn_pb
+
+vcascp_pb n
+Sets vcascp_pb
+
+vout_cm n
+Sets vout_cm
+
+vcasc_out n
+Sets vcasc_out
+
+vin_cm n
+Sets vin_cm
+
+vref_comp n
+Sets vref_comp
+
+ib_test_c n
+Sets ib_test_c
+
+vsvp n
+Sets vsvp DAC to n
+
+vsvn n
+Sets vsvn DAC to n
+
+vtr n
+Sets vtr DAC to n
+
+vrf n
+Sets vrf DAC to n
+
+vrs n
+Sets vrs DAC to n
+
+vtgstv n
+Sets vtgstv DAC to n
+
+vcmp_ll n
+Sets vcmp_ll DAC to n
+
+vcmp_lr n
+Sets vcmp_lr DAC to n
+
+vcmp_rl n
+Sets vcmp_rl DAC to n
+
+vcmp_rr n
+Sets vcmp_rr DAC to n
+
+vcall n
+Sets vcall DAC to n
+
+rxb_rb n
+Sets rxb_rb DAC to n
+
+rxb_lb n
+Sets rxb_rb DAC to n
+
+vcp n
+Sets vcp DAC to n
+
+vcn n
+Sets vcn DAC to n
+
+vis n
+Sets vis DAC to n
+
+iodelay n
+Sets iodelay to n
+
+reg a d
+Write to register of address a the data d
+
+clkdivider n
+Sets the clock divider for the readout. Can be increased for longer cables. For EIGER options are 0 (full speed), 1 (half speed), 2 (quarter speed), and 3 (slow).
+
+setlength n
+Changes the length of the set/reset signals in the acquisition. Never reduce it!
+
+waitstates n
+Sets the wait states for CPU/FPGA communication. Do not change it!
+
+totdivider n
+Sets the tot clock divider.
+
+totdutycycle n
+Sets the tot duty cycle.
+
+setup s
+Loads the setup files to the detector (config, parameters, trimbits etc.).
+
+trimbits fn
+Loads the trimbit files fn.snxxx to the detector
+
+
+
+
+
+
+
+digibittest i
+only for GOTTHARD. If i=1, the acquisition will return a unique channel identifier, instead of data, if i=0 normal acquisition.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Retrieving detector parameters
+ Up: SLS Detector text clients
+ Previous: Acquisition
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorClientHowTo/node4.html b/manual/docs/html/slsDetectorClientHowTo/node4.html
new file mode 100644
index 000000000..e07278383
--- /dev/null
+++ b/manual/docs/html/slsDetectorClientHowTo/node4.html
@@ -0,0 +1,821 @@
+
+
+
+
+
+Retrieving detector parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Usage
+ Up: SLS Detector text clients
+ Previous: Detector setup
+
+
+
+
+Subsections
+
+
+
+
+
+
+
+
+sls\_detector\_get [j-][i:]var [arg]
+
+
+is used to retrieve the detector parameters var
.
+
+For some commands, an additional argument arg
is needed.
+
+
+
+
+All the commends return two strings, where string1 is the command, string2 is teh actual returned string.
+
+
+
+config fname
+Dumps the current configuration of the detector to the file fname.
+
+parameters fname
+Dumps the current acquisition parameters of the detector to the file fname.
+
+settings
+Returns the current settings of the detector. Returns a string
+
+
+
+threshold
+For photon counting detectors, returns the detector threshold in eV, -1 if undefined. Returns ``threshold value_in_eV''. If it fails, the returned threshold is the old set value.
+
+
+
+timing
+Returns the acquisition timing mode of the detector.
+Refer to the detailed documentation to understand how the different timing modes work.
+
+outdir
+Returns the path where the output files are saved to.
+
+fname
+Returns the prefix of the file name for the data output.
+
+enablefwrite
+Returns if data are written to file (1) or not (0).
+
+exptime
+Returns the exposure time of a single acquisition in seconds. Example: "exptime 1.000000000''
+Refer to detailed documentation to understand how the different timing modes work.
+
+period
+Returns the frames period (in s). Example: ``period 1.000000000''
+Refer to detailed documentation to understand how the different timing modes work.
+
+delay
+Returns the delay after trigger in triggered mode (in s).
+Refer to detailed documentation to understand how the different timing modes work.
+
+gates
+Returns the number of gates per frame in gated (stroboscopic) mode.
+Refer to detailed documentation to understand how the different timing modes work.
+
+frames
+Returns the number of frames acquired sequentially per cycle (e.g. after each trigger), with the exposure time defined by exptime and the period defined by period (unless in gated mode). Returned as a string to be interpreted as an integer ``frames integer''
+Note that the total number of images is frames times cycles.
+Refer to detailed documentation to understand how the different timing modes work.
+
+cycles n
+Returns the number of cycles (e.g. number of triggers). Returned as atring to be interpreted as an integer ``cycles integer''
+Note that the total number of images is frames times cycles.
+Refer to detailed documentation to understand how the different timing modes work.
+
+probes
+Returns the number of probes to accumulate for stroboscopic measurements.
+Refer to detailed documentation to understand how the different timing modes work.
+
+measurements
+Returns the number of repetitions of the acquisitions (non real time!).
+Refer to detailed documentation to understand how the different timing modes work.
+
+dr
+Returns the dynamic range n (in bits) of the data for a photon counting detector. Returns a string that should be interpreted as an integer.
+
+
+
+flags s
+Returns the flags set for your detector.
+
+help cmd
+Returns the help for command cmd.
+
+lock
+Returns if the detector is locked to a single PC.
+
+lastclient
+Returns the last client which has connected to the detector.
+
+nmod n
+Returns the number of modules which are read out. Will be replaced by ROI.
+
+maxmod
+Returns the maximum number of modules (size) of the detector. Will be replaced by size.
+
+
+
+
+
+
+
+flatfield
+Returns the flat field file name.
+
+ratecorr
+Returns the dead time used for rate corrections.
+
+
+
+
+
+
+
+
+
+fineoff
+Returns the fine offset used to convert channel number to angles
+
+samplex
+Returns the sample displacement from the center of the diffractometerin the X-ray direction, to improve angular conversion (unused).
+
+sampley
+Returns the sample displacement from the center of the diffractometer in the ortogonal direction, to improve angular conversion (unused)
+
+
+
+
+
+
+See SLS Detectors Documentation for a detailed description of the acquisition flow.
+
+positions
+Returns the number of positions n and their value.
+
+
+startscript
+Returns the script to be executed at the beginning of each measurement.
+
+
+startscriptpar
+Returns the parameter to be passed to the start script
+
+
+stopscript
+Returns the script to be executed at the end of each measurement.
+
+
+stopscriptpar
+Returns the parameter to be passed to the stop script.
+
+
+scriptbefore
+Returns the script to be executed before each acquisition.
+
+
+scriptbeforepar
+Returns the parameter to be passed to the script before.
+
+
+scriptafter
+Returns the script to be executed after each acquisition.
+
+
+scriptafterpar
+Returns the parameter to be passed to the script after.
+
+
+headerbefore
+Returns the script to be executed to acquire the header of the acquisition.
+
+
+headerbeforepar
+Returns the parameter to be passed to the header before.
+
+
+headerafter
+Returns the script to be executed to append to the header of the acquisition.
+
+
+headerafterpar
+Returns the parameter to be passed to the header after.
+
+
+scan0scripts
+Returns the script to execute at scan 0 level.
+
+
+scan0par
+Returns a parameter to be passed to the scan 0 level script.
+
+
+scan0prec
+Returns the number of decimal digits for the scan0 level parameter in the file name (default is 0).
+
+
+scan0steps
+Returns the number of scan 0 level steps n and their value.
+
+
+scan0range
+Same as scan0steps.
+
+
+scan1script
+Returns the script to execute at scan 1 level.
+
+
+scan1par
+Returns a parameter to be passed to the scan 1 level script.
+
+
+scan1prec
+Returns the number of decimal digits for the scan1 level parameter in the file name (default is 0).
+
+
+scan1steps
+Returns the number of scan 0 level steps n and their value.
+
+
+scan1range
+Same as scan1steps.
+
+
+
+
+
+
+Commands to be used to retrieve information about the detector version or perform tests.
+
+
+
+moduleversion[:i]
+Returns the version of the module firmware.
+
+detectornumber
+Returns the serial number of the module (normally the MAC address).
+
+modulenumber[:i]
+Returns the serial number of the module i.
+
+detectorversion
+Returns the version of the controller firmware.
+
+softwareversion
+Returns the version of the software running on the detector.
+
+thisversion
+Returns the version of the control software which is being used.
+
+detectorsvnversion
+Returns the SVN version of the software on the detector.
+
+
+
+
+
+
+
+
+
+digitest[:i]
+Makes a digital test of module i. Afterwards the detector must be reconfigured for the acquisition (settings, threshold, exptime, dr, frames etc.). Returns 0 if succeeded, otherwise an error mask.
+
+bustest
+Makes a digital test of the communication between CPU and FPGA. Returns 0 if succeeded, otherwise the number of errors.
+
+
+
+
+
+
+
+
+
+
+This operations should be performed only rarely to configure the detector
+
+
+
+encallog
+returns whether the logging for energy calibration is enabled.
+
+
+angcallog
+returns whether the logging for angular calibration is enabled.
+
+
+
+
+
+
+
+
+It is normally recommended to use sls\_detector\_acquire [j-]
, which takes care of everything
+
+acquire
+Same as sls\_detector\_acquire
+
+data
+Gets, saves and processes all data stored on the detector, if any.
+
+frame
+Gets, saves and processes one frame stored on the detector, if any in a Firt-In/First-Out mode.
+
+status
+Returns the detector status - can be: running, error, transmitting, finished, waiting or idle
+
+online
+Returns whether the detector is in online or offline mode.
+
+checkonline
+Returns whether the detector is in online or offline mode.
+
+readctr i fname
+GOTTHARD related - reads counter in detector to file fname, restarts acquisition if i=1
+
+exptimel
+Returns the exposure time left for the current frame.
+
+periodl
+Returns the period left for the current frame.
+
+delayl
+Returns the delay after trigger left for the current frame.
+
+gatesl
+Returns the number of gates left for the current frame.
+
+framesl
+Returns the number of frames left for the current cycle.
+
+cyclesl
+Returns the number of cycles left for the current acquisition.
+
+now
+Returns the current timestamp of the detector clock.
+
+timestamp
+Returns the timestamp of the acquisitions in a First-In/First-Out mode i.e. every time it is called it returns the timestamp of the first acquisition start of readout. The FIFO is reset everytime the acquisition is started.
+
+
+
+
+
+
+Advanced commands to configure the detector system. Should be left to the configuration file
+
+type
+Returns the types of detector controllers in the system.
+
+hostname
+Returns the hostnames or IP addresses for the detector
+
+d:extsig:i
+Returns the usage of the external IO signal i of the controller d.
+
+master
+Returns the master of the acquisition in a multicontroller detector. -1 is none.
+
+sync
+Returns the synchronization mode of the various controller within a detector structure.
+
+trimdir
+Same ad settingsdir.
+
+settingsdir
+Returns the path of the directory where the trim/settings files are stored.
+
+caldir
+Returns the path of the directory where the calibration files are stored.
+
+trimen n e1 e2 ...en
+Unused. Returns the list of energies for which trimfiles exist.
+
+port
+Returns the port used by the sockets to control the detector.
+
+stopport
+Returns the port used by the sockets to stop/get the status of the detector.
+
+id[:i]
+returns the id of the detector structure. i is the detector position in a multi detector system
+
+free
+Avoid using it. Frees the shared memory.
+
+
+Settable communication parameters:
+
+txndelay_left
+EIGER advanced: Set transmission delay of sending the left port frame
+
+txndelay_right
+EIGER advanced: Set transmission delay of sending the right port frame
+
+
+txndelay_frame
+EIGER advanced: Set transmission delay of sending the entire frame In addition to left and right. This value has to be greater than the maximum of the transmission delays of each port.
+
+
+
+
+
+
+
+detectormac
+returns the mac of the detector udp interface to mac (if configurable). Should be left to the configuration file.
+
+rx_tcpport
+returns the communication port between client and receiver. Should be left to the configuration file.
+
+rx_udpport
+returns the communication port between detector and receiver. Should be left to the configuration file.
+
+rx_hostname
+returns the hostname (or IP address) of the receiver for the TCP/IP interface with the client.
+
+rx_udpip
+returns the IP address of the receiver for the UDP interface with the detector.
+
+
+
+r_online b
+Returns whether the receiver in online (1) or offline (0) mode.
+
+r_checkonline
+Returns whether the receiver in online (1) or offline (0) mode.
+
+framescaught
+Returns the number of frames received. Returns: "framescaught n''
+
+resetframescaught n
+Sets the number of frames received to 1
+
+frameindex
+Returns the index of the last frame received.
+
+r_lock
+Returns whether the receiver is locked (1) or unlocked (0).
+
+r_lastclient
+Returns the IP of the last client which connected to the receiver.
+
+
+
+
+
+
+Some advanced commands to configure data postprocessing.
+
+ffdir
+Returns the directory where the flat field files are stored.
+
+darkimage fname
+GOTTHARD- ADVANCED- Returns the dark image file for the detector.
+
+gainimage fname
+GOTTHARD- ADVANCED- Returns gain image file for the detector.
+
+badchannels fname
+Returns bad channel file to fname.
+
+threaded b
+Returns whether the data are written to disk in parallel with the acquisition (1) or after the acquisition (0).
+
+
+
+
+Angular conversion
+
+
+
+globaloff
+Returns the offset of the beamline i.e. angular position of channel 0 when angular encoder at 0.
+
+angconv
+Returns the file used for the coefficients for angular conversion.
+
+binsize
+Returns the size of the angular bins for angular conversion.
+
+angdir
+Returns the angular direction of the detector (1 means channel number in the same direction as the angular encoder, -1 different direction).
+
+d:moveflag
+Related to a single controller d. Returns 1 if the detector modules move with the angular encoder, 0 if they are static (useful for multidetector systems).
+
+
+
+
+
+
+Advanced settings changing the analog or digital performance of the acquisition. Use them only if you are sure of what you are doing!
+
+
+
+vthreshold
+Returns the DAC value of the detector threshold to n.
+
+vcalibration
+Returns the DAC value of the calibration pulse amplitude to n.
+
+vtrimbit
+Returns the DAC value defining the trimbits LSB size to n.
+
+vpreamp
+Returns the DAC value of the preamp feedback to n.
+
+vshaper1
+Returns the DAC value of the shaper1 feedback to n.
+
+vshaper2
+Returns the DAC value of the shaper2 feedback to n.
+
+vhighvoltage
+Returns the DAC value of the high voltage to n.
+
+vapower
+CHIPTEST BOARD ONLY - Returns the DAC value of the analog voltage to n.
+
+vddpower
+CHIPTEST BOARD ONLY - Returns the DAC value of the analog voltage to n.
+
+vshpower
+CHIPTEST BOARD ONLY - Returns the comparator power supply in dac units (0-1024).
+
+viopower
+CHIPTEST BOARD ONLY - Returns the FPGA I/O power supply in dac units (0-1024).
+
+vref_ds
+Returns vrefds
+
+vcascn_pb
+Returns vcascn_pb
+
+vcascp_pb
+Returns vcascp_pb
+
+vout_cm
+Returns vout_cm
+
+vcasc_out
+Returns vcasc_out
+
+vin_cm
+Returns vin_cm
+
+vref_comp
+Returns vref_comp
+
+ib_test_c
+Returns ib_test_c
+
+vsvp
+Returns vsvp
+
+vsvn
+Returns vsvn
+
+vtr
+Returns vtr trim strength (EIGER)
+
+vrf
+Returns vrf preamp gain (EIGER)
+
+vrs
+Returns vrs shaper gain (EIGER)
+
+vtgstv
+Returns vtgstv (EIGER)
+
+vcmp_ll
+Returns vcmp_ll (EIGER) leftmost chip theshold
+
+vcmp_lr
+Returns vcmp_lr (EIGER) second to leftmost chip theshold
+
+vcmp_rl
+Returns vcmp_rl (EIGER) second to rightmost chip theshold
+
+vcmp_rr
+Returns vcmp_rr (EIGER) rightmost chip theshold
+
+vcall
+Returns vcall calibration stength (EIGER)
+
+rxb_rb
+Returns rxb_rb rightmost chip value to decode 0-1 in the readout
+
+rxb_lb
+Returns rxb_lb leftmost chip value to decode 0-1 in the readout
+
+vcp
+Returns vcp cascode p value (EIGER)
+
+vcn
+Returns vcn cascode n value (EIGER)
+
+vis
+Returns vis shaper current (EIGER)
+
+iodelay
+Returns iodelay
+
+temp_adc
+Returns the temperature of the ADCs
+
+temp_fpga
+Returns the temperature of the FPGA.
+
+temp_fpgaext
+Returns the temperature close to the fpga (EIGER).
+
+temp_10ge
+Returns the temperature close to the 10GE (EIGER).
+
+temp_dcdc
+Returns the temperature close to the dc dc converter (EIGER).
+
+temp_sodl
+Returns the temperature close to the left so-dimm memory (EIGER).
+
+temp_sodr
+Returns the temperature close to the right so-dimm memory (EIGER).
+
+temp_fpgafl
+Returns the temperature of the left front end board fpga (EIGER).
+
+temp_fpgafr
+Returns the temperature of the right front end board fpga (EIGER).
+
+
+
+reg a
+Write to register of address a the data d
+
+clkdivider
+Returns the clock divider for the readout.
+
+setlength
+Returns the length of the set/reset signals in the acquisition.
+
+waitstates
+Returns the wait states for CPU/FPGA communication.
+
+totdivider
+Returns the tot clock divider.
+
+totdutycycle
+Returns the tot duty cycle.
+
+setup
+Dumps all settings to file (config, parameters, trimbits etc.).
+
+trimbits fn
+Dumps the trimbits to the file files fn.snxxx
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Usage
+ Up: SLS Detector text clients
+ Previous: Detector setup
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorClientHowTo/node5.html b/manual/docs/html/slsDetectorClientHowTo/node5.html
new file mode 100644
index 000000000..14c17ae24
--- /dev/null
+++ b/manual/docs/html/slsDetectorClientHowTo/node5.html
@@ -0,0 +1,166 @@
+
+
+
+
+
+Usage
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: About this document ...
+ Up: SLS Detector text clients
+ Previous: Retrieving detector parameters
+
+
+
+
+Subsections
+
+
+
+
+
+
+
+
+
+
+First, your detector should always be configured for each PC that you might want to use for controlling the detector.
+To do that:
+
+sls_detector_put config mydetector.config
+
+Refer to sample configuration files to produce the appropriate one for your detector.
+
+
+One can configure all the detector settings in a parameter file setup.det , which is loaded by doing:
+
+sls_detector_put parameters setup.det
+
+
+
+In the case of EIGER, the parameter file (setup.det needs to setup the proper bias voltage of the sensor, i.e. needs to contain the line vhighvoltage 150 .
+
+
+
+
+
+
+You will then need to setup the detector threshold and settings, the exposure time, the number of real time frames and eventually how many real time frames should be acquired:
+
+sls_detector_put settings standard
+sls_detector_put threshold 6000
+sls_detector_put exptime 1.
+sls_detector_put frames 10
+
+In this case 10 consecutive 1s frames will be acquired.
+
+
+You need to setup where the files will be written to
+
+sls_detector_put outdir /scratch
+sls_detector_put fname run
+sls_detector_put index 0
+
+this way your files will all be named /scratch/run_fj_i.dat where j goes between 0 and 9 and is relative to the frame number, i starts from 0 and is automatically incremented. The next acquisition it will be 1.
+
+
+To acquire simply type
+
+sls_detector_acquire
+
+
+
+You can poll the detector status using
+
+sls_detector_get status
+
+
+
+
+
+Flat field and rate corrections can be applied directly by simply selecting:
+
+sls_detector_put flatield myflatfield.raw
+sls_detector_put ratecorr -1
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: About this document ...
+ Up: SLS Detector text clients
+ Previous: Retrieving detector parameters
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorClientHowTo/node6.html b/manual/docs/html/slsDetectorClientHowTo/node6.html
new file mode 100644
index 000000000..7b0d9ea22
--- /dev/null
+++ b/manual/docs/html/slsDetectorClientHowTo/node6.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+About this document ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Up: SLS Detector text clients
+ Previous: Usage
+
+
+
+
+
+ SLS Detector text clients manual
+This document was generated using the
+LaTeX 2HTML translator Version 2008 (1.71)
+
+Copyright © 1993, 1994, 1995, 1996,
+Nikos Drakos ,
+Computer Based Learning Unit, University of Leeds.
+
+Copyright © 1997, 1998, 1999,
+Ross Moore ,
+Mathematics Department, Macquarie University, Sydney.
+
+The command line arguments were:
+ latex2html -split 4 slsDetectorClientHowTo.tex
+
+The translation was initiated by Thattil Dhanya on 2018-03-12
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorClientHowTo/slsDetectorClientHowTo.css b/manual/docs/html/slsDetectorClientHowTo/slsDetectorClientHowTo.css
new file mode 100644
index 000000000..d1824aff4
--- /dev/null
+++ b/manual/docs/html/slsDetectorClientHowTo/slsDetectorClientHowTo.css
@@ -0,0 +1,30 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH { font-family: "Century Schoolbook", serif; }
+.MATH I { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY { font-size : xx-small }
+SMALL.TINY { font-size : x-small }
+SMALL.SCRIPTSIZE { font-size : smaller }
+SMALL.FOOTNOTESIZE { font-size : small }
+SMALL.SMALL { }
+BIG.LARGE { }
+BIG.XLARGE { font-size : large }
+BIG.XXLARGE { font-size : x-large }
+BIG.HUGE { font-size : larger }
+BIG.XHUGE { font-size : xx-large }
+
+/* heading styles */
+H1 { }
+H2 { }
+H3 { }
+H4 { }
+H5 { }
+
+/* mathematics styles */
+DIV.displaymath { } /* math displays */
+TD.eqno { } /* equation-number cells */
+
+
+/* document-specific styles come next */
diff --git a/manual/docs/html/slsDetectorClientHowTo/slsDetectorClientHowTo.html b/manual/docs/html/slsDetectorClientHowTo/slsDetectorClientHowTo.html
new file mode 100644
index 000000000..9e12192a6
--- /dev/null
+++ b/manual/docs/html/slsDetectorClientHowTo/slsDetectorClientHowTo.html
@@ -0,0 +1,154 @@
+
+
+
+
+
+SLS Detector text clients manual
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Introduction
+
+
+
+
+
+
+
SLS Detector text clients manual
+
+
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/WARNINGS b/manual/docs/html/slsDetectorGuiHowTo/WARNINGS
new file mode 100644
index 000000000..a6999a3cf
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/WARNINGS
@@ -0,0 +1,3 @@
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/manual/docs/html/slsDetectorGuiHowTo/index.html b/manual/docs/html/slsDetectorGuiHowTo/index.html
new file mode 100644
index 000000000..29b5db414
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/index.html
@@ -0,0 +1,119 @@
+
+
+
+
+
+Mythen v3.0 manual
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Installation and upgrades
+
+
+
+
+
+
+
Mythen v3.0 manual
+
+
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/internals.pl b/manual/docs/html/slsDetectorGuiHowTo/internals.pl
new file mode 100644
index 000000000..5007897ff
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/internals.pl
@@ -0,0 +1,14 @@
+# LaTeX2HTML 2008 (1.71)
+# Associate internals original text with physical files.
+
+
+$key = q/sec:trimdir/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/sec:encal/;
+$ref_files{$key} = "$dir".q|node16.html|;
+$noresave{$key} = "$nosave";
+
+1;
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/labels.pl b/manual/docs/html/slsDetectorGuiHowTo/labels.pl
new file mode 100644
index 000000000..02a07de78
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/labels.pl
@@ -0,0 +1,25 @@
+# LaTeX2HTML 2008 (1.71)
+# Associate labels original text with physical files.
+
+
+$key = q/sec:trimdir/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/sec:encal/;
+$external_labels{$key} = "$URL/" . q|node16.html|;
+$noresave{$key} = "$nosave";
+
+1;
+
+
+# LaTeX2HTML 2008 (1.71)
+# labels from external_latex_labels array.
+
+
+$key = q/sec:trimdir/;
+$external_latex_labels{$key} = q|1.6|;
+$noresave{$key} = "$nosave";
+
+1;
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node1.html b/manual/docs/html/slsDetectorGuiHowTo/node1.html
new file mode 100644
index 000000000..14ffcbe76
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node1.html
@@ -0,0 +1,88 @@
+
+
+
+
+
+Installation and upgrades
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: The software package
+ Up: Mythen v3.0 manual
+ Previous: Mythen v3.0 manual
+
+
+
+
+
+
+
+The new MYTHEN software is intended to control the MCS mythen boards either by using a command line interface (text client) or by using with a graphical user interface (GUI).
+
+
+Here you can find in brief the main things you need to know in order to start working with your detector.
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node10.html b/manual/docs/html/slsDetectorGuiHowTo/node10.html
new file mode 100644
index 000000000..d3ea4a90c
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node10.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+Acquisition
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Detector setup
+ Up: slsDetectorClient
+ Previous: Introduction
+
+
+
+
+
+mythen_acquire [id[-/:]]
+
+
+the detector is started and the data are acquired, postprocessed and written to file according to the configuration
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node11.html b/manual/docs/html/slsDetectorGuiHowTo/node11.html
new file mode 100644
index 000000000..27132ba6b
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node11.html
@@ -0,0 +1,269 @@
+
+
+
+
+
+Detector setup
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Retrieving detector parameters (plus
+ Up: slsDetectorClient
+ Previous: Acquisition
+
+
+
+
+
+
+
+mythen_put [id[:/-]]var arg
+
+
+is used to configure the detector parameter var
+ e.g. mythen_put 0:exptime 1 sets the exposure time to 1 s
+
+
+
+help i
+get help
+
+config fname
+reads the configuration file specified and sets the values
+
+parameters fname
+sets the detector parameters specified in the file
+
+setup rootname
+reads the files specfied (and that could be created by get setup) and resets the complete detector configuration including flatfield corrections, badchannels, trimbits etc.
+
+hostname name
+this is mandatory!!!! sets hostname (or IP adress)
+
+online b
+b can be 0 or 1 and sets the detector in offline/online state. Must be used to restore communication if some socket called failed because the detector was not connected.
+
+status s
+either start or stop
+
+caldir path
+Sets path of the calibration files
+
+trimdir path
+Sets path of the trim files
+
+outdir path
+directory to which the files will be written by default
+
+fname name
+filename to which the files will be written by default (to which file and position indexes will eventually be attached)
+
+index i
+start index of the files (automatically incremented by the acquisition functions)
+
+nmod n
+Sets number of detector modules
+
+extsig:i mode
+Sets usage of the external digital signal i. mode can be: off, gate_in_active_high, gate_in_active_low, trigger_in_rising_edge, trigger_in_falling_edge, ro_trigger_in_rising_edge, ro_trigger_in_falling_edge, gate_out_active_high, gate_out_active_low, trigger_out_rising_edge, trigger_out_falling_edge, ro_trigger_out_rising_edge, ro_trigger_out_falling_edge
+
+timing
+Sets the timing mode of the detector. Can be auto, gating (works only if at least one of the signals is configured as gate_in), trigger (works only if at least one of the signals is configured as trigger_in), ro_trigger (works only if at least one of the signals is configured as ro_trigger_in), triggered_gating (works only if one ofthe signals is configured as gate_in and one as trigger_in).
+
+settings sett
+Sets detector settings. Can be: standard fast highgain (depending on trheshold energy and maximum count rate: please refere to manual for limit values!);
+
+threshold ev
+Sets detector threshold in eV. Should be half of the beam energy. It is precise only if the detector is calibrated
+
+vthreshold dac
+Sets detector threshold in DAC units. A very rough calibration is dac=800-10*keV
+
+exptime t
+Sets the exposure time per frame (in s)
+
+period t
+Sets the frames period (in s)
+
+delay t
+Sets the delay after trigger (in s)
+
+gates n
+Sets the number of gates per frame
+
+frames n
+Sets the number of frames per cycle (e.g. after each trigger)
+
+cycles n
+Sets the number of cycles (e.g. number of triggers)
+
+probes n
+Sets the number of probes to accumulate (max 3)
+
+dr n
+Sets the dynamic range - can be (1,) 4, 8,16 or 24 bits
+
+flags mode
+Sets the readout flags - can be none or storeinram
+
+flatfield fname
+Sets the flatfield file name - none disable flat field corrections
+
+ratecorr t
+Sets the rate corrections with dead time t ns (0 unsets, -1 uses default dead time for chosen settings
+
+badchannels fname
+Sets the badchannels file name - none disable bad channels corrections
+
+angconv fname
+Sets the angular conversion file name
+
+globaloff o
+sets the fixed angular offset of your encoder - should be almost constant!
+
+fineoff o
+sets a possible angular offset of your setup - should be small but can be senseful to modify
+
+binsize s
+sets the binning size of the angular conversion (otherwise defaults from the angualr conversion constants)
+
+angdir i
+sets the angular direction of the detector (i can be 1 or -1 - by default 1, channel 0 is smaller angle)
+
+positions np (pos0 pos1...posnp)
+Sets the number of positions at which the detector is moved during the acquisition and their values
+
+startscript script
+sets a script to be executed at the beginning of the measurements (e.g. open shutter). none unsets. Parameters will be parsed as script nrun=i par=spar
where i is the run number and spar is the value of startscriptpar.
+
+stopscript script
+sets a script to be executed at the end of the measurement (e.g. close shutter). none unsets. Parameters will be parsed as script nrun=i par=spar
where i is the run number and spar is the value of stopscriptpar.
+
+startscriptpar spar
+sets a parameter passed to the start script as string with the syntax par=spar. Its meaning must be interpreted inside the script!
+
+stopscriptpar spar
+sets a parameter passed to the start script as string with the syntax par=spar. Its meaning must be interpreted inside the script!
+
+scan0script script
+Sets a scan script to be executed at higher level. Script can be none (unset), threshold (change threshold DAC values for all modules), energy (change energy threshold DAC values using calibration for each module), trimbits (change trimbits for all channels) or any script (e.g changing temperature or moving sample) which will be called with the syntax script nrun=i fn=fname var=val par=spar
where i is the file index, fname is the file name val is the current value of the scan variable and spar is the value of the scan parameter
+
+scan1script script
+Sets a scan script to be executed at lower level. Script can be none (unset), threshold (change threshold DAC values for all modules), energy (change energy threshold DAC values using calibration for each module), trimbits (change trimbits for all channels) or any script (e.g changing temperature or moving sample) which will be called with the syntax script nrun=i fn=fname var=val par=spar
where i is the file index, fname is the file name val is the current value of the scan variable and spar is the value of the scan parameter
+
+scan0par spar
+sets the scan parameter to be passed to scan0script as a string with syntax par=spar. Its meaning has to be interpreted insode the script!
+
+scan1par spar
+sets the scan parameter to be passed to scan1script as a string with syntax par=spar. Its meaning has to be interpreted insode the script!
+
+scan0prec i
+sets the precision of the scan variable in order to properly generate the file names for scan0
+
+scan1prec i
+sets the precision of the scan variable in order to properly generate the file names for scan1
+
+scan0steps n (f0 f1..fn)
+sets the steps for the scan0script. n is the number of steps and the following values are the step values.
+
+scan1steps n (f0 f1..fn)
+sets the steps for the scan1script. n is the number of steps and the following values are the step values.
+
+scan0range mi ma st
+generates the steps for the scan0script in the range mi to ma with step st (is mi smaller than ma specify a negative step)
+
+scan1range mi ma st
+generates the steps for the scan1script in the range mi to ma with step st (is mi smaller than ma specify a negative step)
+
+scriptbefore script
+sets the script to be executed before each acquisition (before all positions) with the syntax script nrun=i fn=fname par=spar sv0=svar0 sv1=svar1 p0=spar0 p1=spar1
where i is the file index, fname is the file name, sva0, svar1 are the current values of the scan variables 0 and 1, spar0, spar1 are tthe scan parameter 0 and 1. none unsets.
+
+scriptafter script
+sets the script to be executed after each acquisition (after all positions) with the syntax script nrun=i fn=fname par=spar sv0=svar0 sv1=svar1 p0=spar0 p1=spar1
where i is the file index, fname is the file name, sva0, svar1 are the current values of the scan variables 0 and 1, spar0, spar1 are tthe scan parameter 0 and 1. none unsets.
+
+scriptbeforepar spar
+sets the parameter to be passed to the script before witht he syntax par=spar
+
+scriptafterpar spar
+sets the parameter to be passed to the script after witht he syntax par=spar
+
+headerbefore script
+sets the script to be executed before each acquisition (after moving the detector) with the syntax script nrun=i fn=fname par=spar
where i is the run number, fname is the file name, spar is the header before parameter. The script is normally used to save a file header. none unsets.
+
+headerafter script
+sets the script to be executed after each acquisition (after each position) with the syntax script nrun=i fn=fname par=spar
where i is the run number, fname is the file name, spar is the header after parameter. The script is normally used to complete the file header. none unsets.
+
+headerbeforepar spar
+sets the parameter to be passed to the header before script with the syntax par=spar
+
+headerafterpar spar
+sets the parameter to be passed to the header after script with the syntax par=spar
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Retrieving detector parameters (plus
+ Up: slsDetectorClient
+ Previous: Acquisition
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node12.html b/manual/docs/html/slsDetectorGuiHowTo/node12.html
new file mode 100644
index 000000000..6f310ceec
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node12.html
@@ -0,0 +1,300 @@
+
+
+
+
+
+Retrieving detector parameters (plus trimming and test modalities)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Tips
+ Up: slsDetectorClient
+ Previous: Detector setup
+
+
+
+
+
+mythen_get [id[:/-]]var arg
+
+
+is used to retrieve the detector parameter var
+ e.g. mythen_get 0:exptime returns the exposure time in seconds
+
+
+
+help
+This help
+
+config fname
+writes the configuration file
+
+parameters fname
+writes the main detector parameters for the measuremen tin the file
+
+setup rootname
+writes the complete detector setup (including configuration, trimbits, flat field coefficients, badchannels etc.) is a set of files for which the extension is automatically generated
+
+online
+return whether the detector is in online (1) or offline (0) state.
+
+status
+gets the detector status - can be: running, error, transmitting, finished, waiting or idle
+
+data
+gets all data from the detector (if any) processes them and writes them to file according to the preferences already setup
+
+frame
+gets a single frame from the detector (if any) processes it and writes it to file according to the preferences already setup
+
+hostname
+Gets the detector hostname (or IP address)
+
+caldir
+Gets path of the calibration files
+
+trimdir
+Gets path of the trim files
+
+outdir
+directory to which the files will be written by default
+
+fname
+filename to which the files will be written by default (to which file and position indexes will eventually be attached)
+
+index
+start index of the files (automatically incremented by the acquisition functions)
+
+nmod
+Gets number of detector modules
+
+maxmod
+Gets maximum number of detector modules
+
+extsig:i
+Gets usage of the external digital signal i. The return value can be: off, gate_in_active_high, gate_in_active_low, trigger_in_rising_edge, trigger_in_falling_edge, ro_trigger_in_rising_edge, ro_trigger_in_falling_edge, gate_out_active_high, gate_out_active_low, trigger_out_rising_edge, trigger_out_falling_edge, ro_trigger_out_rising_edge, ro_trigger_out_falling_edge
+
+timing
+Sets the timing mode of the detector. Can be auto, gating (works only if at least one of the signals is configured as gate_in), trigger (works only if at least one of the signals is configured as trigger_in), ro_trigger (works only if at least one of the signals is configured as ro_trigger_in), triggered_gating (works only if one ofthe signals is configured as gate_in and one as trigger_in).
+
+modulenumber
+Gets the module serial number
+
+moduleversion
+Gets the module version
+
+detectornumber
+Gets the detector number (MAC address)
+
+detectorversion
+Gets the detector firmware version
+
+softwareversion
+Gets the detector software version
+
+digitest:i
+Makes a digital test of the detector module i. Returns 0 if it succeeds
+
+bustest
+Makes a test of the detector bus. Returns 0 if it succeeds
+
+settings
+Gets detector settings. Can be: standard fast highgain undefined
+
+threshold
+Gets detector threshold in eV. It is precise only if the detector is calibrated
+
+vthreshold
+Gets detector threshold in DAC units. A very rough calibration is dac=800-10*keV
+
+exptime
+Gets the exposure time per frame (in s)
+
+period
+Gets the frames period (in s)
+
+delay
+Gets the delay after trigger (in s)
+
+gates
+Gets the number of gates per frame
+
+frames
+Gets the number of frames per cycle (e.g. after each trigger)
+
+cycles
+Gets the number of cycles (e.g. number of triggers)
+
+probes
+Gets the number of probes to accumulate (max 3)
+
+timestamp
+Gets the internal time stamp of the nex frame acquired (i.e. during an acquisition, all timestamps of the frames are stored in a FIFO which can be read after the acquisition - returns -1 if the FIFO is empty)
+
+dr
+Gets the dynamic range
+
+trim:mode fname
+Trims the detector and writes the trimfile fname.snxxx. mode can be: noise beam improve fix offline - Check that the start conditions are OK!!!
+
+flatfield
+fname returns whether the flat field corrections are enabled and if so writes the coefficients to the specified filename. If fname is none it is not written
+
+ratecorr
+returns wether the rate corrections are enabled and what is the dead time used in ns
+
+badchannels fname
+returns wether the bad channels corrections are enabled and if so writes the bad channels to the specified filename. If fname is none it is not written
+
+angconv fname
+returns wether the angular conversion is enabled and if so writes the angular conversion coefficients to the specified filename. If fname is none, it is not written
+
+globaloff
+returns the fixed angular offset of your encoder - should be almost constant!
+
+fineoff
+returns a possible angualr offset of your setup - should be small but can be senseful to modify
+
+binsize
+returns the binning size of the angular conversion
+
+angdir
+gets the angular direction of the detector (can be 1 or -1 - by default 1, channel 0 is smaller angle)
+
+positions
+returns the number of positions at which the detector is moved during the acquisition and their values
+
+startscript script
+sets a script to be executed at the beginning of the measurements (e.g. open shutter). none unsets. Parameters will be parsed as script nrun=i par=spar
where i is the run number and spar is the value of startscriptpar.
+
+stopscript
+returns the script to be executed at the end of the measurement (e.g. close shutter). none unsets. Parameters will be parsed as script nrun=i par=spar
where i is the run number and spar is the value of stopscriptpar.
+
+startscriptpar
+returns the parameter passed to the start script as string with the syntax par=spar. Its meaning must be interpreted inside the script!
+
+stopscriptpar
+returns the parameter passed to the start script as string with the syntax par=spar. Its meaning must be interpreted inside the script!
+
+scan0script
+returns the scan script to be executed at higher level. Script can be none (unset), threshold (change threshold DAC values for all modules), energy (change energy threshold DAC values using calibration for each module), trimbits (change trimbits for all channels) or any script (e.g changing temperature or moving sample) which will be called with the syntax script nrun=i fn=fname var=val par=spar
where i is the file index, fname is the file name val is the current value of the scan variable and spar is the value of the scan parameter
+
+scan1script
+returns the scan script to be executed at lower level. Script can be none (unset), threshold (change threshold DAC values for all modules), energy (change energy threshold DAC values using calibration for each module), trimbits (change trimbits for all channels) or any script (e.g changing temperature or moving sample) which will be called with the syntax script nrun=i fn=fname var=val par=spar
where i is the file index, fname is the file name val is the current value of the scan variable and spar is the value of the scan parameter
+
+scan0par
+returns the scan parameter to be passed to scan0script as a string with syntax par=spar. Its meaning has to be interpreted insode the script!
+
+scan1par
+returns the scan parameter to be passed to scan1script as a string with syntax par=spar. Its meaning has to be interpreted insode the script!
+
+scan0prec
+returns the precision of the scan variable in order to properly generate the file names for scan0
+
+scan1prec
+returns the precision of the scan variable in order to properly generate the file names for scan1
+
+scan0steps
+returns the steps for the scan0script. n is the number of steps and the following values are the step values.
+
+scan1steps
+returns the steps for the scan1script. n is the number of steps and the following values are the step values.
+
+scan0range
+returns the steps for the scan0script. n is the number of steps and the following values are the step values.
+
+scan1range
+returns the steps for the scan1script. n is the number of steps and the following values are the step values.
+
+scriptbefore
+returns the script to be executed before each acquisition (before all positions) with the syntax script nrun=i fn=fname par=spar sv0=svar0 sv1=svar1 p0=spar0 p1=spar1
where i is the file index, fname is the file name, sva0, svar1 are the current values of the scan variables 0 and 1, spar0, spar1 are tthe scan parameter 0 and 1.
+
+scriptafter
+returns the script to be executed after each acquisition (after all positions) with the syntax script nrun=i fn=fname par=spar sv0=svar0 sv1=svar1 p0=spar0 p1=spar1
where i is the file index, fname is the file name, sva0, svar1 are the current values of the scan variables 0 and 1, spar0, spar1 are tthe scan parameter 0 and 1.
+
+scriptbeforepar
+returns the parameter to be passed to the script before witht he syntax par=spar
+
+scriptafterpar
+returns the parameter to be passed to the script after witht he syntax par=spar
+
+headerbefore
+returns the script to be executed before each acquisition (after moving the detector) with the syntax script nrun=i fn=fname par=spar
where i is the run number, fname is the file name, spar is the header before parameter. The script is normally used to save a file header.
+
+headerafter
+returns the script to be executed after each acquisition (after each position) with the syntax script nrun=i fn=fname par=spar
where i is the run number, fname is the file name, spar is the header after parameter. The script is normally used to complete the file header.
+
+headerbeforepar
+returns the parameter to be passed to the header before script with the syntax par=spar
+
+headerafterpar
+returns the parameter to be passed to the header after script with the syntax par=spar
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Tips
+ Up: slsDetectorClient
+ Previous: Detector setup
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node13.html b/manual/docs/html/slsDetectorGuiHowTo/node13.html
new file mode 100644
index 000000000..41a8caad8
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node13.html
@@ -0,0 +1,222 @@
+
+
+
+
+
+Tips
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Acquisition
+ Up: slsDetectorClient
+ Previous: Retrieving detector parameters (plus
+
+
+
+
+Subsections
+
+
+
+
+
+
+
+
+
+
+First of all you should setup the hostname and the detector size and dynamic range:
+
+mythen_put hostname mcs1x00
+mythen_get nmod
+mythen_get dr
+
+You should also tell the program where to find the default trimbits files and calibration files:
+
+mythen_put trimdir /scratch/trimbits
+mythen_get caldir /scratch/calibration
+
+To chose the detector settings (e.g. standard):
+
+mythen_put settings standard
+
+In case mythen_get settings
does not answer correctly, it most probably means that there is a problem in the architecture or setting of trimdir and caldir (see section 1.6 ).
+
+
+
+
+You need to setup where the files will be written to
+
+mythen_put outdir /scratch
+mythen_put fname run
+mythen_put index 0
+
+this way your files will al be named /scracth/run_i.dat where is starts from 0 and is automatically incremented.
+
+
+You will then need to setup the detector threshold and settings, the exposure time, the number of real time frames and eventually how many real time frames should be acquired:
+
+mythen_put settings standard
+mythen_put threshold 6000
+mythen_put exptime 1.
+mythen_put frames 10
+
+In this case 10 consecutive 1s frames will be acquired.
+External gating and triggering or more advanced acquisition modes are not explained here.
+
+
+
+
+There are two ways of acquiring data.
+
+The first is fully automatic and freezes the terminal until the acquisition is finished:
+
+mythen_acquire 0
+
+This is particulary indicated for fast real time acquisitions.
+
+
+If you want to acquire few long frames you can run:
+
+mythen_put status start
+
+and the poll the detector status using
+
+mythen_get status
+
+if the answer is either transmitting or finished, the data are ready to be downloaded from the detector.
+This can be done using either:
+
+mythen_get frame
+
+where a single data frame is downloaded or
+
+mythen_get data
+
+where all data present on the detector are downloaded.
+This is not indicated when many short real time frames should be acquired since the detector memory would be full before finishing the acquisition since the download time is so limited.
+
+
+
+
+Flat field and rate corrections can be applied direcly by simply selecting:
+
+mythen_put flatield myflatfield.raw
+mythen_put ratecorr -1
+
+
+
+Concerning the angular conversion, it is very reccomended that the users edit the file usersFunctions.cpp contained in the folder slsDetectorSoftware/usersFunctions.
+In the file it is possible to modify the function used for calculating the angular conversion and the ones used for interfacing with the diffractometer equipment i.e. reading the encoder fo the detector position, the ionization chanmbers etc.
+
+
+It is also possible to configure some scans/scripts to be executed during the acquisition. They will be normally called as system calls except for threshold, energy and trimbits scans.
+
+
+Possible arguments are:
+
+help
+This help
+
+-f myconf.txt
+loads the configuration file to myconf.txt
+
+-id i
+Sets the detector to id i (the default is i). Useful when more than one detector are operated in parallel.
+
+-offline
+works in offline mode i.e. not connecting to the detector. Usefule e.g. to perform the energy calibration of the detector and possibly in the future to reprocess and visualize the data (not yet implemented).
+
+-size n
+sets the size of the text to n (the default is n=10);
+
+-scale s
+scales the size of the text and the root canvas by the scaling factor s (the default is s=1). It is useful when executing the program on a PC with low screen resolution (e.g. a laptop) and the window would then fall out of the screen.");
+
+
+The configuration of the detector can either be set when startin the GUI using the configuration file or using the text client or even using the configuration tab of the GUI.
+
+
+
+
+
+
+
+
+
+
+
+ Next: Acquisition
+ Up: slsDetectorClient
+ Previous: Retrieving detector parameters (plus
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node14.html b/manual/docs/html/slsDetectorGuiHowTo/node14.html
new file mode 100644
index 000000000..6b9f70ec7
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node14.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+Acquisition
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Other functions
+ Up: slsDetectorClient
+ Previous: Tips
+
+
+
+
+
+By pressing the start button in the measurement tab the data will be acquired, saved, corrected and plotted as specified.
+
+
+The stop button stops the acquisition i.e. if there are data left to be saved processed etc. the program will not really stop until the offline processes are done.
+
+
+Please don't be too nervous clicking on start and/or stop since this is one of the main causes of crashes (the program has been teste only for quiet users :-)).
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node15.html b/manual/docs/html/slsDetectorGuiHowTo/node15.html
new file mode 100644
index 000000000..00d8eeb85
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node15.html
@@ -0,0 +1,187 @@
+
+
+
+
+
+Other functions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Energy calibration
+ Up: slsDetectorClient
+ Previous: Acquisition
+
+
+
+
+Subsections
+
+
+
+
+
+
+The text client and the GUI can be operated in parallel (althoug you should not change parameters or acquire data at the same data from the gui and the text client!) and the values displayed by the GUI should normally be the actual ones.
+However this kind of parallel operation is at your own risk!
+
+
+The main parameters are group in tabs according to their meaning. To enable some tabs you should enter the modes menu and select Advanced/configuration/Debug
+Here is the general subject of the tabs:
+
+Measurement
+Main acquisition parameters that you may want to change often
+
+Data Output
+Where to write the data, in which format and what to to with them
+
+Plot
+What to plot and how (only partially implemented)
+
+Actions
+Allows to configure scans and/or execute scripts at teh beginning or at the end of the measurement.
+
+Time resolved
+Parameters for time resolved (real time) measurements
+
+Advanced
+Must be activated with the modes menu button. Allows to set some advanced configuration which you don't want general users to change (e.g. data size, external signals, advanced acquisition speed)
+
+Trimming
+Must be activated with the modes menu button. Allows to trim the detector and/or load specific trim files.
+
+Configuration
+Must be activated with the modes menu button. Allows to configure the detector
+
+Debugging
+Must be activated with the modes menu button. Allows to test the detectors functionality, acquire serial numbers etc.
+
+
+Most of the parameters are explained through a tooltip which appers if you leave the mouse on the widget for a few seconds.
+
+
+The configuration and/or the complete setup of the detector can be loaded and saved using the Utilities menu.
+
+
+
+
+Where to find some important parameters (should be set only once, then it should remain in memory):
+
+Hostname
+Configuration tab. Press enter to update.
+
+Trim dir
+Configuration tab. Press enter to update.
+
+Cal dir
+Configuration tab. Press enter to update.
+
+Number of modules
+Configuration tab or Advanced tab
+
+Dynamic range
+Advanced tab
+
+Output directory
+Data Output tab.
+
+File name
+Measurement tab.
+
+File index
+Measurement tab (automatically incremented).
+
+
+
+
+
+
+Where to find some important parameters (should be set only once, then it should remain in memory):
+
+Settings
+Measurement tab
+
+Threshold
+Measurement tab
+
+Exposure time
+Measurement tab
+
+Number of frames
+Measurement tab for non time-resolved measurement, Time resolved tab for fast real time measurements. if you need some action between frame see Actions tab.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Energy calibration
+ Up: slsDetectorClient
+ Previous: Acquisition
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node16.html b/manual/docs/html/slsDetectorGuiHowTo/node16.html
new file mode 100644
index 000000000..94cbd6b59
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node16.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+Energy calibration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: About this document ...
+ Up: Mythen v3.0 manual
+ Previous: Other functions
+
+
+
+
+
+
+Energy calibration
+
+The energy calibration should be performed by illuminating the detector with monochromatic radiation at at least 2 (better 3-4) energies larger than 8 keV. The energy calibration should be performed after trimming and the trim files used should be properly copied in the trimbits directory and used as default.
+
+
+The data can be acquired either with the mythenGUI (by using the calibration wizard or the threshold scan utility in the Action tab) or with the slsDetectorClient (by scanning the threshold using mythen_put 0:vthreshold), but since the analysis needs the use of root, the GUI must be used to finalize the calibration.
+
+
+In the mythenGUI menu Utilities/Calibration wizard it is possible to simply and automatically perform the energy calibration of the detector:
+
+
+Check the ``Detector online'' box in case you want to acquire the data, otherwise simply unclick it and you will be required to provide already acquired data and the details about the detector.
+
+The first time, chose ``Start new calibration'' and chose the directory where you want to store the data you want to acquire. The calibration file names have a''.root'' extension.
+
+The calibration should be perormed by acquiring always the same settings and with the same number of modules always connected in the same sequence. The clibration files, however, can be used for the modules also on different systems (i.e. different number of modules, readout board, etc.). A new calibration should be performed for different detector settings.
+
+If the detector is online, the settings, the number of modules and their serial number will automatically be retrieved. If you selected the offline mode, you must provide the detector settings for the calibration that you want to perform and the serial numbers of the modules in the correct order (to do so, enter the 3 hexadecimal digits in the right sequence and press enter for each module - in case of error the list is editable).
+
+Enter the energy of your beam (in keV!);
+
+If you are in online mode, the acquisition time should be chosen such that there are at least 1000 counts per channel at an intemediate threshold; the range of the threshold scan should be between approx 800-15*keV and 800, better with a step of 1 but up to 5 can be fine in order to reduce the acquisition time: it is more important that each step has a sufficient statistics than that the threshold step is low! After pressing ``Next'', the detector starts acquiring and showing the histogram of the calibration. When it is finished simply press ``Finish'' to accept the data, ``Cancel'' to reject them.
+
+In offline mode, you are required to enter the range and step of the calibration and to select the files (in the same sequence as the threshold values!). After pressing ``Next'' (enabled only if the number of steps is the same as the number of files), the histogram showing the threshold scan is drawn. Simply press ``Finish'' to accept the data, ``Cancel'' to reject them.
+
+For the following calibration steps, check the ``Detector online'' box in case you want to acquire the data, otherwise simply unclick it and you will be required to provide already acquired data and the details about the detector.
+
+Chose ``Add calibration step'' and select the file created prevously. The settings, number of modules and serial numbers of the modules and the energies at which the acquisition has been already performed should be displayed.
+
+Add a new calibration step like in point 3. and iterate for all the energies at which you want to perform the calibration.
+
+To generate the calibration files, chose ``Generate calibration files'' and select the file created prevously. The settings, number of modules and serial numbers of the modules and the energies at which the acquisition has been already performed should be displayed.
+
+Chose the directory and the root of the calibrations files name. An extension corresponding to the serial number of the modules will be generated.
+
+The calibration files for each module should be generated. For each energy you can set the start parameters of the fit and the fitting range (press enter after each change) so that the fitted curves nicely fit the data. The linear fit between energies and inflection points can also be checked.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: About this document ...
+ Up: Mythen v3.0 manual
+ Previous: Other functions
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node17.html b/manual/docs/html/slsDetectorGuiHowTo/node17.html
new file mode 100644
index 000000000..720da2d1b
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node17.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+About this document ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Up: Mythen v3.0 manual
+ Previous: Energy calibration
+
+
+
+
+
+ Mythen v3.0 manual
+This document was generated using the
+LaTeX 2HTML translator Version 2008 (1.71)
+
+Copyright © 1993, 1994, 1995, 1996,
+Nikos Drakos ,
+Computer Based Learning Unit, University of Leeds.
+
+Copyright © 1997, 1998, 1999,
+Ross Moore ,
+Mathematics Department, Macquarie University, Sydney.
+
+The command line arguments were:
+ latex2html -split 4 slsDetectorGuiHowTo.tex
+
+The translation was initiated by Thattil Dhanya on 2018-03-12
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node2.html b/manual/docs/html/slsDetectorGuiHowTo/node2.html
new file mode 100644
index 000000000..d08546f8e
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node2.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+The software package
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Requirements
+ Up: Installation and upgrades
+ Previous: Installation and upgrades
+
+
+
+
+
+
+
+The actual software for the Mythen II system (MCS1 to MCS24) runs on 32 bit Scientific Linux machines (SLC5 tested, gcc 4.1.2 but it should not be critical).
+
+
+The complete software package is composed of several programs which can be instaleld (or locally compiled) depending on the needs:
+
+
+The slsDetector shared and static libraries which are necessary for all user interfaces and can be simply used for implementig custom detector drivers;
+
+The command line interface (slsDetectorClient) sls_detector_put, sls_detector_get, sls_detector_acquire which is provided to communicate with the detectors;
+
+A virtual server mythenServer which can be used to simulate the behavior of the detector for what concerns the communication in case the detector is not online or is in use.
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node3.html b/manual/docs/html/slsDetectorGuiHowTo/node3.html
new file mode 100644
index 000000000..bc15e9ddd
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node3.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+Requirements
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Compilation
+ Up: Installation and upgrades
+ Previous: The software package
+
+
+
+
+
+
+
+For installing the slsDetector shared and static libraries and the slsDetectorClient software, any Linux installation with a working gcc should be fine.
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node4.html b/manual/docs/html/slsDetectorGuiHowTo/node4.html
new file mode 100644
index 000000000..d3c284f41
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node4.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+Compilation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Building
+ Up: Installation and upgrades
+ Previous: Requirements
+
+
+
+
+
+If you simply want to install the software in the working directory you can:
+
+
+make lib
compile slsDetector library
+
+make slsDetectorClient
compile slsDetectorClient package
+
+make all
compile slsDetector libraries, the slsDetectorClient package
+
+make clean
remove object files and executables
+
+make help
lists possible targets
+
+
+
+
+To be able to run the slsDetectorClient commands, add their location to your path.
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node5.html b/manual/docs/html/slsDetectorGuiHowTo/node5.html
new file mode 100644
index 000000000..68e3162dc
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node5.html
@@ -0,0 +1,102 @@
+
+
+
+
+
+Building
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Detector upgrade
+ Up: Installation and upgrades
+ Previous: Compilation
+
+
+
+
+
+To install the software you should first configure some enviroment variables by executing:
+
+> source configure
+
+(NOT >./configure
otherwise the enviroment variables will not be available for the make
command).
+This allows you to configure:
+
+
+INSTALLROOT Directory where you want to install the software. Defaults to /usr/local/
+
+BINDIR Directory where you want to install the binaries. Defaults to bin/
+
+INCDIR Directory where you want to pute the header files. Defaults to include/slsdetector/
+
+LIBDIR Directory where you want to install the libraries. Defaults to lib/
+
+DOCDIR Directory where you want to copy the documentation. Defaults to share/doc/
+
+
+
+
+To build you can:
+
+
+make install_lib
install detector library and include files"
+
+make install_client
install slsDetectorClient
+
+make install
install library, include files and mythenClient''
+
+make install_libdoc
install library documentation
+
+make install_clientdoc
install mythenClient documentation
+
+make install_doc
install all documentation
+
+make help
lists possible targets
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node6.html b/manual/docs/html/slsDetectorGuiHowTo/node6.html
new file mode 100644
index 000000000..f3ad1196e
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node6.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+Detector upgrade
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: The trimbits and calibration
+ Up: Installation and upgrades
+ Previous: Building
+
+
+
+
+
+
+
+The upgrade of the detector consists in both the upgrade of the communication software and of the firmware.
+
+
+To upgrade the firmware you need either a working version of the Altera Quartus software or of the Quartus programmer, which can easly be downloade from
+https://www.altera.com/download/programming/quartus2/pq2-index.jsp
+
+Normally installation of the software and of the driver for the USB-Blaster (provided together with the MYTHEN detector) are simpler under Windows.
+
+Under Windows, the first time that you connect the USB-Blasterto one of your USB ports, you will be asked to install new hardware. Set the path to search
+for the driver to: C:\altera\80sp1\qprogrammer\drivers\usb-blasterp
(where C:\altera\80sp1\qprogrammer\
is assumed to be ther path where your Quartus version is installed).
+
+
+After starting the Quartus programmer, click on Hardware Setup and in the "Currently selected hardware" window select USB-Blaster.
+
+In the Mode combo box select "Active Serial Programming".
+
+Plug the end of your USB-Blaster WITH THE ADAPTER PROVIDED in the connector ASMI on the MCS board taking care that pin1 corresponds to the one indexed and with the rectangualr pad.
+
+Click on add file and from select the programming file provided when the upgrade has been reccomended.
+
+Check "Program/Configure" and "Verify".
+
+Push the start button and wait until the programming process is finished (progress bar top left).
+
+In case the programmer gives you error messages, check the polarity of your cable (pin1 corresponds) and that you have selected the correct programming connector.
+
+
+
+
+To upgrade the software on the detector board transfer the provided software by ftp to the MCS:
+
+ftp mymcs.mydomain.com
+username: root
+password: pass
+cd /mnt/flash/root
+put mythenDetectorServer
+quit
+
+If the /mnt/flash/root directory does not exist, create it before the transfer by telnetting to the MCS.
+
+After pressing reset on the board, the board should reboot.
+
+If the program does not correctly start either check by using the http interface that it is started by the inittab (check that the file /mnt/etc/inittab
ends with the line myid2:3:once:/mnt/flash/root/mythenDetectorServer
).
+
+Otherwise make the program executable by telnetting to the MCS and executing:
+chmod a+xrw /mnt/flash/root/mythenDetectorServer
+
+After pressing reset on the board, the board should reboot and the acqusition program correctly start.
+
+
+
+
+
+
+
+
+
+
+
+ Next: The trimbits and calibration
+ Up: Installation and upgrades
+ Previous: Building
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node7.html b/manual/docs/html/slsDetectorGuiHowTo/node7.html
new file mode 100644
index 000000000..f54ce55b7
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node7.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+The trimbits and calibration files
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: slsDetectorClient
+ Up: Installation and upgrades
+ Previous: Detector upgrade
+
+
+
+
+
+
+The trimbits and calibration files
+
+In order to be able to properly operate your detector you need a directory where the trimbit files (needed to set the detector settings and eventually equalize the individual channel thresholds) which in the following will be named trimdir and a directory where the calibration files (needed to convert the threshold energy in DAC units) are stored which in the following will be named caldir .
+trimdir and caldir can even be the same directory, and an example of it is given in the software package by the example directory trimbits
.
+
+Since these directories are customized by producing trimbit files and calibration for each detector, make sure not to overwrite yours every time you upgrade the software.
+
+
+trimdir should contain three subdirectories standard
, fast
and highgain
containing respectively the trimfiles standard.trim
, fast.trim
and highgain.trim
which contain the correct voltage settings for the detector although all the individual channel thresholds set to 0. The original files contained in the package should be used, infact in case of error the detector would not recognize the correct settings.
+
+The default trimbit files for each file will be stored in the directory according to the settings with the name noise.snxxx
where xxx
is the module serial number.
+
+
+caldir should contain three subdirectories standard
, fast
and highgain
containing respectively the trimfiles standard.cal
, fast.cal
and highgain.cal
which contain an average calibration of the modules for the diffrent settings. However this can different from the correct one for each individual module even of several kev and therefore it is very important to perform an energy calibration on a module basis (see section ).
+
+The default calibration files for each file will be stored in the directory according to the settings with the name calibration.snxxx
where xxx
is the module serial number.
+
+
+
+
+
+
+
+
+
+
+
+ Next: slsDetectorClient
+ Up: Installation and upgrades
+ Previous: Detector upgrade
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node8.html b/manual/docs/html/slsDetectorGuiHowTo/node8.html
new file mode 100644
index 000000000..92c0c3d5d
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node8.html
@@ -0,0 +1,100 @@
+
+
+
+
+
+slsDetectorClient
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Introduction
+ Up: Mythen v3.0 manual
+ Previous: The trimbits and calibration
+
+
+
+
+
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/node9.html b/manual/docs/html/slsDetectorGuiHowTo/node9.html
new file mode 100644
index 000000000..04a54405b
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/node9.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+Introduction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Acquisition
+ Up: slsDetectorClient
+ Previous: slsDetectorClient
+
+
+
+
+
+
+
+This program is intended to control the MYTHEN detectors via command line interface.
+
+
+To get all the possibilities of usage simply type:
+
+sls_detector_acquire
+to readout the detector at full speed
+
+sls_detector_put
+to set detector parameters
+
+sls_detector_get
+to retrieve detector parameters
+
+
+
+
+There are different ways for communicationg with your detector(s).
+
+multiDetector
+is represented by a group of controllers which operate symultaneously with the same parameters. You can define several multiDetector systems and int this case you address them using different indexes. In this case the syntax will be sls\_detector\_cmd i-
where cmd can be acquire, put, get and i is the index of the multiDetector entity (if omitted defaults to 0 - standard usage). Normally it is handy to use the multiDetector structure also in case of single detectors. However in some cases one cannot avoid using the slsDetector structure for detailed configuration (e.g. meaning of external signals or other flags)
+
+slsDetector
+is represented by a single controller. You can define several multiDetector systems and int this case you address them using different indexes. In this case the syntax will be sls\_detector\_cmd i:
where cmd can be acquire, put, get and i is the index of the slsDetector entity, which cannot be omitted. When creating the multiDetector structure, the indexes are automatically assigned to the detectors contained in it. You can retrieve the indexes relative to the slsDetector using: sls\_detector\_get hostname:pos, sls\_detector\_get id:pos
whic will return the hostname in position pos of your multiDetector structure (pos=0 in case of single detectors) and its index.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Acquisition
+ Up: slsDetectorClient
+ Previous: slsDetectorClient
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorGuiHowTo/slsDetectorGuiHowTo.css b/manual/docs/html/slsDetectorGuiHowTo/slsDetectorGuiHowTo.css
new file mode 100644
index 000000000..d1824aff4
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/slsDetectorGuiHowTo.css
@@ -0,0 +1,30 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH { font-family: "Century Schoolbook", serif; }
+.MATH I { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY { font-size : xx-small }
+SMALL.TINY { font-size : x-small }
+SMALL.SCRIPTSIZE { font-size : smaller }
+SMALL.FOOTNOTESIZE { font-size : small }
+SMALL.SMALL { }
+BIG.LARGE { }
+BIG.XLARGE { font-size : large }
+BIG.XXLARGE { font-size : x-large }
+BIG.HUGE { font-size : larger }
+BIG.XHUGE { font-size : xx-large }
+
+/* heading styles */
+H1 { }
+H2 { }
+H3 { }
+H4 { }
+H5 { }
+
+/* mathematics styles */
+DIV.displaymath { } /* math displays */
+TD.eqno { } /* equation-number cells */
+
+
+/* document-specific styles come next */
diff --git a/manual/docs/html/slsDetectorGuiHowTo/slsDetectorGuiHowTo.html b/manual/docs/html/slsDetectorGuiHowTo/slsDetectorGuiHowTo.html
new file mode 100644
index 000000000..29b5db414
--- /dev/null
+++ b/manual/docs/html/slsDetectorGuiHowTo/slsDetectorGuiHowTo.html
@@ -0,0 +1,119 @@
+
+
+
+
+
+Mythen v3.0 manual
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Installation and upgrades
+
+
+
+
+
+
+
Mythen v3.0 manual
+
+
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Binaries.html b/manual/docs/html/slsDetectorInstall/Binaries.html
new file mode 100644
index 000000000..7214f6e61
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Binaries.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+Binaries
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The complete software package is composed of several programs which
+can be installed (or locally compiled) depending on one's requirements:
+
+
+
+
+libSlsDetector.so, libSlsReceiver.so :
+
+The slsDetector shared and static libraries , which are
+necessary for all user interfaces. The C++ API via the class
+slsDetectorUsers (installed with the default package) or the
+Python API via the class sls_detector (installed with the
+package including Python API), which can be used from the user's acquisition
+software to control the detectors and the data receivers.
+
+
+
+sls_detector_put, sls_detector_get,
+sls_detector_acquire, sls_detector_help :
+
+The command line interfaces , which are provided to communicate with the
+detectors and data receivers using the command line.
+
+
+
+slsReceiver :
+
+The data receiver , which can be run on a different machine than the
+client, receives the data from the detector and processes it. The receiver can
+be configured, controlled and monitored by the client.
+
+
+
+slsDetectorGUI :
+
+The graphical user interface , which provides a user friendly way
+of operating the detectors and data receivers with online data preview.
+
+
+
+energyCalibrationWizard,angularCalibrationWizard :
+
+The calibration wizards to analyze the data and produce the energy or
+angular calibration files.
+
+
+
+The virtual Detector servers to simulate the detectors behavior.
+However, only control commands work, not the data acquisition itself.
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Clean_Shared_Memory.html b/manual/docs/html/slsDetectorInstall/Clean_Shared_Memory.html
new file mode 100644
index 000000000..ff104d93e
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Clean_Shared_Memory.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+Clean Shared Memory
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+It is very crucial to clean the shared memory, before using a new version of
+the SLS Detector Package or a different detector type.
+
+
+One can use the cleansharedmemory.sh
script available under the
+slsDetector Package.
+
+
+One can also just use the following commands to clean the shared memory
+segments one by one.
+
+#displays list of shared memeory segments
+ipcs -m
+#remove segments that have nattach equal to zero. They key is the first column
+ipcrm -M [key]
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Compilation.html b/manual/docs/html/slsDetectorInstall/Compilation.html
new file mode 100644
index 000000000..5703accc1
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Compilation.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+Compilation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+One requires cmake
to compile and can be done in two ways:
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Contents.html b/manual/docs/html/slsDetectorInstall/Contents.html
new file mode 100644
index 000000000..724909d79
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Contents.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+Contents
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Directly_using_cmake.html b/manual/docs/html/slsDetectorInstall/Directly_using_cmake.html
new file mode 100644
index 000000000..02efa3e85
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Directly_using_cmake.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+Directly using cmake
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Use cmake to create out-of-source builds, by creating a build folder parallel to
+source directory.
+
+ $ cd ..
+ $ mkdir slsDetectorPackage-build
+ $ cd slsDetectorPackage-build
+ $ cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DUSE_HDF5=OFF
+ $ make
+
+
+
+Use the following as an example to compile statically and using specific hdf5
+folder
+
+ $ HDF5_ROOT=/opt/hdf5v1.10.0 cmake ../slsDetectorPackage
+-DCMAKE_BUILD_TYPE=Debug -DUSE_HDF5=ON
+
+
+
+After compiling, the libraries and executables will be found at `bin` directory
+
+ $ ls bin/
+ gui_client libSlsDetector.a libSlsDetector.so libSlsReceiver.a
+libSlsReceiver.so sls_detector_acquire sls_detector_get slsDetectorGui
+sls_detector_help sls_detector_put slsReceiver
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Download_Source_Code.html b/manual/docs/html/slsDetectorInstall/Download_Source_Code.html
new file mode 100644
index 000000000..5e2f30916
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Download_Source_Code.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+Download Source Code
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Only the package
+
+#Clone source code with specific release
+git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git --branch
+3.1.0
+
+
+The package including Python interface
+
+#Clone source code with specific release
+git clone https://github.com/slsdetectorgroup/sls_detector.git --branch
+3.1.0
+
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/EIGER.html b/manual/docs/html/slsDetectorInstall/EIGER.html
new file mode 100644
index 000000000..5006f7298
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/EIGER.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+EIGER
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+In such cases, the users are not expected to compile the software
+themselves (which would require dedicated softwares) but only to download on the
+detector board the programming files and/or software package provided by
+the SLS Detectors group.
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/EIGER_Firmware.html b/manual/docs/html/slsDetectorInstall/EIGER_Firmware.html
new file mode 100644
index 000000000..de382951e
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/EIGER_Firmware.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+EIGER Firmware
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For SLS Detector Package v3.1.0
+
+Minimum compatible version: 16
+
+Latest version: 20
+
+
+
+
+One must get the latest package's corresponding bit files from the SLS
+Detector Group.
+
+If one does not have the bcp script, that should also be obtained from
+the SLS Detector Group. It is required to program the bit files and requires
+that tftp be installed on the pc.
+
+Run the following to update firmware
+
+ #update back end fpga
+bcp download.bit bebxxx:/fw0
+
+ #update front left fpga
+bcp download.bit bebxxx:/febl
+
+ #update front right fpga
+bcp download.bit bebxxx:/febr
+
+ #update kernel
+bcp download.bit bebxxx:/kernel
+
+Please update bit files with great caution as it could make your board
+inaccessible, if done incorrectly.
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/EIGER_On_board_Software.html b/manual/docs/html/slsDetectorInstall/EIGER_On_board_Software.html
new file mode 100644
index 000000000..91856168b
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/EIGER_On_board_Software.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+EIGER On-board Software
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Every SLS Detector package release will have its coresponding matching on-board
+server under slsDetectorPackage/serverBin .
+
+
+Update the on-board software without connecting to the detector
+
+#password for the boards: root
+
+#Kill existing servers that are running on the detector
+ssh root@beb031 killall eigerDetectorServer;
+
+#Copy on-board server to detector inside executables folder
+scp ~/path-where-it-is/eigerDetectorServerxxx root@bebxxx:~/executables;
+
+#Overwrite the actual eigerDetectorServer on board
+scp ~/path-where-it-is/eigerDetectorServerxxx
+root@bebxxx:~/executables/eigerDetectorServer;
+
+#sync
+ssh root@bebxxx sync;
+
+#reboot the eiger board
+
+
+
+
+
+
+One can connect to the detector by:
+
+ssh root@bebxxx
+password: root
+
+
+
+The on-board server is in /executables folder and respawned at startup in
+/etc/rc5.d/S50board_com.sh
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/GOTTHARD.html b/manual/docs/html/slsDetectorInstall/GOTTHARD.html
new file mode 100644
index 000000000..86d323966
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/GOTTHARD.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+GOTTHARD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+In such cases, the users are not expected to compile the software
+themselves (which would require dedicated softwares) but only to download on the
+detector board the programming files and/or software package provided by
+the SLS Detectors group.
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/GOTTHARD_Firmware.html b/manual/docs/html/slsDetectorInstall/GOTTHARD_Firmware.html
new file mode 100644
index 000000000..a35d9ac68
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/GOTTHARD_Firmware.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+GOTTHARD Firmware
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For SLS Detector Package v3.1.0
+
+Minimum compatible version:
+
+11.01.2013
+
+Latest version:
+
+08.02.2018 (50um and 25um Master)
+
+09.02.2018 (25 um Slave)
+
+
+Normally, the firmware will be upgraded by us as it requires programming the
+FPGA via the USB-Blaster.
+
+
+To upgrade the firmware you need either a working version of the Altera
+Quartus software or of the Quartus programmer, which can easily be downloaded
+from:
+https://www.altera.com/download/programming/quartus2/pq2-index.jsp
+
+Normally, installation of the software and of the driver for the
+USB-Blaster (provided together with the MYTHEN detector) are simpler under
+Windows.
+
+
+Under Windows, the first time that you connect the USB-Blaster to one
+of your USB ports, you will be asked to install new hardware. Set the path to
+search for the driver to:
+C:\altera\80sp1\qprogrammer\drivers\usb-blasterp
(where
+C:\altera\80sp1\qprogrammer\
is assumed to be ther path where your
+Quartus version is installed).
+
+
+After starting the Quartus programmer, click on Hardware Setup and in the
+"Currently selected hardware" window select USB-Blaster.
+
+In the Mode combo box select "Active Serial Programming".
+
+Plug the end of your USB-Blaster WITH THE ADAPTER PROVIDED in the
+connector ASMI on the MCS board taking care that pin1 corresponds to the one
+indexed and with the rectangualr pad.
+
+Click on add file and from select the programming file provided when
+the upgrade has been reccomended.
+
+Check "Program/Configure" and "Verify".
+
+Push the start button and wait until the programming process is
+finished (progress bar top left).
+
+In case the programmer gives you error messages, check the polarity of
+your cable (pin1 corresponds) and that you have selected the correct programming
+connector.
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/GOTTHARD_On_board_Software.html b/manual/docs/html/slsDetectorInstall/GOTTHARD_On_board_Software.html
new file mode 100644
index 000000000..7e15571dd
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/GOTTHARD_On_board_Software.html
@@ -0,0 +1,89 @@
+
+
+
+
+
+GOTTHARD On-board Software
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Every SLS Detector package release will have its coresponding matching on-board
+server under slsDetectorPackage/serverBin .
+
+
+
+
+Install tftp if the pc does not have it.
+
+Copy the server from serverBin folder to /tftpboot (or equivalent tftp
+folder) of the pc
+
+Copy the server to the detector by:
+
+
+Connect to the blackfin on the detector
+telnet bchipxxx
+
+Prevent existing on-board server from respawning by:
+
+
+Edit /etc/inittab
+
+Comment out the line
+#ttyS0::respawn:/gotthardDetectorServervxxx
+
+Reboot blackfin using reboot
+
+Run ps
to ensure no gotthardDetectorServers are running
+
+
+
+
+Copy new on-board server from pc to the blackfin using:
+tftp pcxxx -r gotthardDetectorServerxxx -g
+
+Respawn the new server (server starts at detector statup):
+
+
+Edit /etc/inittab
+
+Uncomment out the line
+ttyS0::respawn:/gotthardDetectorServervxxx
+
+Reboot blackfin using reboot
+
+Run ps
to ensure that both the gotthardDetectorServers are
+running.
+gotthardDetectorServerxxx
+gotthardDetectorServerxxx 1953
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Install_Binaries_via_Conda.html b/manual/docs/html/slsDetectorInstall/Install_Binaries_via_Conda.html
new file mode 100644
index 000000000..0a2d14fe5
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Install_Binaries_via_Conda.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+Install Binaries via Conda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This section is useful only if one wants to download only the binaries for
+specific distribution and use the package via command line. Please refer later
+sections to download source code and compile them.
+
+
+One can download and install Miniconda via
+
+
+https://conda.io/miniconda.html
+
+The conda package uses Travis CI for continuous integration with
+automatic deployment to Anaconda Cloud. One can download only the package or the
+package including the python interface.
+
+
+After the installation, the binaries will be available in your path.
+
+
+Please remember to clear shared memory after installation.
+
+#displays list of shared memeory segments
+ipcs -m
+#remove segments that have nattach equal to zero. They key is the first column
+ipcrm -M [key]
+
+
+
+
+
+Only the package
+
+#Add conda channels
+conda config --add channels conda-forge
+conda config --add channels slsdetectorgroup
+
+#Install latest version
+conda install sls_detector_software
+
+#Install specific release (GLIBC2.14)
+conda install sls_detector_software=3.1.0
+
+#Scientific Linux 6 version (GLIBC2.12)
+conda install sls_detector_software=SL6_3.1.0
+
+
+The package including Python interface
+
+#Add conda channels
+conda config --add channels conda-forge
+conda config --add channels sls_detector
+
+#Install latest version
+conda install sls_detector
+
+#Install specific release (GLIBC2.14)
+conda install sls_detector=3.1.0
+
+#Scientific Linux 6 version (GLIBC2.12)
+conda install sls_detector=SL6_3.1.0
+
+
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Install_via_Source_Code.html b/manual/docs/html/slsDetectorInstall/Install_via_Source_Code.html
new file mode 100644
index 000000000..0a4d3e637
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Install_via_Source_Code.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+Install via Source Code
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This section is useful if one wants to use the API and embed it in their
+acquisition system, or if one wants to download the source code and compile.
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/JUNGFRAU.html b/manual/docs/html/slsDetectorInstall/JUNGFRAU.html
new file mode 100644
index 000000000..71794732f
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/JUNGFRAU.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+JUNGFRAU
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+In such cases, the users are not expected to compile the software
+themselves (which would require dedicated softwares) but only to download on the
+detector board the programming files and/or software package provided by
+the SLS Detectors group.
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/JUNGFRAU_Firmware.html b/manual/docs/html/slsDetectorInstall/JUNGFRAU_Firmware.html
new file mode 100644
index 000000000..4f7057aef
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/JUNGFRAU_Firmware.html
@@ -0,0 +1,135 @@
+
+
+
+
+
+JUNGFRAU Firmware
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For SLS Detector Package v3.1.0
+
+Minimum compatible version: 13.11.2017
+
+Latest version: 13.11.2017
+
+
+At times, one has to update the firmware, which then also requires updating the
+on-board software.
+
+
+Jungfrau firmware can be upgraded via the SLS Detector Package
+binaries from the command line.
+
+
+
+
+One must get the latest package's corresponding POF file from the SLS
+Detector Group.
+
+Update the latest SLS Detector package installed.
+
+Update the on-board software as per the instructions in the next
+section.
+
+Start the on-board server in debug mode:
+
+
+Connect to the blackfin on the detector
+telnet bchipxxx
+
+Prevent existing on-board server from respawning by:
+
+
+Edit /etc/inittab
+
+Comment out the line
+#ttyS0::respawn:/jungfrauDetectorServervxxx
+
+Reboot blackfin using reboot
+
+Run ps
to ensure no gotthardDetectorServers are running
+
+
+
+
+Start the server in debug mode using:
+./jungfrauDetectorServerxxx -debug
+
+Leave this console on to come back to it later.
+
+
+
+
+From the command line of the pc, clear shared memory
+./sls_detector_get free
+
+If one gets shmget error, please clean the shared memory properly using the
+script in slsDetectorPackage/cleansharedmemory.sh
+
+Add the detector to shared memory using
+./sls_detector_put hostname bchipxxx
+
+Program the FPGA using
+./sls_detector_put programfpga xxx.pof
+
+Once the programming is done:
+
+
+Switch to the console that has the debug server running and kill it
+using Ctrl+C and ensure no jungfrauDetectorServers are
+running
+
+Restart the new server to see if it runs with the new firmware
+./jungfrauDetectorServerxxx
+
+If the server didn't start properly, please contact us with the error message
+shown when starting the server up, else continue with the following steps.
+
+Respawn the new server (server starts at detector statup):
+
+
+Edit /etc/inittab
+
+Uncomment out the line
+ttyS0::respawn:/jungfrauDetectorServervxxx
+
+Reboot blackfin using reboot
+
+Run ps
to ensure that both the gotthardDetectorServers are
+running.
+jungfrauDetectorServervxxx
+jungfrauDetectorServervxxx 1953
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/JUNGFRAU_On_board_Software.html b/manual/docs/html/slsDetectorInstall/JUNGFRAU_On_board_Software.html
new file mode 100644
index 000000000..eed26843c
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/JUNGFRAU_On_board_Software.html
@@ -0,0 +1,89 @@
+
+
+
+
+
+JUNGFRAU On-board Software
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Every SLS Detector package release will have its coresponding matching on-board
+server under slsDetectorPackage/serverBin .
+
+
+
+
+Install tftp if the pc does not have it.
+
+Copy the server from serverBin folder to /tftpboot (or equivalent tftp
+folder) of the pc
+
+Copy the server to the detector by:
+
+
+Connect to the blackfin on the detector
+telnet bchipxxx
+
+Prevent existing on-board server from respawning by:
+
+
+Edit /etc/inittab
+
+Comment out the line
+#ttyS0::respawn:/jungfrauDetectorServervxxx
+
+Reboot blackfin using reboot
+
+Run ps
to ensure no gotthardDetectorServers are running
+
+
+
+
+Copy new on-board server from pc to the blackfin using:
+tftp pcxxx -r jungfrauDetectorServervxxx -g
+
+Respawn the new server (server starts at detector statup):
+
+
+Edit /etc/inittab
+
+Uncomment out the line
+ttyS0::respawn:/jungfrauDetectorServervxxx
+
+Reboot blackfin using reboot
+
+Run ps
to ensure that both the gotthardDetectorServers are
+running.
+jungfrauDetectorServervxxx
+jungfrauDetectorServervxxx 1953
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/MYTHEN.html b/manual/docs/html/slsDetectorInstall/MYTHEN.html
new file mode 100644
index 000000000..7f00ee1f6
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/MYTHEN.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+MYTHEN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+In such cases, the users are not expected to compile the software
+themselves (which would require dedicated softwares) but only to download on the
+detector board the programming files and/or software package provided by
+the SLS Detectors group.
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/MYTHEN_Firmware.html b/manual/docs/html/slsDetectorInstall/MYTHEN_Firmware.html
new file mode 100644
index 000000000..95c31022b
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/MYTHEN_Firmware.html
@@ -0,0 +1,79 @@
+
+
+
+
+
+MYTHEN Firmware
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+To upgrade the firmware you need either a working version of the Altera
+Quartus software or of the Quartus programmer, which can easily be downloaded
+from:
+https://www.altera.com/download/programming/quartus2/pq2-index.jsp
+
+
+
+
+Normally, installation of the software and of the driver for the
+USB-Blaster (provided together with the MYTHEN detector) are simpler under
+Windows.
+
+
+Under Windows, the first time that you connect the USB-Blaster to one
+of your USB ports, you will be asked to install new hardware. Set the path to
+search for the driver to:
+C:\altera\80sp1\qprogrammer\drivers\usb-blasterp
(where
+C:\altera\80sp1\qprogrammer\
is assumed to be ther path where your
+Quartus version is installed).
+
+
+After starting the Quartus programmer, click on Hardware Setup and in the
+"Currently selected hardware" window select USB-Blaster.
+
+In the Mode combo box select "Active Serial Programming".
+
+Plug the end of your USB-Blaster WITH THE ADAPTER PROVIDED in the
+connector ASMI on the MCS board taking care that pin1 corresponds to the one
+indexed and with the rectangualr pad.
+
+Click on add file and from select the programming file provided when
+the upgrade has been reccomended.
+
+Check "Program/Configure" and "Verify".
+
+Push the start button and wait until the programming process is
+finished (progress bar top left).
+
+In case the programmer gives you error messages, check the polarity of
+your cable (pin1 corresponds) and that you have selected the correct programming
+connector.
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/MYTHEN_On_board_Software.html b/manual/docs/html/slsDetectorInstall/MYTHEN_On_board_Software.html
new file mode 100644
index 000000000..7eaa61234
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/MYTHEN_On_board_Software.html
@@ -0,0 +1,83 @@
+
+
+
+
+
+MYTHEN On-board Software
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Connect to the board using telnet:
+
+telnet mymcs.mydomain.com
+username: root
+password: pass
+
+
+Kill currently running servers and ensure /mnt/flash/root
exists.
+
+killall mythenDetectorServer
+ls /mnt/flash/root
+#if the directory does not exist mkdir /mnt/flash/root
+
+
+Transfer the provided software by ftp to the MCS.
+
+ftp mymcs.mydomain.com
+username: root
+password: pass
+cd /mnt/flash/root
+put mythenDetectorServer
+quit
+
+
+
+
+After pressing reset on the board, the board should reboot.
+
+
+
+If the program does not correctly start
+
+
+Check by using the http interface that it is started by the inittab
+(check that the file /mnt/etc/inittab
ends with the line
+myid2:3:once:/mnt/flash/root/mythenDetectorServer
).
+
+If program has not started, make the program executable by telnetting to
+the MCS and executing:
+chmod a+xrw /mnt/flash/root/mythenDetectorServer
+
+After pressing reset on the board, the board should reboot and the
+acqusition program correctly start.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Qt4_Installation_GUI.html b/manual/docs/html/slsDetectorInstall/Qt4_Installation_GUI.html
new file mode 100644
index 000000000..d3acccdb8
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Qt4_Installation_GUI.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+Qt4 Installation for GUI
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+It must be installed before Qwt. A Qt version equal or higher than 4.6 is
+required. One can install it:
+
+
+
+
+Setup Environment
+
+
+One has to ensure that PATH
and LD_LIBRARY_PATH
have
+been updated to include Qt4 install path, binaries and libraries.
+Confirm by executing qmake -v
and ensuring the result points to Qt4 (not
+Qt3 or Qt5).
+
+
+If the environment is not set up, one can add the libraries and
+executables to the .bashrc by adding
+LD_LIBRARY_PATH
and PATH
:
+
+export QTDIR=/usr/local/Trolltech/Qt-4.8.2
+export PATH=$QTDIR/bin:$PATH
+export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Qwt_Installation_GUI.html b/manual/docs/html/slsDetectorInstall/Qwt_Installation_GUI.html
new file mode 100644
index 000000000..1fb9ef643
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Qwt_Installation_GUI.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+Qwt Installation for GUI
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Before installing Qwt, one must install Qt
+and ensure that QTDIR
, LD_LIBRARY_PATH
and PATH
point to
+the correct Qt4
+version.
+
+
+A Qwt version equal or higher than 6 is required. One can
+install it:
+
+
+
+
+Setup Environment
+
+
+One has to ensure that QWTDIR
and LD_LIBRARY_PATH
have
+been updated to include Qwt install path and libraries.
+
+
+If the environment is not set up, one can add the libraries to the
+.bashrc by adding LD_LIBRARY_PATH
:
+
+export QWTDIR=/usr/local/qwt-6.0.0/
+export LD_LIBRARY_PATH=$QWTDIR/lib:$LD_LIBRARY_PATH
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Requirements.html b/manual/docs/html/slsDetectorInstall/Requirements.html
new file mode 100644
index 000000000..74d7b8214
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Requirements.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+Requirements
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+These are the basic requirements to install and use the software. Fine Tuning
+the system will be discussed in other documentation provided.
+
+
+C/C++ :
+
+The software is written in C/C++. If Python API is used, it is a wrap around
+to the C++ software. Any Linux installation with working libgcc should be
+sufficient.
+
+
+
+Shared Memory :
+
+Access to the shared memory of the control PC is required for the client.
+
+
+
+Network :
+
+The control PC communicates to the detectors and data receivers over TCP/IP.
+Therefore, the detector should receive a proper IP address (either DHCP or
+static) and no firewall should be present between the control PC and the
+detector.
+
+
+
+Compilation :
+
+cmake is required to compile. make is also possible, but is harder to find
+dependencies.
+
+
+
+GUI :
+
+To use the GUI, one requires atleast Qt4.8.2 and Qwt6.0. Installation of these
+are discussed in the next sections.
+
+
+
+Calibration Wizards :
+
+They are based on the CERN Root data analysis framework. Installation of it is
+discussed in the next sections.
+
+
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Root_Installation_Calibrati.html b/manual/docs/html/slsDetectorInstall/Root_Installation_Calibrati.html
new file mode 100644
index 000000000..30012abcc
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Root_Installation_Calibrati.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+Root Installation for Calibration Wizards
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The software has been developed and tested with root 5.20, but any version
+should work. One can download it from:
+
+> svn co https://root.cern.ch/svn/root/trunk root
+
+
+
+To install:
+
+> cd root
+> ./configure --enable-qt
+> make
+> make install
+
+
+
+Edit your .bashrc to define the ROOTSYS enviroment variable and annd
+the libraries and executables to the LD_LIBRARY_PATH
and PATH
:
+
+export ROOTSYS=/usr/local/root-5.34
+export PATH=$ROOTSYS/bin:$PATH
+export LD_LIBRARY_PATH=$ROOTSYS/lib:$LD_LIBRARY_PATH
+
+
+
+You can also download the binaries, assuming that your linux and gcc versions
+match as in:
+
+http://root.cern.ch/drupal/content/production-version-534
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Setting_environment_variabl.html b/manual/docs/html/slsDetectorInstall/Setting_environment_variabl.html
new file mode 100644
index 000000000..a5b0541a7
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Setting_environment_variabl.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+Setting environment variables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+One can set up the environment variables in the following ways.
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Software_Package.html b/manual/docs/html/slsDetectorInstall/Software_Package.html
new file mode 100644
index 000000000..9f9921276
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Software_Package.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+The Software Package
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The SLS detectors software is intended to control the detectors developed by
+the SLS Detectors group. The detectors currently supported are:
+
+
+MYTHEN, GOTTHARD, EIGER and JUNGFRAU.
+
+
+The package provides software for the distributed system that comprises of
+detectors, data receivers (to process detector data), and the client (to control
+or monitor the system). The client and data receivers can be embedded in
+the user's acquisitions system. Furthermore, the package also provides some
+tools for detector calibration.
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Software_Upgrade.html b/manual/docs/html/slsDetectorInstall/Software_Upgrade.html
new file mode 100644
index 000000000..44b7642fc
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Software_Upgrade.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+Software Upgrade
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The upgrade of the package could require an upgrade of the on-board detector
+server and/or firmware running on the detector as well.
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Using_bashrc_file.html b/manual/docs/html/slsDetectorInstall/Using_bashrc_file.html
new file mode 100644
index 000000000..45167180d
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Using_bashrc_file.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+Using .bashrc file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+emacs ~/.bashrc
+
+Add the following function setup_slsdet
and replace path
+with absolute path of installed directory
+
+function setup_slsdet
+{
+export PKGPATH=[path]
+export LD_LIBRARY_PATH=$PKGPATH/slsDetectorPackage/build/bin:$LD_LIBRARY_PATH
+export PATH=$PKGPATH/slsDetectorPackage/build/bin:$PATH
+cd $PKGPATH/slsDetectorPackage/build/bin
+}
+
+
+source ~/.bashrc
+
+Next time, just run setup_slsdet
to load the environment
+variables.
+
+
+
+
+One can also add the GUI environment variables if installed locally by adding
+the following in the function setup_sldet
+
+export QTDIR=/path-where-it-is/Qt-4.8.2
+export QWTDIR=/path-where-it-is/qwt-6.0.1
+export QWT3D=/path-where-it-is/qwtplot3d
+export QMAKESPEC=$QTDIR/mkspecs/linux-g++
+export LD_LIBRARY_PATH=$QTDIR/lib:$QWTDIR/lib:$QWT3D/lib:$LD_LIBRARY _PATH
+export PATH=$QTDIR/bin:$PATH
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/Using_script_cmk_sh.html b/manual/docs/html/slsDetectorInstall/Using_script_cmk_sh.html
new file mode 100644
index 000000000..72b1adc1d
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Using_script_cmk_sh.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+Using script cmk.sh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The script uses cmake
. After compiling, the libraries and executables
+will be found in `slsDetectorPackage/build/bin` directory.
+Usage: [-c] [-b] [-h] [-d HDF5 directory] [-j]
+
+
+-[no option]: only make
+
+-c: Clean
+
+-b: Builds/Rebuilds CMake files normal mode
+
+-h: Builds/Rebuilds Cmake files with HDF5 package
+
+-d: HDF5 Custom Directory
+
+-t: Build/Rebuilds only text client
+
+-r: Build/Rebuilds only receiver
+
+-g: Build/Rebuilds only gui
+
+-j: Number of threads to compile through
+
+
+
+
+Some example options for compilation:
+
+
+Most basic option: ./cmk.sh -b
+
+
+For only make: ./cmk.sh
+
+
+For make clean;make: ./cmk.sh -c
+
+
+For using hdf5 without custom dir /blabla: ./cmk.sh -h -d /blabla
+
+
+For rebuilding cmake without hdf5: ./cmk.sh -b
+
+
+For using multiple cores to compile faster: ./cmk.sh -j9
+
+
+For rebuilding only certain parts: ./cmk.sh -tg
(only text client and
+gui)
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/WARNINGS b/manual/docs/html/slsDetectorInstall/WARNINGS
new file mode 100644
index 000000000..3f2c8f26d
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/WARNINGS
@@ -0,0 +1,2 @@
+No implementation found for style `graphicx'
+No implementation found for style `hyperref'
diff --git a/manual/docs/html/slsDetectorInstall/Without_bashrc_file.html b/manual/docs/html/slsDetectorInstall/Without_bashrc_file.html
new file mode 100644
index 000000000..7eaeb1a7d
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/Without_bashrc_file.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+Without .bashrc file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Go to binaries folder slsDetectorPackage/build/bin and execute the following:
+
+export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH
+export PATH=$PWD:$PATH
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/index.html b/manual/docs/html/slsDetectorInstall/index.html
new file mode 100644
index 000000000..2b40e43b4
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/index.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+SLS Detectors software installation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
SLS Detectors software installation
+
+
+
Anna Bergamaschi, Dhanya Thattil
+
March 12, 2018
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorInstall/labels.pl b/manual/docs/html/slsDetectorInstall/labels.pl
new file mode 100644
index 000000000..e5b868d94
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2008 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2008 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/manual/docs/html/slsDetectorInstall/slsDetectorInstall.css b/manual/docs/html/slsDetectorInstall/slsDetectorInstall.css
new file mode 100644
index 000000000..d1824aff4
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/slsDetectorInstall.css
@@ -0,0 +1,30 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH { font-family: "Century Schoolbook", serif; }
+.MATH I { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY { font-size : xx-small }
+SMALL.TINY { font-size : x-small }
+SMALL.SCRIPTSIZE { font-size : smaller }
+SMALL.FOOTNOTESIZE { font-size : small }
+SMALL.SMALL { }
+BIG.LARGE { }
+BIG.XLARGE { font-size : large }
+BIG.XXLARGE { font-size : x-large }
+BIG.HUGE { font-size : larger }
+BIG.XHUGE { font-size : xx-large }
+
+/* heading styles */
+H1 { }
+H2 { }
+H3 { }
+H4 { }
+H5 { }
+
+/* mathematics styles */
+DIV.displaymath { } /* math displays */
+TD.eqno { } /* equation-number cells */
+
+
+/* document-specific styles come next */
diff --git a/manual/docs/html/slsDetectorInstall/slsDetectorInstall.html b/manual/docs/html/slsDetectorInstall/slsDetectorInstall.html
new file mode 100644
index 000000000..2b40e43b4
--- /dev/null
+++ b/manual/docs/html/slsDetectorInstall/slsDetectorInstall.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+SLS Detectors software installation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
SLS Detectors software installation
+
+
+
Anna Bergamaschi, Dhanya Thattil
+
March 12, 2018
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/annotated.html b/manual/docs/html/slsDetectorUsersDocs/annotated.html
new file mode 100644
index 000000000..9f435d765
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/annotated.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+Class List
+
+
+
+
+
+
+
+
+
+
+
Class List Here are the classes, structs, unions and interfaces with brief descriptions:
+ detectorData Data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.)
+ slsDetectorUsers Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc
+ slsReceiverUsers Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/classdetectorData-members.html b/manual/docs/html/slsDetectorUsersDocs/classdetectorData-members.html
new file mode 100644
index 000000000..1b1eb87e1
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/classdetectorData-members.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+Member List
+
+
+
+
+
+
+
+
+
+
+
detectorData Member List This is the complete list of members for
detectorData , including all inherited members.
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/classdetectorData.html b/manual/docs/html/slsDetectorUsersDocs/classdetectorData.html
new file mode 100644
index 000000000..8908673ad
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/classdetectorData.html
@@ -0,0 +1,316 @@
+
+
+
+
+
+detectorData Class Reference
+
+
+
+
+
+
+
+
+
+
+
detectorData Class Reference
+
data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.)
+More...
+
+
#include <detectorData.h >
+
+
List of all members.
+
+Public Member Functions
+ detectorData (double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1)
+ The constructor.
+ ~detectorData ()
+ The destructor deletes also the arrays pointing to data/errors/angles if not NULL.
+Public Attributes
+double * values
+ pointer to the data
+double * errors
+ pointer to the errors
+double * angles
+ pointer to the angles (NULL if no angular conversion)
+double progressIndex
+ file index
+char fileName [1000]
+ file name
+int npoints
+ number of points
+int npy
+ dimensions in y coordinate
+
+
Detailed Description
+
data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.)
+
+
Definition at line 9 of file detectorData.h .
+
Constructor & Destructor Documentation
+
+
+
+
+
+ detectorData::detectorData
+ (
+ double *
+ val = NULL
,
+
+
+
+
+ double *
+ err = NULL
,
+
+
+
+
+ double *
+ ang = NULL
,
+
+
+
+
+ double
+ p_ind = -1
,
+
+
+
+
+ const char *
+ fname = ""
,
+
+
+
+
+ int
+ np = -1
,
+
+
+
+
+ int
+ ny = 1
+
+
+
+ )
+ [inline]
+
+
+
+
+
+
The constructor.
+
Parameters:
+
+ val pointer to the data
+ err pointer to errors
+ ang pointer to the angles
+ f_ind file index
+ fname file name to which the data are saved
+ np number of points in x coordinate defaults to the number of detector channels (1D detector)
+ ny dimension in y (1D detector)
+
+
+
+
+
Definition at line 20 of file detectorData.h .
+
+
+
+
+
+
+
+
+ detectorData::~detectorData
+ (
+
+ )
+ [inline]
+
+
+
+
+
+
The destructor deletes also the arrays pointing to data/errors/angles if not NULL.
+
+
Definition at line 27 of file detectorData.h .
+
+
+
+
Member Data Documentation
+
+
+
+
+
+
pointer to the angles (NULL if no angular conversion)
+
+
Definition at line 31 of file detectorData.h .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
dimensions in y coordinate
+
+
Definition at line 35 of file detectorData.h .
+
+
+
+
+
+
+
+
The documentation for this class was generated from the following file:
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/classes.html b/manual/docs/html/slsDetectorUsersDocs/classes.html
new file mode 100644
index 000000000..36297594f
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/classes.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+Alphabetical List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/classslsDetectorUsers-members.html b/manual/docs/html/slsDetectorUsersDocs/classslsDetectorUsers-members.html
new file mode 100644
index 000000000..5898c68ba
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/classslsDetectorUsers-members.html
@@ -0,0 +1,150 @@
+
+
+
+
+
+Member List
+
+
+
+
+
+
+
+
+
+
+
slsDetectorUsers Member List This is the complete list of members for
slsDetectorUsers , including all inherited members.
+ addFrame (double *data, double pos, double i0, double t, string fname, double var)slsDetectorUsers [virtual]
+ dumpDetectorSetup (string const fname)slsDetectorUsers
+ enableAngularConversion (int i=-1)slsDetectorUsers
+ enableCountRateCorrection (int i=-1)slsDetectorUsers
+ enableDataStreamingFromReceiver (int i=-1)slsDetectorUsers
+ enableDataStreamingToClient (int i=-1)slsDetectorUsers
+ enableFlatFieldCorrection (int i=-1)slsDetectorUsers
+ enablePixelMaskCorrection (int i=-1)slsDetectorUsers
+ enableWriteToFile (int i=-1)slsDetectorUsers
+ finalizeDataset (double *a, double *v, double *e, int &np)slsDetectorUsers [virtual]
+ getADC (string adc, int id=-1)slsDetectorUsers
+ getCommand (int narg, char *args[], int pos=-1)slsDetectorUsers
+ getDetectorDeveloper ()slsDetectorUsers
+ getDetectorFirmwareVersion ()slsDetectorUsers
+ getDetectorSerialNumber ()slsDetectorUsers
+ getDetectorSettings (string s)slsDetectorUsers [inline, static]
+ getDetectorSettings (int s)slsDetectorUsers [inline, static]
+ getDetectorSize (int &x0, int &y0, int &nx, int &ny)slsDetectorUsers
+ getDetectorSoftwareVersion ()slsDetectorUsers
+ getDetectorStatus ()slsDetectorUsers
+ getDetectorType ()slsDetectorUsers
+ getFileIndex ()slsDetectorUsers
+ getFileName ()slsDetectorUsers
+ getFilePath ()slsDetectorUsers
+ getFlatFieldCorrectionDir ()slsDetectorUsers
+ getFlatFieldCorrectionFile ()slsDetectorUsers
+ getMaximumDetectorSize (int &nx, int &ny)slsDetectorUsers
+ getModuleFirmwareVersion ()slsDetectorUsers
+ getModuleSerialNumber (int imod=-1)slsDetectorUsers
+ getPositions (double *pos=NULL)slsDetectorUsers
+ getThisSoftwareVersion ()slsDetectorUsers
+ getThresholdEnergy ()slsDetectorUsers
+ getTimingMode (int f)slsDetectorUsers [inline, static]
+ getTimingMode (string s)slsDetectorUsers [inline, static]
+ initDataset (int refresh)slsDetectorUsers [virtual]
+ putCommand (int narg, char *args[], int pos=-1)slsDetectorUsers
+ readConfigurationFile (string const fname)slsDetectorUsers
+ registerAcquisitionFinishedCallback (int(*func)(double, int, void *), void *pArg)slsDetectorUsers
+ registerConnectChannelsCallback (int(*func)(void *), void *arg)slsDetectorUsers
+ registerDataCallback (int(*userCallback)(detectorData *d, int f, int s, void *), void *pArg)slsDetectorUsers
+ registerDisconnectChannelsCallback (int(*func)(void *), void *arg)slsDetectorUsers
+ registerGetI0Callback (double(*func)(int, void *), void *arg)slsDetectorUsers
+ registerGetPositionCallback (double(*func)(void *), void *arg)slsDetectorUsers
+ registerGoToPositionCallback (int(*func)(double, void *), void *arg)slsDetectorUsers
+ registerGoToPositionNoWaitCallback (int(*func)(double, void *), void *arg)slsDetectorUsers
+ registerRawDataCallback (int(*userCallback)(double *p, int n, void *), void *pArg)slsDetectorUsers
+ retrieveDetectorSetup (string const fname)slsDetectorUsers
+ runStatusType (int s)slsDetectorUsers [inline, static]
+ setAllTrimbits (int val, int id=-1)slsDetectorUsers
+ setBitDepth (int i=-1)slsDetectorUsers
+ setClientDataStreamingInPort (int i=-1)slsDetectorUsers
+ setClockDivider (int value)slsDetectorUsers
+ setDAC (string dac, int val, int id=-1)slsDetectorUsers
+ setDelayAfterTrigger (double t=-1, bool inseconds=false)slsDetectorUsers
+ setDetectorSize (int x0=-1, int y0=-1, int nx=-1, int ny=-1)slsDetectorUsers
+ setExposurePeriod (double t=-1, bool inseconds=false)slsDetectorUsers
+ setExposureTime (double t=-1, bool inseconds=false)slsDetectorUsers
+ setFileIndex (int i)slsDetectorUsers
+ setFileName (string s)slsDetectorUsers
+ setFilePath (string s)slsDetectorUsers
+ setFlatFieldCorrectionDir (string dir)slsDetectorUsers
+ setFlatFieldCorrectionFile (string fname="")slsDetectorUsers
+ setHighVoltage (int i)slsDetectorUsers
+ setNumberOfCycles (int64_t t=-1)slsDetectorUsers
+ setNumberOfFrames (int64_t t=-1)slsDetectorUsers
+ setNumberOfGates (int64_t t=-1)slsDetectorUsers
+ setOnline (int const online=-1)slsDetectorUsers
+ setParallelMode (int value)slsDetectorUsers
+ setPositions (int nPos, double *pos)slsDetectorUsers
+ setReceiverDataStreamingOutPort (int i=-1)slsDetectorUsers
+ setReceiverMode (int n=-1)slsDetectorUsers
+ setReceiverOnline (int const online=-1)slsDetectorUsers
+ setReceiverSilentMode (int i)slsDetectorUsers
+ setSettings (int isettings=-1)slsDetectorUsers
+ setThresholdEnergy (int e_eV)slsDetectorUsers
+ setTimingMode (int pol=-1)slsDetectorUsers
+ slsDetectorUsers (int id=0)slsDetectorUsers
+ startAcquisition ()slsDetectorUsers
+ startMeasurement ()slsDetectorUsers
+ startReceiver ()slsDetectorUsers
+ stopAcquisition ()slsDetectorUsers
+ stopMeasurement ()slsDetectorUsers
+ stopReceiver ()slsDetectorUsers
+ ~slsDetectorUsers ()slsDetectorUsers [virtual]
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/classslsDetectorUsers.html b/manual/docs/html/slsDetectorUsersDocs/classslsDetectorUsers.html
new file mode 100644
index 000000000..790eaaa48
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/classslsDetectorUsers.html
@@ -0,0 +1,2646 @@
+
+
+
+
+
+slsDetectorUsers Class Reference
+
+
+
+
+
+
+
+
+
+
+
slsDetectorUsers Class Reference
+
Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc.
+More...
+
+
#include <slsDetectorUsers.h >
+
+
List of all members.
+
+Public Member Functions
+ slsDetectorUsers (int id=0)
+ default constructor
+virtual ~slsDetectorUsers ()
+ virtual destructor
+string getDetectorDeveloper ()
+ useful to define subset of working functions
+int setOnline (int const online=-1)
+ sets the onlineFlag
+int setReceiverOnline (int const online=-1)
+ sets the receivers onlineFlag
+void startMeasurement ()
+ start measurement and acquires
+int stopMeasurement ()
+ stop measurement
+int getDetectorStatus ()
+ get run status
+string getFilePath ()
+ returns the default output files path
+string setFilePath (string s)
+ sets the default output files path
+string getFileName ()
+string setFileName (string s)
+ sets the default output files path
+int getFileIndex ()
+int setFileIndex (int i)
+ sets the default output file index
+string getFlatFieldCorrectionDir ()
+ get flat field corrections file directory
+string setFlatFieldCorrectionDir (string dir)
+ set flat field corrections file directory
+string getFlatFieldCorrectionFile ()
+ get flat field corrections file name
+int setFlatFieldCorrectionFile (string fname="")
+ set flat field correction file
+int enableFlatFieldCorrection (int i=-1)
+ enable/disable flat field corrections (without changing file name)
+int enableCountRateCorrection (int i=-1)
+ enable/disable count rate corrections
+int enablePixelMaskCorrection (int i=-1)
+ enable/disable bad channel corrections
+int enableAngularConversion (int i=-1)
+ enable/disable angular conversion
+int enableWriteToFile (int i=-1)
+int setPositions (int nPos, double *pos)
+ set positions for the acquisition
+int getPositions (double *pos=NULL)
+ get positions for the acquisition
+int setDetectorSize (int x0=-1, int y0=-1, int nx=-1, int ny=-1)
+ sets the detector size
+int getDetectorSize (int &x0, int &y0, int &nx, int &ny)
+ gets detector size
+int getMaximumDetectorSize (int &nx, int &ny)
+ setsthe maximum detector size
+int setBitDepth (int i=-1)
+ set/get dynamic range
+int setSettings (int isettings=-1)
+ set detector settings
+int getThresholdEnergy ()
+ get threshold energy
+int setThresholdEnergy (int e_eV)
+ set threshold energy
+double setExposureTime (double t=-1, bool inseconds=false)
+ set/get exposure time value
+double setExposurePeriod (double t=-1, bool inseconds=false)
+ set/get exposure period
+double setDelayAfterTrigger (double t=-1, bool inseconds=false)
+ set/get delay after trigger
+int64_t setNumberOfGates (int64_t t=-1)
+ set/get number of gates
+int64_t setNumberOfFrames (int64_t t=-1)
+ set/get number of frames i.e. number of exposure per trigger
+int64_t setNumberOfCycles (int64_t t=-1)
+ set/get number of cycles i.e. number of triggers
+int setTimingMode (int pol=-1)
+ set/get the external communication mode
+int readConfigurationFile (string const fname)
+ Reads the configuration file -- will contain all the informations needed for the configuration (e.g. for a PSI detector caldir, settingsdir, angconv, badchannels, hostname etc.).
+int dumpDetectorSetup (string const fname)
+ Reads the parameters from the detector and writes them to file.
+int retrieveDetectorSetup (string const fname)
+ Loads the detector setup from file.
+string getDetectorType ()
+ useful for data plotting etc.
+int setReceiverMode (int n=-1)
+ sets the mode by which gui requests data from receiver
+void registerDataCallback (int(*userCallback)(detectorData *d, int f, int s, void *), void *pArg)
+ register calbback for accessing detector final data, also enables data streaming in client and receiver (if receiver exists)
+void registerRawDataCallback (int(*userCallback)(double *p, int n, void *), void *pArg)
+ register callback for accessing raw data - if the rawDataCallback is registered, no filewriting/postprocessing will be carried on automatically by the software - the raw data are deleted by the software
+virtual void initDataset (int refresh)
+ function to initalize a set of measurements (reset binning if angular conversion, reset summing otherwise) - can be overcome by the user's functions thanks to the virtual property
+virtual void addFrame (double *data, double pos, double i0, double t, string fname, double var)
+ adds frame to merging/summation - can be overcome by the user's functions thanks to the virtual property
+virtual void finalizeDataset (double *a, double *v, double *e, int &np)
+ finalizes the data set returning the array of angles, values and errors to be used as final data - can be overcome by the user's functions thanks to the virtual property
+int enableDataStreamingFromReceiver (int i=-1)
+int enableDataStreamingToClient (int i=-1)
+int setReceiverDataStreamingOutPort (int i=-1)
+int setClientDataStreamingInPort (int i=-1)
+int64_t getModuleFirmwareVersion ()
+int64_t getModuleSerialNumber (int imod=-1)
+int64_t getDetectorFirmwareVersion ()
+int64_t getDetectorSerialNumber ()
+int64_t getDetectorSoftwareVersion ()
+int64_t getThisSoftwareVersion ()
+void registerAcquisitionFinishedCallback (int(*func)(double, int, void *), void *pArg)
+ register calbback for accessing detector final data
+void registerGetPositionCallback (double(*func)(void *), void *arg)
+ register calbback for reading detector position
+void registerConnectChannelsCallback (int(*func)(void *), void *arg)
+ register callback for connecting to the epics channels
+void registerDisconnectChannelsCallback (int(*func)(void *), void *arg)
+ register callback to disconnect the epics channels
+void registerGoToPositionCallback (int(*func)(double, void *), void *arg)
+ register callback for moving the detector
+void registerGoToPositionNoWaitCallback (int(*func)(double, void *), void *arg)
+ register callback for moving the detector without waiting
+void registerGetI0Callback (double(*func)(int, void *), void *arg)
+ register calbback reading to I0
+string putCommand (int narg, char *args[], int pos=-1)
+ sets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf
+string getCommand (int narg, char *args[], int pos=-1)
+ gets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf
+int setClockDivider (int value)
+ sets clock divider of detector
+int setParallelMode (int value)
+ sets parallel mode
+int setAllTrimbits (int val, int id=-1)
+ sets all trimbits to value (only available for eiger)
+int setDAC (string dac, int val, int id=-1)
+ set dac value
+int getADC (string adc, int id=-1)
+ get adc value
+int startReceiver ()
+ start receiver listening mode
+int stopReceiver ()
+ stop receiver listening mode
+int startAcquisition ()
+int stopAcquisition ()
+int setReceiverSilentMode (int i)
+int setHighVoltage (int i)
+Static Public Member Functions
+static string runStatusType (int s)
+ returns string from run status index
+static int getDetectorSettings (string s)
+ returns detector settings string from index
+static string getDetectorSettings (int s)
+ returns detector settings string from index
+static string getTimingMode (int f)
+ returns external communication mode string from index
+static int getTimingMode (string s)
+ returns external communication mode string from index
+
+
Detailed Description
+
Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc.
+
The slsDetectorUsers class is a minimal interface class which should be instantiated by the users in their acquisition software (EPICS, spec etc.). More advanced configuration functions are not implemented and can be written in a configuration or parameters file that can be read/written.
+
+
Definition at line 85 of file slsDetectorUsers.h .
+
Constructor & Destructor Documentation
+
+
+
+
+
+ slsDetectorUsers::slsDetectorUsers
+ (
+ int
+ id = 0
+ )
+
+
+
+
+
+
+
default constructor
+
+
+
+
+
+
+
+
+ virtual slsDetectorUsers::~slsDetectorUsers
+ (
+
+ )
+ [virtual]
+
+
+
+
+
+
virtual destructor
+
+
+
+
Member Function Documentation
+
+
+
+
+
+ virtual void slsDetectorUsers::addFrame
+ (
+ double *
+ data ,
+
+
+
+
+ double
+ pos ,
+
+
+
+
+ double
+ i0 ,
+
+
+
+
+ double
+ t ,
+
+
+
+
+ string
+ fname ,
+
+
+
+
+ double
+ var
+
+
+
+ )
+ [virtual]
+
+
+
+
+
+
adds frame to merging/summation - can be overcome by the user's functions thanks to the virtual property
+
Parameters:
+
+ data pointer to the raw data
+ pos encoder position
+ i0 beam monitor readout for intensity normalization (if 0 not performed)
+ t exposure time in seconds, required only if rate corrections
+ fname file name (unused since filewriting would be performed by the user)
+ var optional parameter - unused.
+
+
+
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::dumpDetectorSetup
+ (
+ string const
+ fname
+ )
+
+
+
+
+
+
+
Reads the parameters from the detector and writes them to file.
+
Parameters:
+
+ fname file to write to
+
+
+
+
Returns: OK or FAIL
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::enableAngularConversion
+ (
+ int
+ i = -1
+ )
+
+
+
+
+
+
+
enable/disable angular conversion
+
Parameters:
+
+ i 0 disables, 1 enables, -1 gets
+
+
+
+
Returns: 0 if angular conversion disabled, 1 if enabled
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::enableCountRateCorrection
+ (
+ int
+ i = -1
+ )
+
+
+
+
+
+
+
enable/disable count rate corrections
+
Parameters:
+
+ i 0 disables, 1 enables with default values, -1 gets
+
+
+
+
Returns: 0 if count corrections disabled, 1 if enabled
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::enableDataStreamingFromReceiver
+ (
+ int
+ i = -1
+ )
+
+
+
+
+
+
Enable or disable streaming data from receiver (creates transmitting sockets)
+
Parameters:
+
+ enable 0 to disable 1 to enable -1 to only get the value
+
+
+
+
Returns: data streaming from receiver enable
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::enableDataStreamingToClient
+ (
+ int
+ i = -1
+ )
+
+
+
+
+
+
Enable data streaming to client (creates receiving sockets)
+
Parameters:
+
+ i 0 to disable, 1 to enable, -1 to get the value
+
+
+
+
Returns: data streaming to client enable
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::enableFlatFieldCorrection
+ (
+ int
+ i = -1
+ )
+
+
+
+
+
+
+
enable/disable flat field corrections (without changing file name)
+
Parameters:
+
+ i 0 disables, 1 enables, -1 gets
+
+
+
+
Returns: 0 if ff corrections disabled, 1 if enabled
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::enablePixelMaskCorrection
+ (
+ int
+ i = -1
+ )
+
+
+
+
+
+
+
enable/disable bad channel corrections
+
Parameters:
+
+ i 0 disables, 1 enables, -1 gets
+
+
+
+
Returns: 0 if bad channels corrections disabled, 1 if enabled
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::enableWriteToFile
+ (
+ int
+ i = -1
+ )
+
+
+
+
+
+
Enable write file function included
+
+
+
+
+
+
+
+
+ virtual void slsDetectorUsers::finalizeDataset
+ (
+ double *
+ a ,
+
+
+
+
+ double *
+ v ,
+
+
+
+
+ double *
+ e ,
+
+
+
+
+ int &
+ np
+
+
+
+ )
+ [virtual]
+
+
+
+
+
+
finalizes the data set returning the array of angles, values and errors to be used as final data - can be overcome by the user's functions thanks to the virtual property
+
Parameters:
+
+ a pointer to the array of angles - can be null if no angular coversion is required
+ v pointer to the array of values
+ e pointer to the array of errors
+ np reference returning the number of points
+
+
+
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::getADC
+ (
+ string
+ adc ,
+
+
+
+
+ int
+ id = -1
+
+
+
+ )
+
+
+
+
+
+
+
get adc value
+
Parameters:
+
+ adc adc as string. can be temp_fpga, temp_fpgaext, temp_10ge, temp_dcdc, temp_sodl, temp_sodr, temp_fpgafl, temp_fpgafr. others not supported
+ id module index (-1 for all)
+
+
+
+
Returns: adc value in millidegree Celsius or -1 (if id=-1 & adc value is different for all modules) or -9999 if adc string does not match
+
+
+
+
+
+
+
+
+ string slsDetectorUsers::getCommand
+ (
+ int
+ narg ,
+
+
+
+
+ char *
+ args [],
+
+
+
+
+ int
+ pos = -1
+
+
+
+ )
+
+
+
+
+
+
+
+
+
+
+
+ string slsDetectorUsers::getDetectorDeveloper
+ (
+
+ )
+
+
+
+
+
+
+
useful to define subset of working functions
+
Returns: "PSI" or "Dectris"
+
+
+
+
+
+
+
+
+ int64_t slsDetectorUsers::getDetectorFirmwareVersion
+ (
+
+ )
+
+
+
+
+
+
get get Detector Firmware Version
+
Returns: id
+
+
+
+
+
+
+
+
+ int64_t slsDetectorUsers::getDetectorSerialNumber
+ (
+
+ )
+
+
+
+
+
+
get get Detector Serial Number
+
Returns: id
+
+
+
+
+
+
+
+
+ static string slsDetectorUsers::getDetectorSettings
+ (
+ int
+ s
+ )
+ [inline, static]
+
+
+
+
+
+
returns detector settings string from index
+
Parameters:
+
+
+
+
Returns: standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain, undefined when wrong index
+
+
Definition at line 698 of file slsDetectorUsers.h .
+
+
+
+
+
+
+
+
+ static int slsDetectorUsers::getDetectorSettings
+ (
+ string
+ s
+ )
+ [inline, static]
+
+
+
+
+
+
returns detector settings string from index
+
Parameters:
+
+ s can be standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain
+
+
+
+
Returns: setting index (-1 unknown string)
+
+
Definition at line 684 of file slsDetectorUsers.h .
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::getDetectorSize
+ (
+ int &
+ x0 ,
+
+
+
+
+ int &
+ y0 ,
+
+
+
+
+ int &
+ nx ,
+
+
+
+
+ int &
+ ny
+
+
+
+ )
+
+
+
+
+
+
+
gets detector size
+
Parameters:
+
+ x0 horizontal position origin in channel number
+ y0 vertical position origin in channel number
+ nx number of channels in horiziontal
+ ny number of channels in vertical
+
+
+
+
Returns: OK/FAIL
+
+
+
+
+
+
+
+
+ int64_t slsDetectorUsers::getDetectorSoftwareVersion
+ (
+
+ )
+
+
+
+
+
+
get get Detector Software Version
+
Returns: id
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::getDetectorStatus
+ (
+
+ )
+
+
+
+
+
+
+
get run status
+
Returns: status mask
+
+
+
+
+
+
+
+
+ string slsDetectorUsers::getDetectorType
+ (
+
+ )
+
+
+
+
+
+
+
useful for data plotting etc.
+
Returns: Mythen, Eiger, Gotthard etc.
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::getFileIndex
+ (
+
+ )
+
+
+
+
+
+
Returns: the default output file index
+
+
+
+
+
+
+
+
+ string slsDetectorUsers::getFileName
+ (
+
+ )
+
+
+
+
+
+
Returns: the default output files root name
+
+
+
+
+
+
+
+
+ string slsDetectorUsers::getFilePath
+ (
+
+ )
+
+
+
+
+
+
+
returns the default output files path
+
+
+
+
+
+
+
+
+ string slsDetectorUsers::getFlatFieldCorrectionDir
+ (
+
+ )
+
+
+
+
+
+
+
get flat field corrections file directory
+
Returns: flat field correction file directory
+
+
+
+
+
+
+
+
+ string slsDetectorUsers::getFlatFieldCorrectionFile
+ (
+
+ )
+
+
+
+
+
+
+
get flat field corrections file name
+
Returns: flat field correction file name
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::getMaximumDetectorSize
+ (
+ int &
+ nx ,
+
+
+
+
+ int &
+ ny
+
+
+
+ )
+
+
+
+
+
+
+
setsthe maximum detector size
+
Parameters:
+
+ x0 horizontal position origin in channel number
+ y0 vertical position origin in channel number
+ nx number of channels in horiziontal
+ ny number of channels in vertical
+
+
+
+
Returns: OK/FAIL
+
+
+
+
+
+
+
+
+ int64_t slsDetectorUsers::getModuleFirmwareVersion
+ (
+
+ )
+
+
+
+
+
+
get get Module Firmware Version
+
Returns: id
+
+
+
+
+
+
+
+
+ int64_t slsDetectorUsers::getModuleSerialNumber
+ (
+ int
+ imod = -1
+ )
+
+
+
+
+
+
get get Module Serial Number
+
Parameters:
+
+
+
+
Returns: id
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::getPositions
+ (
+ double *
+ pos = NULL
+ )
+
+
+
+
+
+
+
get positions for the acquisition
+
Parameters:
+
+ pos array which will contain the encoder positions
+
+
+
+
Returns: number of positions
+
+
+
+
+
+
+
+
+ int64_t slsDetectorUsers::getThisSoftwareVersion
+ (
+
+ )
+
+
+
+
+
+
get this Software Version
+
Returns: id
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::getThresholdEnergy
+ (
+
+ )
+
+
+
+
+
+
+
get threshold energy
+
Returns: current threshold value for imod in ev (-1 failed)
+
+
+
+
+
+
+
+
+ static int slsDetectorUsers::getTimingMode
+ (
+ string
+ s
+ )
+ [inline, static]
+
+
+
+
+
+
returns external communication mode string from index
+
Parameters:
+
+ s index for communication mode
+
+
+
+
Returns: auto, trigger, ro_trigger, gating, triggered_gating, unknown when wrong mode
+
+
Definition at line 734 of file slsDetectorUsers.h .
+
+
+
+
+
+
+
+
+ static string slsDetectorUsers::getTimingMode
+ (
+ int
+ f
+ )
+ [inline, static]
+
+
+
+
+
+
returns external communication mode string from index
+
Parameters:
+
+ f index for communication mode
+
+
+
+
Returns: auto, trigger, ro_trigger, gating, triggered_gating, unknown when wrong mode
+
+
Definition at line 718 of file slsDetectorUsers.h .
+
+
+
+
+
+
+
+
+ virtual void slsDetectorUsers::initDataset
+ (
+ int
+ refresh
+ )
+ [virtual]
+
+
+
+
+
+
function to initalize a set of measurements (reset binning if angular conversion, reset summing otherwise) - can be overcome by the user's functions thanks to the virtual property
+
Parameters:
+
+ refresh if 1, all parameters like ffcoefficients, badchannels, ratecorrections etc. are reset (should be called at least onece with this option), if 0 simply reset merging/ summation
+
+
+
+
+
+
+
+
+
+
+
+ string slsDetectorUsers::putCommand
+ (
+ int
+ narg ,
+
+
+
+
+ char *
+ args [],
+
+
+
+
+ int
+ pos = -1
+
+
+
+ )
+
+
+
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::readConfigurationFile
+ (
+ string const
+ fname
+ )
+
+
+
+
+
+
+
Reads the configuration file -- will contain all the informations needed for the configuration (e.g. for a PSI detector caldir, settingsdir, angconv, badchannels, hostname etc.).
+
Parameters:
+
+
+
+
Returns: OK or FAIL
+
+
+
+
+
+
+
+
+ void slsDetectorUsers::registerAcquisitionFinishedCallback
+ (
+ int(*)(double, int, void *)
+ func ,
+
+
+
+
+ void *
+ pArg
+
+
+
+ )
+
+
+
+
+
+
+
register calbback for accessing detector final data
+
Parameters:
+
+ func function to be called at the end of the acquisition. gets detector status and progress index as arguments
+
+
+
+
+
+
+
+
+
+
+
+ void slsDetectorUsers::registerConnectChannelsCallback
+ (
+ int(*)(void *)
+ func ,
+
+
+
+
+ void *
+ arg
+
+
+
+ )
+
+
+
+
+
+
+
register callback for connecting to the epics channels
+
Parameters:
+
+ func function for connecting to the epics channels
+
+
+
+
+
+
+
+
+
+
+
+ void slsDetectorUsers::registerDataCallback
+ (
+ int(*)(detectorData *d, int f, int s, void *)
+ userCallback ,
+
+
+
+
+ void *
+ pArg
+
+
+
+ )
+
+
+
+
+
+
+
register calbback for accessing detector final data, also enables data streaming in client and receiver (if receiver exists)
+
Parameters:
+
+ userCallback function for plotting/analyzing the data. Its arguments are the data structure d and the frame number f, s is for subframe number for eiger for 32 bit mode
+
+
+
+
+
+
+
+
+
+
+
+ void slsDetectorUsers::registerDisconnectChannelsCallback
+ (
+ int(*)(void *)
+ func ,
+
+
+
+
+ void *
+ arg
+
+
+
+ )
+
+
+
+
+
+
+
register callback to disconnect the epics channels
+
Parameters:
+
+ func function to disconnect the epics channels
+
+
+
+
+
+
+
+
+
+
+
+ void slsDetectorUsers::registerGetI0Callback
+ (
+ double(*)(int, void *)
+ func ,
+
+
+
+
+ void *
+ arg
+
+
+
+ )
+
+
+
+
+
+
+
register calbback reading to I0
+
Parameters:
+
+ func function for reading the I0 (called with parameter 0 before the acquisition, 1 after and the return value used as I0)
+
+
+
+
+
+
+
+
+
+
+
+ void slsDetectorUsers::registerGetPositionCallback
+ (
+ double(*)(void *)
+ func ,
+
+
+
+
+ void *
+ arg
+
+
+
+ )
+
+
+
+
+
+
+
register calbback for reading detector position
+
Parameters:
+
+ func function for reading the detector position
+
+
+
+
+
+
+
+
+
+
+
+ void slsDetectorUsers::registerGoToPositionCallback
+ (
+ int(*)(double, void *)
+ func ,
+
+
+
+
+ void *
+ arg
+
+
+
+ )
+
+
+
+
+
+
+
register callback for moving the detector
+
Parameters:
+
+ func function for moving the detector
+
+
+
+
+
+
+
+
+
+
+
+ void slsDetectorUsers::registerGoToPositionNoWaitCallback
+ (
+ int(*)(double, void *)
+ func ,
+
+
+
+
+ void *
+ arg
+
+
+
+ )
+
+
+
+
+
+
+
register callback for moving the detector without waiting
+
Parameters:
+
+ func function for moving the detector
+
+
+
+
+
+
+
+
+
+
+
+ void slsDetectorUsers::registerRawDataCallback
+ (
+ int(*)(double *p, int n, void *)
+ userCallback ,
+
+
+
+
+ void *
+ pArg
+
+
+
+ )
+
+
+
+
+
+
+
register callback for accessing raw data - if the rawDataCallback is registered, no filewriting/postprocessing will be carried on automatically by the software - the raw data are deleted by the software
+
Parameters:
+
+ userCallback function for postprocessing and saving the data - p is the pointer to the data, n is the number of channels
+
+
+
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::retrieveDetectorSetup
+ (
+ string const
+ fname
+ )
+
+
+
+
+
+
+
Loads the detector setup from file.
+
Parameters:
+
+ fname file to read from
+
+
+
+
Returns: OK or FAIL
+
+
+
+
+
+
+
+
+ static string slsDetectorUsers::runStatusType
+ (
+ int
+ s
+ )
+ [inline, static]
+
+
+
+
+
+
returns string from run status index
+
Parameters:
+
+
+
+
Returns: string error, waiting, running, data, finished or unknown when wrong index
+
+
Definition at line 666 of file slsDetectorUsers.h .
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setAllTrimbits
+ (
+ int
+ val ,
+
+
+
+
+ int
+ id = -1
+
+
+
+ )
+
+
+
+
+
+
+
sets all trimbits to value (only available for eiger)
+
Parameters:
+
+ val value to be set (-1 gets)
+ id module index (-1 for all)
+
+
+
+
Returns: value set
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setBitDepth
+ (
+ int
+ i = -1
+ )
+
+
+
+
+
+
+
set/get dynamic range
+
Parameters:
+
+ i dynamic range (-1 get)
+
+
+
+
Returns: current dynamic range
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setClientDataStreamingInPort
+ (
+ int
+ i = -1
+ )
+
+
+
+
+
+
(for expert users) Set/Get client streaming in ZMQ port For multi modules, it calculates (increments), sets the ports and restarts the sockets
+
Parameters:
+
+
+
+
Returns: client streaming in ZMQ port (if multiple, of first client socket)
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setClockDivider
+ (
+ int
+ value
+ )
+
+
+
+
+
+
+
sets clock divider of detector
+
Parameters:
+
+ value value to be set (-1 gets)
+
+
+
+
Returns: speed of detector
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setDAC
+ (
+ string
+ dac ,
+
+
+
+
+ int
+ val ,
+
+
+
+
+ int
+ id = -1
+
+
+
+ )
+
+
+
+
+
+
+
set dac value
+
Parameters:
+
+ dac dac as string. can be vcmp_ll, vcmp_lr, vcmp_rl, vcmp_rr, vthreshold, vrf, vrs, vtr, vcall, vcp. others not supported
+ val value to be set (-1 gets)
+ id module index (-1 for all)
+
+
+
+
Returns: dac value or -1 (if id=-1 & dac value is different for all modules) or -9999 if dac string does not match
+
+
+
+
+
+
+
+
+ double slsDetectorUsers::setDelayAfterTrigger
+ (
+ double
+ t = -1
,
+
+
+
+
+ bool
+ inseconds = false
+
+
+
+ )
+
+
+
+
+
+
+
set/get delay after trigger
+
Parameters:
+
+ t time in ns (-1 gets)
+ inseconds true if the value is in s, else ns
+
+
+
+
Returns: timer set value in ns, or s if specified
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setDetectorSize
+ (
+ int
+ x0 = -1
,
+
+
+
+
+ int
+ y0 = -1
,
+
+
+
+
+ int
+ nx = -1
,
+
+
+
+
+ int
+ ny = -1
+
+
+
+ )
+
+
+
+
+
+
+
sets the detector size
+
Parameters:
+
+ x0 horizontal position origin in channel number (-1 unchanged)
+ y0 vertical position origin in channel number (-1 unchanged)
+ nx number of channels in horiziontal (-1 unchanged)
+ ny number of channels in vertical (-1 unchanged)
+
+
+
+
Returns: OK/FAIL
+
+
+
+
+
+
+
+
+ double slsDetectorUsers::setExposurePeriod
+ (
+ double
+ t = -1
,
+
+
+
+
+ bool
+ inseconds = false
+
+
+
+ )
+
+
+
+
+
+
+
set/get exposure period
+
Parameters:
+
+ t time in ns (-1 gets)
+ inseconds true if the value is in s, else ns
+
+
+
+
Returns: timer set value in ns, or s if specified
+
+
+
+
+
+
+
+
+ double slsDetectorUsers::setExposureTime
+ (
+ double
+ t = -1
,
+
+
+
+
+ bool
+ inseconds = false
+
+
+
+ )
+
+
+
+
+
+
+
set/get exposure time value
+
Parameters:
+
+ t time in sn (-1 gets)
+ inseconds true if the value is in s, else ns
+
+
+
+
Returns: timer set value in ns, or s if specified
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setFileIndex
+ (
+ int
+ i
+ )
+
+
+
+
+
+
+
sets the default output file index
+
Parameters:
+
+
+
+
Returns: the default output file index
+
+
+
+
+
+
+
+
+ string slsDetectorUsers::setFileName
+ (
+ string
+ s
+ )
+
+
+
+
+
+
+
sets the default output files path
+
Parameters:
+
+
+
+
Returns: the default output files root name
+
+
+
+
+
+
+
+
+ string slsDetectorUsers::setFilePath
+ (
+ string
+ s
+ )
+
+
+
+
+
+
+
sets the default output files path
+
Parameters:
+
+
+
+
Returns: file path
+
+
+
+
+
+
+
+
+ string slsDetectorUsers::setFlatFieldCorrectionDir
+ (
+ string
+ dir
+ )
+
+
+
+
+
+
+
set flat field corrections file directory
+
Parameters:
+
+ dir flat field correction file directory
+
+
+
+
Returns: flat field correction file directory
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setFlatFieldCorrectionFile
+ (
+ string
+ fname = ""
+ )
+
+
+
+
+
+
+
set flat field correction file
+
Parameters:
+
+ fname name of the flat field file (or "" if disable)
+
+
+
+
Returns: 0 if disable (or file could not be read), >0 otherwise
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setHighVoltage
+ (
+ int
+ i
+ )
+
+
+
+
+
+
set high voltage
+
Parameters:
+
+ i > 0 sets, 0 unsets, (-1 gets)
+
+
+
+
Returns: high voltage
+
+
+
+
+
+
+
+
+ int64_t slsDetectorUsers::setNumberOfCycles
+ (
+ int64_t
+ t = -1
+ )
+
+
+
+
+
+
+
set/get number of cycles i.e. number of triggers
+
Parameters:
+
+ t number of frames (-1 gets)
+
+
+
+
Returns: number of frames
+
+
+
+
+
+
+
+
+ int64_t slsDetectorUsers::setNumberOfFrames
+ (
+ int64_t
+ t = -1
+ )
+
+
+
+
+
+
+
set/get number of frames i.e. number of exposure per trigger
+
Parameters:
+
+ t number of frames (-1 gets)
+
+
+
+
Returns: number of frames
+
+
+
+
+
+
+
+
+ int64_t slsDetectorUsers::setNumberOfGates
+ (
+ int64_t
+ t = -1
+ )
+
+
+
+
+
+
+
set/get number of gates
+
Parameters:
+
+ t number of gates (-1 gets)
+
+
+
+
Returns: number of gates
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setOnline
+ (
+ int const
+ online = -1
+ )
+
+
+
+
+
+
+
sets the onlineFlag
+
Parameters:
+
+ online can be: -1 returns wether the detector is in online (1) or offline (0) state; 0 detector in offline state; 1 detector in online state
+
+
+
+
Returns: 0 (offline) or 1 (online)
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setParallelMode
+ (
+ int
+ value
+ )
+
+
+
+
+
+
+
sets parallel mode
+
Parameters:
+
+ value 0 for non parallel, 1 for parallel, 2 for safe mode (-1 gets)
+
+
+
+
Returns: gets parallel mode
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setPositions
+ (
+ int
+ nPos ,
+
+
+
+
+ double *
+ pos
+
+
+
+ )
+
+
+
+
+
+
+
set positions for the acquisition
+
Parameters:
+
+ nPos number of positions
+ pos array with the encoder positions
+
+
+
+
Returns: number of positions
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setReceiverDataStreamingOutPort
+ (
+ int
+ i = -1
+ )
+
+
+
+
+
+
(for expert users) Set/Get receiver streaming out ZMQ port For multi modules, it calculates (increments), sets the ports and restarts the sockets
+
Parameters:
+
+
+
+
Returns: receiver streaming out ZMQ port (if multiple, of first receiver socket)
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setReceiverMode
+ (
+ int
+ n = -1
+ )
+
+
+
+
+
+
+
sets the mode by which gui requests data from receiver
+
Parameters:
+
+ n is 0 for random requests for fast acquisitions and greater than 0 for nth read requests
+
+
+
+
Returns: the mode set in the receiver
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setReceiverOnline
+ (
+ int const
+ online = -1
+ )
+
+
+
+
+
+
+
sets the receivers onlineFlag
+
Parameters:
+
+ online can be: -1 returns wether the receiver is in online (1) or offline (0) state; 0 receiver in offline state; 1 receiver in online state
+
+
+
+
Returns: 0 (offline) or 1 (online)
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setReceiverSilentMode
+ (
+ int
+ i
+ )
+
+
+
+
+
+
set receiver in silent mode
+
Parameters:
+
+ i 1 sets, 0 unsets (-1 gets)
+
+
+
+
Returns: silent mode of receiver
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setSettings
+ (
+ int
+ isettings = -1
+ )
+
+
+
+
+
+
+
set detector settings
+
Parameters:
+
+ isettings settings index (-1 gets)
+
+
+
+
Returns: current settings
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setThresholdEnergy
+ (
+ int
+ e_eV
+ )
+
+
+
+
+
+
+
set threshold energy
+
Parameters:
+
+
+
+
Returns: current threshold value for imod in ev (-1 failed)
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::setTimingMode
+ (
+ int
+ pol = -1
+ )
+
+
+
+
+
+
+
set/get the external communication mode
+
Parameters:
+
+
+
+
See also: getTimingMode
+
Returns: current external communication mode
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::startAcquisition
+ (
+
+ )
+
+
+
+
+
+
start detector real time acquisition in non blocking mode does not include scans, scripts, incrementing file index, s tarting/stopping receiver, resetting frames caught in receiver
+
Returns: OK if all detectors are properly started, FAIL otherwise
+
+
+
+
+
+
+
+
+ void slsDetectorUsers::startMeasurement
+ (
+
+ )
+
+
+
+
+
+
+
start measurement and acquires
+
Returns: OK/FAIL
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::startReceiver
+ (
+
+ )
+
+
+
+
+
+
+
start receiver listening mode
+
Parameters:
+
+
+
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::stopAcquisition
+ (
+
+ )
+
+
+
+
+
+
stop detector real time acquisition
+
Returns: OK if all detectors are properly started, FAIL otherwise
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::stopMeasurement
+ (
+
+ )
+
+
+
+
+
+
+
stop measurement
+
Returns: OK/FAIL
+
+
+
+
+
+
+
+
+ int slsDetectorUsers::stopReceiver
+ (
+
+ )
+
+
+
+
+
+
+
stop receiver listening mode
+
Parameters:
+
+
+
+
+
+
+
The documentation for this class was generated from the following file:
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/classslsReceiverUsers-members.html b/manual/docs/html/slsDetectorUsersDocs/classslsReceiverUsers-members.html
new file mode 100644
index 000000000..a2378df59
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/classslsReceiverUsers-members.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+Member List
+
+
+
+
+
+
+
+
+
+
+
slsReceiverUsers Member List This is the complete list of members for
slsReceiverUsers , including all inherited members.
+ getReceiverVersion ()slsReceiverUsers
+ receiver slsReceiverUsers
+ registerCallBackAcquisitionFinished (void(*func)(uint64_t nf, void *), void *arg)slsReceiverUsers
+ registerCallBackRawDataReady (void(*func)(uint64_t frameNumber, uint32_t expLength, uint32_t packetNumber, uint64_t bunchId, uint64_t timestamp, uint16_t modId, uint16_t xCoord, uint16_t yCoord, uint16_t zCoord, uint32_t debug, uint16_t roundRNumber, uint8_t detType, uint8_t version, char *datapointer, uint32_t datasize, void *), void *arg)slsReceiverUsers
+ registerCallBackStartAcquisition (int(*func)(char *filepath, char *filename, uint64_t fileindex, uint32_t datasize, void *), void *arg)slsReceiverUsers
+ slsReceiverUsers (int argc, char *argv[], int &success)slsReceiverUsers
+ start ()slsReceiverUsers
+ stop ()slsReceiverUsers
+ ~slsReceiverUsers ()slsReceiverUsers
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/classslsReceiverUsers.html b/manual/docs/html/slsDetectorUsersDocs/classslsReceiverUsers.html
new file mode 100644
index 000000000..9d8f5bd31
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/classslsReceiverUsers.html
@@ -0,0 +1,332 @@
+
+
+
+
+
+slsReceiverUsers Class Reference
+
+
+
+
+
+
+
+
+
+
+
slsReceiverUsers Class Reference
+
Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data.
+More...
+
+
#include <slsReceiverUsers.h >
+
+
List of all members.
+
+Public Member Functions
+ slsReceiverUsers (int argc, char *argv[], int &success)
+ ~slsReceiverUsers ()
+int start ()
+void stop ()
+int64_t getReceiverVersion ()
+void registerCallBackStartAcquisition (int(*func)(char *filepath, char *filename, uint64_t fileindex, uint32_t datasize, void *), void *arg)
+void registerCallBackAcquisitionFinished (void(*func)(uint64_t nf, void *), void *arg)
+void registerCallBackRawDataReady (void(*func)(uint64_t frameNumber, uint32_t expLength, uint32_t packetNumber, uint64_t bunchId, uint64_t timestamp, uint16_t modId, uint16_t xCoord, uint16_t yCoord, uint16_t zCoord, uint32_t debug, uint16_t roundRNumber, uint8_t detType, uint8_t version, char *datapointer, uint32_t datasize, void *), void *arg)
+Public Attributes
+slsReceiver * receiver
+
+
Detailed Description
+
Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data.
+
slsReceiverUsers is a class that can be instantiated in the users software to receive the data from the detectors. Callbacks can be defined for processing and/or saving data
+
+
Definition at line 16 of file slsReceiverUsers.h .
+
Constructor & Destructor Documentation
+
+
+
+
+
+ slsReceiverUsers::slsReceiverUsers
+ (
+ int
+ argc ,
+
+
+
+
+ char *
+ argv [],
+
+
+
+
+ int &
+ success
+
+
+
+ )
+
+
+
+
+
+
Constructor reads config file, creates socket, assigns function table
+
Parameters:
+
+ argc from command line
+ argv from command line
+ succecc socket creation was successfull
+
+
+
+
+
+
+
+
+
+
+
+ slsReceiverUsers::~slsReceiverUsers
+ (
+
+ )
+
+
+
+
+
+
+
Member Function Documentation
+
+
+
+
+
+ int64_t slsReceiverUsers::getReceiverVersion
+ (
+
+ )
+
+
+
+
+
+
get get Receiver Version
+
Returns: id
+
+
+
+
+
+
+
+
+ void slsReceiverUsers::registerCallBackAcquisitionFinished
+ (
+ void(*)(uint64_t nf, void *)
+ func ,
+
+
+
+
+ void *
+ arg
+
+
+
+ )
+
+
+
+
+
+
register callback for end of acquisition
+
Parameters:
+
+ func end of acquisition callback. Argument nf is total frames caught
+
+
+
+
Returns: nothing
+
+
+
+
+
+
+
+
+ void slsReceiverUsers::registerCallBackRawDataReady
+ (
+ void(*)(uint64_t frameNumber, uint32_t expLength, uint32_t packetNumber, uint64_t bunchId, uint64_t timestamp, uint16_t modId, uint16_t xCoord, uint16_t yCoord, uint16_t zCoord, uint32_t debug, uint16_t roundRNumber, uint8_t detType, uint8_t version, char *datapointer, uint32_t datasize, void *)
+ func ,
+
+
+
+
+ void *
+ arg
+
+
+
+ )
+
+
+
+
+
+
register callback to be called when data are available (to process and/or save the data).
+
Parameters:
+
+ func raw data ready callback. arguments are frameNumber, expLength, packetNumber, bunchId, timestamp, modId, xCoord, yCoord, zCoord, debug, roundRNumber, detType, version, dataPointer, dataSize
+
+
+
+
Returns: nothing
+
+
+
+
+
+
+
+
+ void slsReceiverUsers::registerCallBackStartAcquisition
+ (
+ int(*)(char *filepath, char *filename, uint64_t fileindex, uint32_t datasize, void *)
+ func ,
+
+
+
+
+ void *
+ arg
+
+
+
+ )
+
+
+
+
+
+
register calbback for starting the acquisition
+
Parameters:
+
+ func callback to be called when starting the acquisition. Its arguments are filepath, filename, fileindex, datasize
+
+
+
+
Returns: value is insignificant at the moment, we write depending on file write enable, users get data to write depending on call backs registered
+
+
+
+
+
+
+
+
+ int slsReceiverUsers::start
+ (
+
+ )
+
+
+
+
+
+
starts listening on the TCP port for client comminication
+
Returns: 0 for success or 1 for FAIL in creating TCP server
+
+
+
+
+
+
+
+
+ void slsReceiverUsers::stop
+ (
+
+ )
+
+
+
+
+
+
stops listening to the TCP & UDP port and exit receiver program
+
+
+
+
Member Data Documentation
+
+
+
The documentation for this class was generated from the following file:
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/detectorData_8h.html b/manual/docs/html/slsDetectorUsersDocs/detectorData_8h.html
new file mode 100644
index 000000000..69019100a
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/detectorData_8h.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+detectorData.h File Reference
+
+
+
+
+
+
+
+
+
+
+
detectorData.h File Reference #include <unistd.h>
+
#include <cstring>
+
+
Go to the source code of this file.
+
+Classes
+class detectorData
+ data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) More...
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/detectorData_8h_source.html b/manual/docs/html/slsDetectorUsersDocs/detectorData_8h_source.html
new file mode 100644
index 000000000..bf83b4d61
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/detectorData_8h_source.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+detectorData.h Source File
+
+
+
+
+
+
+
+
+
+
+
+
detectorData.h Go to the documentation of this file. 00001
+ 00002 #include <unistd.h>
+ 00003 #include <cstring>
+ 00004 #ifndef DETECTOR_DATA_H
+ 00005 #define DETECTOR_DATA_H
+ 00006
+00009 class detectorData {
+ 00010 public :
+00020 detectorData (double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="" , int np=-1, int ny=1) : values (val), errors (err), angles (ang), progressIndex (p_ind), npoints (np), npy (ny){
+ 00021 strcpy(fileName ,fname);
+ 00022 };
+00027 ~detectorData () {if (values ) delete [] values ; if (errors ) delete [] errors ; if (angles ) delete [] angles ;};
+ 00028
+ 00029 double *values ;
+00030 double *errors ;
+00031 double *angles ;
+00032 double progressIndex ;
+00033 char fileName [1000];
+00034 int npoints ;
+00035 int npy ;
+ 00036 };
+ 00037
+ 00038
+ 00039 #endif
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/doxygen.css b/manual/docs/html/slsDetectorUsersDocs/doxygen.css
new file mode 100644
index 000000000..9ca3cafbc
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/doxygen.css
@@ -0,0 +1,498 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+ font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size: 12px;
+}
+
+/* @group Heading Levels */
+
+h1 {
+ text-align: center;
+ font-size: 150%;
+}
+
+h2 {
+ font-size: 120%;
+}
+
+h3 {
+ font-size: 100%;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+ margin-top: 2px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+div.qindex, div.navtab{
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ padding: 2px;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #153788;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #1b77c5;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #6666cc;
+ color: #ffffff;
+ border: 1px double #9295C2;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code {
+}
+
+a.codeRef {
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+.fragment {
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+pre.fragment {
+ border: 1px solid #CCCCCC;
+ background-color: #f5f5f5;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ margin-bottom: 6px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background: white;
+ color: black;
+ margin-right: 20px;
+ margin-left: 20px;
+}
+
+td.indexkey {
+ background-color: #e8eef2;
+ font-weight: bold;
+ border: 1px solid #CCCCCC;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+}
+
+td.indexvalue {
+ background-color: #e8eef2;
+ border: 1px solid #CCCCCC;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #f0f0f0;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+/* @end */
+
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #84b0c7;
+}
+
+th.dirtab {
+ background: #e8eef2;
+ font-weight: bold;
+}
+
+hr {
+ height: 0;
+ border: none;
+ border-top: 1px solid #666;
+}
+
+/* @group Member Descriptions */
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #FAFAFA;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+ border-top: 1px solid #ccc;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memTemplParams {
+ color: #606060;
+ white-space: nowrap;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #606060;
+ font-weight: normal;
+ margin-left: 3px;
+}
+
+.memnav {
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+}
+
+.memname {
+ white-space: nowrap;
+ font-weight: bold;
+}
+
+.memproto, .memdoc {
+ border: 1px solid #84b0c7;
+}
+
+.memproto {
+ padding: 0;
+ background-color: #d5e1e8;
+ font-weight: bold;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -moz-border-radius-topleft: 8px;
+ -moz-border-radius-topright: 8px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+
+}
+
+.memdoc {
+ padding: 2px 5px;
+ background-color: #eef3f5;
+ border-top-width: 0;
+ -webkit-border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -moz-border-radius-bottomleft: 8px;
+ -moz-border-radius-bottomright: 8px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+
+/* @end */
+
+/* @group Directory (tree) */
+
+/* for the tree view */
+
+.ftvtree {
+ font-family: sans-serif;
+ margin: 0.5em;
+}
+
+/* these are for tree view when used as main index */
+
+.directory {
+ font-size: 9pt;
+ font-weight: bold;
+}
+
+.directory h3 {
+ margin: 0px;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+/*
+The following two styles can be used to replace the root node title
+with an image of your choice. Simply uncomment the next two styles,
+specify the name of your image and be sure to set 'height' to the
+proper pixel height of your image.
+*/
+
+/*
+.directory h3.swap {
+ height: 61px;
+ background-repeat: no-repeat;
+ background-image: url("yourimage.gif");
+}
+.directory h3.swap span {
+ display: none;
+}
+*/
+
+.directory > h3 {
+ margin-top: 0;
+}
+
+.directory p {
+ margin: 0px;
+ white-space: nowrap;
+}
+
+.directory div {
+ display: none;
+ margin: 0px;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+/* these are for tree view when not used as main index */
+
+.directory-alt {
+ font-size: 100%;
+ font-weight: bold;
+}
+
+.directory-alt h3 {
+ margin: 0px;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+.directory-alt > h3 {
+ margin-top: 0;
+}
+
+.directory-alt p {
+ margin: 0px;
+ white-space: nowrap;
+}
+
+.directory-alt div {
+ display: none;
+ margin: 0px;
+}
+
+.directory-alt img {
+ vertical-align: -30%;
+}
+
+/* @end */
+
+address {
+ font-style: normal;
+ color: #333;
+}
diff --git a/manual/docs/html/slsDetectorUsersDocs/doxygen.png b/manual/docs/html/slsDetectorUsersDocs/doxygen.png
new file mode 100644
index 000000000..f0a274bba
Binary files /dev/null and b/manual/docs/html/slsDetectorUsersDocs/doxygen.png differ
diff --git a/manual/docs/html/slsDetectorUsersDocs/files.html b/manual/docs/html/slsDetectorUsersDocs/files.html
new file mode 100644
index 000000000..c994674ce
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/files.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+File Index
+
+
+
+
+
+
+
+
+
+
+
File List Here is a list of all files with brief descriptions:
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/functions.html b/manual/docs/html/slsDetectorUsersDocs/functions.html
new file mode 100644
index 000000000..336b0d205
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/functions.html
@@ -0,0 +1,436 @@
+
+
+
+
+
+Class Members
+
+
+
+
+
+
+
+
+
+
+Here is a list of all class members with links to the classes they belong to:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/functions_func.html b/manual/docs/html/slsDetectorUsersDocs/functions_func.html
new file mode 100644
index 000000000..367c412ea
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/functions_func.html
@@ -0,0 +1,402 @@
+
+
+
+
+
+Class Members - Functions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/functions_vars.html b/manual/docs/html/slsDetectorUsersDocs/functions_vars.html
new file mode 100644
index 000000000..6601473f7
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/functions_vars.html
@@ -0,0 +1,98 @@
+
+
+
+
+
+Class Members - Variables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/globals.html b/manual/docs/html/slsDetectorUsersDocs/globals.html
new file mode 100644
index 000000000..153fb7de9
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/globals.html
@@ -0,0 +1,103 @@
+
+
+
+
+
+Class Members
+
+
+
+
+
+
+
+
+
+
+Here is a list of all file members with links to the files they belong to:
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/globals_defs.html b/manual/docs/html/slsDetectorUsersDocs/globals_defs.html
new file mode 100644
index 000000000..6fc5c51d3
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/globals_defs.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+Class Members
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/globals_func.html b/manual/docs/html/slsDetectorUsersDocs/globals_func.html
new file mode 100644
index 000000000..da996713f
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/globals_func.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+Class Members
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/globals_vars.html b/manual/docs/html/slsDetectorUsersDocs/globals_vars.html
new file mode 100644
index 000000000..db25f0f94
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/globals_vars.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+Class Members
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/index.html b/manual/docs/html/slsDetectorUsersDocs/index.html
new file mode 100644
index 000000000..74e94c977
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/index.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+Main Page
+
+
+
+
+
+
+
+
+
+
+
API for SLS detectors data acquisition
+
+
Although the SLS detectors group delvelops several types of detectors (1/2D, counting/integrating etc.) it is common interest of the group to use a common platfor for data acquisition
+
The architecture of the acquisitions system is intended as follows:
+
+A socket server running on the detector (or more than one in some special cases)
+C++ classes common to all detectors for client-server communication. These can be supplied to users as libraries and embedded also in acquisition systems which are not developed by the SLS
+the possibility of using a Qt-based graphical user interface (with eventually root analisys capabilities)
+the possibility of running all commands from command line. In order to ensure a fast operation of this so called "text client" the detector parameters should not be re-initialized everytime. For this reason a shared memory block is allocated where the main detector flags and parameters are stored
+a Root library for data postprocessing and detector calibration (energy, angle).
+
+
slsDetectorUsers is a class to control the detector which should be instantiated by the users in their acquisition software (EPICS, spec etc.). A callback for dislaying the data can be registered. More advanced configuration functions are not implemented and can be written in a configuration file tha can be read/written.
+
slsReceiverUsers is a class to receive the data for detectors with external data receiver (e.g. GOTTHARD). Callbacks can be registered to process the data or save them in specific formats.
+
detectorData is a structure containing the data and additional information which is used to return the data e.g. to the GUI for displaying them.
+
You can find examples of how this classes can be instatiated in mainClient.cpp and mainReceiver.cpp
+
Authors: Anna Bergamaschi , Dhanya Thattil
+
Version: 3.0 Currently supported detectors
+
+
+MYTHEN
+GOTTHARD controls
+GOTTHARD data receiver
+EIGER
+JUNGFRAU
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/installdox b/manual/docs/html/slsDetectorUsersDocs/installdox
new file mode 100755
index 000000000..9b89fe025
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/installdox
@@ -0,0 +1,117 @@
+#!/usr/bin/perl
+
+%subst = ( );
+$quiet = 0;
+
+if (open(F,"search.cfg"))
+{
+ $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_;
+ $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_;
+}
+
+while ( @ARGV ) {
+ $_ = shift @ARGV;
+ if ( s/^-// ) {
+ if ( /^l(.*)/ ) {
+ $v = ($1 eq "") ? shift @ARGV : $1;
+ ($v =~ /\/$/) || ($v .= "/");
+ $_ = $v;
+ if ( /(.+)\@(.+)/ ) {
+ if ( exists $subst{$1} ) {
+ $subst{$1} = $2;
+ } else {
+ print STDERR "Unknown tag file $1 given with option -l\n";
+ &usage();
+ }
+ } else {
+ print STDERR "Argument $_ is invalid for option -l\n";
+ &usage();
+ }
+ }
+ elsif ( /^q/ ) {
+ $quiet = 1;
+ }
+ elsif ( /^\?|^h/ ) {
+ &usage();
+ }
+ else {
+ print STDERR "Illegal option -$_\n";
+ &usage();
+ }
+ }
+ else {
+ push (@files, $_ );
+ }
+}
+
+foreach $sub (keys %subst)
+{
+ if ( $subst{$sub} eq "" )
+ {
+ print STDERR "No substitute given for tag file `$sub'\n";
+ &usage();
+ }
+ elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" )
+ {
+ print "Substituting $subst{$sub} for each occurence of tag file $sub\n";
+ }
+}
+
+if ( ! @files ) {
+ if (opendir(D,".")) {
+ foreach $file ( readdir(D) ) {
+ $match = ".html";
+ next if ( $file =~ /^\.\.?$/ );
+ ($file =~ /$match/) && (push @files, $file);
+ ($file =~ "tree.js") && (push @files, $file);
+ }
+ closedir(D);
+ }
+}
+
+if ( ! @files ) {
+ print STDERR "Warning: No input files given and none found!\n";
+}
+
+foreach $f (@files)
+{
+ if ( ! $quiet ) {
+ print "Editing: $f...\n";
+ }
+ $oldf = $f;
+ $f .= ".bak";
+ unless (rename $oldf,$f) {
+ print STDERR "Error: cannot rename file $oldf\n";
+ exit 1;
+ }
+ if (open(F,"<$f")) {
+ unless (open(G,">$oldf")) {
+ print STDERR "Error: opening file $oldf for writing\n";
+ exit 1;
+ }
+ if ($oldf ne "tree.js") {
+ while () {
+ s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g;
+ print G "$_";
+ }
+ }
+ else {
+ while () {
+ s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g;
+ print G "$_";
+ }
+ }
+ }
+ else {
+ print STDERR "Warning file $f does not exist\n";
+ }
+ unlink $f;
+}
+
+sub usage {
+ print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
+ print STDERR "Options:\n";
+ print STDERR " -l tagfile\@linkName tag file + URL or directory \n";
+ print STDERR " -q Quiet mode\n\n";
+ exit 1;
+}
diff --git a/manual/docs/html/slsDetectorUsersDocs/mainClient_8cpp.html b/manual/docs/html/slsDetectorUsersDocs/mainClient_8cpp.html
new file mode 100644
index 000000000..a3ffae51d
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/mainClient_8cpp.html
@@ -0,0 +1,216 @@
+
+
+
+
+
+mainClient.cpp File Reference
+
+
+
+
+
+
+
+
+
+
+
mainClient.cpp File Reference #include "slsDetectorUsers.h "
+
#include "detectorData.h "
+
#include <iostream>
+
#include <cstdlib>
+
+
Go to the source code of this file.
+
+
Detailed Description
+
This file is an example of how to implement the slsDetectorUsers class You can compile it linking it to the slsDetector library
+
g++ mainClient.cpp -L lib -lSlsDetector -L/usr/lib64/ -L lib2 -lzmq -pthread -lrt -lm -lstdc++
+
where,
+
lib is the location of libSlsDetector.so
+
lib2 is the location of the libzmq.a. [ libzmq.a is required only when using data call backs and enabling data streaming from receiver to client. It is linked in manual/manual-api from slsReceiverSoftware/include ]
+
+
Definition in file mainClient.cpp .
+
Function Documentation
+
+
+
+
+
+ int dataCallback
+ (
+ detectorData *
+ pData ,
+
+
+
+
+ int
+ iframe ,
+
+
+
+
+ int
+ isubframe ,
+
+
+
+
+ void *
+ pArg
+
+
+
+ )
+
+
+
+
+
+
Data Call back function defined
+
Parameters:
+
+ pData pointer to data structure received from the call back
+ iframe frame number of data passed
+ isubframe sub frame number of data passed ( only valid for EIGER in 32 bit mode)
+ pArg pointer to object
+
+
+
+
Returns: integer that is currently ignored
+
+
Definition at line 32 of file mainClient.cpp .
+
+
+
+
+
+
+
+
+ int main
+ (
+ int
+ argc ,
+
+
+
+
+ char **
+ argv
+
+
+
+ )
+
+
+
+
+
+
Example of a main program using the slsDetectorUsers class
+
+Arguments are optional
+argv[1] : Configuration File
+argv[2] : Measurement Setup File
+argv[3] : Detector Id (default is zero)
+
+
+
+
+
+if specified, set ID from argv[3]
+
+
+
+if specified, load configuration file (necessary at least the first time it is called to properly configure advanced settings in the shared memory)
+
+
+set detector in shared memory online (in case no config file was used)
+
+
+set receiver in shared memory online (in case no config file was used)
+
+
+registering data callback
+
+
+if receiver exists, enable data streaming from receiver to get the data
+
+
+create zmq sockets in client to enable data streaming in of data from receiver/different process
+
+
+ensuring detector status is idle before starting acquisition. exiting if not idle
+
+
+if provided, load detector settings
+
+
+
+returning when acquisition is finished or data are avilable
+
+
+
+
+
Definition at line 49 of file mainClient.cpp .
+
+
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/mainClient_8cpp_source.html b/manual/docs/html/slsDetectorUsersDocs/mainClient_8cpp_source.html
new file mode 100644
index 000000000..c6a60135e
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/mainClient_8cpp_source.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+mainClient.cpp Source File
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/mainReceiver_8cpp.html b/manual/docs/html/slsDetectorUsersDocs/mainReceiver_8cpp.html
new file mode 100644
index 000000000..cdb2484fb
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/mainReceiver_8cpp.html
@@ -0,0 +1,515 @@
+
+
+
+
+
+mainReceiver.cpp File Reference
+
+
+
+
+
+
+
+
+
+
+
mainReceiver.cpp File Reference #include "sls_receiver_defs.h"
+
#include "slsReceiverUsers.h "
+
#include <iostream>
+
#include <string.h>
+
#include <signal.h>
+
#include <cstdlib>
+
#include <sys/types.h>
+
#include <sys/wait.h>
+
#include <string>
+
#include <unistd.h>
+
#include <errno.h>
+
#include <syscall.h>
+
+
Go to the source code of this file.
+
+Defines
+#define PRINT_IN_COLOR (c, f,...) printf ("\033[%dm" f RESET, 30 + c+1, ##__VA_ARGS__)
+Functions
+void sigInterruptHandler (int p)
+void printHelp ()
+int StartAcq (char *filepath, char *filename, uint64_t fileindex, uint32_t datasize, void *p)
+void AcquisitionFinished (uint64_t frames, void *p)
+void GetData (uint64_t frameNumber, uint32_t expLength, uint32_t packetNumber, uint64_t bunchId, uint64_t timestamp, uint16_t modId, uint16_t xCoord, uint16_t yCoord, uint16_t zCoord, uint32_t debug, uint16_t roundRNumber, uint8_t detType, uint8_t version, char *datapointer, uint32_t datasize, void *p)
+int main (int argc, char *argv[])
+Variables
+bool keeprunning
+
+
Detailed Description
+
This file is an example of how to implement the slsReceiverUsers class You can compile it linking it to the slsReceiver library
+
g++ mainReceiver.cpp -L lib -lSlsReceiver -L/usr/lib64/ -L lib2 -lzmq -pthread -lrt -lm -lstdc++
+
where,
+
lib is the location of lSlsReceiver.so
+
lib2 is the location of the libzmq.a. [ libzmq.a is required only when using data call backs and enabling data streaming from receiver to client. It is linked in manual/manual-api from slsReceiverSoftware/include ]
+
+
Definition in file mainReceiver.cpp .
+
Define Documentation
+
+
+
+
+
+ #define PRINT_IN_COLOR
+ (
+ c,
+
+
+
+
+ f,
+
+
+
+
+ ...
+
+ )
+ printf ("\033[%dm" f RESET, 30 + c+1, ##__VA_ARGS__)
+
+
+
+
+
Define Colors to print data call back in different colors for different recievers
+
+
Definition at line 38 of file mainReceiver.cpp .
+
+
+
+
Function Documentation
+
+
+
+
+
+ void AcquisitionFinished
+ (
+ uint64_t
+ frames ,
+
+
+
+
+ void *
+ p
+
+
+
+ )
+
+
+
+
+
+
Acquisition Finished Call back
+
Parameters:
+
+ frames Number of frames caught
+ p pointer to object
+
+
+
+
+
Definition at line 85 of file mainReceiver.cpp .
+
+
+
+
+
+
+
+
+ void GetData
+ (
+ uint64_t
+ frameNumber ,
+
+
+
+
+ uint32_t
+ expLength ,
+
+
+
+
+ uint32_t
+ packetNumber ,
+
+
+
+
+ uint64_t
+ bunchId ,
+
+
+
+
+ uint64_t
+ timestamp ,
+
+
+
+
+ uint16_t
+ modId ,
+
+
+
+
+ uint16_t
+ xCoord ,
+
+
+
+
+ uint16_t
+ yCoord ,
+
+
+
+
+ uint16_t
+ zCoord ,
+
+
+
+
+ uint32_t
+ debug ,
+
+
+
+
+ uint16_t
+ roundRNumber ,
+
+
+
+
+ uint8_t
+ detType ,
+
+
+
+
+ uint8_t
+ version ,
+
+
+
+
+ char *
+ datapointer ,
+
+
+
+
+ uint32_t
+ datasize ,
+
+
+
+
+ void *
+ p
+
+
+
+ )
+
+
+
+
+
+
Get Receiver Data Call back Prints in different colors(for each receiver process) the different headers for each image call back.
+
Parameters:
+
+ frameNumber frame number
+ expLength real time exposure length (in 100ns) or sub frame number (Eiger 32 bit mode only)
+ packetNumber number of packets caught for this frame
+ bunchId bunch id from beamline
+ timestamp time stamp in 10MHz clock (not implemented for most)
+ modId module id (not implemented for most)
+ xCoord x coordinates (detector id in 1D)
+ yCoord y coordinates (not implemented)
+ zCoord z coordinates (not implemented)
+ debug debug values if any
+ roundRNumber (not implemented)
+ detType detector type see :: detectorType
+ version version of standard header (structure format)
+ datapointer pointer to data
+ datasize data size in bytes
+ p pointer to object
+
+
+
+
+
Definition at line 109 of file mainReceiver.cpp .
+
+
+
+
+
+
+
+
+ int main
+ (
+ int
+ argc ,
+
+
+
+
+ char *
+ argv []
+
+
+
+ )
+
+
+
+
+
+
Example of main program using the slsReceiverUsers class
+
+Defines in file for:
+Default Number of receivers is 1
+Default Start TCP port is 1954
+
+
+
+
+
+
+get number of receivers and start tcp port from command line arguments
+
+
+Catch signal SIGINT to close files and call destructors properly
+
+
+Ignore SIG_PIPE, prevents global signal handler, handle locally, instead of a server crashing due to client crash when writing, it just gives error
+
+
+loop over number of receivers
+
+
+fork process to create child process
+
+
+if fork failed, raise SIGINT and properly destroy all child processes
+
+
+
+
+register callbacks. remember to set file write enable to 0 (using the client) if we should not write files and you will write data using the callbacks
+
+
+Call back for start acquisition
+
+
+Call back for acquisition finished
+
+
+start tcp server thread
+
+
+as long as keeprunning is true (changes with Ctrl+C)
+
+
+
+Parent process ignores SIGINT (exits only when all child process exits)
+
+
+Print Ready and Instructions how to exit
+
+
+Parent process waits for all child processes to exit
+
+
+
+
Definition at line 132 of file mainReceiver.cpp .
+
+
+
+
+
+
+
+
+ void printHelp
+ (
+
+ )
+
+
+
+
+
+
prints usage of this example program
+
+
Definition at line 55 of file mainReceiver.cpp .
+
+
+
+
+
+
+
+
+ void sigInterruptHandler
+ (
+ int
+ p
+ )
+
+
+
+
+
+
Control+C Interrupt Handler Sets the variable keeprunning to false, to let all the processes know to exit properly
+
+
Definition at line 48 of file mainReceiver.cpp .
+
+
+
+
+
+
+
+
+ int StartAcq
+ (
+ char *
+ filepath ,
+
+
+
+
+ char *
+ filename ,
+
+
+
+
+ uint64_t
+ fileindex ,
+
+
+
+
+ uint32_t
+ datasize ,
+
+
+
+
+ void *
+ p
+
+
+
+ )
+
+
+
+
+
+
Start Acquisition Call back slsReceiver writes data if file write enabled. Users get data to write using call back if registerCallBackRawDataReady is registered.
+
Parameters:
+
+ filepath file path
+ filename file name
+ fileindex file index
+ datasize data size in bytes
+ p pointer to object
+
+
+
+
Returns: ignored
+
+
Definition at line 72 of file mainReceiver.cpp .
+
+
+
+
Variable Documentation
+
+
+
+
+
Variable is true to continue running, set to false upon interrupt
+
+
Definition at line 42 of file mainReceiver.cpp .
+
+
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/mainReceiver_8cpp_source.html b/manual/docs/html/slsDetectorUsersDocs/mainReceiver_8cpp_source.html
new file mode 100644
index 000000000..a6737f7ed
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/mainReceiver_8cpp_source.html
@@ -0,0 +1,244 @@
+
+
+
+
+
+mainReceiver.cpp Source File
+
+
+
+
+
+
+
+
+
+
+
+
mainReceiver.cpp Go to the documentation of this file. 00001
+ 00019 #include "sls_receiver_defs.h"
+ 00020 #include "slsReceiverUsers.h "
+ 00021
+ 00022 #include <iostream>
+ 00023 #include <string.h>
+ 00024 #include <signal.h>
+ 00025 #include <cstdlib>
+ 00026
+ 00027
+ 00028 #include <sys/types.h>
+ 00029 #include <sys/wait.h>
+ 00030 #include <string>
+ 00031 #include <unistd.h>
+ 00032 #include <errno.h>
+ 00033 #include <syscall.h>
+ 00034 using namespace std;
+ 00035
+ 00036
+00038 #define PRINT_IN_COLOR(c,f, ...) printf ("\033[%dm" f RESET, 30 + c+1, ##__VA_ARGS__)
+ 00039
+ 00040
+00042 bool keeprunning ;
+ 00043
+00048 void sigInterruptHandler (int p){
+ 00049 keeprunning = false ;
+ 00050 }
+ 00051
+00055 void printHelp () {
+ 00056 cprintf(RESET, "Usage:\n"
+ 00057 "./detReceiver [start_tcp_port] [num_receivers] [1 for call back, 0 for none]\n\n" );
+ 00058 exit(EXIT_FAILURE);
+ 00059 }
+ 00060
+00072 int StartAcq (char * filepath, char * filename, uint64_t fileindex, uint32_t datasize, void *p){
+ 00073 cprintf(BLUE, "#### StartAcq: filepath:%s filename:%s fileindex:%llu datasize:%u ####\n" ,
+ 00074 filepath, filename, fileindex, datasize);
+ 00075
+ 00076 cprintf(BLUE, "--StartAcq: returning 0\n" );
+ 00077 return 0;
+ 00078 }
+ 00079
+00085 void AcquisitionFinished (uint64_t frames, void *p){
+ 00086 cprintf(BLUE, "#### AcquisitionFinished: frames:%llu ####\n" ,frames);
+ 00087 }
+ 00088
+00109 void GetData (uint64_t frameNumber, uint32_t expLength, uint32_t packetNumber, uint64_t bunchId, uint64_t timestamp,
+ 00110 uint16_t modId, uint16_t xCoord, uint16_t yCoord, uint16_t zCoord, uint32_t debug, uint16_t roundRNumber, uint8_t detType, uint8_t version,
+ 00111 char * datapointer, uint32_t datasize, void * p){
+ 00112
+ 00113 PRINT_IN_COLOR (modId?modId:xCoord,
+ 00114 "#### %d GetData: ####\n"
+ 00115 "frameNumber: %llu\t\texpLength: %u\t\tpacketNumber: %u\t\tbunchId: %llu\t\ttimestamp: %llu\t\tmodId: %u\t\t"
+ 00116 "xCoord: %u\t\tyCoord: %u\t\tzCoord: %u\t\tdebug: %u\t\troundRNumber: %u\t\tdetType: %u\t\t"
+ 00117 "version: %u\t\tfirstbytedata: 0x%x\t\tdatsize: %u\n\n" ,
+ 00118 xCoord, frameNumber, expLength, packetNumber, bunchId, timestamp, modId,
+ 00119 xCoord, yCoord, zCoord, debug, roundRNumber, detType, version,
+ 00120 ((uint8_t)(*((uint8_t*)(datapointer)))), datasize);
+ 00121 }
+ 00122
+ 00123
+ 00124
+00132 int main (int argc, char *argv[]) {
+ 00133
+ 00135 int numReceivers = 1;
+ 00136 int startTCPPort = 1954;
+ 00137 int withCallback = 0;
+ 00138 keeprunning = true ;
+ 00139
+ 00141 if ( (argc != 4) || (!sscanf(argv[1],"%d" , &startTCPPort)) || (!sscanf(argv[2],"%d" , &numReceivers)) || (!sscanf(argv[3],"%d" , &withCallback)) )
+ 00142 printHelp ();
+ 00143 cprintf(BLUE,"Parent Process Created [ Tid: %ld ]\n" , (long )syscall(SYS_gettid));
+ 00144 cprintf(RESET, "Number of Receivers: %d\n" , numReceivers);
+ 00145 cprintf(RESET, "Start TCP Port: %d\n" , startTCPPort);
+ 00146 cprintf(RESET, "Callback Enable: %d\n" , withCallback);
+ 00147
+ 00148
+ 00149
+ 00151 struct sigaction sa;
+ 00152 sa.sa_flags=0;
+ 00153 sa.sa_handler=sigInterruptHandler ;
+ 00154 sigemptyset(&sa.sa_mask);
+ 00155 if (sigaction(SIGINT, &sa, NULL) == -1) {
+ 00156 cprintf(RED, "Could not set handler function for SIGINT\n" );
+ 00157 }
+ 00158
+ 00161 struct sigaction asa;
+ 00162 asa.sa_flags=0;
+ 00163 asa.sa_handler=SIG_IGN;
+ 00164 sigemptyset(&asa.sa_mask);
+ 00165 if (sigaction(SIGPIPE, &asa, NULL) == -1) {
+ 00166 cprintf(RED, "Could not set handler function for SIGPIPE\n" );
+ 00167 }
+ 00168
+ 00169
+ 00171 for (int i = 0; i < numReceivers; ++i) {
+ 00172
+ 00174 pid_t pid = fork();
+ 00175
+ 00177 if (pid < 0) {
+ 00178 cprintf(RED,"fork() failed. Killing all the receiver objects\n" );
+ 00179 raise (SIGINT);
+ 00180 }
+ 00181
+ 00183 else if (pid == 0) {
+ 00184 cprintf(BLUE,"Child process %d [ Tid: %ld ]\n" , i, (long )syscall(SYS_gettid));
+ 00185
+ 00186 char temp[10];
+ 00187 sprintf(temp,"%d" ,startTCPPort + i);
+ 00188 char * args[] = {(char *)"ignored" , (char *)"--rx_tcpport" , temp};
+ 00189 int ret = slsReceiverDefs::OK;
+ 00191 slsReceiverUsers *receiver = new slsReceiverUsers (3, args, ret);
+ 00192 if (ret==slsReceiverDefs::FAIL){
+ 00193 delete receiver;
+ 00194 exit(EXIT_FAILURE);
+ 00195 }
+ 00196
+ 00197
+ 00200 if (withCallback) {
+ 00201
+ 00203 cprintf(BLUE, "Registering StartAcq()\n" );
+ 00204 receiver->registerCallBackStartAcquisition (StartAcq , NULL);
+ 00205
+ 00207 cprintf(BLUE, "Registering AcquisitionFinished()\n" );
+ 00208 receiver->registerCallBackAcquisitionFinished (AcquisitionFinished , NULL);
+ 00209
+ 00210
+ 00211 cprintf(BLUE, "Registering GetData() \n" );
+ 00212 receiver->registerCallBackRawDataReady (GetData ,NULL);
+ 00213 }
+ 00214
+ 00215
+ 00216
+ 00218 if (receiver->start () == slsReceiverDefs::FAIL){
+ 00219 delete receiver;
+ 00220 cprintf(BLUE,"Exiting Child Process [ Tid: %ld ]\n" , (long )syscall(SYS_gettid));
+ 00221 exit(EXIT_FAILURE);
+ 00222 }
+ 00223
+ 00225 while (keeprunning )
+ 00226 pause();
+ 00228 delete receiver;
+ 00229 cprintf(BLUE,"Exiting Child Process [ Tid: %ld ]\n" , (long )syscall(SYS_gettid));
+ 00230 exit(EXIT_SUCCESS);
+ 00231 break ;
+ 00232 }
+ 00233 }
+ 00234
+ 00236 sa.sa_flags=0;
+ 00237 sa.sa_handler=SIG_IGN;
+ 00238 sigemptyset(&sa.sa_mask);
+ 00239 if (sigaction(SIGINT, &sa, NULL) == -1) {
+ 00240 cprintf(RED, "Could not set handler function for SIGINT\n" );
+ 00241 }
+ 00242
+ 00243
+ 00245 cout << "Ready ... " << endl;
+ 00246 cprintf(RESET, "\n[ Press \'Ctrl+c\' to exit ]\n" );
+ 00247
+ 00249 for (;;) {
+ 00250 pid_t childPid = waitpid (-1, NULL, 0);
+ 00251
+ 00252
+ 00253 if (childPid == -1) {
+ 00254 if (errno == ECHILD) {
+ 00255 cprintf(GREEN,"All Child Processes have been closed\n" );
+ 00256 break ;
+ 00257 } else {
+ 00258 cprintf(RED, "Unexpected error from waitpid(): (%s)\n" ,strerror(errno));
+ 00259 break ;
+ 00260 }
+ 00261 }
+ 00262
+ 00263
+ 00264 cprintf(BLUE,"Exiting Child Process [ Tid: %ld ]\n" , (long int ) childPid);
+ 00265 }
+ 00266
+ 00267 cout << "Goodbye!" << endl;
+ 00268 return 0;
+ 00269 }
+ 00270
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_61.html b/manual/docs/html/slsDetectorUsersDocs/search/all_61.html
new file mode 100644
index 000000000..f4efa826f
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_61.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_64.html b/manual/docs/html/slsDetectorUsersDocs/search/all_64.html
new file mode 100644
index 000000000..a009f474d
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_64.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_65.html b/manual/docs/html/slsDetectorUsersDocs/search/all_65.html
new file mode 100644
index 000000000..ce9dbe0d3
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_65.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
+
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_66.html b/manual/docs/html/slsDetectorUsersDocs/search/all_66.html
new file mode 100644
index 000000000..5cf2b5287
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_66.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_67.html b/manual/docs/html/slsDetectorUsersDocs/search/all_67.html
new file mode 100644
index 000000000..5c947b550
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_67.html
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
getADC
+
slsDetectorUsers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_69.html b/manual/docs/html/slsDetectorUsersDocs/search/all_69.html
new file mode 100644
index 000000000..a7adf2d85
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_69.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_6b.html b/manual/docs/html/slsDetectorUsersDocs/search/all_6b.html
new file mode 100644
index 000000000..01472615a
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_6b.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_6d.html b/manual/docs/html/slsDetectorUsersDocs/search/all_6d.html
new file mode 100644
index 000000000..11042fd7b
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_6d.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_6e.html b/manual/docs/html/slsDetectorUsersDocs/search/all_6e.html
new file mode 100644
index 000000000..0fefdc2d9
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_6e.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_70.html b/manual/docs/html/slsDetectorUsersDocs/search/all_70.html
new file mode 100644
index 000000000..99bc4bd4c
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_70.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_72.html b/manual/docs/html/slsDetectorUsersDocs/search/all_72.html
new file mode 100644
index 000000000..498276d5d
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_72.html
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_73.html b/manual/docs/html/slsDetectorUsersDocs/search/all_73.html
new file mode 100644
index 000000000..9b92528d5
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_73.html
@@ -0,0 +1,276 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
+
+
+
setDAC
+
slsDetectorUsers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
start
+
slsReceiverUsers
+
+
+
+
+
+
+
+
+
stop
+
slsReceiverUsers
+
+
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_76.html b/manual/docs/html/slsDetectorUsersDocs/search/all_76.html
new file mode 100644
index 000000000..05a658757
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_76.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_7e.html b/manual/docs/html/slsDetectorUsersDocs/search/all_7e.html
new file mode 100644
index 000000000..5e3404eff
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/all_7e.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/classes_64.html b/manual/docs/html/slsDetectorUsersDocs/search/classes_64.html
new file mode 100644
index 000000000..d669f7d23
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/classes_64.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/classes_73.html b/manual/docs/html/slsDetectorUsersDocs/search/classes_73.html
new file mode 100644
index 000000000..32688c5c4
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/classes_73.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/close.png b/manual/docs/html/slsDetectorUsersDocs/search/close.png
new file mode 100644
index 000000000..9342d3dfe
Binary files /dev/null and b/manual/docs/html/slsDetectorUsersDocs/search/close.png differ
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/defines_70.html b/manual/docs/html/slsDetectorUsersDocs/search/defines_70.html
new file mode 100644
index 000000000..e1940c742
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/defines_70.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/files_64.html b/manual/docs/html/slsDetectorUsersDocs/search/files_64.html
new file mode 100644
index 000000000..95c4287a4
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/files_64.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/files_6d.html b/manual/docs/html/slsDetectorUsersDocs/search/files_6d.html
new file mode 100644
index 000000000..e6a9d9453
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/files_6d.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/files_73.html b/manual/docs/html/slsDetectorUsersDocs/search/files_73.html
new file mode 100644
index 000000000..e4a2e2712
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/files_73.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_61.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_61.html
new file mode 100644
index 000000000..316e50454
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_61.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_64.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_64.html
new file mode 100644
index 000000000..750b6dbdc
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_64.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_65.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_65.html
new file mode 100644
index 000000000..c61401f86
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_65.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_66.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_66.html
new file mode 100644
index 000000000..5f1a59a29
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_66.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_67.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_67.html
new file mode 100644
index 000000000..5c947b550
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_67.html
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
getADC
+
slsDetectorUsers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_69.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_69.html
new file mode 100644
index 000000000..a7adf2d85
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_69.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_6d.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_6d.html
new file mode 100644
index 000000000..8f08eeacf
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_6d.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_70.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_70.html
new file mode 100644
index 000000000..19f95ccf9
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_70.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_72.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_72.html
new file mode 100644
index 000000000..f5a7afed9
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_72.html
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_73.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_73.html
new file mode 100644
index 000000000..e7d3784db
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_73.html
@@ -0,0 +1,260 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
+
+
+
setDAC
+
slsDetectorUsers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
start
+
slsReceiverUsers
+
+
+
+
+
+
+
+
+
stop
+
slsReceiverUsers
+
+
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_7e.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_7e.html
new file mode 100644
index 000000000..5e3404eff
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_7e.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/nomatches.html b/manual/docs/html/slsDetectorUsersDocs/search/nomatches.html
new file mode 100644
index 000000000..b1ded27e9
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/nomatches.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/search.css b/manual/docs/html/slsDetectorUsersDocs/search/search.css
new file mode 100644
index 000000000..d263b9724
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/search.css
@@ -0,0 +1,198 @@
+/*---------------- Search Box */
+
+#MSearchBox {
+ padding: 0px;
+ margin: 0px;
+ border: none;
+ border: 1px solid #84B0C7;
+ white-space: nowrap;
+ -moz-border-radius: 8px;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+ -webkit-border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+}
+#MSearchField {
+ font: 9pt Arial, Verdana, sans-serif;
+ color: #999999;
+ background-color: #FFFFFF;
+ font-style: normal;
+ cursor: text;
+ padding: 1px 1px;
+ margin: 0px 6px 0px 0px;
+ border: none;
+ outline: none;
+ vertical-align: middle;
+}
+.MSearchBoxActive #MSearchField {
+ color: #000000;
+}
+#MSearchSelect {
+ float : none;
+ display : inline;
+ background : none;
+ font: 9pt Verdana, sans-serif;
+ border: none;
+ margin: 0px 0px 0px 6px;
+ vertical-align: middle;
+ padding: 0px 0px;
+}
+
+#MSearchClose {
+ float : none;
+ display : none;
+ background : none;
+ border: none;
+ margin: 0px 4px 0px 0px;
+ padding: 0px 0px;
+ outline: none;
+}
+
+#MSearchCloseImg {
+ vertical-align: middle;
+}
+
+.MSearchBoxLeft {
+ display: block;
+ text-align: left;
+ float: left;
+ margin-left: 6px;
+}
+.MSearchBoxRight {
+ display: block;
+ float: right;
+ text-align: right;
+ margin-right: 6px;
+}
+.MSearchBoxSpacer {
+ font-size: 0px;
+ clear: both;
+}
+.MSearchBoxRow {
+ font-size: 0px;
+ clear: both;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #A0A0A0;
+ background-color: #FAFAFA;
+ z-index: 1;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ }
+.SelectItem {
+ font: 8pt Arial, Verdana, sans-serif;
+ padding-left: 2px;
+ padding-right: 12px;
+ border: 0px;
+}
+span.SelectionMark {
+ margin-right: 4px;
+ font-family: monospace;
+ outline-style: none;
+ text-decoration: none;
+}
+a.SelectItem {
+ display: block;
+ outline-style: none;
+ color: #000000;
+ text-decoration: none;
+ padding-left: 6px;
+ padding-right: 12px;
+}
+a.SelectItem:focus,
+a.SelectItem:active {
+ color: #000000;
+ outline-style: none;
+ text-decoration: none;
+}
+a.SelectItem:hover {
+ color: #FFFFFF;
+ background-color: #2A50E4;
+ outline-style: none;
+ text-decoration: none;
+ cursor: pointer;
+ display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+ width: 60ex;
+ height: 15em;
+ }
+#MSearchResultsWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #000000;
+ background-color: #EEF3F5;
+ }
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+ clear:both;
+ padding-bottom: 15px;
+}
+
+.SREntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+}
+.SRPage .SREntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+}
+body.SRPage {
+ margin: 5px 2px;
+}
+
+.SRChildren {
+ padding-left: 3ex; padding-bottom: .5em
+}
+.SRPage .SRChildren {
+ display: none;
+}
+.SRSymbol {
+ font-weight: bold; color: #153788;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRScope {
+ display: block;
+ color: #153788;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+ text-decoration: underline;
+}
+
+.SRPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+}
+
+.SRResult {
+ display: none;
+}
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/search.js b/manual/docs/html/slsDetectorUsersDocs/search/search.js
new file mode 100644
index 000000000..ceeb586fe
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/search.js
@@ -0,0 +1,736 @@
+// Search script generated by doxygen
+// Copyright (C) 2009 by Dimitri van Heesch.
+
+// The code in this file is loosly based on main.js, part of Natural Docs,
+// which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL.
+
+var indexSectionsWithContent =
+{
+ 0: "000000000000000000000000000000000000000000000000000000000000000001001111010101101011001000000010",
+ 1: "000000000000000000000000000000000000000000000000000000000000000000001000000000000001000000000000",
+ 2: "000000000000000000000000000000000000000000000000000000000000000000001000000001000001000000000000",
+ 3: "000000000000000000000000000000000000000000000000000000000000000001001111010001001011000000000010",
+ 4: "000000000000000000000000000000000000000000000000000000000000000001000110000100101010001000000000",
+ 5: "000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000"
+};
+
+var indexSectionNames =
+{
+ 0: "all",
+ 1: "classes",
+ 2: "files",
+ 3: "functions",
+ 4: "variables",
+ 5: "defines"
+};
+
+function convertToId(search)
+{
+ var result = '';
+ for (i=0;i do a search
+ {
+ this.Search();
+ }
+ }
+
+ this.OnSearchSelectKey = function(evt)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 && this.searchIndex0) // Up
+ {
+ this.searchIndex--;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==13 || e.keyCode==27)
+ {
+ this.OnSelectItem(this.searchIndex);
+ this.CloseSelectionWindow();
+ this.DOMSearchField().focus();
+ }
+ return false;
+ }
+
+ // --------- Actions
+
+ // Closes the results window.
+ this.CloseResultsWindow = function()
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.Activate(false);
+ }
+
+ this.CloseSelectionWindow = function()
+ {
+ this.DOMSearchSelectWindow().style.display = 'none';
+ }
+
+ // Performs a search.
+ this.Search = function()
+ {
+ this.keyTimeout = 0;
+
+ // strip leading whitespace
+ var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+ var code = searchValue.toLowerCase().charCodeAt(0);
+ var hexCode;
+ if (code<16)
+ {
+ hexCode="0"+code.toString(16);
+ }
+ else
+ {
+ hexCode=code.toString(16);
+ }
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ if (indexSectionsWithContent[this.searchIndex].charAt(code-32) == '1')
+ {
+ resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else // nothing available for this search term
+ {
+ resultsPage = this.resultsPath + '/nomatches.html';
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ }
+
+ window.frames.MSearchResults.location.href = resultsPageWithSearch;
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (domPopupSearchResultsWindow.style.display!='block')
+ {
+ var domSearchBox = this.DOMSearchBox();
+ this.DOMSearchClose().style.display = 'inline';
+ if (this.insideFrame)
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ domPopupSearchResultsWindow.style.position = 'relative';
+ domPopupSearchResultsWindow.style.display = 'block';
+ var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+ domPopupSearchResultsWindow.style.width = width + 'px';
+ domPopupSearchResults.style.width = width + 'px';
+ }
+ else
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ }
+ }
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ }
+
+ // -------- Activation Functions
+
+ // Activates or deactivates the search panel, resetting things to
+ // their default values if necessary.
+ this.Activate = function(isActive)
+ {
+ if (isActive || // open it
+ this.DOMPopupSearchResultsWindow().style.display == 'block'
+ )
+ {
+ this.DOMSearchBox().className = 'MSearchBoxActive';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+ {
+ searchField.value = '';
+ this.searchActive = true;
+ }
+ }
+ else if (!isActive) // directly remove the panel
+ {
+ this.DOMSearchBox().className = 'MSearchBoxInactive';
+ this.DOMSearchField().value = this.searchLabel;
+ this.searchActive = false;
+ this.lastSearchValue = ''
+ this.lastResultsPage = '';
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+ // The number of matches from the last run of .
+ this.lastMatchCount = 0;
+ this.lastKey = 0;
+ this.repeatOn = false;
+
+ // Toggles the visibility of the passed element ID.
+ this.FindChildElement = function(id)
+ {
+ var parentElement = document.getElementById(id);
+ var element = parentElement.firstChild;
+
+ while (element && element!=parentElement)
+ {
+ if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+ {
+ return element;
+ }
+
+ if (element.nodeName == 'DIV' && element.hasChildNodes())
+ {
+ element = element.firstChild;
+ }
+ else if (element.nextSibling)
+ {
+ element = element.nextSibling;
+ }
+ else
+ {
+ do
+ {
+ element = element.parentNode;
+ }
+ while (element && element!=parentElement && !element.nextSibling);
+
+ if (element && element!=parentElement)
+ {
+ element = element.nextSibling;
+ }
+ }
+ }
+ }
+
+ this.Toggle = function(id)
+ {
+ var element = this.FindChildElement(id);
+ if (element)
+ {
+ if (element.style.display == 'block')
+ {
+ element.style.display = 'none';
+ }
+ else
+ {
+ element.style.display = 'block';
+ }
+ }
+ }
+
+ // Searches for the passed string. If there is no parameter,
+ // it takes it from the URL query.
+ //
+ // Always returns true, since other documents may try to call it
+ // and that may or may not be possible.
+ this.Search = function(search)
+ {
+ if (!search) // get search word from URL
+ {
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading '?'
+ search = unescape(search);
+ }
+
+ search = search.replace(/^ +/, ""); // strip leading spaces
+ search = search.replace(/ +$/, ""); // strip trailing spaces
+ search = search.toLowerCase();
+ search = convertToId(search);
+
+ var resultRows = document.getElementsByTagName("div");
+ var matches = 0;
+
+ var i = 0;
+ while (i < resultRows.length)
+ {
+ var row = resultRows.item(i);
+ if (row.className == "SRResult")
+ {
+ var rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+ if (search.length<=rowMatchName.length &&
+ rowMatchName.substr(0, search.length)==search)
+ {
+ row.style.display = 'block';
+ matches++;
+ }
+ else
+ {
+ row.style.display = 'none';
+ }
+ }
+ i++;
+ }
+ document.getElementById("Searching").style.display='none';
+ if (matches == 0) // no results
+ {
+ document.getElementById("NoMatches").style.display='block';
+ }
+ else // at least one result
+ {
+ document.getElementById("NoMatches").style.display='none';
+ }
+ this.lastMatchCount = matches;
+ return true;
+ }
+
+ // return the first item with index index or higher that is visible
+ this.NavNext = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index++;
+ }
+ return focusItem;
+ }
+
+ this.NavPrev = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index--;
+ }
+ return focusItem;
+ }
+
+ this.ProcessKeys = function(e)
+ {
+ if (e.type == "keydown")
+ {
+ this.repeatOn = false;
+ this.lastKey = e.keyCode;
+ }
+ else if (e.type == "keypress")
+ {
+ if (!this.repeatOn)
+ {
+ if (this.lastKey) this.repeatOn = true;
+ return false; // ignore first keypress after keydown
+ }
+ }
+ else if (e.type == "keyup")
+ {
+ this.lastKey = 0;
+ this.repeatOn = false;
+ }
+ return this.lastKey!=0;
+ }
+
+ this.Nav = function(evt,itemIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ var newIndex = itemIndex-1;
+ var focusItem = this.NavPrev(newIndex);
+ if (focusItem)
+ {
+ var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+ if (child && child.style.display == 'block') // children visible
+ {
+ var n=0;
+ var tmpElem;
+ while (1) // search for last child
+ {
+ tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+ if (tmpElem)
+ {
+ focusItem = tmpElem;
+ }
+ else // found it!
+ {
+ break;
+ }
+ n++;
+ }
+ }
+ }
+ if (focusItem)
+ {
+ focusItem.focus();
+ }
+ else // return focus to search field
+ {
+ parent.document.getElementById("MSearchField").focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = itemIndex+1;
+ var focusItem;
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem && elem.style.display == 'block') // children visible
+ {
+ focusItem = document.getElementById('Item'+itemIndex+'_c0');
+ }
+ if (!focusItem) focusItem = this.NavNext(newIndex);
+ if (focusItem) focusItem.focus();
+ }
+ else if (this.lastKey==39) // Right
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'block';
+ }
+ else if (this.lastKey==37) // Left
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'none';
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+
+ this.NavChild = function(evt,itemIndex,childIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ if (childIndex>0)
+ {
+ var newIndex = childIndex-1;
+ document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+ }
+ else // already at first child, jump to parent
+ {
+ document.getElementById('Item'+itemIndex).focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = childIndex+1;
+ var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+ if (!elem) // last child, jump to parent next parent
+ {
+ elem = this.NavNext(itemIndex+1);
+ }
+ if (elem)
+ {
+ elem.focus();
+ }
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/search.png b/manual/docs/html/slsDetectorUsersDocs/search/search.png
new file mode 100644
index 000000000..9dd2396db
Binary files /dev/null and b/manual/docs/html/slsDetectorUsersDocs/search/search.png differ
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_61.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_61.html
new file mode 100644
index 000000000..1ed70dee0
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_61.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_65.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_65.html
new file mode 100644
index 000000000..9a022ad1b
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_65.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_66.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_66.html
new file mode 100644
index 000000000..a86fadcce
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_66.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_6b.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_6b.html
new file mode 100644
index 000000000..01472615a
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_6b.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_6e.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_6e.html
new file mode 100644
index 000000000..0fefdc2d9
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_6e.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_70.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_70.html
new file mode 100644
index 000000000..ccc90f5d4
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_70.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_72.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_72.html
new file mode 100644
index 000000000..ed0f1849e
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_72.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_76.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_76.html
new file mode 100644
index 000000000..05a658757
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_76.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
Loading...
+
+
Searching...
+
No Matches
+
+
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/slsDetectorUsers_8h.html b/manual/docs/html/slsDetectorUsersDocs/slsDetectorUsers_8h.html
new file mode 100644
index 000000000..64529f186
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/slsDetectorUsers_8h.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+slsDetectorUsers.h File Reference
+
+
+
+
+
+
+
+
+
+
+
slsDetectorUsers.h File Reference #include <stdint.h>
+
#include <string>
+
+
Go to the source code of this file.
+
+Classes
+class slsDetectorUsers
+ Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc. More...
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/slsDetectorUsers_8h_source.html b/manual/docs/html/slsDetectorUsersDocs/slsDetectorUsers_8h_source.html
new file mode 100644
index 000000000..7f68befd5
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/slsDetectorUsers_8h_source.html
@@ -0,0 +1,333 @@
+
+
+
+
+
+slsDetectorUsers.h Source File
+
+
+
+
+
+
+
+
+
+
+
+
slsDetectorUsers.h Go to the documentation of this file. 00001 #ifndef SLS_DETECTOR_USERS_H
+ 00002 #define SLS_DETECTOR_USERS_H
+ 00003
+ 00004
+ 00005
+ 00016 class detectorData ;
+ 00017 class multiSlsDetector;
+ 00018 class multiSlsDetectorCommand;
+ 00019
+ 00020
+ 00021 #include <stdint.h>
+ 00022 #include <string>
+ 00023
+ 00024
+ 00025 using namespace std;
+ 00026
+ 00027
+ 00028
+ 00029
+ 00030
+ 00031
+ 00032
+ 00033
+00085 class slsDetectorUsers
+ 00086 {
+ 00087
+ 00088 public :
+ 00089
+ 00091 slsDetectorUsers (int id =0);
+ 00092
+ 00093
+ 00095 virtual ~slsDetectorUsers ();
+ 00096
+ 00097
+ 00098
+ 00103 string getDetectorDeveloper ();
+ 00104
+ 00105
+ 00106
+ 00111 int setOnline (int const online=-1);
+ 00112
+ 00117 int setReceiverOnline (int const online=-1);
+ 00118
+ 00119
+ 00124 void startMeasurement ();
+ 00125
+ 00130 int stopMeasurement ();
+ 00131
+ 00136 int getDetectorStatus ();
+ 00137
+ 00141 string getFilePath ();
+ 00142
+ 00148 string setFilePath (string s);
+ 00149
+ 00154 string getFileName ();
+ 00155
+ 00162 string setFileName (string s);
+ 00163
+ 00168 int getFileIndex ();
+ 00169
+ 00175 int setFileIndex (int i);
+ 00176
+ 00181 string getFlatFieldCorrectionDir ();
+ 00182
+ 00188 string setFlatFieldCorrectionDir (string dir);
+ 00189
+ 00194 string getFlatFieldCorrectionFile ();
+ 00195
+ 00201 int setFlatFieldCorrectionFile (string fname="" );
+ 00202
+ 00203
+ 00204
+ 00210 int enableFlatFieldCorrection (int i=-1);
+ 00211
+ 00217 int enableCountRateCorrection (int i=-1);
+ 00218
+ 00224 int enablePixelMaskCorrection (int i=-1);
+ 00225
+ 00231 int enableAngularConversion (int i=-1);
+ 00232
+ 00235 int enableWriteToFile (int i=-1);
+ 00236
+ 00243 int setPositions (int nPos, double *pos);
+ 00244
+ 00250 int getPositions (double *pos=NULL);
+ 00251
+ 00260 int setDetectorSize (int x0=-1, int y0=-1, int nx=-1, int ny=-1);
+ 00261
+ 00262
+ 00271 int getDetectorSize (int &x0, int &y0, int &nx, int &ny);
+ 00280 int getMaximumDetectorSize (int &nx, int &ny);
+ 00281
+ 00282
+ 00288 int setBitDepth (int i=-1);
+ 00289
+ 00290
+ 00291
+ 00297 int setSettings (int isettings=-1);
+ 00298
+ 00303 int getThresholdEnergy ();
+ 00304
+ 00305
+ 00311 int setThresholdEnergy (int e_eV);
+ 00312
+ 00313
+ 00321 double setExposureTime (double t=-1, bool inseconds=false );
+ 00322
+ 00329 double setExposurePeriod (double t=-1, bool inseconds=false );
+ 00330
+ 00337 double setDelayAfterTrigger (double t=-1, bool inseconds=false );
+ 00338
+ 00344 int64_t setNumberOfGates (int64_t t=-1);
+ 00345
+ 00351 int64_t setNumberOfFrames (int64_t t=-1);
+ 00352
+ 00358 int64_t setNumberOfCycles (int64_t t=-1);
+ 00359
+ 00360
+ 00366 int setTimingMode (int pol=-1);
+ 00367
+ 00373 int readConfigurationFile (string const fname);
+ 00374
+ 00375
+ 00382 int dumpDetectorSetup (string const fname);
+ 00389 int retrieveDetectorSetup (string const fname);
+ 00390
+ 00395 string getDetectorType ();
+ 00396
+ 00402 int setReceiverMode (int n=-1);
+ 00403
+ 00409 void registerDataCallback (int ( *userCallback)(detectorData * d, int f, int s, void *), void *pArg);
+ 00410
+ 00416 void registerRawDataCallback (int ( *userCallback)(double * p, int n, void *), void *pArg);
+ 00417
+ 00423 virtual void initDataset (int refresh);
+ 00424
+ 00425
+ 00436 virtual void addFrame (double *data, double pos, double i0, double t, string fname, double var);
+ 00437
+ 00446 virtual void finalizeDataset (double *a, double *v, double *e, int &np);
+ 00447
+ 00448
+ 00453 int enableDataStreamingFromReceiver (int i=-1);
+ 00454
+ 00460 int enableDataStreamingToClient (int i=-1);
+ 00461
+ 00468 int setReceiverDataStreamingOutPort (int i=-1);
+ 00469
+ 00476 int setClientDataStreamingInPort (int i=-1);
+ 00477
+ 00482 int64_t getModuleFirmwareVersion ();
+ 00483
+ 00489 int64_t getModuleSerialNumber (int imod=-1);
+ 00490
+ 00495 int64_t getDetectorFirmwareVersion ();
+ 00496
+ 00501 int64_t getDetectorSerialNumber ();
+ 00502
+ 00507 int64_t getDetectorSoftwareVersion ();
+ 00508
+ 00513 int64_t getThisSoftwareVersion ();
+ 00514
+ 00520 void registerAcquisitionFinishedCallback (int ( *func)(double ,int , void *), void *pArg);
+ 00521
+ 00527 void registerGetPositionCallback ( double (*func)(void *),void *arg);
+ 00532 void registerConnectChannelsCallback ( int (*func)(void *),void *arg);
+ 00537 void registerDisconnectChannelsCallback ( int (*func)(void *),void *arg);
+ 00542 void registerGoToPositionCallback ( int (*func)(double ,void *),void *arg);
+ 00547 void registerGoToPositionNoWaitCallback ( int (*func)(double ,void *),void *arg);
+ 00552 void registerGetI0Callback ( double (*func)(int ,void *),void *arg);
+ 00553
+ 00561 string putCommand (int narg, char *args[], int pos=-1);
+ 00562
+ 00570 string getCommand (int narg, char *args[], int pos=-1);
+ 00571
+ 00572
+ 00573
+ 00574
+ 00575
+ 00576
+ 00582 int setClockDivider (int value);
+ 00583
+ 00589 int setParallelMode (int value);
+ 00590
+ 00597 int setAllTrimbits (int val, int id = -1);
+ 00598
+ 00606 int setDAC (string dac, int val, int id = -1);
+ 00607
+ 00614 int getADC (string adc, int id = -1);
+ 00615
+ 00620 int startReceiver ();
+ 00621
+ 00626 int stopReceiver ();
+ 00627
+ 00634 int startAcquisition ();
+ 00635
+ 00640 int stopAcquisition ();
+ 00641
+ 00647 int setReceiverSilentMode (int i);
+ 00648
+ 00654 int setHighVoltage (int i);
+ 00655
+ 00656
+ 00657
+ 00658
+ 00659
+ 00660
+ 00661
+00666 static string runStatusType (int s){ \
+ 00667 switch (s) { \
+ 00668 case 0: return string("idle" ); \
+ 00669 case 1: return string("error" ); \
+ 00670 case 2: return string("waiting" ); \
+ 00671 case 3: return string("finished" ); \
+ 00672 case 4: return string("data" ); \
+ 00673 case 5: return string("running" ); \
+ 00674 default : return string("unknown" ); \
+ 00675 }};
+ 00676
+ 00677
+ 00678
+00684 static int getDetectorSettings (string s){ \
+ 00685 if (s=="standard" ) return 0; \
+ 00686 if (s=="fast" ) return 1; \
+ 00687 if (s=="highgain" ) return 2; \
+ 00688 if (s=="dynamicgain" ) return 3; \
+ 00689 if (s=="lowgain" ) return 4; \
+ 00690 if (s=="mediumgain" ) return 5; \
+ 00691 if (s=="veryhighgain" ) return 6; \
+ 00692 return -1; };
+ 00693
+00698 static string getDetectorSettings (int s){\
+ 00699 switch (s) { \
+ 00700 case 0: return string("standard" );\
+ 00701 case 1: return string("fast" );\
+ 00702 case 2: return string("highgain" );\
+ 00703 case 3: return string("dynamicgain" ); \
+ 00704 case 4: return string("lowgain" ); \
+ 00705 case 5: return string("mediumgain" ); \
+ 00706 case 6: return string("veryhighgain" ); \
+ 00707 default : return string("undefined" ); \
+ 00708 }};
+ 00709
+ 00710
+ 00711
+00718 static string getTimingMode (int f){ \
+ 00719 switch (f) { \
+ 00720 case 0: return string( "auto" ); \
+ 00721 case 1: return string("trigger" ); \
+ 00722 case 2: return string("ro_trigger" ); \
+ 00723 case 3: return string("gating" ); \
+ 00724 case 4: return string("triggered_gating" ); \
+ 00725 default : return string( "unknown" ); \
+ 00726 } };
+ 00727
+00734 static int getTimingMode (string s){ \
+ 00735 if (s== "auto" ) return 0; \
+ 00736 if (s== "trigger" ) return 1; \
+ 00737 if (s== "ro_trigger" ) return 2; \
+ 00738 if (s== "gating" ) return 3; \
+ 00739 if (s== "triggered_gating" ) return 4; \
+ 00740 return -1; };
+ 00741
+ 00742
+ 00743 private :
+ 00744 multiSlsDetector *myDetector;
+ 00745 multiSlsDetectorCommand *myCmd;
+ 00746 };
+ 00747
+ 00748 #endif
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/slsReceiverUsers_8h.html b/manual/docs/html/slsDetectorUsersDocs/slsReceiverUsers_8h.html
new file mode 100644
index 000000000..5b9cea44f
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/slsReceiverUsers_8h.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+slsReceiverUsers.h File Reference
+
+
+
+
+
+
+
+
+
+
+
slsReceiverUsers.h File Reference #include <stdio.h>
+
#include <stdint.h>
+
+
Go to the source code of this file.
+
+Classes
+class slsReceiverUsers
+ Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data. More...
+
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/slsReceiverUsers_8h_source.html b/manual/docs/html/slsDetectorUsersDocs/slsReceiverUsers_8h_source.html
new file mode 100644
index 000000000..a00dad193
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/slsReceiverUsers_8h_source.html
@@ -0,0 +1,100 @@
+
+
+
+
+
+slsReceiverUsers.h Source File
+
+
+
+
+
+
+
+
+
+
+
+
slsReceiverUsers.h Go to the documentation of this file. 00001 #pragma once
+ 00002
+ 00003 #include <stdio.h>
+ 00004 #include <stdint.h>
+ 00005
+ 00006
+ 00007 class slsReceiver;
+ 00008
+00016 class slsReceiverUsers {
+ 00017
+ 00018 public :
+ 00026 slsReceiverUsers (int argc, char *argv[], int &success);
+ 00027
+ 00028
+ 00030 ~slsReceiverUsers ();
+ 00031
+ 00036 int start ();
+ 00037
+ 00039 void stop ();
+ 00040
+ 00045 int64_t getReceiverVersion ();
+ 00046
+ 00053 void registerCallBackStartAcquisition (int (*func)(char * filepath, char * filename, uint64_t fileindex, uint32_t datasize, void *),void *arg);
+ 00054
+ 00055
+ 00061 void registerCallBackAcquisitionFinished (void (*func)(uint64_t nf, void *),void *arg);
+ 00062
+ 00063
+ 00064
+ 00070 void registerCallBackRawDataReady (void (*func)(uint64_t frameNumber, uint32_t expLength, uint32_t packetNumber, uint64_t bunchId, uint64_t timestamp,
+ 00071 uint16_t modId, uint16_t xCoord, uint16_t yCoord, uint16_t zCoord, uint32_t debug, uint16_t roundRNumber, uint8_t detType, uint8_t version,
+ 00072 char * datapointer, uint32_t datasize, void *),void *arg);
+ 00073
+ 00074
+00075 slsReceiver* receiver ;
+ 00076 };
+ 00077
+
+
+
+
+
+
+
+
+
+Generated on 12 Mar 2018 by
+
+ 1.6.1
+
+
diff --git a/manual/docs/html/slsDetectorUsersDocs/tab_b.gif b/manual/docs/html/slsDetectorUsersDocs/tab_b.gif
new file mode 100644
index 000000000..0d623483f
Binary files /dev/null and b/manual/docs/html/slsDetectorUsersDocs/tab_b.gif differ
diff --git a/manual/docs/html/slsDetectorUsersDocs/tab_l.gif b/manual/docs/html/slsDetectorUsersDocs/tab_l.gif
new file mode 100644
index 000000000..9b1e6337c
Binary files /dev/null and b/manual/docs/html/slsDetectorUsersDocs/tab_l.gif differ
diff --git a/manual/docs/html/slsDetectorUsersDocs/tab_r.gif b/manual/docs/html/slsDetectorUsersDocs/tab_r.gif
new file mode 100644
index 000000000..ce9dd9f53
Binary files /dev/null and b/manual/docs/html/slsDetectorUsersDocs/tab_r.gif differ
diff --git a/manual/docs/html/slsDetectorUsersDocs/tabs.css b/manual/docs/html/slsDetectorUsersDocs/tabs.css
new file mode 100644
index 000000000..a44416341
--- /dev/null
+++ b/manual/docs/html/slsDetectorUsersDocs/tabs.css
@@ -0,0 +1,105 @@
+/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
+
+DIV.tabs
+{
+ float : left;
+ width : 100%;
+ background : url("tab_b.gif") repeat-x bottom;
+ margin-bottom : 4px;
+}
+
+DIV.tabs UL
+{
+ margin : 0px;
+ padding-left : 10px;
+ list-style : none;
+}
+
+DIV.tabs LI, DIV.tabs FORM
+{
+ display : inline;
+ margin : 0px;
+ padding : 0px;
+}
+
+DIV.tabs FORM
+{
+ float : right;
+}
+
+DIV.tabs A
+{
+ float : left;
+ background : url("tab_r.gif") no-repeat right top;
+ border-bottom : 1px solid #84B0C7;
+ font-size : 80%;
+ font-weight : bold;
+ text-decoration : none;
+}
+
+DIV.tabs A:hover
+{
+ background-position: 100% -150px;
+}
+
+DIV.tabs A:link, DIV.tabs A:visited,
+DIV.tabs A:active, DIV.tabs A:hover
+{
+ color: #1A419D;
+}
+
+DIV.tabs SPAN
+{
+ float : left;
+ display : block;
+ background : url("tab_l.gif") no-repeat left top;
+ padding : 5px 9px;
+ white-space : nowrap;
+}
+
+DIV.tabs #MSearchBox
+{
+ float : right;
+ display : inline;
+ font-size : 1em;
+}
+
+DIV.tabs TD
+{
+ font-size : 80%;
+ font-weight : bold;
+ text-decoration : none;
+}
+
+
+
+/* Commented Backslash Hack hides rule from IE5-Mac \*/
+DIV.tabs SPAN {float : none;}
+/* End IE5-Mac hack */
+
+DIV.tabs A:hover SPAN
+{
+ background-position: 0% -150px;
+}
+
+DIV.tabs LI.current A
+{
+ background-position: 100% -150px;
+ border-width : 0px;
+}
+
+DIV.tabs LI.current SPAN
+{
+ background-position: 0% -150px;
+ padding-bottom : 6px;
+}
+
+DIV.navpath
+{
+ background : none;
+ border : none;
+ border-bottom : 1px solid #84B0C7;
+ text-align : center;
+ margin : 2px;
+ padding : 2px;
+}
diff --git a/manual/docs/html/slsDetectors-FAQ/images.aux b/manual/docs/html/slsDetectors-FAQ/images.aux
new file mode 100644
index 000000000..4dcb91b3a
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/images.aux
@@ -0,0 +1,15 @@
+\relax
+\ifx\hyper@anchor\@undefined
+\global \let \oldcontentsline\contentsline
+\gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global \let \oldnewlabel\newlabel
+\gdef \newlabel#1#2{\newlabelxx{#1}#2}
+\gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\let \contentsline\oldcontentsline
+\let \newlabel\oldnewlabel}
+\else
+\global \let \hyper@last\relax
+\fi
+
+\providecommand*\HyPL@Entry[1]{}
+\HyPL@Entry{0 << /S /D >> }
diff --git a/manual/docs/html/slsDetectors-FAQ/images.log b/manual/docs/html/slsDetectors-FAQ/images.log
new file mode 100644
index 000000000..a1045b41e
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/images.log
@@ -0,0 +1,1570 @@
+This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=latex 2014.12.17) 12 MAR 2018 14:17
+entering extended mode
+ %&-line parsing enabled.
+**./images.tex
+(./images.tex
+LaTeX2e <2005/12/01>
+Babel and hyphenation patterns for english, usenglishmax, dumylang, noh
+yphenation, arabic, basque, bulgarian, coptic, welsh, czech, slovak, german, ng
+erman, danish, esperanto, spanish, catalan, galician, estonian, farsi, finnish,
+ french, greek, monogreek, ancientgreek, croatian, hungarian, interlingua, ibyc
+us, indonesian, icelandic, italian, latin, mongolian, dutch, norsk, polish, por
+tuguese, pinyin, romanian, russian, slovenian, uppersorbian, serbian, swedish,
+turkish, ukenglish, ukrainian, loaded.
+
+(/usr/share/texmf/tex/latex/base/report.cls
+Document Class: report 2005/09/16 v1.4f Standard LaTeX document class
+(/usr/share/texmf/tex/latex/base/size10.clo
+File: size10.clo 2005/09/16 v1.4f Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+) (/usr/share/texmf/tex/latex/base/ifthen.sty
+Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
+) (/usr/share/texmf/tex/latex/amsfonts/amssymb.sty
+Package: amssymb 2002/01/22 v2.2d
+(/usr/share/texmf/tex/latex/amsfonts/amsfonts.sty
+Package: amsfonts 2001/10/25 v2.2f
+\@emptytoks=\toks14
+\symAMSa=\mathgroup4
+\symAMSb=\mathgroup5
+LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
+(Font) U/euf/m/n --> U/euf/b/n on input line 132.
+)) (/usr/share/texmf/tex/latex/graphics/graphicx.sty
+Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
+(/usr/share/texmf/tex/latex/graphics/keyval.sty
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks15
+) (/usr/share/texmf/tex/latex/graphics/graphics.sty
+Package: graphics 2006/02/20 v1.0o Standard LaTeX Graphics (DPC,SPQR)
+(/usr/share/texmf/tex/latex/graphics/trig.sty
+Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
+) (/usr/share/texmf/tex/latex/config/graphics.cfg
+File: graphics.cfg 2007/01/18 v1.5 graphics configuration of teTeX/TeXLive
+)
+Package graphics Info: Driver file: dvips.def on input line 90.
+(/usr/share/texmf/tex/latex/graphics/dvips.def
+File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
+))
+\Gin@req@height=\dimen103
+\Gin@req@width=\dimen104
+) (/usr/share/texmf/tex/latex/tools/verbatim.sty
+Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements
+\every@verbatim=\toks16
+\verbatim@line=\toks17
+\verbatim@in@stream=\read1
+) (/usr/share/texmf/tex/latex/html/html.sty (/usr/share/texmf/tex/latex/hyperre
+f/hyperref.sty
+Package: hyperref 2007/02/07 v6.75r Hypertext links for LaTeX
+\@linkdim=\dimen105
+\Hy@linkcounter=\count88
+\Hy@pagecounter=\count89
+(/usr/share/texmf/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2007/02/07 v6.75r Hyperref: PDFDocEncoding definition (HO)
+) (/usr/share/texmf/tex/latex/config/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+) (/usr/share/texmf/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2006/08/22 v2.4 Connects package keyval with LaTeX options (
+HO)
+)
+Package hyperref Info: Hyper figures OFF on input line 2288.
+Package hyperref Info: Link nesting OFF on input line 2293.
+Package hyperref Info: Hyper index ON on input line 2296.
+Package hyperref Info: Plain pages OFF on input line 2303.
+Package hyperref Info: Backreferencing OFF on input line 2308.
+Implicit mode ON; LaTeX internals redefined
+Package hyperref Info: Bookmarks ON on input line 2444.
+(/usr/share/texmf/tex/latex/html/url.sty
+Package: url 1999/03/02 ver 1.4 Verb mode for urls, email addresses, and file
+ names
+)
+LaTeX Info: Redefining \url on input line 2599.
+\Fld@menulength=\count90
+\Field@Width=\dimen106
+\Fld@charsize=\dimen107
+\Choice@toks=\toks18
+\Field@toks=\toks19
+Package hyperref Info: Hyper figures OFF on input line 3102.
+Package hyperref Info: Link nesting OFF on input line 3107.
+Package hyperref Info: Hyper index ON on input line 3110.
+Package hyperref Info: backreferencing OFF on input line 3117.
+Package hyperref Info: Link coloring OFF on input line 3122.
+\Hy@abspage=\count91
+\c@Item=\count92
+\c@Hfootnote=\count93
+)
+*hyperref using default driver hdvips*
+(/usr/share/texmf/tex/latex/hyperref/hdvips.def
+File: hdvips.def 2007/02/07 v6.75r Hyperref driver for dvips
+(/usr/share/texmf/tex/latex/hyperref/pdfmark.def
+File: pdfmark.def 2007/02/07 v6.75r Hyperref definitions for pdfmark specials
+\pdf@docset=\toks20
+\pdf@box=\box26
+\pdf@toks=\toks21
+\pdf@defaulttoks=\toks22
+\Fld@listcount=\count94
+))
+Package: html 1999/07/19 v1.38 hypertext commands for latex2html (nd, hws, rrm)
+
+\c@lpart=\count95
+\c@lchapter=\count96
+\c@lsection=\count97
+\c@lsubsection=\count98
+\c@lsubsubsection=\count99
+\c@lparagraph=\count100
+\c@lsubparagraph=\count101
+\c@lsubsubparagraph=\count102
+\ptrfile=\write3
+) (/usr/share/texmf/tex/latex/amsmath/amsmath.sty
+Package: amsmath 2000/07/18 v2.13 AMS math features
+\@mathmargin=\skip43
+For additional information on amsmath, use the `?' option.
+(/usr/share/texmf/tex/latex/amsmath/amstext.sty
+Package: amstext 2000/06/29 v2.01
+(/usr/share/texmf/tex/latex/amsmath/amsgen.sty
+File: amsgen.sty 1999/11/30 v2.0
+\@emptytoks=\toks23
+\ex@=\dimen108
+)) (/usr/share/texmf/tex/latex/amsmath/amsbsy.sty
+Package: amsbsy 1999/11/29 v1.2d
+\pmbraise@=\dimen109
+) (/usr/share/texmf/tex/latex/amsmath/amsopn.sty
+Package: amsopn 1999/12/14 v2.01 operator names
+)
+\inf@bad=\count103
+LaTeX Info: Redefining \frac on input line 211.
+\uproot@=\count104
+\leftroot@=\count105
+LaTeX Info: Redefining \overline on input line 307.
+\classnum@=\count106
+\DOTSCASE@=\count107
+LaTeX Info: Redefining \ldots on input line 379.
+LaTeX Info: Redefining \dots on input line 382.
+LaTeX Info: Redefining \cdots on input line 467.
+\Mathstrutbox@=\box27
+\strutbox@=\box28
+\big@size=\dimen110
+LaTeX Font Info: Redeclaring font encoding OML on input line 567.
+LaTeX Font Info: Redeclaring font encoding OMS on input line 568.
+\macc@depth=\count108
+\c@MaxMatrixCols=\count109
+\dotsspace@=\muskip10
+\c@parentequation=\count110
+\dspbrk@lvl=\count111
+\tag@help=\toks24
+\row@=\count112
+\column@=\count113
+\maxfields@=\count114
+\andhelp@=\toks25
+\eqnshift@=\dimen111
+\alignsep@=\dimen112
+\tagshift@=\dimen113
+\tagwidth@=\dimen114
+\totwidth@=\dimen115
+\lineht@=\dimen116
+\@envbody=\toks26
+\multlinegap=\skip44
+\multlinetaggap=\skip45
+\mathdisplay@stack=\toks27
+LaTeX Info: Redefining \[ on input line 2666.
+LaTeX Info: Redefining \] on input line 2667.
+) (/usr/share/texmf/tex/latex/base/latexsym.sty
+Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols)
+\symlasy=\mathgroup6
+LaTeX Font Info: Overwriting symbol font `lasy' in version `bold'
+(Font) U/lasy/m/n --> U/lasy/b/n on input line 47.
+) (/usr/share/texmf/tex/latex/amsfonts/eucal.sty
+Package: eucal 2001/10/01 v2.2d Euler Script fonts
+LaTeX Font Info: Overwriting math alphabet `\EuScript' in version `bold'
+(Font) U/eus/m/n --> U/eus/b/n on input line 55.
+) (/usr/share/texmf/tex/latex/amscls/amsthm.sty
+Package: amsthm 2004/08/06 v2.20
+\thm@style=\toks28
+\thm@bodyfont=\toks29
+\thm@headfont=\toks30
+\thm@notefont=\toks31
+\thm@headpunct=\toks32
+\thm@preskip=\skip46
+\thm@postskip=\skip47
+\thm@headsep=\skip48
+\dth@everypar=\toks33
+) (/usr/share/texmf/tex/latex/amsmath/amsxtra.sty
+Package: amsxtra 1999/11/15 v1.2c
+LaTeX Info: Redefining \nobreakspace on input line 77.
+) (/usr/share/texmf/tex/latex/amsmath/amscd.sty
+Package: amscd 1999/11/29 v1.2d
+\athelp@=\toks34
+\minaw@=\dimen117
+\bigaw@=\dimen118
+\minCDarrowwidth=\dimen119
+) (/usr/share/texmf/tex/latex/amscls/upref.sty
+Package: upref 2004/07/29 v2.01
+) (/usr/share/texmf/tex/latex/tools/layout.sty
+Package: layout 2000/09/25 v1.2c Show layout parameters
+\oneinch=\count115
+\cnt@paperwidth=\count116
+\cnt@paperheight=\count117
+\cnt@hoffset=\count118
+\cnt@voffset=\count119
+\cnt@textheight=\count120
+\cnt@textwidth=\count121
+\cnt@topmargin=\count122
+\cnt@oddsidemargin=\count123
+\cnt@evensidemargin=\count124
+\cnt@headheight=\count125
+\cnt@headsep=\count126
+\cnt@marginparsep=\count127
+\cnt@marginparwidth=\count128
+\cnt@marginparpush=\count129
+\cnt@footskip=\count130
+\fheight=\count131
+\ref@top=\count132
+\ref@hoffset=\count133
+\ref@voffset=\count134
+\ref@head=\count135
+\ref@body=\count136
+\ref@foot=\count137
+\ref@margin=\count138
+\ref@marginwidth=\count139
+\ref@marginpar=\count140
+\Interval=\count141
+\ExtraYPos=\count142
+\PositionX=\count143
+\PositionY=\count144
+\ArrowLength=\count145
+) (/usr/share/texmf/tex/latex/tools/bm.sty
+Package: bm 2004/02/26 v1.1c Bold Symbol Support (DPC/FMi)
+\symboldoperators=\mathgroup7
+\symboldletters=\mathgroup8
+\symboldsymbols=\mathgroup9
+\symboldlasy=\mathgroup10
+LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 137.
+LaTeX Info: Redefining \bm on input line 203.
+) (/usr/share/texmf/tex/latex/tools/dcolumn.sty
+Package: dcolumn 2001/05/28 v1.06 decimal alignment package (DPC)
+(/usr/share/texmf/tex/latex/tools/array.sty
+Package: array 2005/08/23 v2.4b Tabular extension package (FMi)
+\col@sep=\dimen120
+\extrarowheight=\dimen121
+\NC@list=\toks35
+\extratabsurround=\skip49
+\backup@length=\skip50
+)) (/usr/share/texmf/tex/latex/graphics/color.sty
+Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
+(/usr/share/texmf/tex/latex/config/color.cfg
+File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
+)
+Package color Info: Driver file: dvips.def on input line 130.
+(/usr/share/texmf/tex/latex/graphics/dvipsnam.def
+File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
+)) (/usr/share/texmf/tex/latex/tools/calc.sty
+Package: calc 2005/08/06 v4.2 Infix arithmetic (KKT,FJ)
+\calc@Acount=\count146
+\calc@Bcount=\count147
+\calc@Adimen=\dimen122
+\calc@Bdimen=\dimen123
+\calc@Askip=\skip51
+\calc@Bskip=\skip52
+LaTeX Info: Redefining \setlength on input line 75.
+LaTeX Info: Redefining \addtolength on input line 76.
+\calc@Ccount=\count148
+\calc@Cskip=\skip53
+) (/usr/share/texmf/tex/latex/ltxmisc/framed.sty
+Package: framed 2003/07/21 v 0.8a: framed or shaded text with page breaks
+\FrameRule=\dimen124
+\FrameSep=\dimen125
+) (/usr/share/texmf/tex/latex/base/inputenc.sty
+Package: inputenc 2006/05/05 v1.1b Input encoding file
+\inpenc@prehook=\toks36
+\inpenc@posthook=\toks37
+)
+\sizebox=\box29
+\lthtmlwrite=\write4
+(./images.aux
+
+LaTeX Warning: Label `fig:trig' multiply defined.
+
+)
+\openout1 = `images.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 209.
+LaTeX Font Info: ... okay on input line 209.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 209.
+LaTeX Font Info: ... okay on input line 209.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 209.
+LaTeX Font Info: ... okay on input line 209.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 209.
+LaTeX Font Info: ... okay on input line 209.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 209.
+LaTeX Font Info: ... okay on input line 209.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 209.
+LaTeX Font Info: ... okay on input line 209.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 209.
+LaTeX Font Info: ... okay on input line 209.
+Package hyperref Info: Link coloring OFF on input line 209.
+(/usr/share/texmf/tex/latex/hyperref/nameref.sty
+Package: nameref 2006/12/27 v2.28 Cross-referencing by name of section
+(/usr/share/texmf/tex/latex/oberdiek/refcount.sty
+Package: refcount 2006/02/20 v3.0 Data extraction from references (HO)
+)
+\c@section@level=\count149
+)
+LaTeX Info: Redefining \ref on input line 209.
+LaTeX Info: Redefining \pageref on input line 209.
+\@outlinefile=\write5
+\openout5 = `images.out'.
+
+
+latex2htmlLength hsize=349.0pt
+
+latex2htmlLength vsize=633.0pt
+
+latex2htmlLength hoffset=0.0pt
+
+latex2htmlLength voffset=0.0pt
+
+latex2htmlLength topmargin=0.0pt
+
+latex2htmlLength topskip=0.00003pt
+
+latex2htmlLength headheight=0.0pt
+
+latex2htmlLength headsep=0.0pt
+
+latex2htmlLength parskip=0.0pt plus 1.0pt
+
+latex2htmlLength oddsidemargin=62.0pt
+
+latex2htmlLength evensidemargin=62.0pt
+
+LaTeX Font Info: Try loading font information for U+msa on input line 233.
+(/usr/share/texmf/tex/latex/amsfonts/umsa.fd
+File: umsa.fd 2002/01/19 v2.2g AMS font definitions
+)
+LaTeX Font Info: Try loading font information for U+msb on input line 233.
+(/usr/share/texmf/tex/latex/amsfonts/umsb.fd
+File: umsb.fd 2002/01/19 v2.2g AMS font definitions
+)
+LaTeX Font Info: Try loading font information for U+lasy on input line 233.
+(/usr/share/texmf/tex/latex/base/ulasy.fd
+File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions
+)
+LaTeX Font Info: Font shape `U/lasy/b/n' in size <7> not available
+(Font) Font shape `U/lasy/m/n' tried instead on input line 233.
+LaTeX Font Info: Font shape `U/lasy/b/n' in size <5> not available
+(Font) Font shape `U/lasy/m/n' tried instead on input line 233.
+l2hSize :tex2html_wrap_inline7641:8.64003pt::8.64003pt::11.24307pt.
+[1
+
+
+
+]
+File: multi_detector.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7721:89.66235pt::0.0pt::349.0pt.
+[2
+
+
+]
+File: data_receiver.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7727:184.55281pt::0.0pt::349.0pt.
+[3
+
+
+]
+l2hSize :tex2html_wrap_inline7737:6.94444pt::0.0pt::5.7049pt.
+[4
+
+
+]
+l2hSize :tex2html_wrap_inline7740:8.0pt::8.0pt::6.61115pt.
+[5
+
+
+]
+l2hSize :tex2html_wrap_inline7742:6.45831pt::0.0pt::10.50005pt.
+[6
+
+
+]
+Overfull \hbox (137.47572pt too wide) detected at line 349
+[][] []
+ []
+
+l2hSize :displaymath7744:397.00403pt::0.0pt::349.0pt.
+[7
+
+
+]
+File: images/normal_acquisition.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7767:99.90501pt::0.0pt::349.0pt.
+[8
+
+
+]
+File: images/gated_acquisition.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7771:121.80202pt::0.0pt::349.0pt.
+[9
+
+
+]
+File: images/trigger_acquisition.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7775:125.8976pt::0.0pt::349.0pt.
+[10
+
+
+]
+File: images/ro_trigger_acquisition.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7779:101.6309pt::0.0pt::349.0pt.
+[11
+
+
+]
+l2hSize :tex2html_wrap_inline7790:8.0pt::8.0pt::183.90987pt.
+[12
+
+
+]
+l2hSize :tex2html_wrap_inline7792:8.0pt::8.0pt::80.10426pt.
+[13
+
+
+]
+File: images/effiSiHardXRays2.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7801:337.30484pt::0.0pt::349.0pt.
+[14
+
+
+]
+l2hSize :tex2html_wrap_inline7803:6.95831pt::6.95831pt::6.52551pt.
+[15
+
+
+]
+File: images/effiThinkBackplanes.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7807:338.49672pt::0.0pt::349.0pt.
+[16
+
+
+]
+File: images/settings.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7812:178.62796pt::0.0pt::349.0pt.
+[17
+
+
+]
+File: images/thr_scan_expl.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7822:338.53587pt::0.0pt::349.0pt.
+[18
+
+
+]
+File: images/thr_scan_fluo.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7826:338.53587pt::0.0pt::349.0pt.
+[19
+
+
+]
+l2hSize :tex2html_wrap_inline7831:7.33331pt::7.33331pt::12.3681pt.
+[20
+
+
+]
+l2hSize :tex2html_wrap_inline7835:8.0pt::8.0pt::46.60414pt.
+[21
+
+
+]
+l2hSize :tex2html_wrap_inline7839:7.33331pt::7.33331pt::13.06606pt.
+[22
+
+
+]
+l2hSize :tex2html_wrap_inline7843:7.33331pt::7.33331pt::11.40282pt.
+[23
+
+
+]
+l2hSize :tex2html_wrap_inline7857:7.33331pt::7.33331pt::38.26735pt.
+[24
+
+
+]
+l2hSize :tex2html_wrap_inline7861:7.33331pt::7.33331pt::54.52422pt.
+[25
+
+
+]
+l2hSize :tex2html_wrap_inline7863:7.33331pt::7.33331pt::53.82626pt.
+[26
+
+
+]
+l2hSize :tex2html_wrap_inline7875:7.33331pt::7.33331pt::54.52422pt.
+[27
+
+
+]
+l2hSize :tex2html_wrap_inline7879:7.33331pt::7.33331pt::29.73605pt.
+[28
+
+
+]
+File: images/sample_with_fluorescence.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7886:338.53587pt::0.0pt::349.0pt.
+[29
+
+
+]
+File: images/bad_ff_col.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7892:338.49672pt::0.0pt::349.0pt.
+[30
+
+
+]
+File: images/FFSetup.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7897:250.12001pt::0.0pt::349.0pt.
+[31
+
+
+]
+l2hSize :tex2html_wrap_inline7904:6.94444pt::0.0pt::69.3889pt.
+[32
+
+
+]
+l2hSize :tex2html_wrap_inline7906:6.83331pt::0.0pt::61.56856pt.
+[33
+
+
+]
+l2hSize :tex2html_wrap_inline7908:6.94444pt::0.0pt::67.50539pt.
+[34
+
+
+]
+l2hSize :tex2html_wrap_inline7910:6.95831pt::6.95831pt::8.27783pt.
+[35
+
+
+]
+File: images/noise_thresholdscanuntrimmed.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7911:173.42374pt::0.0pt::349.0pt.
+[36
+
+
+]
+File: images/trimbitdistribution.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7915:173.42374pt::0.0pt::349.0pt.
+[37
+
+
+]
+File: images/trimbitplot.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7919:173.42374pt::0.0pt::349.0pt.
+[38
+
+
+]
+File: images/noise_thresholdscantrimmed.eps Graphic file (type eps)
+
+l2hSize :tex2html_wrap7923:173.42374pt::0.0pt::349.0pt.
+[39
+
+
+]
+l2hSize :tex2html_wrap_inline7932:6.45831pt::0.0pt::3.27782pt.
+[40
+
+
+]
+l2hSize :tex2html_wrap_inline7946:6.95831pt::6.95831pt::18.20673pt.
+[41
+
+
+]
+l2hSize :tex2html_wrap_inline7948:7.33331pt::7.33331pt::15.68904pt.
+[42
+
+
+]
+l2hSize :tex2html_wrap_inline7950:7.33331pt::7.33331pt::15.31837pt.
+[43
+
+
+]
+l2hSize :tex2html_wrap_inline7952:7.33331pt::7.33331pt::16.3753pt.
+[44
+
+
+]
+l2hSize :tex2html_wrap_inline7954:6.95831pt::6.95831pt::12.4237pt.
+[45
+
+
+]
+l2hSize :tex2html_wrap_inline7956:6.95831pt::6.95831pt::12.94337pt.
+[46
+
+
+]
+l2hSize :tex2html_wrap_inline7958:7.44444pt::7.44444pt::13.30219pt.
+[47
+
+
+]
+l2hSize :tex2html_wrap_indisplay7960:15.0001pt::15.0001pt::176.78307pt.
+[48
+
+
+]
+l2hSize :tex2html_wrap_indisplay7962:15.0001pt::15.0001pt::243.50876pt.
+[49
+
+
+]
+l2hSize :tex2html_wrap_indisplay7965:6.95831pt::6.95831pt::12.4237pt.
+[50
+
+
+]
+l2hSize :tex2html_wrap_indisplay7967:6.95831pt::6.95831pt::8.27783pt.
+[51
+
+
+]
+l2hSize :tex2html_wrap_indisplay7969:14.09839pt::14.09839pt::21.55309pt.
+[52
+
+
+]
+l2hSize :tex2html_wrap_indisplay7971:7.44444pt::7.44444pt::13.30219pt.
+[53
+
+
+]
+l2hSize :tex2html_wrap_indisplay7975:11.57062pt::11.57062pt::20.86682pt.
+[54
+
+
+]
+l2hSize :tex2html_wrap_indisplay7977:6.95831pt::6.95831pt::12.94337pt.
+[55
+
+
+]
+l2hSize :tex2html_wrap_indisplay7981:14.09839pt::14.09839pt::65.9936pt.
+[56
+
+
+]
+l2hSize :tex2html_wrap_indisplay7984:7.33331pt::7.33331pt::15.31837pt.
+[57
+
+
+]
+l2hSize :tex2html_wrap_indisplay7988:13.70952pt::13.70952pt::70.06917pt.
+[58
+
+
+]
+l2hSize :tex2html_wrap_indisplay7990:7.33331pt::7.33331pt::15.68904pt.
+[59
+
+
+]
+l2hSize :tex2html_wrap_indisplay7994:11.57062pt::11.57062pt::18.47997pt.
+[60
+
+
+]
+l2hSize :tex2html_wrap_indisplay7996:7.33331pt::7.33331pt::16.3753pt.
+[61
+
+
+]
+l2hSize :tex2html_wrap_indisplay8000:6.95831pt::6.95831pt::20.23274pt.
+[62
+
+
+]
+l2hSize :tex2html_wrap_inline8005:6.94444pt::0.0pt::10.47227pt.
+[63
+
+
+]
+l2hSize :tex2html_wrap_inline8007:6.94444pt::0.0pt::10.47227pt.
+[64
+
+
+]
+l2hSize :tex2html_wrap_indisplay8010:14.20952pt::14.20952pt::17.34445pt.
+[65
+
+
+]
+l2hSize :tex2html_wrap_inline8012:6.83331pt::0.0pt::7.72226pt.
+[66
+
+
+]
+l2hSize :tex2html_wrap_indisplay8014:14.20952pt::14.20952pt::53.72649pt.
+[67
+
+
+]
+l2hSize :tex2html_wrap_inline8016:6.83331pt::0.0pt::12.4445pt.
+[68
+
+
+]
+l2hSize :tex2html_wrap_inline8018:6.83331pt::0.0pt::16.05562pt.
+[69
+
+
+]
+l2hSize :tex2html_wrap_inline8020:7.33331pt::7.33331pt::9.382pt.
+[70
+
+
+]
+l2hSize :tex2html_wrap_inline8024:6.94444pt::0.0pt::47.69444pt.
+[71
+
+
+]
+l2hSize :tex2html_wrap_inline8035:6.83331pt::0.0pt::8.30907pt.
+[72
+
+
+]
+l2hSize :tex2html_wrap_inline8037:6.94444pt::0.0pt::6.02087pt.
+[73
+
+
+]
+l2hSize :tex2html_wrap_inline8039:7.44444pt::7.44444pt::54.38521pt.
+[74
+
+
+]
+l2hSize :tex2html_wrap_inline8041:7.33331pt::7.33331pt::13.45491pt.
+[75
+
+
+]
+l2hSize :tex2html_wrap_inline8043:6.94444pt::0.0pt::33.77774pt.
+[76
+
+
+]
+l2hSize :tex2html_wrap_indisplay8045:12.00008pt::12.00008pt::167.62956pt.
+[77
+
+
+]
+l2hSize :tex2html_wrap_indisplay8047:17.38873pt::17.38873pt::85.71771pt.
+[78
+
+
+]
+l2hSize :tex2html_wrap_indisplay8049:9.30559pt::9.30559pt::88.87329pt.
+[79
+
+
+]
+l2hSize :tex2html_wrap_inline8051:7.33331pt::7.33331pt::18.65598pt.
+[80
+
+
+]
+l2hSize :tex2html_wrap_inline8053:6.95831pt::6.95831pt::16.16502pt.
+[81
+
+
+]
+l2hSize :tex2html_wrap_inline8055:6.95831pt::6.95831pt::20.2889pt.
+[82
+
+
+]
+l2hSize :tex2html_wrap_inline8057:7.44444pt::7.44444pt::15.80042pt.
+[83
+
+
+]
+l2hSize :tex2html_wrap_indisplay8059:11.57062pt::11.57062pt::143.29408pt.
+[84
+
+
+]
+l2hSize :tex2html_wrap_indisplay8061:13.1577pt::13.1577pt::108.83537pt.
+[85
+
+
+]
+l2hSize :tex2html_wrap_indisplay8063:14.09839pt::14.09839pt::200.85495pt.
+[86
+
+
+]
+l2hSize :tex2html_wrap_indisplay8065:13.1577pt::13.1577pt::166.44937pt.
+[87
+
+
+]
+l2hSize :tex2html_wrap_inline8067:6.83331pt::0.0pt::11.29169pt.
+[88
+
+
+]
+l2hSize :tex2html_wrap_indisplay8069:8.0pt::8.0pt::218.09163pt.
+[89
+
+
+]
+l2hSize :tex2html_wrap_indisplay8071:8.0pt::8.0pt::38.90797pt.
+[90
+
+
+]
+l2hSize :tex2html_wrap_indisplay8073:9.97221pt::9.97221pt::101.97737pt.
+[91
+
+
+]
+l2hSize :tex2html_wrap_inline8075:7.44444pt::7.44444pt::14.9584pt.
+[92
+
+
+]
+l2hSize :tex2html_wrap_inline8077:7.44444pt::7.44444pt::85.83296pt.
+[93
+
+
+]
+l2hSize :tex2html_wrap_inline8079:6.94444pt::0.0pt::4.66672pt.
+[94
+
+
+]
+l2hSize :tex2html_wrap_indisplay8081:7.44444pt::7.44444pt::15.80042pt.
+[95
+
+
+]
+l2hSize :tex2html_wrap_indisplay8082:8.0pt::8.0pt::85.0104pt.
+[96
+
+
+]
+l2hSize :tex2html_wrap_indisplay8085:10.08334pt::10.08334pt::62.23268pt.
+[97
+
+
+]
+l2hSize :tex2html_wrap_inline8089:7.33331pt::7.33331pt::11.93237pt.
+[98
+
+
+]
+l2hSize :tex2html_wrap_inline8091:7.33331pt::7.33331pt::15.29031pt.
+[99
+
+
+]
+l2hSize :tex2html_wrap_inline8093:7.33331pt::7.33331pt::13.57112pt.
+[100
+
+
+]
+l2hSize :tex2html_wrap_inline8095:6.83331pt::0.0pt::8.40558pt.
+[101
+
+
+]
+l2hSize :tex2html_wrap_inline8097:6.95831pt::6.95831pt::17.70064pt.
+[102
+
+
+]
+l2hSize :tex2html_wrap_inline8099:6.95831pt::6.95831pt::10.88318pt.
+[103
+
+
+]
+l2hSize :tex2html_wrap_indisplay8101:35.47784pt::35.47784pt::89.30644pt.
+[104
+
+
+]
+l2hSize :tex2html_wrap_indisplay8103:14.76508pt::14.76508pt::46.29935pt.
+[105
+
+
+]
+l2hSize :tex2html_wrap_inline8105:7.44444pt::7.44444pt::15.15578pt.
+[106
+
+
+]
+l2hSize :tex2html_wrap_indisplay8109:24.8389pt::24.8389pt::178.6664pt.
+[107
+
+
+]
+l2hSize :tex2html_wrap_indisplay8111:24.8389pt::24.8389pt::157.33359pt.
+[108
+
+
+]
+l2hSize :tex2html_wrap_indisplay8113:14.09839pt::14.09839pt::42.58318pt.
+[109
+
+
+]
+l2hSize :tex2html_wrap_indisplay8115:13.70952pt::13.70952pt::54.38838pt.
+[110
+
+
+]
+l2hSize :tex2html_wrap_inline8117:7.33331pt::7.33331pt::11.94019pt.
+[111
+
+
+]
+l2hSize :tex2html_wrap_inline8119:6.95831pt::6.95831pt::16.22455pt.
+[112
+
+
+]
+l2hSize :tex2html_wrap_inline8121:6.83331pt::0.0pt::8.58684pt.
+[113
+
+
+]
+l2hSize :tex2html_wrap_inline8123:6.83331pt::0.0pt::9.70836pt.
+[114
+
+
+]
+l2hSize :tex2html_wrap_indisplay8127:18.78339pt::18.78339pt::133.39876pt.
+[115
+
+
+]
+l2hSize :tex2html_wrap_indisplay8131:18.78339pt::18.78339pt::72.13547pt.
+[116
+
+
+]
+l2hSize :tex2html_wrap_indisplay8133:9.97221pt::9.97221pt::86.40256pt.
+[117
+
+
+]
+l2hSize :tex2html_wrap_inline8144:7.33331pt::7.33331pt::30.96526pt.
+[118
+
+
+]
+l2hSize :tex2html_wrap_inline8146:7.33331pt::7.33331pt::28.48608pt.
+[119
+
+
+]
+l2hSize :tex2html_wrap_inline8148:6.94444pt::0.0pt::4.79169pt.
+[120
+
+
+]
+l2hSize :tex2html_wrap_indisplay8152:17.03902pt::17.03902pt::236.17503pt.
+[121
+
+
+]
+l2hSize :tex2html_wrap_indisplay8154:17.03902pt::17.03902pt::213.8213pt.
+[122
+
+
+]
+l2hSize :tex2html_wrap_indisplay8156:14.76508pt::14.76508pt::93.05731pt.
+[123
+
+
+]
+l2hSize :tex2html_wrap_indisplay8160:18.95773pt::18.95773pt::159.65314pt.
+[124
+
+
+]
+l2hSize :tex2html_wrap_indisplay8164:18.95773pt::18.95773pt::45.29063pt.
+[125
+
+
+]
+l2hSize :tex2html_wrap_inline8167:10.08334pt::10.08334pt::15.36986pt.
+[126
+
+
+]
+l2hSize :tex2html_wrap_inline8169:9.97221pt::9.97221pt::11.93237pt.
+[127
+
+
+]
+l2hSize :tex2html_wrap_inline8172:7.33331pt::7.33331pt::12.13338pt.
+[128
+
+
+]
+l2hSize :tex2html_wrap_inline8176:9.01662pt::9.01662pt::20.46674pt.
+[129
+
+
+]
+l2hSize :tex2html_wrap_inline8178:6.45831pt::0.0pt::6.50238pt.
+[130
+
+
+]
+l2hSize :tex2html_wrap_indisplay8180:16.17734pt::16.17734pt::71.96126pt.
+[131
+
+
+]
+l2hSize :tex2html_wrap_indisplay8182:18.33339pt::18.33339pt::63.26857pt.
+[132
+
+
+]
+l2hSize :tex2html_wrap_indisplay8184:18.33339pt::18.33339pt::103.01762pt.
+[133
+
+
+]
+l2hSize :tex2html_wrap_indisplay8186:18.33339pt::18.33339pt::136.56064pt.
+[134
+
+
+]
+l2hSize :tex2html_wrap_indisplay8188:10.50487pt::10.50487pt::123.40723pt.
+[135
+
+
+]
+l2hSize :tex2html_wrap_indisplay8192:18.95563pt::18.95563pt::92.34447pt.
+[136
+
+
+]
+l2hSize :tex2html_wrap_inline8194:7.33331pt::7.33331pt::12.34135pt.
+[137
+
+
+]
+l2hSize :tex2html_wrap_inline8196:7.33331pt::7.33331pt::11.14415pt.
+[138
+
+
+]
+l2hSize :tex2html_wrap_inline8198:6.95831pt::6.95831pt::10.42772pt.
+[139
+
+
+]
+l2hSize :tex2html_wrap_indisplay8200:18.95563pt::18.95563pt::98.11395pt.
+[140
+
+
+]
+l2hSize :tex2html_wrap_indisplay8202:18.95563pt::18.95563pt::165.03024pt.
+[141
+
+
+]
+l2hSize :tex2html_wrap_inline8208:7.33331pt::7.33331pt::20.60564pt.
+[142
+
+
+]
+l2hSize :tex2html_wrap_inline8210:7.33331pt::7.33331pt::84.43443pt.
+[143
+
+
+]
+l2hSize :tex2html_wrap_inline8212:6.45831pt::0.0pt::6.2153pt.
+[144
+
+
+]
+l2hSize :tex2html_wrap_indisplay8216:18.95563pt::18.95563pt::106.4156pt.
+[145
+
+
+]
+l2hSize :tex2html_wrap_indisplay8218:25.33836pt::25.33836pt::245.22083pt.
+[146
+
+
+]
+l2hSize :tex2html_wrap_indisplay8220:21.98627pt::21.98627pt::133.23958pt.
+[147
+
+
+]
+l2hSize :tex2html_wrap_inline8223:7.33331pt::7.33331pt::30.19405pt.
+[148
+
+
+]
+l2hSize :tex2html_wrap_inline8225:7.38586pt::7.38586pt::20.60564pt.
+[149
+
+
+]
+l2hSize :tex2html_wrap_indisplay8227:22.53354pt::22.53354pt::238.01314pt.
+[150
+
+
+]
+l2hSize :tex2html_wrap_indisplay8229:19.305pt::19.305pt::186.20044pt.
+[151
+
+
+]
+l2hSize :tex2html_wrap_inline8231:7.33331pt::7.33331pt::11.86081pt.
+[152
+
+
+]
+l2hSize :tex2html_wrap_indisplay8238:18.95563pt::18.95563pt::87.41562pt.
+[153
+
+
+]
+l2hSize :tex2html_wrap_indisplay8240:37.0153pt::37.0153pt::86.36304pt.
+[154
+
+
+]
+l2hSize :tex2html_wrap_indisplay8244:35.80026pt::35.80026pt::79.5173pt.
+[155
+
+
+]
+l2hSize :tex2html_wrap_indisplay8246:81.33606pt::81.33606pt::142.41797pt.
+[156
+
+
+]
+l2hSize :tex2html_wrap_indisplay8248:9.49002pt::9.49002pt::94.47359pt.
+[157
+
+
+]
+l2hSize :tex2html_wrap_inline8251:7.33331pt::7.33331pt::37.03535pt.
+[158
+
+
+]
+l2hSize :tex2html_wrap_inline8253:8.64003pt::8.64003pt::35.75307pt.
+[159
+
+
+]
+l2hSize :tex2html_wrap_indisplay8255:32.0153pt::32.0153pt::76.96254pt.
+[160
+
+
+]
+l2hSize :tex2html_wrap_indisplay8263:41.80032pt::41.80032pt::159.8735pt.
+[161
+
+
+]
+l2hSize :tex2html_wrap_indisplay8265:57.3461pt::57.3461pt::288.90195pt.
+[162
+
+
+]
+l2hSize :tex2html_wrap_inline8267:8.0pt::8.0pt::18.59033pt.
+[163
+
+
+]
+l2hSize :tex2html_wrap_indisplay8269:9.49002pt::9.49002pt::113.94249pt.
+[164
+
+
+]
+l2hSize :tex2html_wrap_inline8272:8.0pt::8.0pt::96.17384pt.
+[165
+
+
+]
+l2hSize :tex2html_wrap_inline8274:8.64003pt::8.64003pt::52.97522pt.
+[166
+
+
+]
+l2hSize :tex2html_wrap_indisplay8276:34.64299pt::34.64299pt::110.70132pt.
+[167
+
+
+]
+l2hSize :tex2html_wrap_indisplay8278:41.80032pt::41.80032pt::177.09566pt.
+[168
+
+
+]
+l2hSize :tex2html_wrap_indisplay8280:57.3461pt::57.3461pt::355.674pt.
+
+Overfull \hbox (9.67401pt too wide) in paragraph at lines 1604--1605
+[]|[]
+ []
+
+[169
+
+
+]
+l2hSize :tex2html_wrap_indisplay8284:9.49002pt::9.49002pt::113.94249pt.
+[170
+
+
+]
+l2hSize :tex2html_wrap_indisplay8291:11.57062pt::11.57062pt::36.07587pt.
+[171
+
+
+]
+l2hSize :tex2html_wrap_inline8295:8.64003pt::8.64003pt::25.27715pt.
+[172
+
+
+]
+l2hSize :tex2html_wrap_inline8299:6.95831pt::6.95831pt::20.1493pt.
+[173
+
+
+]
+l2hSize :tex2html_wrap_inline8303:8.64003pt::8.64003pt::25.27715pt.
+[174
+
+
+]
+l2hSize :tex2html_wrap_inline8306:7.33331pt::7.33331pt::38.93887pt.
+[175
+
+
+]
+l2hSize :tex2html_wrap_inline8308:7.33331pt::7.33331pt::12.13338pt.
+[176
+
+
+]
+l2hSize :tex2html_wrap_inline8310:7.33331pt::7.33331pt::12.13338pt.
+[177
+
+
+]
+l2hSize :tex2html_wrap_indisplay8312:17.26994pt::17.26994pt::161.63051pt.
+[178
+
+
+]
+l2hSize :tex2html_wrap_indisplay8314:19.79109pt::19.79109pt::279.2141pt.
+[179
+
+
+]
+l2hSize :tex2html_wrap_inline8316:7.33331pt::7.33331pt::28.21114pt.
+[180
+
+
+]
+l2hSize :tex2html_wrap_inline8318:6.94444pt::0.0pt::6.33339pt.
+[181
+
+
+]
+l2hSize :tex2html_wrap_indisplay8320:18.33339pt::18.33339pt::305.93774pt.
+[182
+
+
+]
+l2hSize :tex2html_wrap_indisplay8322:18.33339pt::18.33339pt::247.33661pt.
+[183
+
+
+]
+l2hSize :tex2html_wrap_indisplay8324:15.9051pt::15.9051pt::136.86096pt.
+[184
+
+
+]
+l2hSize :tex2html_wrap_indisplay8326:18.33339pt::18.33339pt::363.07938pt.
+
+Overfull \hbox (17.07939pt too wide) in paragraph at lines 1722--1723
+[]|[]
+ []
+
+[185
+
+
+]
+l2hSize :tex2html_wrap_inline8328:6.95831pt::6.95831pt::45.52538pt.
+[186
+
+
+]
+l2hSize :tex2html_wrap_inline8330:6.95831pt::6.95831pt::59.07616pt.
+[187
+
+
+]
+l2hSize :tex2html_wrap_inline8332:7.44444pt::7.44444pt::68.26837pt.
+[188
+
+
+]
+l2hSize :tex2html_wrap_inline8334:6.94444pt::0.0pt::44.04147pt.
+[189
+
+
+]
+l2hSize :tex2html_wrap_indisplay8336:18.33339pt::18.33339pt::343.0692pt.
+[190
+
+
+]
+l2hSize :tex2html_wrap_indisplay8338:16.45555pt::16.45555pt::183.95403pt.
+[191
+
+
+]
+l2hSize :tex2html_wrap_inline8340:8.0pt::8.0pt::13.9931pt.
+[192
+
+
+]
+l2hSize :tex2html_wrap_indisplay8342:16.644pt::16.644pt::103.58525pt.
+[193
+
+
+]
+l2hSize :tex2html_wrap_indisplay8344:16.45555pt::16.45555pt::113.2396pt.
+[194
+
+
+]
+l2hSize :tex2html_wrap_inline8349:7.44444pt::7.44444pt::115.7777pt.
+[195
+
+
+]
+l2hSize :tex2html_wrap_inline8353:8.14003pt::0.0pt::37.44438pt.
+[196
+
+
+]
+l2hSize :tex2html_wrap_inline8359:9.85pt::9.85pt::52.85414pt.
+[197
+
+
+]
+l2hSize :tex2html_wrap_inline8361:9.85pt::9.85pt::109.99648pt.
+[198
+
+
+]
+l2hSize :tex2html_wrap_inline8363:7.33331pt::7.33331pt::13.12505pt.
+[199
+
+
+]
+l2hSize :tex2html_wrap_inline8367:8.0pt::8.0pt::47.19098pt.
+[200
+
+
+]
+l2hSize :tex2html_wrap_inline8369:8.0pt::8.0pt::24.70149pt.
+[201
+
+
+]
+l2hSize :tex2html_wrap_inline8371:6.94444pt::0.0pt::16.8889pt.
+[202
+
+
+]
+l2hSize :tex2html_wrap_inline8373:7.44444pt::7.44444pt::20.67363pt.
+[203
+
+
+]
+l2hSize :tex2html_wrap_inline8375:6.95831pt::6.95831pt::9.80214pt.
+[204
+
+
+]
+l2hSize :tex2html_wrap_inline8377:8.0pt::8.0pt::29.07188pt.
+[205
+
+
+]
+l2hSize :tex2html_wrap_inline8379:8.0pt::8.0pt::29.07188pt.
+[206
+
+
+]
+l2hSize :tex2html_wrap_inline8387:6.95831pt::6.95831pt::10.39937pt.
+[207
+
+
+]
+l2hSize :tex2html_wrap_inline8731:8.0pt::8.0pt::37.96071pt.
+[208
+
+
+]
+l2hSize :tex2html_wrap_inline8735:8.0pt::8.0pt::21.92366pt.
+[209
+
+
+]
+l2hSize :tex2html_wrap_inline8737:7.44444pt::7.44444pt::34.66666pt.
+[210
+
+
+]
+l2hSize :tex2html_wrap_inline8739:8.0pt::8.0pt::17.32643pt.
+[211
+
+
+]
+l2hSize :tex2html_wrap_indisplay8764:7.33331pt::7.33331pt::47.68889pt.
+[212
+
+
+]
+l2hSize :tex2html_wrap_inline8766:6.95831pt::6.95831pt::9.95146pt.
+[213
+
+
+]
+l2hSize :tex2html_wrap_inline8768:6.83331pt::0.0pt::9.56946pt.
+[214
+
+
+]
+l2hSize :tex2html_wrap_indisplay8770:18.00015pt::18.00015pt::207.90103pt.
+[215
+
+
+]
+l2hSize :tex2html_wrap_indisplay8774:18.33339pt::18.33339pt::151.09164pt.
+[216
+
+
+]
+l2hSize :tex2html_wrap_indisplay8776:18.33339pt::18.33339pt::228.35915pt.
+[217
+
+
+]
+l2hSize :tex2html_wrap_indisplay8778:10.50487pt::10.50487pt::235.90079pt.
+[218
+
+
+]
+l2hSize :tex2html_wrap_inline8780:9.85pt::9.85pt::88.43417pt.
+[219
+
+
+]
+l2hSize :tex2html_wrap_indisplay8782:10.50487pt::10.50487pt::150.7605pt.
+[220
+
+
+]
+l2hSize :tex2html_wrap_inline8786:6.95831pt::6.95831pt::14.73717pt.
+[221
+
+
+]
+l2hSize :tex2html_wrap_indisplay8788:22.05098pt::22.05098pt::87.08226pt.
+[222
+
+
+]
+l2hSize :tex2html_wrap_indisplay8790:18.33339pt::18.33339pt::124.6702pt.
+[223
+
+
+]
+l2hSize :tex2html_wrap_indisplay8792:18.33339pt::18.33339pt::332.75139pt.
+[224
+
+
+]
+l2hSize :tex2html_wrap_indisplay8794:18.33339pt::18.33339pt::396.02237pt.
+
+Overfull \hbox (50.02238pt too wide) in paragraph at lines 2011--2012
+[]|[]
+ []
+
+[225
+
+
+]
+l2hSize :tex2html_wrap_indisplay8796:22.80008pt::22.80008pt::508.49103pt.
+
+Overfull \hbox (162.49104pt too wide) in paragraph at lines 2028--2029
+[]|[]
+ []
+
+[226
+
+
+] (./images.aux)
+
+LaTeX Warning: There were multiply-defined labels.
+
+ )
+Here is how much of TeX's memory you used:
+ 4485 strings out of 256217
+ 58750 string characters out of 1917094
+ 128779 words of memory out of 1500000
+ 7677 multiletter control sequences out of 10000+200000
+ 9425 words of font info for 38 fonts, out of 1200000 for 2000
+ 645 hyphenation exceptions out of 8191
+ 32i,49n,24p,738b,517s stack positions out of 5000i,500n,6000p,200000b,15000s
+
+Output written on images.dvi (226 pages, 169116 bytes).
diff --git a/manual/docs/html/slsDetectors-FAQ/images.out b/manual/docs/html/slsDetectors-FAQ/images.out
new file mode 100644
index 000000000..e69de29bb
diff --git a/manual/docs/html/slsDetectors-FAQ/img100.png b/manual/docs/html/slsDetectors-FAQ/img100.png
new file mode 100644
index 000000000..1e16864e4
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img100.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img101.png b/manual/docs/html/slsDetectors-FAQ/img101.png
new file mode 100644
index 000000000..663687d2d
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img101.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img102.png b/manual/docs/html/slsDetectors-FAQ/img102.png
new file mode 100644
index 000000000..73e1a4268
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img102.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img103.png b/manual/docs/html/slsDetectors-FAQ/img103.png
new file mode 100644
index 000000000..26d56cdbf
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img103.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img104.png b/manual/docs/html/slsDetectors-FAQ/img104.png
new file mode 100644
index 000000000..fa4275ec2
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img104.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img105.png b/manual/docs/html/slsDetectors-FAQ/img105.png
new file mode 100644
index 000000000..e938e1427
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img105.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img106.png b/manual/docs/html/slsDetectors-FAQ/img106.png
new file mode 100644
index 000000000..b2f28d2b8
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img106.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img107.png b/manual/docs/html/slsDetectors-FAQ/img107.png
new file mode 100644
index 000000000..a59ed8c15
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img107.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img108.png b/manual/docs/html/slsDetectors-FAQ/img108.png
new file mode 100644
index 000000000..c8357760a
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img108.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img109.png b/manual/docs/html/slsDetectors-FAQ/img109.png
new file mode 100644
index 000000000..8caf85edb
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img109.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img110.png b/manual/docs/html/slsDetectors-FAQ/img110.png
new file mode 100644
index 000000000..d63da888c
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img110.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img111.png b/manual/docs/html/slsDetectors-FAQ/img111.png
new file mode 100644
index 000000000..76b7d0d58
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img111.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img112.png b/manual/docs/html/slsDetectors-FAQ/img112.png
new file mode 100644
index 000000000..fa9cc3b95
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img112.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img113.png b/manual/docs/html/slsDetectors-FAQ/img113.png
new file mode 100644
index 000000000..9a5ca9879
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img113.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img114.png b/manual/docs/html/slsDetectors-FAQ/img114.png
new file mode 100644
index 000000000..d32108192
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img114.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img115.png b/manual/docs/html/slsDetectors-FAQ/img115.png
new file mode 100644
index 000000000..c41d27916
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img115.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img116.png b/manual/docs/html/slsDetectors-FAQ/img116.png
new file mode 100644
index 000000000..5af403907
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img116.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img117.png b/manual/docs/html/slsDetectors-FAQ/img117.png
new file mode 100644
index 000000000..04896dc95
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img117.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img118.png b/manual/docs/html/slsDetectors-FAQ/img118.png
new file mode 100644
index 000000000..7758d00af
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img118.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img119.png b/manual/docs/html/slsDetectors-FAQ/img119.png
new file mode 100644
index 000000000..46187c2af
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img119.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img120.png b/manual/docs/html/slsDetectors-FAQ/img120.png
new file mode 100644
index 000000000..9cfd192f4
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img120.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img121.png b/manual/docs/html/slsDetectors-FAQ/img121.png
new file mode 100644
index 000000000..350254849
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img121.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img122.png b/manual/docs/html/slsDetectors-FAQ/img122.png
new file mode 100644
index 000000000..ffeaae324
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img122.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img123.png b/manual/docs/html/slsDetectors-FAQ/img123.png
new file mode 100644
index 000000000..9f11550d2
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img123.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img124.png b/manual/docs/html/slsDetectors-FAQ/img124.png
new file mode 100644
index 000000000..ac3c9ed41
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img124.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img125.png b/manual/docs/html/slsDetectors-FAQ/img125.png
new file mode 100644
index 000000000..a505cd7cb
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img125.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img126.png b/manual/docs/html/slsDetectors-FAQ/img126.png
new file mode 100644
index 000000000..8f0b21b26
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img126.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img127.png b/manual/docs/html/slsDetectors-FAQ/img127.png
new file mode 100644
index 000000000..44d3975d9
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img127.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img128.png b/manual/docs/html/slsDetectors-FAQ/img128.png
new file mode 100644
index 000000000..a047861ee
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img128.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img129.png b/manual/docs/html/slsDetectors-FAQ/img129.png
new file mode 100644
index 000000000..4c5342042
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img129.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img130.png b/manual/docs/html/slsDetectors-FAQ/img130.png
new file mode 100644
index 000000000..ebbc773b0
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img130.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img131.png b/manual/docs/html/slsDetectors-FAQ/img131.png
new file mode 100644
index 000000000..998f25899
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img131.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img132.png b/manual/docs/html/slsDetectors-FAQ/img132.png
new file mode 100644
index 000000000..e6104d893
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img132.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img133.png b/manual/docs/html/slsDetectors-FAQ/img133.png
new file mode 100644
index 000000000..11cc7c735
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img133.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img134.png b/manual/docs/html/slsDetectors-FAQ/img134.png
new file mode 100644
index 000000000..1bb66670c
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img134.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img135.png b/manual/docs/html/slsDetectors-FAQ/img135.png
new file mode 100644
index 000000000..d64b3adf5
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img135.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img136.png b/manual/docs/html/slsDetectors-FAQ/img136.png
new file mode 100644
index 000000000..8d6a703f4
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img136.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img137.png b/manual/docs/html/slsDetectors-FAQ/img137.png
new file mode 100644
index 000000000..2c7236fca
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img137.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img138.png b/manual/docs/html/slsDetectors-FAQ/img138.png
new file mode 100644
index 000000000..3251a2cfa
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img138.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img139.png b/manual/docs/html/slsDetectors-FAQ/img139.png
new file mode 100644
index 000000000..ddf105054
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img139.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img140.png b/manual/docs/html/slsDetectors-FAQ/img140.png
new file mode 100644
index 000000000..5c81279ce
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img140.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img141.png b/manual/docs/html/slsDetectors-FAQ/img141.png
new file mode 100644
index 000000000..7acc83c7b
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img141.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img142.png b/manual/docs/html/slsDetectors-FAQ/img142.png
new file mode 100644
index 000000000..ce12e6499
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img142.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img143.png b/manual/docs/html/slsDetectors-FAQ/img143.png
new file mode 100644
index 000000000..185676004
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img143.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img144.png b/manual/docs/html/slsDetectors-FAQ/img144.png
new file mode 100644
index 000000000..98f6b9bcf
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img144.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img145.png b/manual/docs/html/slsDetectors-FAQ/img145.png
new file mode 100644
index 000000000..650515940
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img145.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img146.png b/manual/docs/html/slsDetectors-FAQ/img146.png
new file mode 100644
index 000000000..5fcb8c4c3
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img146.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img147.png b/manual/docs/html/slsDetectors-FAQ/img147.png
new file mode 100644
index 000000000..bfc0c6f33
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img147.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img148.png b/manual/docs/html/slsDetectors-FAQ/img148.png
new file mode 100644
index 000000000..70ac4422d
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img148.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img149.png b/manual/docs/html/slsDetectors-FAQ/img149.png
new file mode 100644
index 000000000..87436894f
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img149.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img150.png b/manual/docs/html/slsDetectors-FAQ/img150.png
new file mode 100644
index 000000000..00dd50e84
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img150.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img151.png b/manual/docs/html/slsDetectors-FAQ/img151.png
new file mode 100644
index 000000000..9d1092de2
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img151.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img152.png b/manual/docs/html/slsDetectors-FAQ/img152.png
new file mode 100644
index 000000000..a77ee1ecf
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img152.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img153.png b/manual/docs/html/slsDetectors-FAQ/img153.png
new file mode 100644
index 000000000..fb94c6fe3
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img153.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img154.png b/manual/docs/html/slsDetectors-FAQ/img154.png
new file mode 100644
index 000000000..14d8c1b34
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img154.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img155.png b/manual/docs/html/slsDetectors-FAQ/img155.png
new file mode 100644
index 000000000..55ebed609
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img155.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img156.png b/manual/docs/html/slsDetectors-FAQ/img156.png
new file mode 100644
index 000000000..5d8139e59
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img156.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img157.png b/manual/docs/html/slsDetectors-FAQ/img157.png
new file mode 100644
index 000000000..8c7887154
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img157.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img158.png b/manual/docs/html/slsDetectors-FAQ/img158.png
new file mode 100644
index 000000000..1329f00fa
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img158.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img159.png b/manual/docs/html/slsDetectors-FAQ/img159.png
new file mode 100644
index 000000000..1d831acd7
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img159.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img160.png b/manual/docs/html/slsDetectors-FAQ/img160.png
new file mode 100644
index 000000000..09e88db11
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img160.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img161.png b/manual/docs/html/slsDetectors-FAQ/img161.png
new file mode 100644
index 000000000..b35623c28
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img161.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img162.png b/manual/docs/html/slsDetectors-FAQ/img162.png
new file mode 100644
index 000000000..211a70ba6
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img162.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img163.png b/manual/docs/html/slsDetectors-FAQ/img163.png
new file mode 100644
index 000000000..5de243d06
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img163.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img164.png b/manual/docs/html/slsDetectors-FAQ/img164.png
new file mode 100644
index 000000000..d9e6c3ebb
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img164.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img165.png b/manual/docs/html/slsDetectors-FAQ/img165.png
new file mode 100644
index 000000000..548902ee7
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img165.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img166.png b/manual/docs/html/slsDetectors-FAQ/img166.png
new file mode 100644
index 000000000..2f6a031ee
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img166.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img167.png b/manual/docs/html/slsDetectors-FAQ/img167.png
new file mode 100644
index 000000000..a3527cde4
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img167.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img168.png b/manual/docs/html/slsDetectors-FAQ/img168.png
new file mode 100644
index 000000000..d27aee4fd
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img168.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img169.png b/manual/docs/html/slsDetectors-FAQ/img169.png
new file mode 100644
index 000000000..5aec5e0f2
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img169.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img170.png b/manual/docs/html/slsDetectors-FAQ/img170.png
new file mode 100644
index 000000000..c999d29c1
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img170.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img171.png b/manual/docs/html/slsDetectors-FAQ/img171.png
new file mode 100644
index 000000000..51fbdb698
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img171.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img172.png b/manual/docs/html/slsDetectors-FAQ/img172.png
new file mode 100644
index 000000000..3a845c1a5
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img172.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img173.png b/manual/docs/html/slsDetectors-FAQ/img173.png
new file mode 100644
index 000000000..a3deaff3d
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img173.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img174.png b/manual/docs/html/slsDetectors-FAQ/img174.png
new file mode 100644
index 000000000..1f08cc540
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img174.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img175.png b/manual/docs/html/slsDetectors-FAQ/img175.png
new file mode 100644
index 000000000..226e21bfa
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img175.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img176.png b/manual/docs/html/slsDetectors-FAQ/img176.png
new file mode 100644
index 000000000..20280178a
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img176.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img177.png b/manual/docs/html/slsDetectors-FAQ/img177.png
new file mode 100644
index 000000000..2669373a8
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img177.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img178.png b/manual/docs/html/slsDetectors-FAQ/img178.png
new file mode 100644
index 000000000..0e8923c8c
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img178.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img179.png b/manual/docs/html/slsDetectors-FAQ/img179.png
new file mode 100644
index 000000000..6893feba0
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img179.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img180.png b/manual/docs/html/slsDetectors-FAQ/img180.png
new file mode 100644
index 000000000..26b8f2986
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img180.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img181.png b/manual/docs/html/slsDetectors-FAQ/img181.png
new file mode 100644
index 000000000..a85acee10
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img181.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img182.png b/manual/docs/html/slsDetectors-FAQ/img182.png
new file mode 100644
index 000000000..83f4c9d53
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img182.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img183.png b/manual/docs/html/slsDetectors-FAQ/img183.png
new file mode 100644
index 000000000..3e80f3afa
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img183.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img184.png b/manual/docs/html/slsDetectors-FAQ/img184.png
new file mode 100644
index 000000000..1eab5fe7e
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img184.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img185.png b/manual/docs/html/slsDetectors-FAQ/img185.png
new file mode 100644
index 000000000..0712bf4d6
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img185.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img186.png b/manual/docs/html/slsDetectors-FAQ/img186.png
new file mode 100644
index 000000000..604585f79
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img186.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img187.png b/manual/docs/html/slsDetectors-FAQ/img187.png
new file mode 100644
index 000000000..7f0f73530
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img187.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img188.png b/manual/docs/html/slsDetectors-FAQ/img188.png
new file mode 100644
index 000000000..5556e49a6
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img188.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img189.png b/manual/docs/html/slsDetectors-FAQ/img189.png
new file mode 100644
index 000000000..719ffc074
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img189.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img190.png b/manual/docs/html/slsDetectors-FAQ/img190.png
new file mode 100644
index 000000000..750ac3305
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img190.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img191.png b/manual/docs/html/slsDetectors-FAQ/img191.png
new file mode 100644
index 000000000..18f123fde
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img191.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img192.png b/manual/docs/html/slsDetectors-FAQ/img192.png
new file mode 100644
index 000000000..58d7632d1
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img192.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img193.png b/manual/docs/html/slsDetectors-FAQ/img193.png
new file mode 100644
index 000000000..3b54f0927
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img193.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img194.png b/manual/docs/html/slsDetectors-FAQ/img194.png
new file mode 100644
index 000000000..6a0d99947
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img194.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img195.png b/manual/docs/html/slsDetectors-FAQ/img195.png
new file mode 100644
index 000000000..140c5d4f1
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img195.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img196.png b/manual/docs/html/slsDetectors-FAQ/img196.png
new file mode 100644
index 000000000..1bcad5b2d
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img196.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img197.png b/manual/docs/html/slsDetectors-FAQ/img197.png
new file mode 100644
index 000000000..f268f17a3
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img197.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img198.png b/manual/docs/html/slsDetectors-FAQ/img198.png
new file mode 100644
index 000000000..1f539e817
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img198.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img199.png b/manual/docs/html/slsDetectors-FAQ/img199.png
new file mode 100644
index 000000000..5005e03ca
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img199.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img200.png b/manual/docs/html/slsDetectors-FAQ/img200.png
new file mode 100644
index 000000000..f8b754ecd
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img200.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img201.png b/manual/docs/html/slsDetectors-FAQ/img201.png
new file mode 100644
index 000000000..f15f687be
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img201.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img202.png b/manual/docs/html/slsDetectors-FAQ/img202.png
new file mode 100644
index 000000000..82b526277
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img202.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img203.png b/manual/docs/html/slsDetectors-FAQ/img203.png
new file mode 100644
index 000000000..46d32e9b6
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img203.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img204.png b/manual/docs/html/slsDetectors-FAQ/img204.png
new file mode 100644
index 000000000..a1ed0a7b8
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img204.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img205.png b/manual/docs/html/slsDetectors-FAQ/img205.png
new file mode 100644
index 000000000..0a72e5015
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img205.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img206.png b/manual/docs/html/slsDetectors-FAQ/img206.png
new file mode 100644
index 000000000..6879eb311
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img206.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img207.png b/manual/docs/html/slsDetectors-FAQ/img207.png
new file mode 100644
index 000000000..03a3c1c50
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img207.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img208.png b/manual/docs/html/slsDetectors-FAQ/img208.png
new file mode 100644
index 000000000..1e3639e7f
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img208.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img209.png b/manual/docs/html/slsDetectors-FAQ/img209.png
new file mode 100644
index 000000000..1b6ac008c
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img209.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img210.png b/manual/docs/html/slsDetectors-FAQ/img210.png
new file mode 100644
index 000000000..92d5ea47e
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img210.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img211.png b/manual/docs/html/slsDetectors-FAQ/img211.png
new file mode 100644
index 000000000..a6b794f36
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img211.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img212.png b/manual/docs/html/slsDetectors-FAQ/img212.png
new file mode 100644
index 000000000..f1006f47a
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img212.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img213.png b/manual/docs/html/slsDetectors-FAQ/img213.png
new file mode 100644
index 000000000..ef1e8658d
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img213.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img214.png b/manual/docs/html/slsDetectors-FAQ/img214.png
new file mode 100644
index 000000000..bcb2baddf
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img214.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img215.png b/manual/docs/html/slsDetectors-FAQ/img215.png
new file mode 100644
index 000000000..168fcdd82
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img215.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img216.png b/manual/docs/html/slsDetectors-FAQ/img216.png
new file mode 100644
index 000000000..731ea9e58
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img216.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img217.png b/manual/docs/html/slsDetectors-FAQ/img217.png
new file mode 100644
index 000000000..3a92f8bcb
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img217.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img218.png b/manual/docs/html/slsDetectors-FAQ/img218.png
new file mode 100644
index 000000000..353321257
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img218.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img219.png b/manual/docs/html/slsDetectors-FAQ/img219.png
new file mode 100644
index 000000000..51e87e722
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img219.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img220.png b/manual/docs/html/slsDetectors-FAQ/img220.png
new file mode 100644
index 000000000..dc2fd3bad
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img220.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img221.png b/manual/docs/html/slsDetectors-FAQ/img221.png
new file mode 100644
index 000000000..bebfcff86
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img221.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img222.png b/manual/docs/html/slsDetectors-FAQ/img222.png
new file mode 100644
index 000000000..ad8e6b7fd
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img222.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img223.png b/manual/docs/html/slsDetectors-FAQ/img223.png
new file mode 100644
index 000000000..7a4f4fd31
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img223.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img224.png b/manual/docs/html/slsDetectors-FAQ/img224.png
new file mode 100644
index 000000000..59f92d381
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img224.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img225.png b/manual/docs/html/slsDetectors-FAQ/img225.png
new file mode 100644
index 000000000..3a86b3b0a
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img225.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img226.png b/manual/docs/html/slsDetectors-FAQ/img226.png
new file mode 100644
index 000000000..09cbd6304
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img226.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img37.png b/manual/docs/html/slsDetectors-FAQ/img37.png
new file mode 100644
index 000000000..6e7e87e99
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img37.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img38.png b/manual/docs/html/slsDetectors-FAQ/img38.png
new file mode 100644
index 000000000..cedea8371
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img38.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img39.png b/manual/docs/html/slsDetectors-FAQ/img39.png
new file mode 100644
index 000000000..6fb3fe48f
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img39.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img40.png b/manual/docs/html/slsDetectors-FAQ/img40.png
new file mode 100644
index 000000000..da71ce5ef
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img40.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img41.png b/manual/docs/html/slsDetectors-FAQ/img41.png
new file mode 100644
index 000000000..24f2f065e
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img41.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img42.png b/manual/docs/html/slsDetectors-FAQ/img42.png
new file mode 100644
index 000000000..a8bfc5aab
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img42.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img43.png b/manual/docs/html/slsDetectors-FAQ/img43.png
new file mode 100644
index 000000000..131ab2d6d
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img43.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img44.png b/manual/docs/html/slsDetectors-FAQ/img44.png
new file mode 100644
index 000000000..698e1f030
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img44.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img45.png b/manual/docs/html/slsDetectors-FAQ/img45.png
new file mode 100644
index 000000000..aa4e3d032
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img45.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img46.png b/manual/docs/html/slsDetectors-FAQ/img46.png
new file mode 100644
index 000000000..d35883ef5
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img46.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img47.png b/manual/docs/html/slsDetectors-FAQ/img47.png
new file mode 100644
index 000000000..fbe62273a
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img47.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img48.png b/manual/docs/html/slsDetectors-FAQ/img48.png
new file mode 100644
index 000000000..42f9a9517
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img48.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img49.png b/manual/docs/html/slsDetectors-FAQ/img49.png
new file mode 100644
index 000000000..ed9f22c1f
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img49.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img50.png b/manual/docs/html/slsDetectors-FAQ/img50.png
new file mode 100644
index 000000000..aa4e3d032
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img50.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img51.png b/manual/docs/html/slsDetectors-FAQ/img51.png
new file mode 100644
index 000000000..a8324ab2e
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img51.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img52.png b/manual/docs/html/slsDetectors-FAQ/img52.png
new file mode 100644
index 000000000..ecc4aabff
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img52.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img53.png b/manual/docs/html/slsDetectors-FAQ/img53.png
new file mode 100644
index 000000000..fbe62273a
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img53.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img54.png b/manual/docs/html/slsDetectors-FAQ/img54.png
new file mode 100644
index 000000000..624d3dd06
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img54.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img55.png b/manual/docs/html/slsDetectors-FAQ/img55.png
new file mode 100644
index 000000000..d35883ef5
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img55.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img56.png b/manual/docs/html/slsDetectors-FAQ/img56.png
new file mode 100644
index 000000000..a3db25860
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img56.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img57.png b/manual/docs/html/slsDetectors-FAQ/img57.png
new file mode 100644
index 000000000..131ab2d6d
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img57.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img58.png b/manual/docs/html/slsDetectors-FAQ/img58.png
new file mode 100644
index 000000000..341c6dcb1
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img58.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img59.png b/manual/docs/html/slsDetectors-FAQ/img59.png
new file mode 100644
index 000000000..a8bfc5aab
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img59.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img60.png b/manual/docs/html/slsDetectors-FAQ/img60.png
new file mode 100644
index 000000000..be443eff0
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img60.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img61.png b/manual/docs/html/slsDetectors-FAQ/img61.png
new file mode 100644
index 000000000..698e1f030
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img61.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img62.png b/manual/docs/html/slsDetectors-FAQ/img62.png
new file mode 100644
index 000000000..e0f1a48cd
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img62.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img63.png b/manual/docs/html/slsDetectors-FAQ/img63.png
new file mode 100644
index 000000000..a48a0b514
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img63.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img64.png b/manual/docs/html/slsDetectors-FAQ/img64.png
new file mode 100644
index 000000000..a48a0b514
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img64.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img65.png b/manual/docs/html/slsDetectors-FAQ/img65.png
new file mode 100644
index 000000000..31e636936
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img65.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img66.png b/manual/docs/html/slsDetectors-FAQ/img66.png
new file mode 100644
index 000000000..8837c5c1b
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img66.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img67.png b/manual/docs/html/slsDetectors-FAQ/img67.png
new file mode 100644
index 000000000..82514d0a7
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img67.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img68.png b/manual/docs/html/slsDetectors-FAQ/img68.png
new file mode 100644
index 000000000..ba1d42aa8
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img68.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img69.png b/manual/docs/html/slsDetectors-FAQ/img69.png
new file mode 100644
index 000000000..7770a32af
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img69.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img70.png b/manual/docs/html/slsDetectors-FAQ/img70.png
new file mode 100644
index 000000000..7cda905a1
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img70.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img71.png b/manual/docs/html/slsDetectors-FAQ/img71.png
new file mode 100644
index 000000000..1d031bf34
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img71.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img72.png b/manual/docs/html/slsDetectors-FAQ/img72.png
new file mode 100644
index 000000000..ff49f90df
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img72.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img73.png b/manual/docs/html/slsDetectors-FAQ/img73.png
new file mode 100644
index 000000000..25a20c1a9
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img73.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img74.png b/manual/docs/html/slsDetectors-FAQ/img74.png
new file mode 100644
index 000000000..b60440ebf
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img74.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img75.png b/manual/docs/html/slsDetectors-FAQ/img75.png
new file mode 100644
index 000000000..3c95ecb8a
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img75.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img76.png b/manual/docs/html/slsDetectors-FAQ/img76.png
new file mode 100644
index 000000000..189b57344
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img76.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img77.png b/manual/docs/html/slsDetectors-FAQ/img77.png
new file mode 100644
index 000000000..f8f606059
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img77.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img78.png b/manual/docs/html/slsDetectors-FAQ/img78.png
new file mode 100644
index 000000000..0c445fb68
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img78.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img79.png b/manual/docs/html/slsDetectors-FAQ/img79.png
new file mode 100644
index 000000000..f311e4fea
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img79.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img80.png b/manual/docs/html/slsDetectors-FAQ/img80.png
new file mode 100644
index 000000000..368d3c8db
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img80.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img81.png b/manual/docs/html/slsDetectors-FAQ/img81.png
new file mode 100644
index 000000000..2fd4b89d4
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img81.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img82.png b/manual/docs/html/slsDetectors-FAQ/img82.png
new file mode 100644
index 000000000..ee248c5ee
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img82.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img83.png b/manual/docs/html/slsDetectors-FAQ/img83.png
new file mode 100644
index 000000000..1156e733a
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img83.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img84.png b/manual/docs/html/slsDetectors-FAQ/img84.png
new file mode 100644
index 000000000..26afe95a8
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img84.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img85.png b/manual/docs/html/slsDetectors-FAQ/img85.png
new file mode 100644
index 000000000..edce441db
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img85.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img86.png b/manual/docs/html/slsDetectors-FAQ/img86.png
new file mode 100644
index 000000000..df929bbd6
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img86.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img87.png b/manual/docs/html/slsDetectors-FAQ/img87.png
new file mode 100644
index 000000000..2a5d433c4
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img87.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img88.png b/manual/docs/html/slsDetectors-FAQ/img88.png
new file mode 100644
index 000000000..e73829ff8
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img88.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img89.png b/manual/docs/html/slsDetectors-FAQ/img89.png
new file mode 100644
index 000000000..d0b644267
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img89.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img90.png b/manual/docs/html/slsDetectors-FAQ/img90.png
new file mode 100644
index 000000000..80c1d729f
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img90.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img91.png b/manual/docs/html/slsDetectors-FAQ/img91.png
new file mode 100644
index 000000000..553046a4f
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img91.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img92.png b/manual/docs/html/slsDetectors-FAQ/img92.png
new file mode 100644
index 000000000..c8995ed22
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img92.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img93.png b/manual/docs/html/slsDetectors-FAQ/img93.png
new file mode 100644
index 000000000..ccc6b34e7
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img93.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img94.png b/manual/docs/html/slsDetectors-FAQ/img94.png
new file mode 100644
index 000000000..fe5116690
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img94.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img95.png b/manual/docs/html/slsDetectors-FAQ/img95.png
new file mode 100644
index 000000000..1156e733a
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img95.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img96.png b/manual/docs/html/slsDetectors-FAQ/img96.png
new file mode 100644
index 000000000..40074a92b
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img96.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img97.png b/manual/docs/html/slsDetectors-FAQ/img97.png
new file mode 100644
index 000000000..60c95566c
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img97.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img98.png b/manual/docs/html/slsDetectors-FAQ/img98.png
new file mode 100644
index 000000000..5c8d39088
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img98.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/img99.png b/manual/docs/html/slsDetectors-FAQ/img99.png
new file mode 100644
index 000000000..f4f5fda17
Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img99.png differ
diff --git a/manual/docs/html/slsDetectors-FAQ/node1.html b/manual/docs/html/slsDetectors-FAQ/node1.html
new file mode 100644
index 000000000..182cff30f
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node1.html
@@ -0,0 +1,204 @@
+
+
+
+
+
+Contents
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: SLS Detectors Software
+ Up: SLS Detectors Frequently Asked
+ Previous: SLS Detectors Frequently Asked
+
+
+
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node10.html b/manual/docs/html/slsDetectors-FAQ/node10.html
new file mode 100644
index 000000000..9d86d060c
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node10.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+How should a configuration file look like?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: What is the meaning
+ Up: SLS Detectors Software
+ Previous: GOTTHARD
+ Contents
+
+
+
+
+
+
+
+A configuration file is a list of command necessary to properly configure your detector systems, with default valuee for some parameters and other settings that the users should normally not change dinamically.
+For this reason most of the commands present in the configuration file cannot be modified when using the API.
+
+The syntax of the configuration file is exactly the same as in the comman line interface, therefore you can refere to that documentation to edit the files.
+
+The configuration files look different for the different detector types. Examples of configuration files can be found in the examples directory.
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node11.html b/manual/docs/html/slsDetectors-FAQ/node11.html
new file mode 100644
index 000000000..58b9b0f76
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node11.html
@@ -0,0 +1,86 @@
+
+
+
+
+
+What is the meaning of the file name?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Which is the sequence
+ Up: SLS Detectors Software
+ Previous: How should a configuration
+ Contents
+
+
+
+
+
+The final file name will be:
+outdir/prefix [_d
+][_S
v0 ][_s
v1 ][_p
p ][_f
f ]_
i .
ext
+
+where:
+outdir is the output directory path;
+prefix is the chosen prefix for the file name;
+d is the detector index, in case of data receiver and more than one detector;
+v0 is the scan0 variable with the desired precision, if scan0 is enabled;
+v1 is the scan1 variable with the desired precision, if scan1 is enabled;
+p is the position index, if different positions are configured;
+f is the frame index of the first frame stored in the file, if many frames and cycles are configured;
+i is the file index;
+ext is the file extension e.g. .raw for MYTHEN raw data, .dat for MYTHEN processed data.
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node12.html b/manual/docs/html/slsDetectors-FAQ/node12.html
new file mode 100644
index 000000000..e26e3e257
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node12.html
@@ -0,0 +1,343 @@
+
+
+
+
+
+Which is the sequence of the acquisition flow?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How can I synchronize
+ Up: SLS Detectors Software
+ Previous: What is the meaning
+ Contents
+
+
+
+
+
+
+
+The software gives the possibility to setup several loops, actions and scan utilities which are then handled during the acquisition.
+The software will also take care to generate the file names and increment the indexes accordingly.
+
+
+Figure 1.7 shows in which sequence the various scripts and loops are executed when calling the acquire command. The loops are drawn using the
+
+ symbol, while the scripts using the
+
+.
+
+
+
+
+
+
+
+
+
+
+If you prefere to handle the acquisition from your acquisition enviroment, simply leave al scripts and scans disabled and call the acquition from your acquisition enviroment.
+
+Only the frames and cycles loops are defined in firmware and guarantee a precise timing of the acquisition which cannot replaced by any other method (you can synchronize to your beamline by hardware connection of the IO signals as described in 1.8 ).
+
+
+Hereafter a description of the meaning of the various loops:
+
+Measurement loop
+executes offline several times the entire sequence of the acquisition. At the end of each measurement the file index is incremented.
+
+
+
+Scan 0 loop
+is a high level scan loop which can be used e.g to loop on an enviroment variable (temperature, humidity...) or even to change sample.
+
+The list of steps or range of the scan0 variable must be set as scan0steps or scan0range. For small steps of the scan variable, avoid overwriting of the files specifying all the necessary digits in the filename by properly setting the precision with scan0prec.
+
+
+
+Scan 1 loop
+is a low level scan loop which can be used e.g to loop on an enviroment variable (temperature, humidity...) or to move the sample in case of radiation damage.
+
+The list of steps or range of the scan1 variable must be set as scan1steps or scan1range. For small steps of the scan variable, avoid overwriting of the files specifying all the necessary digits in the filename by properly setting the precision with scan1prec.
+
+
+
+Position loop
+The detector is moved in the angular positions specified by the positions command.
+
+The command for moving the detector should be defined as described in 1.10 .
+
+All data acquired during a position loop will be merged together, unless the number of positions is set to 0. In this case single frames will be converted to angle without merging.
+
+Avoid using the position loop together with many frames/cycles.
+
+
+
+Cycles loop
+is executed in real time and defines e.g. the number of triggers that will be accepted. The total number of images will be given by frames times cycles.
+
+
+
+Frames loop
+is executed in real time and defines e.g. the images acquired per trigger. The total number of images will be given by frames times cycles.
+
+
+
+
+Executing a script simply consists in a system call with the arguments specified below. The various scripts are executed only if they are enabled and different than none .
+
+The scripts must be executable and the capability of parsing the arguments passed by the acquition program is left to the user writing the scripts. some example scripts writte in awk can be found in the examples directory.
+
+Hereafter a short description of how the scripts are called and with which options:
+
+Start script
+is executed at the very beginning of the measurement and can be used e.g. to initialize all the devices needed for the acquisition or open the beamline valves. The script is executed as:
+
+script nrun=i par=p
+
+where i is the file index and p is the start script parameter .
+
+
+
+Scan0 script
+There are a few predefined scan modes i.e. threshold changing the detector threshold in DAC units, energy chaning the calibrated detector threshold in eV, trimbits chaning the trimbits of the detector (advanced: do not use) and position changing the detector position (if the motor movement is correctly setup as described in 1.10 ). Otherwise the scan0script is executed as:
+
+script nrun=i fn=fn var=v par=p
+
+where i is the file index , fn is the file name , v is the value of the scan0 variable at the present step of the scan0 loop and p is the scan 0 script parameter .
+
+
+
+Scan1 script
+There are a few predefined scan modes i.e. threshold changing the detector threshold in DAC units, energy chaning the calibrated detector threshold in eV, trimbits chaning the trimbits of the detector (advanced: do not use) and position changing the detector position (if the motor movement is correctly setup as described in 1.10 ). Otherwise the scan1script is executed as:
+
+script nrun=i fn=fn var=v par=p
+
+where i is the file index , fn is the file name , v is the value of the scan1 variable at the present step of the scan1 loop and p is the scan 1 script parameter .
+
+
+
+Script before
+is called just before the beginning of the data taking and can be used e.g. to open the shutter.
+ The script is executed as:
+
+script nrun=i fn=fn par=p sv0=v0 sv1=v1 p0=p0 p1=p1
+
+where i is the file index , fn is the file name , p is the script before parameter , v0 and v1 are the values of the scan0 and scan1 variables at the present step of the scan loops and p0 and p1 are the scan0 and scan1 script parameters .
+
+
+
+Header before script
+is called before every step of the data taking (i.e. for each position, but at the beginning of the frames train if several acquisition have been programmed in real time) and can e.g. be used to dump the exact settings of the detector and beamline to reproduce or analyze the data offline.
+ The script is executed as:
+
+script nrun=i fn=fn par=p
+
+where i is the file index , fn is the file name , and p is the header before parameter .
+
+
+
+Header after script
+is called after every step of the data taking (i.e. for each position, but at the end of the frames train if several acquisition have been programmed in real time) and can e.g. be used to dump the exact settings of the detector and beamline to reproduce or analyze the data offline.
+ The script is executed as:
+
+script nrun=i fn=fn par=p
+
+where i is the file index , fn is the file name , and p is the header after parameter .
+
+
+
+Script after
+is called just after the end of the data taking and can be used e.g. to close the shutter.
+ The script is executed as:
+
+script nrun=i fn=fn par=p sv0=v0 sv1=v1 p0=p0 p1=p1
+
+where i is the file index , fn is the file name , p is the script after parameter , v0 and v1 are the values of the scan0 and scan1 variables at the present step of the scan loops and p0 and p1 are the scan0 and scan1 script parameters .
+
+
+
+Stop script
+is executed at the very end of the measurement and can be used e.g. to switch off all devices. The script is executed as:
+
+script nrun=i par=p
+
+where i si the file index and p is the stop script parameter .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How can I synchronize
+ Up: SLS Detectors Software
+ Previous: What is the meaning
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node13.html b/manual/docs/html/slsDetectors-FAQ/node13.html
new file mode 100644
index 000000000..f480124c5
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node13.html
@@ -0,0 +1,201 @@
+
+
+
+
+
+How can I synchronize my detector with the experiment?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How can several controllers
+ Up: SLS Detectors Software
+ Previous: Which is the sequence
+ Contents
+
+
+
+
+
+
+How can I synchronize my detector with the experiment?
+
+
+
+The timing of the detector is always defined by an active detection time followed by a dead time during which the detector is read out. This read out time as a fixed duration depending on the detector type and its configuration (e.g. dynamic range) which limits the maximum frame rate achievable.
+
+In the following is a list of the main parameters involved in the acquisition timing:
+
+Exposure time
+is the time during which the detector is detecting X-rays for each image (ignored is the timing mode is gating ).
+
+Period
+is the period of the images acquired. If it is shorter than the exposure time plus readout time, it will be ignored.
+
+Delay after trigger
+can be set as a delay between the trigger signal and the start of the detection time.
+
+Number of gates
+is used only in gating mode and is the number of times that the gate is toggled before the detector is read out. Useful for stroboscopic measurements with gate period shorter than the minim acquisition period of the detector, otherwise can be left to 1.
+
+Number of frames
+is the number of images to be acquired per cycle. Frames and cycles have the same meaning except in trigger mode, when frames means the number of images per trigger. The total number of images is frames time cycles.
+
+Number of cycles
+is the number of times that the frames are acquired. Frames and cycles have the same meaning except in trigger mode, when cycles means the number of triggers that will be accepted. The total number of images is frames time cycles.
+
+Number of probes
+is used in stoboscopic measurements when the period is longer than the minimum acquisition period, but shorter than the frame rate.
+
+In this case the data can be summed in firmware.
+
+Currently it is implemented for Mythen only. If probes is set to 0, works normallyreturning an image for each readout, otherwise set number of cycles to 1. The maximum number of probes that can be set is 3. The detector will return a number of image equal to the number of probes, where all frames are going to be accumulated. The total number of readouts is number of frames time probes and for probes=1 the detector will return one image where all frames have been summed, for probes=2 two images where every second frame has been summed (each image accumulates the number of frames), for probes=3 three images where every third image has been summed (each image accumulates the number of frames).
+
+The returned images will always have 32 bit dynamic range, while the dynamic range if the detector defines the bit depth of the counters in rder to limit the readout time, if necessary.
+
+The probes counter waorks also in trigger and gating modes.
+
+
+
+
+
+
+
+Figure 1.3:
+Auto timing: the detection time is defined by the exposure time and the period by period (if longer than exposure time plus readout time). The total number of images is frames (in the example 3) times cycles (in the example 2), and in this case there is no difference between the acquisition of the two.
+
+
+
+
+
+
+
+
+
+
+
+
+Figure 1.4:
+Gating mode: the detector acquires for a number of gates define by the user (in this case 4) before being read out, independently on the timing of the gates. The detector remains insensitive during the readout time and then starts being active again. External gates given during the readout time are ignored. The total number of images is frames (in the example 3) times cycles (in the example 2), and in this case there is no difference between the acquisition of the two. The polarity of the external gate signal can be defined by the user through the external signal flag (in the example active high).
+
+
+
+
+
+
+
+
+
+
+
+
+Figure 1.5:
+Trigger mode: the external trigger signal defines the start of the beginning of the acquisition, which starts after the delay set by the user. For each trigger, the number of frames is acquired (in the example 3) and all trigger signals ignored. The number of trigger accepted is given by the number of cycles (in the example 2). The polarity of the external trigger signal can be defined by the user through the external signal flag (in the example rising edge).
+
+
+
+
+
+
+
+
+
+
+
+
+Figure 1.6:
+Read Out Trigger mode: the external trigger signal defines the beginning of the readout. The exposure time works as a time out for the waiting time for the trigger signal. The number of trigger accepted is given by the number of cycles (in the example 3) and it does not make sense to program more than one frame. The polarity of the external trigger signal can be defined by the user through the external signal flag (in the example rising edge).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How can several controllers
+ Up: SLS Detectors Software
+ Previous: Which is the sequence
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node14.html b/manual/docs/html/slsDetectors-FAQ/node14.html
new file mode 100644
index 000000000..90eb94a02
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node14.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+How can several controllers be synchronized?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How can the detector
+ Up: SLS Detectors Software
+ Previous: How can I synchronize
+ Contents
+
+
+
+
+
+
+How can several controllers be synchronized?
+
+If you are not performing time resolved measurements, you will probably not need any synchronization of the controllers: they will be started sequentially by the software and their acquisition will have a jitter of a few ms.
+
+In the case you need a precise synchronization, on the other hand, hardware connection is required between the controllers through the external IO signals. The external signals used for this synchronization should be configured as sync with the extsig command.
+
+In this case a master controller should be defined for the acquisition which will the send the synchronization signal to the other controllers, while the other controllers will use them as inputs.
+
+The type of synchronization can begating or trigger depending if the synchronization signal will gate the slave detectors or trigegr the beginning of the acquisition. There are no particular reasons to chose one or the other method, except if the user finds out that one is more stable than the other.
+
+Normally the configuration of the synchronization is configured inside the configuration file and should not be changed dynamically by the user.
+
+
+After the configuration, the synchronization of the controllers will be completely transparent for the user, who will simply have to setup the timing parameters of the detector as a whole.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How can the detector
+ Up: SLS Detectors Software
+ Previous: How can I synchronize
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node15.html b/manual/docs/html/slsDetectors-FAQ/node15.html
new file mode 100644
index 000000000..8b35fbf85
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node15.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+How can the detector movement and position and I0 readout be customized for my beamline?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: In which data format
+ Up: SLS Detectors Software
+ Previous: How can several controllers
+ Contents
+
+
+
+
+
+
+How can the detector movement and position and I0 readout be customized for my beamline?
+
+
+
+The easiest way to allow the software to perform all the necessary normalization and angular conversion steps, is enable it to move your detector and read the encoder position and the value of the ionization chamber.
+
+These functions are defines as callbacks and can be redifined by registering your own functions. This is normally a good method if you use the API or are willing to write your main client program.
+
+Otherwise the simpleast way is to edit the file
+slsDetectorSoftware/usersFunctions/usersFunctions.cpp
+
+where the default functions performing these actions are implemented and modify them to interface with your beamline hardware. The functions are written in C and are very simple to implement for anyone with some programming knowledge.
+
+A simple high-level solution in case you need to maintain the software for several beamlines and don't want to recompile for all of them is to call external scripts.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: In which data format
+ Up: SLS Detectors Software
+ Previous: How can several controllers
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node16.html b/manual/docs/html/slsDetectors-FAQ/node16.html
new file mode 100644
index 000000000..9818f4620
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node16.html
@@ -0,0 +1,88 @@
+
+
+
+
+
+In which data format are written the data?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: GOTTHARD
+ Up: SLS Detectors Software
+ Previous: How can the detector
+ Contents
+
+
+
+
+
+
+In which data format are written the data?
+
+
+
+For MYTHEN the data are writen in ASCII fomat, one file per frame, in columns, either channel number - counts for the .raw files or angle (or channel number)-counts-error for the .dat files.
+
+
+For the other detectors the files are written in binary format, and must be decoded depending on the detector.
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node17.html b/manual/docs/html/slsDetectors-FAQ/node17.html
new file mode 100644
index 000000000..723e02614
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node17.html
@@ -0,0 +1,156 @@
+
+
+
+
+
+GOTTHARD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: EIGER
+ Up: In which data format
+ Previous: In which data format
+ Contents
+
+
+
+
+
+Each file contains 100 frames.
+
+Normal mode
+Each frame is split into 2 packets of 1286 bytes each, where actual data is 1280 bytes each. Both the packets (incl header and footer) are written one after the other into the file.
+
+
+Representation of each packet:
+
+
+The first 4 bytes represents a number from which, the frame number and packet number can be derived.
+If the number was 108601, increment it by 1 to get 108602.
+
+Then this
+
+ is the frame number
+and
+
+ is the packet number.
+
+0 is the packet on the left and 1 is the packet on the right.
+
+On a side note, when you use the data call back, we also give you the derived frame number as an argument.
+
+
+
+Data of 1280 bytes. 16 bits per pixel.
+
+
+
+2 bytes of insignificant footer.
+
+
+
+
+
+Short Frame Mode
+One Frame has only one packet of 518 bytes, where actual data is 512 bytes.
+
+
+first 4 bytes is the frame number. There is no packet number or increment required herecompared to the normal mode.
+
+Data of 512 bytes.
+
+2 bytes of insignificant footer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: EIGER
+ Up: In which data format
+ Previous: In which data format
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node18.html b/manual/docs/html/slsDetectors-FAQ/node18.html
new file mode 100644
index 000000000..884ffbad5
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node18.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+EIGER
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: JUNGFRAU
+ Up: In which data format
+ Previous: GOTTHARD
+ Contents
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node19.html b/manual/docs/html/slsDetectors-FAQ/node19.html
new file mode 100644
index 000000000..c9b4bfa5c
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node19.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+JUNGFRAU
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: General questions about detectors
+ Up: In which data format
+ Previous: EIGER
+ Contents
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node2.html b/manual/docs/html/slsDetectors-FAQ/node2.html
new file mode 100644
index 000000000..5df978d25
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node2.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+SLS Detectors Software
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Which programs can I
+ Up: SLS Detectors Frequently Asked
+ Previous: Contents
+ Contents
+
+
+
+
+
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node20.html b/manual/docs/html/slsDetectors-FAQ/node20.html
new file mode 100644
index 000000000..5bb3d92d9
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node20.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+General questions about detectors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: In which X-ray energy
+ Up: SLS Detectors Frequently Asked
+ Previous: JUNGFRAU
+ Contents
+
+
+
+
+
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node21.html b/manual/docs/html/slsDetectors-FAQ/node21.html
new file mode 100644
index 000000000..236027b2e
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node21.html
@@ -0,0 +1,81 @@
+
+
+
+
+
+In which X-ray energy range can I use the detector?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Sensors
+ Up: General questions about detectors
+ Previous: General questions about detectors
+ Contents
+
+
+
+
+
+What limits the energy range in which the detector can be used is defined both by the sensors characteristics and the readout electronics.
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node22.html b/manual/docs/html/slsDetectors-FAQ/node22.html
new file mode 100644
index 000000000..822a084d4
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node22.html
@@ -0,0 +1,145 @@
+
+
+
+
+
+Sensors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Frontend electronics
+ Up: In which X-ray energy
+ Previous: In which X-ray energy
+ Contents
+
+
+
+
+
+Most of the SLS detectors make use of silicon sensors.
+
+
+Since silicon is a relatively light for hard X-rays the only limitation at high energies is the acceptable absorption efficiency that can be achieved in the sensors thickness.
+
+Figure 2.1 shows the absorption efficiency as a function of the X-ray energy and detector thickness. Normally it is possible to use sensors up to 1 mm thick, while to achieve larger absorption thicknesses it is necessary tu assemble and control telescopic systems (possible up to a few mms).
+
+To achieve larger absorption thicknesses, the sensors can be oriented in edge-on configuration (in particular strip sensors). However in this case one should take into consideration the dead entrance window due to the cutting distance from the strips, which is normally several hundreds micron, or even up to mms and reduces the absorption efficiency at lower energies.
+
+
+
+
+
+Figure 2.1:
+Efficiency of a silicon sensor as a function of the sensors thickness and X-ray energy.
+
+
+
+
+
+In standard face-on orientation, the backplane of the sensor acts as the entrance window. It presents a think n+ doped layer, which is unsensitive to radiation and causes a loss of efficiency at low energies.
+Figure 2.2 shows the absorption efficiency of the sensors for different backplane thicknesses at low energies.
+
+The exact thickness of the backplane for standard SLS sensors is not exactly known but should be about 1-2
+m.
+
+
+
+
+
+Figure 2.2:
+Efficiency of a silicon sensor as a function of the X-ray energy for different thicknesses of the backplane.
+
+
+
+
+
+However for lower energies, the main limitation is normally given by the noise of the frontend electronics (if single photon resolution is required).
+
+For higher energies it is also possible to use different sesnor materials as CdTe or Ge, although up to now they cannot provide the same signal quality as silicon.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Frontend electronics
+ Up: In which X-ray energy
+ Previous: In which X-ray energy
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node23.html b/manual/docs/html/slsDetectors-FAQ/node23.html
new file mode 100644
index 000000000..74a1113ad
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node23.html
@@ -0,0 +1,135 @@
+
+
+
+
+
+Frontend electronics
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: What limits the maximum
+ Up: In which X-ray energy
+ Previous: Sensors
+ Contents
+
+
+
+
+
+
+
+The limitations on the energy range arising from the readout electronics come from the noise and from saturation.
+The electronic noise limits the minimum detectable energy for single photons, while saturation limits the maximum detectable signal either for single photons or in total.
+
+
+In single photon counting detectors , the minimum threshold cannot be set lower than 3-5 times the electronic noise.
+If the threshold is set at approximately half of the X-ray energy (see specific documentation about single photon counting detectors), the minimu detectable energy will be about 6-10 times the noise.
+
+In order to reduce the noise of the frontend electronics different settings can be chosen, but this puts a limit on the maximum incoming flux that can be detected without incurring in pileup (see specific documentation about single photon counting detectors). Figure 2.3 shows an example of the settings used for the MYTHEN detector for different energy ranges and fluxes.
+
+For state of the art single photon counting detectors, the minimum thrshold can be about 2-3 keV (details depend on the detector and can be further reduced using special settings).
+
+
+Concerning saturation, this imposes a maximum value for the comparator threshold. Normally photons of higher energies can still be detected, but without resolution concerning the threshold energy and eventually losing spatial resolution.
+By changing the settings it is possible to increase the maximum threshold value (normally also noise increases in this case).
+
+
+
+For charge integrating detectors the electronics noise puts a limit on the minimum detectable signal. Therefore if single photon resolution is required, the minimum detectable energy is defined as for single photon counting detectors at about 6-10 times the electronic noise. In case no single photon resolution is required, the electronic noise will put a limit on the sensitivity of the detector i.e. the total accumulated signal needs to be larger than 6-10 times the noise in order to be detected (also about 2-3 keV depending on the detector). It is important to point out that the acquisition time of charge integrating detectors is limited by the leakage current of the sesnors and the noise quadratically sums out. Therefore the signal for low energy photons should be strong enough to be acquired during single frames.
+
+
+Concerning saturation, this sets a limit on the total number of photons acquired during the acquistion slot and is normally much larger than the energy released by single X-rays. Dynamic gain switching can strongly increase the dynamic range of the detector up to 10E+4 12 keV photons.
+
+
+
+
+
+
+
+
+
+Figure 2.3:
+Settings to be chosen for the MYTHEN detector as a function of the X-ray energy and radiation intensity.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: What limits the maximum
+ Up: In which X-ray energy
+ Previous: Sensors
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node24.html b/manual/docs/html/slsDetectors-FAQ/node24.html
new file mode 100644
index 000000000..8c38bf0bb
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node24.html
@@ -0,0 +1,111 @@
+
+
+
+
+
+What limits the maximum frame rate?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Single photon counting detectors
+ Up: General questions about detectors
+ Previous: Frontend electronics
+ Contents
+
+
+
+
+
+
+
+In order to acquired the data, they should be:
+
+
+Transferred from readout electronics to readout board memory. This readou time is very dependent on the detector and on the dynamic range chose (for single photon counting detectors if configurable) and can range from hundreds or tens to few us.
+
+In case the board has some memory that can be accessed by the hardware, this is the only limitation on the maximum frame rate as long as the memory is not filled (burst mode). Frame rates as high as a few tens of kHz can be achieved for photon countign detectors (EIGER) or up to 1 MHz for charge integrating (GOTTHARD).
+
+
+
+Transferred from readout board to client PC or file server. In this case the main bottleneck is normally given by the data transfer rate on the network and on the performances of the receiver PC. This limits the frame rate in continous mode. However also the data writing capabilities and amount of data which are being acquired should be taken into consideration when setting up very fast acquisitions.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Single photon counting detectors
+ Up: General questions about detectors
+ Previous: Frontend electronics
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node25.html b/manual/docs/html/slsDetectors-FAQ/node25.html
new file mode 100644
index 000000000..5fbe54ed1
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node25.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+Single photon counting detectors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Which detector settings should
+ Up: SLS Detectors Frequently Asked
+ Previous: What limits the maximum
+ Contents
+
+
+
+
+
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node26.html b/manual/docs/html/slsDetectors-FAQ/node26.html
new file mode 100644
index 000000000..fc1427d15
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node26.html
@@ -0,0 +1,88 @@
+
+
+
+
+
+Which detector settings should I choose?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: MYTHEN
+ Up: Single photon counting detectors
+ Previous: Single photon counting detectors
+ Contents
+
+
+
+
+
+
+
+The choice of the operation settings is very important in order to obtain good quality data.
+
+Normally slower settings will reduce the electronics noise and therefore it is possible to work at lower energies, but will saturate for high photon fluxes.
+
+On the other hand, faster settings will allow to work with higher photon intensities without pileup, but not to access lower energies because of an higher electronics noise.
+
+Therefore it is extremely important to chose adequate settings for the detector depending on the X-ray energy and expected maximum count rate.
+In the following is a description of the energy and intensity range coverd by the different settings for each detector.
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node27.html b/manual/docs/html/slsDetectors-FAQ/node27.html
new file mode 100644
index 000000000..45866078f
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node27.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+MYTHEN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How do I chose
+ Up: Which detector settings should
+ Previous: Which detector settings should
+ Contents
+
+
+
+
+
+
+
+Normally the user can follow these rules:
+
+
+If the X-ray energy is lower than 8 keV the High gain setting should be used. Since it is a slow mode of operation it is necessary to take care that the maximum count rate is lower than 100 kcounts/s for all channels (use filters to reduce the beam intensisty).
+
+For energies higher than 8 keV, the Standard setting is normally fine if the count rate can be kept lower than 300 kcounts/s for all channels (use filters to reduce the beam intensisty).
+
+
+
+In case a larger count rate is required in order to keep the acquisition time shorter, the Fast setting must be selected. However the maximum count rate should never exceed 1 Mcounts/s for all channels.
+
+
+
+
+
+
+
+Figure 3.1:
+Plot indicating the reccomended choice of detector settings as a function of the X-ray energy and maximum count rate per channel..
+
+
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node28.html b/manual/docs/html/slsDetectors-FAQ/node28.html
new file mode 100644
index 000000000..852eec0bd
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node28.html
@@ -0,0 +1,311 @@
+
+
+
+
+
+How do I chose the comparator threshold?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How does the flat
+ Up: Single photon counting detectors
+ Previous: MYTHEN
+ Contents
+
+
+
+
+
+
+
+
+
+
+Figure 3.2:
+Number of counts as a function of the threshold detected in an ideal case.
+
+
+
+
+
+
+
+
+
+
+
+
+Figure 3.3:
+Number of counts as a function of the threshold detected in presence of fluorescent radiation
+
+
+
+
+
+
+
+
+
+Once selected the settings, the threshold should be selected.
+Figure 3.2 shows the number of counts as a function of the threshold value in the ideal case of monoenergetix X-rays of energy
+=10 keV.
+For thresholds larger than the X-ray energy the detector should always count 0 and for lower thresholds it should always count all the photons. However the curve is smoothed around
+ because of the electronic noise (ENC) and is not perfectly flat for lower energies because the photons absorbed in the region between two strips distribute their energy between them and it is not flully collected by a single channel (charge sharing).
+
+In order to count once al X-rays the threshold should be set at half of the X-ray energy
+: if the threshold would be higher some photons would not be counted, leading to a loss of efficiency, while if it would be lower some photons would be counted twice leading to a loss of spatial resolution.
+
+
+Since the detector threshold can't be precisely set at the same value for all channels but there will always be some spread of the order of 200 eV (threshold dispersion) there will always be some fluctuations on the number of counts between channels, which however should be corrected by the flat field correction.
+
+
+The choice of the threshold should also depend from considerations regarding the emission of fluorescent radiation from the sample.
+
+Figure 3.3 shows how the curve of the counts would look like for monochromatic X-rays of energy
+ in presence of radiation of energy
+ emitted by the sample. The curve would show a second step at
+.
+
+
+Since the fluorecence emission is not present in the flat field data, the difference of counts between the channels due to the fluorescent radiation cannot be corrected and the threshold
+ should be set at an energy larger than
+. This also helps to cut down the background.
+
+The difference of counts between the channels will be particularly large if the threshold is set in some ``steep'' part of the curve i.e. close to
+ or to
+ (but in this case it would be corrected by the flat field, at cost of loss of efficiency).
+Because of the presence of the electronic noise,
+ should be at least 3 keV larger than
+.
+
+
+Here is a short list of rules to select the appropriate working threshold in order of importance (and eventually modify the X-ray energy):
+
+
+List the fluorescent emission lines
+ that you expect from your sample.
+
+If there is no fluorescent emission (
+)
+
+
+If there is fluorescent emission
+
+
+
+ keV
+
+
+ keV
+
+
+If the range where both requirements are satisfied is large, try to increase the distance of
+ from
+ up to 5 keV and then set
+ as close as possible to the ideal value
+
+
+If it is not possible to satisfy the previous minimal requirements:
+
+
+If you need high quality data and you can sacrifice detector efficiency (a lot!)
+ keV
+
+If you need fast measurments and you can sacrifice detector uniformity (difficult to say how much) and increase the background
+ keV. Remember that
+ is klimited by the electronic noise
+ keV (3 keV for High gain settings).
+
+Consider to change
+ to values lower than
+ or at least 6-8 keV larger than
+
+
+
+
+
+
+
+
+
+
+Figure 3.4:
+Example of data from a sample emitting fluorescent light and detector threshold set at a value close to the emission line. The background data cannot be properly flat field corrected.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How does the flat
+ Up: Single photon counting detectors
+ Previous: MYTHEN
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node29.html b/manual/docs/html/slsDetectors-FAQ/node29.html
new file mode 100644
index 000000000..0e39cd03b
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node29.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+How does the flat field correction work?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Why isn't my flat-field
+ Up: Single photon counting detectors
+ Previous: How do I chose
+ Contents
+
+
+
+
+
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node3.html b/manual/docs/html/slsDetectors-FAQ/node3.html
new file mode 100644
index 000000000..d7e07c53a
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node3.html
@@ -0,0 +1,116 @@
+
+
+
+
+
+Which programs can I use to control my detector?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How can I control
+ Up: SLS Detectors Software
+ Previous: SLS Detectors Software
+ Contents
+
+
+
+
+
+
+
+The complete software package is composed of several programs which can be installed (or locally compiled) depending on the needs:
+
+
+
+
+The slsDetector shared and static libraries which are necessary for all user interfaces.
+
+The class slsDetectorUsers can be used as API from your acquisition software (see separate documentation).
+
+The command line interfaces (sls_detector_put, sls_detector_get, sls_detector_acquire, sls_detector_help) , which are provided to communicate with the detectors using the command line and eventually to the data receiver
+
+The data receiver (slsReceiver) , which can be run on a different machine, receives the data from the detector and interfaces to the control software via TCP/IP for defining e.g. the file name, output path and return status and progress of the acquisition
+
+The graphical user interface (slsDetectorGUI) which provides a user friendly way of operating the detectors with online data preview
+
+The calibration wizards (energyCalibrationWizard, angularCalibrationWizard) to analyze the data and produce the energy or angular calibration files
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How can I control
+ Up: SLS Detectors Software
+ Previous: SLS Detectors Software
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node30.html b/manual/docs/html/slsDetectors-FAQ/node30.html
new file mode 100644
index 000000000..3dd04fda6
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node30.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+Why isn't my flat-field flat?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Dynamic acquisition of the
+ Up: How does the flat
+ Previous: How does the flat
+ Contents
+
+
+
+
+
+
+
+The main reasons of a non flat flat-field can be:
+
+
+The scattering from the glass rod is not uniform over the angular range. In this case you should take the flat field dynamically i.e. scanning the detector in front of the cylinder with the small window, as we do at the SLS. In this case when you shift the detector, the shape of the illumination remains in the same angular position (and shifts in channel number). Of course it depends a lot on the energy and on the geometry of the flat field acquisition.
+
+
+
+Figure 3.5:
+Example of a very bad flat field data set with highlights of some of the reasons which can cause the non-flat behavior for the MYTHEN detector. Similar effects can be visible also in 2D.
+
+
+
+
+
+
+
+
+
+
+The entrance window for the X-rays is deformed (we also have this problem at the SLS). In this case when you move the detector the "mountain" moves with it in angle (And remains still in channel number). However this should correct without problems with the flat field correction, even in case of fluorescent emission. Should appear at all energies.
+
+Differences of efficiency between the modules i.e. mainly bad energy calibration. You normally see really steps at the transition between modules. Sometimes you have some groups of strips withing a module that are not properly trimmed and look as smallish peaks or valleys in the flat field. When you move the detector, these steps or peaks move in angle and remain still in channel number.
+These differences can slightly change as a function of the energy (probably more evident at lower energies) but should normally always be there for the same settings.
+These differences get much worse in presence of fluorescent emission, but normally correct properly with flat field correction.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Dynamic acquisition of the
+ Up: How does the flat
+ Previous: How does the flat
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node31.html b/manual/docs/html/slsDetectors-FAQ/node31.html
new file mode 100644
index 000000000..f8130113b
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node31.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+Dynamic acquisition of the flat field
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: What happens when I
+ Up: How does the flat
+ Previous: Why isn't my flat-field
+ Contents
+
+
+
+
+
+
+
+In case it is not possible to uniformely illuminate the detector due to its large dimensions, one of the solutions is to scan it in front of an illuminated are with a uniform speed such that the integrated number of counts during the exposure time is the same for all channels.
+
+
+To do that, at the SLS we have optimized the dynamic acquisition of the flat fiel with the MYTHEN detector using a setup similar to the one sketched in figure 3.6 .
+It is important that the scanning range of the detector is chose such that the detector is not illuminated both at the beginning and at the end of the acquisition. Moreover the movement of the detector should be as uniform as possible. To avoid this kind of systematic errors we normally sum two flat field images taken in the two opposite directions of translation.
+
+
+Also take care that your sample does not emit fluorescent light at the chosen energy (e.g. a glass rod works at all energies, but heavier materials can be chosen to increase the efficiency at higher energies taking care that the fluorescence emission is negligible).
+
+
+
+
+
+Figure 3.6:
+Sketch of the experimental setup for a dynamic acquisition of the flat field.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: What happens when I
+ Up: How does the flat
+ Previous: Why isn't my flat-field
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node32.html b/manual/docs/html/slsDetectors-FAQ/node32.html
new file mode 100644
index 000000000..bd79fad3b
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node32.html
@@ -0,0 +1,81 @@
+
+
+
+
+
+What happens when I trim the detector?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: MYTHEN
+ Up: Single photon counting detectors
+ Previous: Dynamic acquisition of the
+ Contents
+
+
+
+
+
+
+
+General remarks about trimming.
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node33.html b/manual/docs/html/slsDetectors-FAQ/node33.html
new file mode 100644
index 000000000..ae0d1a6f3
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node33.html
@@ -0,0 +1,245 @@
+
+
+
+
+
+MYTHEN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: In what consists the
+ Up: What happens when I
+ Previous: What happens when I
+ Contents
+
+
+
+
+
+
+
+Trimming with noise
+
+
+The first step in the trimming procedure is to trim with noise (this is often sufficient). This has to be done for all the settings which are foreseen to be used (highgain, standard and fast).
+
+The procedure for the noise trimming is as follows:
+
+
+In the Initialization tab click on the settings for which you want to trim (e.g. standard)
+
+In the Initialization tab click on the advanced radio button to make the trimming accessible.
+
+In the Acquisition tab set the acquisition time to 100 ms, the repetion to 1 and the delay between frames to 0.
+
+For noise trimming usually the default parameters
+
+,
+
+,
+
+ work.
+
+However, to verify the threshold setting it is best to make a threshold scan. To do this go to the Data tab, in the Data display section select the 2D color and type advanced option. In the Acquisition tab select your data directory. Set the number of positions to 0. Select Scan, Type threshold. Typical values for the range are 500 to 900 with a step size of 10. Then click on the start button to perform the threshold scan. After the threhold scan has finished an image similar to the one in 3.7 should be shown. Depending on the system the number of modules may vary. If the plot is similar to the one in 3.10 the noise trim files did already exist and have been loaded when selecting the settings. In this case you don't need to trim with noise again.
+
+Set the parameter Vthreshold in the Trimming box (Initialization tab ) 10-30 DAC units below the onset of the noise for the module with the lowest threshold offset. Since the modules have differences in the offset and gain the onset of the noise varies.
+
+You can usually leave the remaining parameters unchanged (Counts/pixel=500; Resolution=4).
+
+Select the directory where the noise trim files should be written and the filename, to wich will be attached the extension given by the module serial number (.snxxx). If you want the trimfiles to be loaded authomatically when the global settings are selected, select the default directory specified in the config file (or in the ``trimbits/beamline'' directory for the older software versions).
+Click on Trim to start the noise trimming process. After the trimming has finished look at the plot and the distribution of the trim bits. The distribution should be around 32
+5 and should look gaussian. An example distribution is shown in figure 3.8 and an example plot in 3.9 . If the distribution is too much off center change the counts/pixel, if it is too narrow reduce the resolution (set it to 3), if it is too wide increase it (set it to 5). Make sure not too many channels have a trim value of 0 or 63.
+
+Execute the treshold scan again to verify the trimming was done properly. A plot similar tho the one in figure 3.10 should appear.
+
+
+
+
+
+
+
+Figure 3.7:
+The untrimmed threshold scan.
+
+
+
+
+
+
+
+
+
+
+
+
+Figure 3.8:
+The distribution of the trimbits.
+
+
+
+
+
+
+
+
+
+
+
+
+Figure 3.9:
+The trimbits for all the channels.
+
+
+
+
+
+
+
+
+
+
+
+
+Figure 3.10:
+The trimmed threshold scan.
+
+
+
+
+
+
+
+
+
+Improve the trimming using X-rays
+
+
+The improvement of the trimming acquired with noise is not essential: at 12 keV an untrimmed module has a threshold dispersion which is about 1.4 keV and is already reduced to 200 eV at 12 keV by the noise trimming. At lower energies the noise trimming will be more effective, while the threshold dispesion will be still larger at higher energies. The trimming improvement reduces the threshold dispersion to 140 eV at 12 keV and is expected to be almost constant at all energies. For this reason it is suggested to perform the trimming improvement only when a small threshold dispersion is really important (e.g. to avoid flat field corrections or in presence of fluorescent lines close to the threshold value) and it will probably be not worthy at lower energies (i.e. threshold lower than 6 keV and X-ray energy lower than 12 keV).
+The procedure for the trimming improvement is as follows:
+
+
+Select the settings of the detector and load the noise trimming file
+
+Set the threshold at half of the X-ray energy (better if the detector has already been calibrated in energy like explained in 3.5 )
+
+Illuminate the detector with a flat field. This is very important to obtain a good trimming.
+
+Select the acquisition time in the acquisition tab so that there are at least 1000 counts/strip per frame (the more counts, the better trimming). Set the repetions to 1 and the delay between frames to 0.
+
+Go to expert mode by clicking on advanced in the initialization tab , settings box
+
+In the trimming box select the directory where the noise trim files should be written and the filename, to wich will be attached the extension given by the module serial number (.snxxx).
+
+Select the improve method
+S tart the trimming
+
+
+If the trimming is correctly performed and the illumination is flat enough, the same trimming can be used every time you will measure at this same energy.
+The authomatic loading of energy-specific trim files is not yet implemented.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: In what consists the
+ Up: What happens when I
+ Previous: What happens when I
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node34.html b/manual/docs/html/slsDetectors-FAQ/node34.html
new file mode 100644
index 000000000..35229eac9
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node34.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+In what consists the energy calibration of the detector?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: MYTHEN
+ Up: Single photon counting detectors
+ Previous: MYTHEN
+ Contents
+
+
+
+
+
+
+In what consists the energy calibration of the detector?
+
+
+
+General remarks about DAC to energy conversion
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node35.html b/manual/docs/html/slsDetectors-FAQ/node35.html
new file mode 100644
index 000000000..68d76f024
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node35.html
@@ -0,0 +1,165 @@
+
+
+
+
+
+MYTHEN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Why should I change
+ Up: In what consists the
+ Previous: In what consists the
+ Contents
+
+
+
+
+
+
+
+Since the conversion between the threshold DAC units and energy depends on the gain and offset of the channels the energy calibration has to be done for all settings (high gain, standard and fast). For each setting follow this procedure:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Why should I change
+ Up: In what consists the
+ Previous: In what consists the
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node36.html b/manual/docs/html/slsDetectors-FAQ/node36.html
new file mode 100644
index 000000000..2762157f5
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node36.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+Why should I change the dynamic range of the counters?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: When should I enable
+ Up: Single photon counting detectors
+ Previous: MYTHEN
+ Contents
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node37.html b/manual/docs/html/slsDetectors-FAQ/node37.html
new file mode 100644
index 000000000..3d8700bc3
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node37.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+When should I enable rate correction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How can I choose
+ Up: Single photon counting detectors
+ Previous: Why should I change
+ Contents
+
+
+
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node38.html b/manual/docs/html/slsDetectors-FAQ/node38.html
new file mode 100644
index 000000000..d78edb6c2
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node38.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+How can I choose the dead time?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Charge Integrating detectors
+ Up: When should I enable
+ Previous: When should I enable
+ Contents
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node39.html b/manual/docs/html/slsDetectors-FAQ/node39.html
new file mode 100644
index 000000000..d6c330823
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node39.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+Charge Integrating detectors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: (Dynamic) Gain Switching
+ Up: SLS Detectors Frequently Asked
+ Previous: How can I choose
+ Contents
+
+
+
+
+
+
+
+Various issues concerning calibration, dynamic gain switching, data handling data processing etc.
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node4.html b/manual/docs/html/slsDetectors-FAQ/node4.html
new file mode 100644
index 000000000..1232f740a
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node4.html
@@ -0,0 +1,146 @@
+
+
+
+
+
+How can I control many detectors in parallel or independently?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Examples
+ Up: SLS Detectors Software
+ Previous: Which programs can I
+ Contents
+
+
+
+
+
+
+
+For most users the detector will be composed by a single module. Therefore all configurations of the detector will refere to that single entity.
+
+
+However, for some experiments it is necessary to concatenate the data from several detector controllers, and sometimes (e.g. MYTHEN) each controller can control many modules. This should be transparent to the user since most parameters will be identical for all controllers (e.g. exposure time, energy threshold etc.), except for the configurations specific to the controller (e.g. hardware configuration).
+
+In principle it is possible to combine controllers of different type (e.g. MYTHEN, GOTTHARD, EIGER) but the user should then evaluate if it really makes sense to control such different systems in parallel.
+
+
+In other cases, several SLS detectors will independently acquire data during the same experiment. In this case it will be necessary to be able to seperately control them.
+
+
+The detectors can be controlled in parallel from several PCs (clients). However it is important the the configurations match on all of the them such that no conflict arise. Eventually a detector can be locked to a specific control PC, still different users interfaces (command line, GUI) can be used in parallel.
+
+
+A sketch of a possible complex detector configuration is shown in figure 1.1
+
+
+For this reason and index is assigned to each detector. If a single detector is used, as in most cases, the index will be omitted and defaults to 0.
+
+To control the other detectors the index cannot be omitted!
+
+
+An index will also be assigned to each controller within a detector. However the user normally will not need to address single controllers, except for the most advanced settings which can be left to configuration files.
+
+
+Finally each module within a controller has an internal index. However in general it is not required that the user is aware of the system architecture and, if needed (rarely), the modules can simply be addressed sequentially starting from controller 0.
+
+
+
+
+
+Figure 1.1:
+Scketch of a possible complex system architecture composed of several detector, each consisting in many controllers eventually controlling several modules.
+
+
+
+
+
+
+
+Subsections
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Examples
+ Up: SLS Detectors Software
+ Previous: Which programs can I
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node40.html b/manual/docs/html/slsDetectors-FAQ/node40.html
new file mode 100644
index 000000000..9fb4a1242
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node40.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+(Dynamic) Gain Switching
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Pedestals
+ Up: Charge Integrating detectors
+ Previous: Charge Integrating detectors
+ Contents
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node41.html b/manual/docs/html/slsDetectors-FAQ/node41.html
new file mode 100644
index 000000000..c77c0dfb4
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node41.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+Pedestals
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Energy calibration
+ Up: Charge Integrating detectors
+ Previous: (Dynamic) Gain Switching
+ Contents
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node42.html b/manual/docs/html/slsDetectors-FAQ/node42.html
new file mode 100644
index 000000000..cd95e515f
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node42.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+Energy calibration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Data processing
+ Up: Charge Integrating detectors
+ Previous: Pedestals
+ Contents
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node43.html b/manual/docs/html/slsDetectors-FAQ/node43.html
new file mode 100644
index 000000000..c392800ad
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node43.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+Data processing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Angular conversion
+ Up: Charge Integrating detectors
+ Previous: Energy calibration
+ Contents
+
+
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node44.html b/manual/docs/html/slsDetectors-FAQ/node44.html
new file mode 100644
index 000000000..9b44b6305
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node44.html
@@ -0,0 +1,131 @@
+
+
+
+
+
+Angular conversion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How is the channel
+ Up: SLS Detectors Frequently Asked
+ Previous: Data processing
+ Contents
+
+
+
+
+
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node45.html b/manual/docs/html/slsDetectors-FAQ/node45.html
new file mode 100644
index 000000000..b34cdde17
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node45.html
@@ -0,0 +1,284 @@
+
+
+
+
+
+How is the channel number coverted into angle?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How are different positions
+ Up: Angular conversion
+ Previous: Angular conversion
+ Contents
+
+
+
+
+
+
+How is the channel number coverted into angle?
+
+
+
+Mythen II modules are composed by 1280 pixels, each having width p=0.05 mm, and numbered with j=0,..,1279.
+Angles are counted counterclockwise from the beam direction. For the m-th module, the angle
+
+ of its j-th pixel center
+can be determined using the three geometric parameters
+ [mm],
+ [deg],
+ [mm], as in Fig. .
+The detector group uses instead the 3 parameters center
+ [ ], offset
+ [deg], conversion
+ [ ].
+The law with the 3 geometric parameter is
+
+
+
+
+
+
+(5.1)
+
+
+The corresponding law using DG's parameters is
+
+
+
+
+
+
+(5.2)
+
+
+One can convert the two forms by equating separately the term out of the arctan and the argument of arctan for two different values of j.
+It results
+
+
+
+
+Conversely,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How are different positions
+ Up: Angular conversion
+ Previous: Angular conversion
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node46.html b/manual/docs/html/slsDetectors-FAQ/node46.html
new file mode 100644
index 000000000..46f69db56
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node46.html
@@ -0,0 +1,126 @@
+
+
+
+
+
+How are different positions merged together?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Introduction
+ Up: Angular conversion
+ Previous: How is the channel
+ Contents
+
+
+
+
+
+
+How are different positions merged together?
+
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node47.html b/manual/docs/html/slsDetectors-FAQ/node47.html
new file mode 100644
index 000000000..7b851621c
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node47.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+Introduction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Notation
+ Up: How are different positions
+ Previous: How are different positions
+ Contents
+
+
+
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node48.html b/manual/docs/html/slsDetectors-FAQ/node48.html
new file mode 100644
index 000000000..46f7c3f47
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node48.html
@@ -0,0 +1,83 @@
+
+
+
+
+
+Notation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Observables
+ Up: Introduction
+ Previous: Introduction
+ Contents
+
+
+
+
+
+
+
+[I use symbol
+
+ for the diffraction angle
+]
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node49.html b/manual/docs/html/slsDetectors-FAQ/node49.html
new file mode 100644
index 000000000..899a3077a
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node49.html
@@ -0,0 +1,179 @@
+
+
+
+
+
+Observables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Basic binning
+ Up: Introduction
+ Previous: Notation
+ Contents
+
+
+
+
+
+The physical observable of interest in any scattering experiment is [1-3] the differential cross section
+
+
+
+
+
+
+as a function of direction
+.
+To measure that directly we should operate with zero-width point detectors, with instant measurement and unit incident intensity.
+Practically
+the quantity we can actually measure - putting a detector in a position covering a certain
+solid angle for a certain time with a certain incident intensity - is
+
+
+
+
+
+
+If
+,
+
+ are small and known and
+ is separately monitored,
+we can (have to) normalize the observations by simply dividing them out.
+
+
+Specifically for the powder diffraction field, historically, this is not usually done because
+- as it is normally true with anode sources and point detectors and usual procedures -
+the counting times
+, the solid angle width
+
+
+and the incident intensity
+ are considered
+constant and therefore go into some 'global scaling' constant that is usually considered arbitrary.
+
+
+However, as we have more sophisticated acquisition methods,
+we may need revert to the original approach and consider the
+counts divided by time and angular width as the real observable.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Basic binning
+ Up: Introduction
+ Previous: Notation
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node5.html b/manual/docs/html/slsDetectors-FAQ/node5.html
new file mode 100644
index 000000000..9170e0438
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node5.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+Examples
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How can I configure
+ Up: How can I control
+ Previous: How can I control
+ Contents
+
+
+
+
+
+
+
+For MYTHEN, if one needs to control 6 modules, the system can either be composed by and MCS6 with 6 modules (1 detector, 1 controller, 6 modules), or by 6 MCS1 (1 detector, 6 controller, 1 module each). After apppropriate configuration of the system, the interface to the user will be the same for both systems.
+
+
+For GOTTHARD, one module corresponds to one controller. A detector will have the smae number of controllers and modules.
+
+
+For EIGER, one module consists in two controllers. Fo a multi-module system, the number of controllers will increase accordingly, but should be left to a configuration file.
+
+
+You will need to configure more than one detector, only in case you want to operate several detectors independently.
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node50.html b/manual/docs/html/slsDetectors-FAQ/node50.html
new file mode 100644
index 000000000..bdafbba03
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node50.html
@@ -0,0 +1,629 @@
+
+
+
+
+
+Basic binning
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Special nasty cases
+ Up: How are different positions
+ Previous: Observables
+ Contents
+
+
+
+
+
+
+Basic binning
+
+
+
+
+1.
+
+We have several patterns, say
+. Each
+-th pattern, for
+
+, is
+constituted by
+ angular intervals in the diffraction angle
+
+:
+
+
+
+
+
+
+of center
+
+
+
+
+
+
+and width
+
+
+
+
+
+
+To each interval is associated a counting
+, an efficiency correction factor
+, a
+monitor
+ (ionization chamber times acquisition time). All 'bad' intervals have been already flagged down and discarded.
+Efficiency corrections and monitors are supposed to be normalized to a suitable value.
+Note that intervals
+ might have multiple overlaps and might not cover an compact angular
+range.
+
+2.
+Following Mighell's statistics[6] and normal scaling procedures, we first
+transform those numbers into associated intensities, intensity rates and relevant s.d.:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3.
+
+We set up the final binned grid,
+composed of
+ binning intervals
+
+
+
+
+
+
+all contiguous and each having the same width
+
+
+
+
+
+and each centered in
+
+
+
+
+
+
+covering completely the angular range between
+
+ and
+
+.
+
+
+4.
+
+For bin
+, we consider only and all the experimental intervals
+
+
+
+
such that
+
+
+More restrictively, one may require to consider only and all the experimental intervals
+
+
+
+
such that
+
+
+
+5.
+
+In order to estimate the rate in each
+-th bin,
+we use all above selected rate estimates concerning bin
+ and we get
+a better one with the weighted average method.
+
+In the weighted average method, we suppose to have a number
+ of estimates
+
+of the same observable
+,
+each one with a known s.d.
+
+ and each (optionally) repeated with a frequency
+
+.
+Then
+
+
+
+
+
+
+Clearly the place of the frequencies in our case can be taken by coefficients
+
+
+
+
+
+
+that weigh the
+-th estimate by its relative extension within bin
+.
+
+
+6.
+
+Now
+we can simply accumulate registers
+
+
+
+
+
+
+and
+
+
+
+
+
+
+so that we can extract an intensity rate estimate (counts per unit diffraction angle and per unit time at constant incident intensity) as
+
+
+
+
+
+
+
+
+
+
+
+
+Now optionally we can transforms rates in intensities (multiplying
+both
+ and
+
+ by
+).
+We can use any other scaling factor
+ as we wish instead of
+.
+The best cosmetic scaling is the one where
+
+
+
+
+
+
+as if the intensities were simply counts.
+Therefore
+ is given by
+
+
+
+
+
+
+
+
+In output then we give 3-column files
+with columns
+
+
+
+
+
+
+
+
+
+
+
+
+Subsections
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Special nasty cases
+ Up: How are different positions
+ Previous: Observables
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node51.html b/manual/docs/html/slsDetectors-FAQ/node51.html
new file mode 100644
index 000000000..9713d6f32
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node51.html
@@ -0,0 +1,202 @@
+
+
+
+
+
+Special nasty cases
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Advanced binning
+ Up: Basic binning
+ Previous: Basic binning
+ Contents
+
+
+
+
+
+
+
+Here we explore some special cases to see the robustness
+of the method.
+
+
+1) If no experimental observation contributes to bin
+ according to one of the criteria
+above, then we shall find
+ and especially
+. The latter condition is
+valid as an exclusion condition
+(meaning that we discard that point and we do not perform further operations on it,
+neither do we output it).
+
+
+2) if only one experimental observation - call it interval
+, dropping indices - contributes
+to bin
+,
+then we have
+
+
+
+
+
+
+
+
+
+
+
+
+and so
+
+
+
+
+
+
+that is the experimental rate as in pixel
+;
+
+
+
+
+
+
+that is the same s.d. that can be calculated directly for
+, augmented by factor
+
+
+
+
+
+
+that takes into account the extrapolation error.
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node52.html b/manual/docs/html/slsDetectors-FAQ/node52.html
new file mode 100644
index 000000000..de420d797
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node52.html
@@ -0,0 +1,88 @@
+
+
+
+
+
+Advanced binning
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Poisson and normal statistics
+ Up: How are different positions
+ Previous: Special nasty cases
+ Contents
+
+
+
+
+
+
+Advanced binning
+
+
+
+There are more advanced (and more complex) methods that take more carefully into account the real position of the centers
+
+ w.r.t.
+
+.
+If we find out that it is the case we may develop them too.
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node53.html b/manual/docs/html/slsDetectors-FAQ/node53.html
new file mode 100644
index 000000000..6355a5dba
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node53.html
@@ -0,0 +1,318 @@
+
+
+
+
+
+Poisson and normal statistics for diffraction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Average vs. weighted average
+ Up: How are different positions
+ Previous: Advanced binning
+ Contents
+
+
+
+
+
+
+
+The normal situation for diffraction data
+is that the observed signal is a photon count.
+Therefore it follows a Poisson distribution.
+If we have a count value
+ that follows a Poisson distribution,
+we can assume immediately that the average is equal to
+ and the s.d. is
+
+.
+I.e., repeated experiments would give values
+
+distributed according to the normalized distribution
+
+
+
+
+
+
+This obeys
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The standard deviation comes then to
+
+
+
+
+
+
+
+
+When the data have to be analyzed, one must compare observations with a model
+which gives calculated values of the observations in dependence of a certain set of
+parameters. The best values of the parameters (the target of investigation)
+are the one that maximize the likelihood function [4,5]. The likelihood function for
+Poisson variates is pretty difficult to use; furthermore, even simple data manipulations
+are not straightforward with Poisson variates (see Sec. 5.2.6 ). The common choice is to approximate
+Poisson variates with normal variates, and then use the much easier formalism
+of normal distribution to a) do basic data manipulations and b) fit data with model.
+To the latter task, in fact, the likelihood function is maximized simply by minimizing
+the usual weighted-
+[4] :
+
+
+
+
+
+
+where
+ are the experimentally observed values,
+ the calculated model values,
+
+ the s.d.s of the observations.
+
+
+Substituting directly the counts (and derived s.d.s) for the observations in the former :
+
+
+
+
+
+
+is the most common way. It is slightly wrong to do so, however [6],
+the error being large only when the counts are low.
+There is also a divergence for zero counts.
+In fact, a slightly modified form [6] exists, reading
+
+
+
+
+
+
+Minimizing this form of
+ is equivalent - to an exceptionally good approximation [6]-
+to maximizing the proper Poisson-likelihood.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Average vs. weighted average
+ Up: How are different positions
+ Previous: Advanced binning
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node54.html b/manual/docs/html/slsDetectors-FAQ/node54.html
new file mode 100644
index 000000000..823a12d8a
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node54.html
@@ -0,0 +1,96 @@
+
+
+
+
+
+Average vs. weighted average
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Simple average
+ Up: How are different positions
+ Previous: Poisson and normal statistics
+ Contents
+
+
+
+
+
+
+
+
+
+Subsections
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node55.html b/manual/docs/html/slsDetectors-FAQ/node55.html
new file mode 100644
index 000000000..6cb8634b4
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node55.html
@@ -0,0 +1,161 @@
+
+
+
+
+
+Simple average
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Zero-skipping average
+ Up: Average vs. weighted average
+ Previous: Average vs. weighted average
+ Contents
+
+
+
+
+
+
+
+Suppose we have
+
+ Poisson-variate experimental evaluations
+
+
+,
+of the same quantity
+.
+There are different ways to obtain from all
+
+ data values a single estimate of the observable which is better than
+any of them. The most straightforward and the best is the simple average
+
+
+
+
+
+
+As the sum of Poisson variates is a Poisson variate, the standard deviation
+
+
+
+
+
+
+can be evaluated more comfortably as
+
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node56.html b/manual/docs/html/slsDetectors-FAQ/node56.html
new file mode 100644
index 000000000..7b39ca91a
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node56.html
@@ -0,0 +1,126 @@
+
+
+
+
+
+Zero-skipping average
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Weighted average: definition and
+ Up: Average vs. weighted average
+ Previous: Simple average
+ Contents
+
+
+
+
+
+
+
+In some cases, in order to avoid possible singularities,
+values
+ are skipped. Then if
+
+ is the number of non-zero data points,
+we can evaluate the 'zero-skipping' average as
+
+
+
+
+
+
+The standard deviation is then
+
+
+
+
+
+
+Note that the s.d. is evaluated exactly as if the non-zero
+ were the only observations,
+whilst the average is overestimated by the fraction of zero-counting events.
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node57.html b/manual/docs/html/slsDetectors-FAQ/node57.html
new file mode 100644
index 000000000..9a61e419d
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node57.html
@@ -0,0 +1,264 @@
+
+
+
+
+
+Weighted average: definition and relationship with
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Straight Poisson (zero-skipping) weighted
+ Up: Average vs. weighted average
+ Previous: Zero-skipping average
+ Contents
+
+
+
+
+
+
+
+A weighted average is the result of the special case of a data fitting to a model function which is a constant.
+It is easy to see that minimizing w.r.t
+
+
+
+
+
+
+
+yields
+
+
+
+
+
+
+The good-faith s.d. (square-root of twice the inverse of the second derivative of
+ at the minimum)
+is then
+
+
+
+
+
+
+I use the term 'good-faith' to indicate the case when it is really appropriate to use a constant as a model functions,
+i.e. when the observations are truly different observations of the same observable.
+When this is not the case but we do not know what to do better we can at least increase the s.d.
+In fact, there is a correction factor for the s.d., given - in this case - by
+
+
+
+
+
+
+so that
+
+
+
+
+
+
+
+
+Specializing now to the two cases above,
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Straight Poisson (zero-skipping) weighted
+ Up: Average vs. weighted average
+ Previous: Zero-skipping average
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node58.html b/manual/docs/html/slsDetectors-FAQ/node58.html
new file mode 100644
index 000000000..d26f1bb1b
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node58.html
@@ -0,0 +1,242 @@
+
+
+
+
+
+Straight Poisson (zero-skipping) weighted average
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Mighell-Poisson weighted average
+ Up: Average vs. weighted average
+ Previous: Weighted average: definition and
+ Contents
+
+
+
+
+
+
+
+When
+ and
+
+
+
+
+
+
+
+
+Here we need to eliminate the singularity when
+. In order to do so, we skip data points which are zero.
+Then if
+
+ is the number of non-zero data points,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+where
+
+ is the simple average of the non-zero data points; and of course
+
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node59.html b/manual/docs/html/slsDetectors-FAQ/node59.html
new file mode 100644
index 000000000..7c8ad0fb0
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node59.html
@@ -0,0 +1,205 @@
+
+
+
+
+
+Mighell-Poisson weighted average
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Comparison
+ Up: Average vs. weighted average
+ Previous: Straight Poisson (zero-skipping) weighted
+ Contents
+
+
+
+
+
+
+
+When
+
+ and
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+where
+
+ is the simple average of the non-zero data points; and of course
+
+
+
+
+
+
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node6.html b/manual/docs/html/slsDetectors-FAQ/node6.html
new file mode 100644
index 000000000..e6c1b5db5
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node6.html
@@ -0,0 +1,139 @@
+
+
+
+
+
+How can I configure the data receiver?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: What are settings and
+ Up: SLS Detectors Software
+ Previous: Examples
+ Contents
+
+
+
+
+
+
+
+For slower acquisitions, the detector will return the data to the control PC over TCP/IP (e.g. MYTHEN).
+
+
+However, for faster frame rates (e.g. GOTTHARD, EIGER) the controllers will return the data to a data receiver i.e. a process specifically designed to receive the data from the controller over a GBit network and save them to disk.
+
+The data receiver can run on any machine (e.g. a file server) accessible by both the control PC and the detector controller, as sketched in figure 1.2 . A data receiver process must be configured for each controller. Normally, to avoid performance loss it is better if different data receivers run on different machines.
+
+
+
+
+
+Figure 1.2:
+Scketch of the communication between the control PC, the detector and the data receiver.
+
+
+
+
+
+To setup the system, you should configure:
+
+Client-Detector TCP/IP connection
+i.e. for each controller hostname or IP address (hostname ) and communication port (port , use default).
+
+Client-Receiver TCP/IP connection
+i.e. hostname or IP address of the data receiver (rx_hostname ) and communication port (textitrx_tcpport, use default).
+
+Detector-Receiver UDP connection
+i.e. for each controller IP address of the receiver network interface (rx_udpip ) and communication port (rx_udpport ) used for receiveing the data. By detfault the IP address of the TCP/IP receiver interface will be used also for the UDP conenction. Editing the UDP network interfaces and ports is useful if several controller are sending data to a single receiver (not reccomended to avoid performance loss).
+
+A MAC (detectormac ) and IP address (detectorudpip ) should also be assigned to the controller network interface used for the UDP communication, but the default values can normally be used unless firewalls are defined between the detectors and the receiver.
+
+
+All these configurations are normally left to the configuration file and should not be changed dynamically by the user.
+
+
+After starting the data receiver process and correctly configuring the client and the detector, this architecture should be completely transparent for the user, except that the output file path must be properly configured from the client for the data receiver machine (easiest is that the disk is mounted for both machines in the same location).
+
+The client will take care of communicating with the data receiver and the detector. A feedback about the progress of the acquisition and a preview of the data being acquired can also be obtained by the client from the data receiver.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: What are settings and
+ Up: SLS Detectors Software
+ Previous: Examples
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node60.html b/manual/docs/html/slsDetectors-FAQ/node60.html
new file mode 100644
index 000000000..70a83ebe5
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node60.html
@@ -0,0 +1,173 @@
+
+
+
+
+
+Comparison
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Analytical comparison of averages
+ Up: Average vs. weighted average
+ Previous: Mighell-Poisson weighted average
+ Contents
+
+
+
+
+
+
+
+We have seen four different ways to take an average -
+two simple averages (the second skipping zero values)
+and two weighted averages (using straight Poisson and Poisson-Mighell [6]
+ formulations).
+We know that the simple average (not skipping zeros) is the best possible result. However,
+there are inconveniences with it. If for instance we need to scale our data before averaging, then the
+simple average is no more usable (it will give the correct average but a bad estimate of the s.d.) .
+In any case, the passage to normal statistics (using Mighell's correction) needs to be done before or later.
+Therefore a comparison is due in order to ascertain
+how wrong can it be using the different methods.
+
+
+We have to give a measure of what is negligible first.
+The relative error is a measure of the smallest relative variation of an estimate
+ that is not negligible:
+
+
+
+
+
+
+We shall then consider negligible
+(w.r.t.
+) terms whose relative magnitude is
+
+.
+As the s.d. of
+ is
+
+, we may not discard terms
+
+ on the s.d.;
+there instead we may neglect terms
+
+.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Analytical comparison of averages
+ Up: Average vs. weighted average
+ Previous: Mighell-Poisson weighted average
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node61.html b/manual/docs/html/slsDetectors-FAQ/node61.html
new file mode 100644
index 000000000..c5a503255
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node61.html
@@ -0,0 +1,345 @@
+
+
+
+
+
+Analytical comparison of averages
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Numerical comparison of averages
+ Up: Average vs. weighted average
+ Previous: Comparison
+ Contents
+
+
+
+
+
+
+
+First we give an analytical comparison between simple average and Mighell-Poisson weighted average
+for
+
+.
+If the two events are
+ and
+, then
+
+
+
+
+
+
+For the M-P weighted average,
+
+
+
+
+
+
+
+
+Now, supposing that the common 'true' value of
+ is
+,
+we use the Poisson distribution to compare the expectation values of the two results. The expectation value of the simple average is
+
+
+
+
+
+
+As expected, the simple average gives the true value.
+For its variance,
+
+
+
+
+
+
+
+
+In order to evaluate the difference with the M-P weighted average, we rewrite the latter as
+
+
+
+
+
+
+and calculate the expectation value of the last term:
+
+
+
+
+
+
+Rearranging the sums with
+,
+
+;
+,
+
+,
+we get
+
+
+
+
+
+
+So, the relative difference between averages is
+
+
+
+
+
+
+The relative error on
+
+ is
+
+
+
+
+
+
+therefore
+
+
+
+
+
+
+Therefore, the expectation value of the error (relative) involved in taking
+the M-P weighted average instead of the simple average is negligible.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Numerical comparison of averages
+ Up: Average vs. weighted average
+ Previous: Comparison
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node62.html b/manual/docs/html/slsDetectors-FAQ/node62.html
new file mode 100644
index 000000000..f879f2528
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node62.html
@@ -0,0 +1,976 @@
+
+
+
+
+
+Numerical comparison of averages
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Scaling Poisson variates
+ Up: Average vs. weighted average
+ Previous: Analytical comparison of averages
+ Contents
+
+
+
+
+
+
+
+In the next table numerical results are displayed. An exact random-Poisson generator has been used to generate Poisson deviates of given average value
+
+, with
+
+. For each value
+
+
+ deviates have been generated. Then averages have been taken for each value
+ and compared with the true value.
+For each value
+ - in order to have a scale for comparison -
+we evaluate the expected absolute s.d. of averages as
+
+, and the relative s.d. of averages as
+
+. Then - for each averaging method - we evaluate the error
+ (average minus
+),
+the relative error
+
+, and finally the comparison criterion
+
+ (bold). The comparison criterion is expected to be close to 1 in absolute value. Values much larger than one mean that we are introducing a systematic error.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1. ;
+
+0.0001 ;
+
+ = 0.0001
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Averages
+ 1.303772380383934
+ 0.9999155361216990
+ 1.581941754994651
+ 0.9999283300000000
+
+
+
+
+ 0.3037723803839338
+ -0.8446387830096658E-04
+ 0.5819417549946508
+ -0.7166999999996815E-04
+
+
+
+
+ 0.3037723803839338
+ -0.8446387830096658E-04
+ 0.5819417549946508
+ -0.7166999999996815E-04
+
+
+
+
+
+ 3037.723803839338
+ -0.8446387830096658
+ 5819.417549946508
+ -0.7166999999996815
+
+
+
+
+
+
+
+
+
+
+
+ 10.000000000000002 ;
+
+0.00031622776601683794 ;
+
+ = 0.00003162277660168379
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Averages
+ 8.848248847530357
+ 10.00025732384808
+ 10.00052232372917
+ 10.00006800000000
+
+
+
+
+ -1.151751152469645
+ 0.2573238480785278E-03
+ 0.5223237291644978E-03
+ 0.6799999999884676E-04
+
+
+
+
+ -0.1151751152469645
+ 0.2573238480785278E-04
+ 0.5223237291644977E-04
+ 0.6799999999884675E-05
+
+
+
+
+
+ -3642.156939527943
+ 0.8137294562072904
+ 1.651732660112730
+ 0.2150348808878029
+
+
+
+
+
+
+
+
+
+
+
+ 100.00000000000004 ;
+
+0.0010000000000000002 ;
+
+ = 0.000009999999999999997
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Averages
+ 98.98978896904168
+ 100.0001037814804
+ 100.0002153600000
+ 100.0002153600000
+
+
+
+
+ -1.010211030958359
+ 0.1037814803765968E-03
+ 0.2153599999559219E-03
+ 0.2153599999559219E-03
+
+
+
+
+ -0.1010211030958359E-01
+ 0.1037814803765968E-05
+ 0.2153599999559218E-05
+ 0.2153599999559218E-05
+
+
+
+
+
+ -1010.211030958359
+ 0.1037814803765968
+ 0.2153599999559219
+ 0.2153599999559219
+
+
+
+
+
+
+
+
+
+
+
+ 1000.0000000000007 ;
+
+0.0031622776601683803 ;
+
+ = 0.000003162277660168378
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Averages
+ 999.0029754507847
+ 1000.003978305674
+ 1000.003836760000
+ 1000.003836760000
+
+
+
+
+ -0.9970245492160075
+ 0.3978305673513205E-02
+ 0.3836759999330752E-02
+ 0.3836759999330752E-02
+
+
+
+
+ -0.9970245492160069E-03
+ 0.3978305673513202E-05
+ 0.3836759999330750E-05
+ 0.3836759999330750E-05
+
+
+
+
+
+ -315.2868458625229
+ 1.258050715667192
+ 1.213290043331128
+ 1.213290043331128
+
+
+
+
+
+
+
+
+
+
+
+ 10000.00000000001 ;
+
+0.010000000000000005 ;
+
+ = 9.999999999999995E-7
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Averages
+ 9998.995728116572
+ 9999.995828163173
+ 9999.995919900000
+ 9999.995919900000
+
+
+
+
+ -1.004271883437468
+ -0.4171836835666909E-02
+-0.4080100008650334E-02
+-0.4080100008650334E-02
+
+
+
+
+ -0.1004271883437467E-03
+ -0.4171836835666905E-06
+ -0.4080100008650330E-06
+-0.4080100008650330E-06
+
+
+
+
+
+ -100.4271883437468
+ -0.4171836835666907
+ -0.4080100008650331
+ -0.4080100008650331
+
+
+
+
+
+
+
+
+
+
+
+ 100000.0000000002 ;
+
+0.031622776601683826 ;
+
+ = 3.162277660168376E-7
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Averages
+ 99999.01275394148
+ 100000.0127639189
+ 100000.0125627100
+ 100000.0125627100
+
+
+
+
+ -0.9872460587212117
+ 0.1276391866849735E-01
+ 0.1256270980229601E-01
+ 0.1256270980229601E-01
+
+
+
+
+ -0.9872460587212097E-05
+ 0.1276391866849733E-06
+ 0.1256270980229599E-06
+ 0.1256270980229599E-06
+
+
+
+
+
+ -31.21946156583365
+ 0.4036305486159527
+ 0.3972677655897895
+ 0.3972677655897895
+
+
+
+
+
+
+
+
+
+
+
+ 1000000.0000000013 ;
+
+0.10000000000000006 ;
+
+ = 9.999999999999993E-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Averages
+ 999999.1188353101
+ 1000000.118835812
+ 1000000.118809340
+ 1000000.118809340
+
+
+
+
+ -0.8811646911781281
+ 0.1188358106883243
+ 0.1188093387754634
+ 0.1188093387754634
+
+
+
+
+ -0.8811646911781270E-06
+ 0.1188358106883241E-06
+ 0.1188093387754633E-06
+ 0.1188093387754633E-06
+
+
+
+
+
+ -8.811646911781276
+ 1.188358106883242
+ 1.188093387754633
+ 1.188093387754633
+
+
+
+
+
+As it is visible from the table:
+
+1.
+
+
+ the weighted average using straight Poisson statistics is consistenty bad at all values of
+, that means at all counting levels;
+
+2.
+
+
+: the normal average skipping zero count data is bad for
+
+, that means at low counting levels (of course at higher counting levels zeroes are not happening);
+
+3.
+
+ and
+: the normal average including zero count data and the Mighell-Poisson weighted average
+are consistently and equivalently good at all counting levels.
+
+
+Therefore there is no bias when using the Mighell-Poisson weighted method to average data w.r.t. the usual average. The former, however,
+has already accomplished the passage to normal statistics, therefore all operations on data that are not simple averaging can be done in
+the framework of normal statistics, where everything is known and clear. In the next section, on the opposite, it is shown that
+even simple operations as scaling data lead to the necessity of abandoning Poisson statistics in order to estimate correctly the standard deviations.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Scaling Poisson variates
+ Up: Average vs. weighted average
+ Previous: Analytical comparison of averages
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node63.html b/manual/docs/html/slsDetectors-FAQ/node63.html
new file mode 100644
index 000000000..b213570b2
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node63.html
@@ -0,0 +1,465 @@
+
+
+
+
+
+Scaling Poisson variates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Bibliography
+ Up: How are different positions
+ Previous: Numerical comparison of averages
+ Contents
+
+
+
+
+
+
+Scaling Poisson variates
+
+
+
+If we have a count value
+ that follows a Poisson distribution,
+we can assume immediately that the average is
+ and the s.d. is
+
+.
+I.e., repeated experiments would give values
+
+distributed according to the normalized distribution
+
+
+
+
+
+
+This obeys
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Suppose now that
+our observable is
+
+
+
+
+
+
+where
+ is a known error-free scaling factor.
+The distribution of
+ is
+
+
+
+
+
+
+and now,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Now it is no more valid that
+
+, instead
+
+
+
+
+
+
+that is the characteristic relationship for a normal-variate distribution.
+
+
+Moreover, assume now that the scaling factor is not exctly known
+but instead it is a normal-variate itself with average
+, s.d.
+
+
+, and distribution
+
+
+
+
+
+
+Then,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+where in the last we discard, as usual, the 4th order in the relative errors. Both the exact and approximated forms
+are exactly the same as if both distributions were to be normal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Bibliography
+ Up: How are different positions
+ Previous: Numerical comparison of averages
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node64.html b/manual/docs/html/slsDetectors-FAQ/node64.html
new file mode 100644
index 000000000..e1c2f2691
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node64.html
@@ -0,0 +1,86 @@
+
+
+
+
+
+Bibliography
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: Why can't I properly
+ Up: How are different positions
+ Previous: Scaling Poisson variates
+ Contents
+
+
+
+
+
+
+
+[1] - B. E. Warren, "X-Ray Diffraction" (Dover:1990)
+
+
+[2] - A. Guinier, "X-Ray Diffraction In Crystals, Imperfect Crystals, and Amorphous Bodies" (Dover:1994)
+
+
+[3] - G. L. Squires, "Introduction to the Theory of Thermal Neutron Scattering" (Dover:1997)
+
+
+[4] - G. E. P. Box, G. C. Tiao, "Bayesian inference in statistical analysis" (Wiley, NY: 1996)
+
+
+[5] - E. Prince, P. T. Boggs, "International Tables for Crystallography" Vol. C, ch. 8.1, pp. 678-688 (First online edition : 2006)
+
+
+[6] - K. J. Mighell, Astrophys. J. 518 (1999) p. 380-393
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node65.html b/manual/docs/html/slsDetectors-FAQ/node65.html
new file mode 100644
index 000000000..274d772f7
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node65.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+Why can't I properly merge different positions?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: About this document ...
+ Up: Angular conversion
+ Previous: Bibliography
+ Contents
+
+
+
+
+
+
+
+From my experience, when data don't merge properly after flat-file corrections there are mainly two reasons:
+
+
+FLUORESCENCE. We ahve already discussed about it and normally it shouws up as differences between individual channels or groups of channels i.e. the patterns don't match in several places.
+This does not seem the case, in my opinion (but do you know exactly what's inside Aspirin?)
+
+
+
+Background scattering from the air. When you move the detector the walls of the housing make a different shadow on the modules and at small angles if you have no beamstopper it could even be backscattering from the housing hit by the beam in the different positions. The only way of improving it is to properly place the beamstopper and to avoid air scattering before the sample e.g. by using a "nose" from the end of your flight tube to very close to the sample.
+Of course the problem is stronger at lower energies (more air scattering) and normally with the detector positioned at low angles (scattering from the housing, shadowing of the "forward" scattered beam).
+When you see this problem you could try to take data e.g. at 20-25 degrees instead of 5-10 degrees and see if it's still there.
+It could also be that the geometry of your housing with the flat window and shorter path inside the housing amplifies the problem, so that you should take special care of it with respect to the SLS where we have just a feww cm before entering the housing and then half a meter inside it.
+
+
+
+Your sample changes over time e.g. in case of radiation damage and long exposure times (usually several seconds).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: About this document ...
+ Up: Angular conversion
+ Previous: Bibliography
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node66.html b/manual/docs/html/slsDetectors-FAQ/node66.html
new file mode 100644
index 000000000..e481f833b
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node66.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+About this document ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Up: SLS Detectors Frequently Asked
+ Previous: Why can't I properly
+ Contents
+
+
+
+
+
+ SLS Detectors
+
+Frequently Asked Questions
+This document was generated using the
+LaTeX 2HTML translator Version 2008 (1.71)
+
+Copyright © 1993, 1994, 1995, 1996,
+Nikos Drakos ,
+Computer Based Learning Unit, University of Leeds.
+
+Copyright © 1997, 1998, 1999,
+Ross Moore ,
+Mathematics Department, Macquarie University, Sydney.
+
+The command line arguments were:
+ latex2html slsDetectors-FAQ.tex
+
+The translation was initiated by Thattil Dhanya on 2018-03-12
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node7.html b/manual/docs/html/slsDetectors-FAQ/node7.html
new file mode 100644
index 000000000..8675bb708
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node7.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+What are settings and calibration files for?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: MYTHEN
+ Up: SLS Detectors Software
+ Previous: How can I configure
+ Contents
+
+
+
+
+
+
+What are settings and calibration files for?
+
+
+
+The analog characteristics of the detector have to be initialized in order to define the noise and the dynamic range which need to be used for the measurements. These parameters have a different meaning for analog or digital detectors, but in both cases some predefined voltage levels and current (we call them settings ) must be laoded to the detector. Moreover, there are some parameters that are custom to single detectors or modules (e.g. the trimbits). All these settings are stored in some settings file, which are organized in a settingsdir with a definite architecture, where the software will look for the files to load to the detector whaen changing its settings.
+
+
+In addition to that, in a single photon counting detector the threshold is set as a voltage level for the comparator, but for the user it is useful to have a direct conversion to the energy level. For this, after a proper calibration of the detector (see specific documentation) calibration file are generated in order to convert threshold in volts to keV. Also in this case the directory caldir where the calibration files are stored must be defined ad organized with a proper architecture, suche that the software can find the calibration coefficients for settings the threshold.
+
+Normally settingsdir and caldir can be the same, but have been left separate for flexibility.
+
+
+The settingsdir and caldir should be properly configured for your detector either in a configuration file (for use with text clients, GUI or API) or dynamically (works only for the text clients).
+
+
+In the following, the architecture of the settingsdir and caldir is described for the different detectors.
+
+
+
+
+Subsections
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: MYTHEN
+ Up: SLS Detectors Software
+ Previous: How can I configure
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node8.html b/manual/docs/html/slsDetectors-FAQ/node8.html
new file mode 100644
index 000000000..9006e3e3d
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node8.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+MYTHEN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: GOTTHARD
+ Up: What are settings and
+ Previous: What are settings and
+ Contents
+
+
+
+
+
+For mythen, an example of settingsdir and caldir is given in the software package by the directory trimdir
.
+Since these directories are customized by producing trimbit files and calibration for each detector, make sure not to overwrite yours every time you upgrade the software.
+
+
+settingsdir should contain three subdirectories standard
, fast
and highgain
containing respectively the trimfiles standard.trim
, fast.trim
and highgain.trim
which contain the correct voltage settings for the detector although all the individual channel thresholds set to 0. The original files contained in the package should be used, infact in case of error the detector would not recognize the correct settings.
+
+The default trimbit files for each file will be stored in the directory according to the settings with the name noise.snxxx
where xxx
is the module serial number.
+
+
+caldir should contain three subdirectories standard
, fast
and highgain
containing respectively the trimfiles standard.cal
, fast.cal
and highgain.cal
which contain an average calibration of the modules for the diffrent settings. However this can different from the correct one for each individual module even of several kev and therefore it is very important to perform an energy calibration on a module basis.
+
+The default calibration files for each file will be stored in the directory according to the settings with the name calibration.snxxx
where xxx
is the module serial number.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: GOTTHARD
+ Up: What are settings and
+ Previous: What are settings and
+ Contents
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/html/slsDetectors-FAQ/node9.html b/manual/docs/html/slsDetectors-FAQ/node9.html
new file mode 100644
index 000000000..d212f0740
--- /dev/null
+++ b/manual/docs/html/slsDetectors-FAQ/node9.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+GOTTHARD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next: How should a configuration
+ Up: What are settings and
+ Previous: MYTHEN
+ Contents
+
+
+
+
+
+A settingsdir should be configured, as the directory settings
in this software package.
+
+It must contain the subdirectories dynamicgain
, gain1
, gain2
, gain3
, highgain
, lowgain
, mediumgain
, and veryhighgain
in order to properly configure the GOTTHARD detector using the various gain settings.
+
+
+
+
+Thattil Dhanya
+2018-03-12
+
+
+
diff --git a/manual/docs/pdf/angularCalibrationHowTo.pdf b/manual/docs/pdf/angularCalibrationHowTo.pdf
new file mode 100644
index 000000000..d654604ab
Binary files /dev/null and b/manual/docs/pdf/angularCalibrationHowTo.pdf differ
diff --git a/manual/docs/pdf/energyCalibrationHowTo.pdf b/manual/docs/pdf/energyCalibrationHowTo.pdf
new file mode 100644
index 000000000..2aac4fe2f
Binary files /dev/null and b/manual/docs/pdf/energyCalibrationHowTo.pdf differ
diff --git a/manual/docs/pdf/slsDetectorClientDocs.pdf b/manual/docs/pdf/slsDetectorClientDocs.pdf
new file mode 100644
index 000000000..6e82f6408
Binary files /dev/null and b/manual/docs/pdf/slsDetectorClientDocs.pdf differ
diff --git a/manual/docs/pdf/slsDetectorClientHowTo.pdf b/manual/docs/pdf/slsDetectorClientHowTo.pdf
new file mode 100644
index 000000000..cc521c0e8
Binary files /dev/null and b/manual/docs/pdf/slsDetectorClientHowTo.pdf differ
diff --git a/manual/docs/pdf/slsDetectorGuiHowTo.pdf b/manual/docs/pdf/slsDetectorGuiHowTo.pdf
new file mode 100644
index 000000000..278d5247d
Binary files /dev/null and b/manual/docs/pdf/slsDetectorGuiHowTo.pdf differ
diff --git a/manual/docs/pdf/slsDetectorUsersDocs.pdf b/manual/docs/pdf/slsDetectorUsersDocs.pdf
new file mode 100644
index 000000000..e6709f50d
Binary files /dev/null and b/manual/docs/pdf/slsDetectorUsersDocs.pdf differ