Converted to XHTML 1.1 compliance

git-svn-id: https://subversion.xor.aps.anl.gov/synApps/areaDetector/trunk@7666 dc6c5ff5-0b8b-c028-a01f-ffb33f00fc8b
This commit is contained in:
rivers
2008-09-19 23:11:34 +00:00
parent 6d96d77f60
commit 03ea472700
+52 -60
View File
@@ -3,7 +3,7 @@
<title>areaDetector Pilatus driver</title>
</head>
<body>
<center>
<div style="text-align: center">
<h1>
areaDetector Pilatus driver</h1>
<h2>
@@ -12,8 +12,7 @@
Mark Rivers</h2>
<h2>
University of Chicago</h2>
</center>
<br />
</div>
<h2>
Table of Contents</h2>
<ul>
@@ -27,7 +26,8 @@
<li><a href="#Hardware notes">Hardware notes</a> </li>
<li><a href="#Restrictions">Restrictions</a> </li>
</ul>
<h2 id="Introduction" style="text-align: left">Introduction</h2>
<h2 id="Introduction" style="text-align: left">
Introduction</h2>
<p>
This is a driver for the Pilatus pixel array detectors <a href="http://www.dectris.com">
Dectris</a>. It inherits from ADDriver and implements many of the parameters in
@@ -44,7 +44,8 @@
reads these disk files in order to read the data, because camserver does not provide
another mechanism to access the data.
</p>
<h2 id="StandardNotes" style="text-align: left">Implementation of standard driver parameters</h2>
<h2 id="StandardNotes" style="text-align: left">
Implementation of standard driver parameters</h2>
<p>
The following table describes how the Pilatus driver implements some of the standard
driver parameters.
@@ -181,7 +182,8 @@
This ROI can be monitored to make sure that the 20-bit limit of 1,048,575 is not
being approached in any pixel.
</p>
<h2 id="Driver_parameters" style="text-align: left">Pilatus specific parameters</h2>
<h2 id="Driver_parameters" style="text-align: left">
Pilatus specific parameters</h2>
<p>
The Pilatus driver implements the following parameters in addition to those in ADStdDriverParams.h:
</p>
@@ -445,7 +447,8 @@
</tr>
</tbody>
</table>
<h2 id="Configuration" style="text-align: left">Configuration</h2>
<h2 id="Configuration" style="text-align: left">
Configuration</h2>
<p>
The Pilatus driver is created with the following command, either from C/C++ or from
the EPICS IOC shell.
@@ -472,8 +475,8 @@
<td>
<code>camserverPort</code></td>
<td>
The name of the asyn TCP/IP port to communicate with camserver. This must have
been previously created with <code>drvAsynIPPortConfig()</code>,
The name of the asyn TCP/IP port to communicate with camserver. This must have been
previously created with <code>drvAsynIPPortConfig()</code>,
</td>
</tr>
<tr>
@@ -590,8 +593,8 @@ iocInit()
create_monitor_set("auto_settings.req", 30,"P=13PIL1:,D=cam1:")
</pre>
<br />
<h2 id="MEDM screens" style="text-align: left">MEDM screens</h2>
<h2 id="MEDM screens" style="text-align: left">
MEDM screens</h2>
<p>
The following show the MEDM screens that are used to control the Pilatus debtector.
Note that the general purpose screen ADBase.adl can be used, but it exposes many
@@ -600,19 +603,19 @@ create_monitor_set("auto_settings.req", 30,"P=13PIL1:,D=cam1:")
<code>pilatusDetector.adl</code> is the main screen used to control the pilatusROI
SNL program. All records except those for ROIs are accessed through this screen.
</p>
<center>
<div style="text-align: center">
<h3 style="text-align: center">
pilatusDetector.adl</h3>
<img alt="pilatusDetector.png" src="pilatusDetector.png" /></center>
<img alt="pilatusDetector.png" src="pilatusDetector.png" /></div>
<p>
<code>NDROI8.adl</code> is used to define the ROIs, and to display the statistics
for each ROI. In this example there are 3 valid ROIs defined. ROI 0 is the entire
detector.&nbsp; ROI 1 is a 100x50 rectangle starting at [300,60], and ROI 2 is a
50x30 rectangle starting at [320,70]..</p>
<center>
<div style="text-align: center">
<h3 style="text-align: center">
NDROI8.adl</h3>
<img alt="NDROI8.png" src="NDROI8.png" /></center>
<img alt="NDROI8.png" src="NDROI8.png" /></div>
<p>
<code>mca.adl</code> can be used to plot the net or total counts in an ROI when
NImages>1. In this example the plot is the net counts in ROI 1 as the diffractometer
@@ -624,51 +627,52 @@ create_monitor_set("auto_settings.req", 30,"P=13PIL1:,D=cam1:")
<p>
using trajectory scanning on a Newport kappa diffractometer. This was a compound
motor scan with the Newport XPS putting out pulses every .02 seconds. These pulses
triggered the Pilatus in External Enable mode. The Pilatus driver read each
TIFF file as it was created and updated this plot every 0.2 seconds. The total time
to collect this scan with 1000 images was 20 seconds.</p>
<h3 style="text-align: center">mca.adl</h3>
<img alt="pilatusMCA.png" src="pilatusMCA.png" style="text-align:left"/>
triggered the Pilatus in External Enable mode. The Pilatus driver read each TIFF
file as it was created and updated this plot every 0.2 seconds. The total time to
collect this scan with 1000 images was 20 seconds.</p>
<div style="text-align: center">
<h3 style="text-align: center">
mca.adl</h3>
<img alt="pilatusMCA.png" src="pilatusMCA.png" style="text-align: left" /></div>
<p>
<code>scan_more.adl</code> is used to define a scan. In this example the sscan record
is set up to scan the ThresholdEnergy PV and to collect the total counts in ROI2,
which was defined to include the entire detector.</p>
<h3 style="text-align: center">scan_more.adl</h3>
<center><img alt="pilatusROI_scan_more.png" src="pilatus_scan_more.png"/></center>
<div style="text-align: center">
<h3>
scan_more.adl</h3>
<img alt="pilatusROI_scan_more.png" src="pilatus_scan_more.png" /></div>
<p>
<code>scanDetPlot.adl</code> is used to plot the results of a scan after it is complete.
In this example the total counts in ROI 2 are plotted as a function of the ThresholdEnergy
as it was scanned from 3000 to 10000 eV in 250 eV steps. The source was Fe55, and
the cut-off is at 6 keV, as expected for the Mn Ka and Mn Kb x-rays that this source
produces.</p>
<center>
<div style="text-align: center">
<h3>
scanDetPlot.adl</h3>
<img alt="pilatus_scan_plot.png" src="pilatus_scan_plot.png" /></center>
<img alt="pilatus_scan_plot.png" src="pilatus_scan_plot.png" /></div>
<p>
<code>asynRecord.adl</code> is used to control the debugging information printed
by the asyn TCP/IP driver (asynTraceIODriver) and the SNL program (asynTraceIODevice).</p>
<center>
<div style="text-align: center">
<h3>
asynRecord.adl</h3>
<img alt="pilatusAsynRecord.png" src="pilatusAsynRecord.png" /></center>
<img alt="pilatusAsynRecord.png" src="pilatusAsynRecord.png" /></div>
<p>
<code>asynOctet.adl</code> can be used to send any command to camserver and display
the response. It can be loaded from the More menu in asynRecord.adl above.</p>
<center>
<div style="text-align: center">
<h3>
asynOctet.adl</h3>
<img alt="pilatusAsynOctet.png" src="pilatusAsynOctet.png" /></center>
<br />
<center>
<h2 id="SPEC interface" style="text-align: left">
SPEC interface</h2>
</center>
<img alt="pilatusAsynOctet.png" src="pilatusAsynOctet.png" /></div>
<h2 id="SPEC interface" style="text-align: left">
SPEC interface</h2>
<p>
At the GSECARS beamlines (13-ID-C and 13-BM-C) at the APS we use SPEC to control
our Newport diffractometers. We have added and modified SPEC macros to use the pilatusDetector
areaDetector driver to treat the Pilatus detector as a SPEC counter. This works in both traditional
step-scanning mode, as well as in <a href="http://cars.uchicago.edu/software/epics/trajectoryScan.html">
areaDetector driver to treat the Pilatus detector as a SPEC counter. This works
in both traditional step-scanning mode, as well as in <a href="http://cars.uchicago.edu/software/epics/trajectoryScan.html">
trajectory scanning</a> mode. Here are some snippets from the SPEC macros for
the Pilatus. We can supply the source files on request.</p>
<pre># need some more globals (kludge)
@@ -737,13 +741,8 @@ def user_getcounts '{
S[iroi] = 0
S[iroi] = epics_get(PILATUS_ROI_PV)
</pre>
<br />
<center>
<h2 id="Performance measurements" style="text-align: left">
&nbsp;</h2>
<h2 style="text-align: left">
Performance measurements</h2>
</center>
<h2 id="Performance measurements">
Performance measurements</h2>
<p>
The following measurements were done to demonstrate the performance that can be
obtained with pilatusROI.</p>
@@ -790,10 +789,10 @@ def user_getcounts '{
(15 images total). The total additional time was less than 1.3 seconds for all 1000
images. As soon as the acquisition was complete SPEC plotted the net counts in the
first ROI (containing the Bragg peak) as follows:
<center>
<div style="text-align: center">
<h3>
1000 point SPEC scan with 15 ms per point collected in 16.3 seconds</h3>
<img alt="pilatusROI_spec.png" src="pilatus_spec.png" /></center>
<img alt="pilatusROI_spec.png" src="pilatus_spec.png" /></div>
<p>
</p>
For comparison this identical scan was executed in traditional step-scanning mode,
@@ -804,13 +803,10 @@ def user_getcounts '{
mode. The trajectory scanning mode is thus more than 50 times faster to execute
the identical SPEC scan.</li>
</ol>
<br />
<center>
<h2 id="Hardware notes" style="text-align: left">
&nbsp;</h2>
<h2 style="text-align: left">
Hardware notes</h2>
</center>
<h2 id="Hardware notes" style="text-align: left">
&nbsp;</h2>
<h2 style="text-align: left">
Hardware notes</h2>
<h3>
Trigger pulses</h3>
<p>
@@ -866,8 +862,9 @@ def user_getcounts '{
readout time is set via the knobs on the pulse generator to be 3 ms, which is close
to the minimum time allowed on the Pilatus.</li>
</ul>
<p>The Tenma TGP110 seems to be currently called a Tenma 72-6860, and lists for about
$350 new at <a href="http://www.newark.com">Newark</a>.
<p>
The Tenma TGP110 seems to be currently called a Tenma 72-6860, and lists for about
$350 new at <a href="http://www.newark.com">Newark</a>.
</p>
<h3>
Detector Voltage</h3>
@@ -884,13 +881,8 @@ def user_getcounts '{
<p>
Dectris has since informed me that they have increased the power supply voltage
on all new Pilatus systems, so this should no longer be an issue.</p>
<br />
<center>
<h2 id="Restrictions" style="text-align: left">
&nbsp;</h2>
<h2 style="text-align: left">
Restrictions</h2>
</center>
<h2 id="Restrictions">
Restrictions</h2>
<p>
The following are some current restrictions of the pilatusROI SNL program:</p>
<ul>