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:
@@ -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. 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">
|
||||
</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">
|
||||
</h2>
|
||||
<h2 style="text-align: left">
|
||||
Hardware notes</h2>
|
||||
</center>
|
||||
<h2 id="Hardware notes" style="text-align: left">
|
||||
</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">
|
||||
</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>
|
||||
|
||||
Reference in New Issue
Block a user