360 likes | 608 Views
Presented by Paul Gibbons PhD. GDA Team Manager but the work of many others. Many slides provided by GDA Team Members. Diamond Light Source Data Acquisition System (GDA) flexes its muscles. Current Teams At Diamond Bill Pulford (Head) Diamond Data Acquisition Team Jun Aishima
E N D
Presented by Paul Gibbons PhD. GDA Team Manager but the work of many others. Many slides provided by GDA Team Members Diamond Light Source Data Acquisition System (GDA) flexes its muscles paul.gibbons@diamond.ac.uk
paul.gibbons@diamond.ac.uk Current Teams At Diamond Bill Pulford (Head) Diamond Data Acquisition Team Jun Aishima Paul Gibbons Vasanthi Nagalingam Eric Ren Tobias Richter Rob Walton Richard Woolliscroft Fajin Yuan Diamond Scientific Software Alun Ashton Mark Basham Karl Levik • SRS Staff • Greg Diakun (Head) • Geoff Mant • Paul Stephenson • Karen Ackroyd • Glenys McBain • Steve Kinder • Christine Ramsdale • Mike Miller Past Diamond Staff Stuart Campbell Adrian Mirea Matt Pearson Paul Quinn Stuart Robinson
How do we use the beam line to get an electron density map of a protein? paul.gibbons@diamond.ac.uk
User Login Sample Identification Initial data collection to characterise sample. Data collection Data processing Store all artefacts in database for remote access Repeat automatically for many samples. A complete experiment requires: paul.gibbons@diamond.ac.uk
Macromolecular Crystallography Non-crystalline diffraction EXAFS Crystalline Diffraction Surface Science Tomography ( soon ) Range of Experiments supported by GDA paul.gibbons@diamond.ac.uk
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 paul.gibbons@diamond.ac.uk
Hardware Representation in GDA XPS Motor Controller 'Soft' motor Delta-Tau Motor Controller EPICS -Motor Record Detector EpicsMotor AbstractMotor Jython object GDA - Scannable paul.gibbons@diamond.ac.uk
paul.gibbons@diamond.ac.uk GDA Interfaces • Motor • Detector • ADC • Amplifier • BPM • CurrentAmplifier • Digital IO • Temperature Controller • Scannable
paul.gibbons@diamond.ac.uk I18 Beamline Components Multilayer EPICS Ion Chambers Vortex MCA Corba GDA Server GDA Client Photonic CCD Image Pro XsPress2 Jython Scripts Detectors
paul.gibbons@diamond.ac.uk 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
paul.gibbons@diamond.ac.uk MX - Sample Control
paul.gibbons@diamond.ac.uk MX - Experiment control
paul.gibbons@diamond.ac.uk MX – Fluorescence Scan
paul.gibbons@diamond.ac.uk Spectroscopy I18
paul.gibbons@diamond.ac.uk Exafs Scan
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
paul.gibbons@diamond.ac.uk • Jython Interpreter allows users to easily write very powerful experiment scripts.
paul.gibbons@diamond.ac.uk Scan - PseudoDevice Get value Set value scan value
paul.gibbons@diamond.ac.uk Scanning & reading data
paul.gibbons@diamond.ac.uk 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…
paul.gibbons@diamond.ac.uk Illustrative Scans • Versatile system of 1) Interchangeable Scannables: slits, phi, energy, hkl, ct, pil 2) Scan command • Examples: • Scan to keep still • One-night-only scannable > scan energy 5.95 6.05 .0005hkl [1 0 1]pol 90 ct 1 > voltage = 1.54 > scan energy 5.95 6.05 .0005flipper [voltage 20 2]
paul.gibbons@diamond.ac.uk Illustrative Experiment Script Algorithm Script (night24sept08a.py) 1) Find a reflection’s exact hkl position 2) Move phi in loop: 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 posHkl = [0,0,2] pos hkl posHkl 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
paul.gibbons@diamond.ac.uk > scan phi 0 1 .1pil 10 > pos pil 10 Pilatus 2M
paul.gibbons@diamond.ac.uk 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
paul.gibbons@diamond.ac.uk Epics Interface
paul.gibbons@diamond.ac.uk 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
paul.gibbons@diamond.ac.uk • 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.
paul.gibbons@diamond.ac.uk Main Panels now Eclipse Views
paul.gibbons@diamond.ac.uk PyDev plugin used to provide script editor and console with context sensitive help.
paul.gibbons@diamond.ac.uk Eclipse cheat sheets guide user interactively.
paul.gibbons@diamond.ac.uk Putting it all together as a complete experiment application.
paul.gibbons@diamond.ac.uk 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.