GDA User Meeting October 2008

Download Report

Transcript GDA User Meeting October 2008

Diamond Light Source Data
Acquisition System (GDA)
flexes its muscles
Presented by Paul Gibbons PhD. GDA Team
Manager but the work of many others.
Many slides provided by GDA Team Members
[email protected]
SRS Staff
Current Teams At Diamond
Greg Diakun (Head)
Bill Pulford (Head)
Geoff Mant
Paul Stephenson
Diamond Data Acquisition Team
Karen Ackroyd
Jun Aishima
Glenys McBain
Paul Gibbons
Steve Kinder
Vasanthi Nagalingam
Christine Ramsdale
Mike Miller
Eric Ren
Tobias Richter
Past Diamond Staff
Rob Walton
Stuart Campbell
Richard Woolliscroft
Adrian Mirea
Fajin Yuan
Matt Pearson
Paul Quinn
Diamond Scientific Software
Stuart Robinson
Alun Ashton
Mark Basham
Karl Levik
[email protected]
How do we use the
beam line to get an electron
density map of a protein?
[email protected]
A complete experiment requires:
1. User Login
2. Sample Identification
3. Initial data collection to characterise sample.
4. Data collection
5. Data processing
6. Store all artefacts in database for remote access
Repeat automatically for many samples.
[email protected]
Range of Experiments supported
by GDA
Macromolecular Crystallography
Non-crystalline diffraction
EXAFS
Crystalline Diffraction
Surface Science
Tomography ( soon )
[email protected]
At Diamond we delegate the tasks
User Office / Pre-experiment facilities ( ICAT, ISPYB)
GDA – GUI &
Experiment Logic
EPICS – software
abstraction of hardware
& fast scanning.
‘Post’ Analysis + data storage
[email protected]
Hardware Representation in GDA
XPS Motor
Controller
'Soft' motor
Delta-Tau Motor Controller
EPICS -Motor Record
Detector
EpicsMotor
AbstractMotor
GDA - Scannable
[email protected]
Jython object
GDA Interfaces
•
•
•
•
•
•
•
•
•
Motor
Detector
ADC
Amplifier
BPM
CurrentAmplifier
Digital IO
Temperature Controller
Scannable
[email protected]
I18 Beamline Components
Multilayer
EPICS
Ion
Chambers
Vortex MCA
Corba
GDA Client
Photonic
CCD
GDA Server
Image Pro
XsPress2
Jython Scripts
[email protected]
Detectors
Gui sends parameters and script name to Jython Interpreter for execution on server.
Parameters from GUI or other script
Send message to GUI & log
Perform Scan
Exception handling
[email protected]
MX - Sample Control
[email protected]
MX - Experiment control
[email protected]
MX – Fluorescence Scan
[email protected]
Spectroscopy I18
[email protected]
Exafs Scan
[email protected]
Non-crstalline diffraction
GUI closely integrates the detector suite:
•Rapid2D
•HotWAXS
•HotSAXS
•TFG2
That is important for:
• short time experiments
• targeted user community
Data Analysis Features
• plugin system for external
Java software
• user assisted q calibration
– data visualisation
– live view of
incoming detector
data
upcoming: more analysis features
[email protected]
[email protected]
[email protected]
• Jython Interpreter allows users to easily write
very powerful experiment scripts.
[email protected]
Scan - PseudoDevice
Get value
Set value
scan value
[email protected]
Scanning & reading data
[email protected]
I16 Hardware / Experiments
•
Six circle diffractometer
•
Five point and two Pilatus detectors.
•
Goodies:
– Incident polarisation selection
– Reflected polarisation analyser
– Sample coolers and magnets
•
Wide range of diffraction experiments
– Command line control only
– Scan command…
– Temporary scripts…
– Pilatus GUI…
[email protected]
Illustrative Scans
• Versatile system of
1) Interchangeable Scannables: slits, phi, energy, hkl, ct, pil
2) Scan command
• Examples:
– Scan to keep still
> scan energy 5.95 6.05 .0005 hkl [1 0 1] pol 90 ct 1
– One-night-only scannable
> voltage = 1.54
> scan energy 5.95 6.05 .0005 flipper [voltage 20 2]
[email protected]
Illustrative Experiment Script
Algorithm
Script (night24sept08a.py)
1) Find a reflection’s exact hkl position
posHkl = [0,0,2]
2) Move phi in loop:
pos hkl posHkl
b) occasionally recentre on reflection
i) centre eta on reflection
ii) centre chi on reflection
iii) store hkl position
c) move to hkl position
d) loop polarisation
i) scan eta & read ct
for posPhi in frange(-90, 90, 1):
pos phi phiPos
if posPhi%45==0:
scancn theta .02 40 t 2 checkbeam
pos eta FindScanPeak('APD')['eta'])
scancn chi .02 40 t 2 checkbeam
pos chi FindScanPeak('APD')['chi'])
posHkl = hkl()
pos hkl hklPos
pos pp111 [en() -.075]
scancn eta .02 40 ct 2 en pp111
pos pp111 [en() +.075]
scancn eta .02 40 ct 2 en pp111
[email protected]
> scan phi 0 1 .1 pil 10
Pilatus 2M
[email protected]
> pos pil 10
Combining Jython with EPICS
objects
• Easy to use
• High level language
• Combine EPICS devices together to make full
experiment with speed of execution of EPICS.
• Hardware interface is robust to user error
[email protected]
Epics Interface
[email protected]
So What Next
• More sophisticated script functions for diffractometers
• Support more complex EPICS devices e.g. motor
controller trajectory scan object.
• Re-factor to allow third party interfaces and objects.
• Role Based Access
• Remote Access
• Eclipse RCP
[email protected]
• The Eclipse framework is a mechanism for
hosting various software written by different
organisations to work together to create a
single application.
• Allows more structured development on GDA
as plugins. Breaks large monolithic structure
into separately developed components.
• Professional looking product – context
sensitive help, auto-completion.
• Make use of plugins written by others e.g. IDL
visualisation plugins.
[email protected]
Main Panels now Eclipse Views
[email protected]
PyDev plugin
used to
provide script
editor and
console with
context
sensitive help.
[email protected]
Eclipse cheat
sheets guide
user
interactively.
[email protected]
Putting it all together as a complete
experiment application.
[email protected]
Collaboration Options with GDA
• GDA is soon to be made OpenSource and structure
as a small core with a set of shareable plugins.
• Python code is to be written using interfaces to GDA
allowing it to be used outside of GDA. e.g hkl system
for driving diffractometers.
• Eclipse RCP is by definition a collaborative project –
at plugin creation or simple plugin sharing level.
[email protected]