1
Accelerator Science and Technology Centre www.astec.ac.uk ALICE schematic High-Level ALICE Software Development James Jones and Ben Shepherd STFC Daresbury Laboratory, Warrington, Cheshire, WA4 4AD, United Kingdom. PAC 2009: FR5REP028 www.astec.ac.uk/preprints ALICE Accelerators and Lasers In Combined Experiments 35 MeV, 80pC energy recovery linac based at Daresbury Laboratory Energy recovery demonstrated in December 2008 Aims for 2009: FEL installation, Compton backscattering experiments EPICS & Channel Access ALICE runs on EPICS control system Linux consoles in the control room display synoptics for controlling EPICS parameters directly A .NET Channel Access interface has been developed at Daresbury, allowing easy communication with the control system from Windows consoles This facilitates rapid development of high-level accelerator physics-based applications in a familiar environment, with minimal time spent working on the control system interface Platforms used: Visual Basic .NET Mathematica MATLAB LabVIEW imageViewer Twenty CCD cameras around ALICE capture images of the beam from retractable YAG & OTR screens Live images are displayed on monitors in the control room Images are captured digitally using a PC-based frame grabber (Data Translation DT-3162) A MATLAB program, imageViewer, was written to capture and analyse images imageViewer also connects to EPICS to move the screens in and out of the beam, and selects the screen using the multiplexer in the control room. The beam position and size can be measured horizontally and vertically using a Gaussian- plus-background least-squares fit. Backgrounds can be subtracted from images, and filtering can be performed to reduce pixel noise arising from radiation damage to camera electronics. Series of images can be recorded automatically while varying a parameter – e.g. quadrupole scans for emittance measurements. Images saved in PNG format on file server for later analysis. MATLAB has excellent data handling facilities, and tools for image analysis. Complex GUIs easy to build and maintain using GUIDE. The code was optimised using the Profiler, which highlights the lines of code where most time is Compression Chicane Tracking Mathematica notebook Implements field measurements of dipoles in bunch compressor Magnetic fields are calculated for a given set of dipole currents Used to plot beam trajectory through the chicane Link to EPICS to directly control magnet currents and plot BPM read backs Currents adjusted interactively and trajectory updated automatically using native Mathematica capabilities Low intensity on central screen in chicane; BPM readings unreliable at low bunch charge Very effective tool for optimising THz output Machine Status Server AutoIt compiled script Serves lists of parameters in HTML or JSON format from a control room console During accelerator physics commissioning shifts, parameters can be automatically recorded in the ALICE eLog for future reference Parameter lists are also stored on the ALICE file server in a format readable by EPICS’ Back-Up and Restore Tool (BURT); the machine can then be quickly restored to a previous state ELOG edit page Machine area buttons Machine status tables: magnet settings, RF settings, etc. BPM Viewer & visualSteer LabVIEW virtual instruments BPM Viewer: shows a graphical display of the horizontal and vertical BPM readouts visualSteer: interactive control of the horizontal and vertical corrector magnets Collaborative Documentation ALICE manual stored on a web server in Wiki format Can be accessed by anyone using a web browser Manual pages can be easily edited by anyone on the ALICE team No special software or knowledge of HTML markup required All changes are tracked; pages can be ‘rolled back’ to previous versions if necessary Flat structure with ‘Categories’ to group pages together Introduction Modern accelerators require rich and complicated control system software to work effectively In recent years with the introduction of channel access based control systems, such as EPICS, it has become commonplace to create and use control system written outside of the traditional programming languages such as C or Fortran. With limited manpower it is increasingly important that physicists write their own software, leaving control systems engineers to concentrate on the underlying systems. The increasing ease of programming using software packages such as MATLAB, Mathematica and LabVIEW, has made this task simpler. All of these codes now also allow rich GUIs to be produced in less time than ever before. Online Model Mathematica GUI Interacts with control system through .NET EPICS interface. Parameter determination is performed by: Mathematica Lattice Code (MLC) – Linear lattice code written in Mathematica. Easily customisable. Fast. MAD-8 – Interacts using the MADInput and mfs packages. Consistent with the baseline ALICE design. Can look at All or just sections of the machine Allows ‘matching’ from section to section Features model positions and beam-sizes as seen at BPMs and YAG screens Model features in-built Nelder-Mead Simplex optimisation Can optimise on Twiss parameters Quadrupole Strengths Dipole Strengths Variables include Starting parameters Quadrupoles Dipoles YAG Screen Data BPM Data Twiss Plot Quadrupol e Controls Beam Size Analysis and Twiss Determination Mathematica notebook analyses data saved with imageViewer. Uses MAD-8 or MLC to determine R-matrix settings Attempts to automate process are limited by Frame- Grabber ActiveX interface. Conclusions The use of an EPICS control system on the ALICE machine, and the corresponding ease of data extraction within a multitude of high-level coding platforms, has allowed the rapid development of useable machine software. The use of many different software programming languages allows the restrictions or disadvantages of any one programming language to be mitigated, and helps to ensure that software is written in the most appropriate manner. With the introduction of advanced GUI building capabilities in all of these packages, the inherent difficulties in using a wide number of packages has effectively been negated, and control software programming is no longer strictly tied to the ‘lowest common denominator’ programming language. Analysing a beam image at YAG-03 DIP-01 DIP-02 DIP-03 DIP-04 beam direction

Accelerator Science and Technology Centre ALICE schematic High-Level ALICE Software Development James Jones and Ben Shepherd STFC Daresbury

Embed Size (px)

Citation preview

Page 1: Accelerator Science and Technology Centre  ALICE schematic High-Level ALICE Software Development James Jones and Ben Shepherd STFC Daresbury

Accelerator Science and Technology Centre www.astec.ac.uk

ALICE schematic

High-Level ALICE Software Development

James Jones and Ben Shepherd

STFC Daresbury Laboratory, Warrington, Cheshire, WA4 4AD, United Kingdom.

PAC 2009: FR5REP028 www.astec.ac.uk/preprints

ALICE• Accelerators and Lasers In Combined Experiments• 35 MeV, 80pC energy recovery linac based at Daresbury

Laboratory• Energy recovery demonstrated in December 2008• Aims for 2009: FEL installation, Compton backscattering

experiments

EPICS & Channel Access• ALICE runs on EPICS control system• Linux consoles in the control room display synoptics for

controlling EPICS parameters directly• A .NET Channel Access interface has been developed at

Daresbury, allowing easy communication with the control system from Windows consoles

• This facilitates rapid development of high-level accelerator physics-based applications in a familiar environment, with minimal time spent working on the control system interface

• Platforms used:• Visual Basic .NET• Mathematica• MATLAB• LabVIEW

imageViewer• Twenty CCD cameras around ALICE capture images of the

beam from retractable YAG & OTR screens• Live images are displayed on monitors in the control

room• Images are captured digitally using a PC-based frame

grabber (Data Translation DT-3162)• A MATLAB program, imageViewer, was written to

capture and analyse images

• imageViewer also connects to EPICS to move the screens in and out of the beam, and selects the screen using the multiplexer in the control room.

• The beam position and size can be measured horizontally and vertically using a Gaussian-plus-background least-squares fit.

• Backgrounds can be subtracted from images, and filtering can be performed to reduce pixel noise arising from radiation damage to camera electronics.

• Series of images can be recorded automatically while varying a parameter – e.g. quadrupole scans for emittance measurements.

• Images saved in PNG format on file server for later analysis.

• MATLAB has excellent data handling facilities, and tools for image analysis.

• Complex GUIs easy to build and maintain using GUIDE.• The code was optimised using the Profiler, which

highlights the lines of code where most time is spent.• Maximum image processing rate: about 3 Hz.

Compression Chicane Tracking

• Mathematica notebook• Implements field measurements of dipoles in bunch

compressor• Magnetic fields are calculated for a given set of dipole

currents• Used to plot beam trajectory through the chicane• Link to EPICS to directly control magnet currents and plot

BPM read backs• Currents adjusted interactively and trajectory updated

automatically using native Mathematica capabilities• Low intensity on central screen in chicane; BPM readings

unreliable at low bunch charge• Very effective tool for optimising THz output

Machine Status Server• AutoIt compiled script• Serves lists of parameters in HTML or JSON format from a

control room console• During accelerator physics commissioning shifts,

parameters can be automatically recorded in the ALICE eLog for future reference

• Parameter lists are also stored on the ALICE file server in a format readable by EPICS’ Back-Up and Restore Tool (BURT); the machine can then be quickly restored to a previous stateELOG edit page

Machine area buttons

Machine status tables:magnet settings, RF settings, etc.

BPM Viewer & visualSteer• LabVIEW virtual instruments• BPM Viewer: shows a graphical display of the horizontal

and vertical BPM readouts• visualSteer: interactive control of the horizontal and

vertical corrector magnets

Collaborative Documentation

• ALICE manual stored on a web server in Wiki format• Can be accessed by anyone using a web browser• Manual pages can be easily edited by anyone on the ALICE

team• No special software or knowledge of HTML markup required• All changes are tracked; pages can be ‘rolled back’ to

previous versions if necessary• Flat structure with ‘Categories’ to group pages together

Introduction• Modern accelerators require rich and complicated control system

software to work effectively • In recent years with the introduction of channel access based

control systems, such as EPICS, it has become commonplace to create and use control system written outside of the traditional programming languages such as C or Fortran.

• With limited manpower it is increasingly important that physicists write their own software, leaving control systems engineers to concentrate on the underlying systems.

• The increasing ease of programming using software packages such as MATLAB, Mathematica and LabVIEW, has made this task simpler.

• All of these codes now also allow rich GUIs to be produced in less time than ever before.

Online Model• Mathematica GUI• Interacts with control system through .NET EPICS interface.• Parameter determination is performed by:

• Mathematica Lattice Code (MLC) – Linear lattice code written in Mathematica. Easily customisable. Fast.

• MAD-8 – Interacts using the MADInput and mfs packages. Consistent with the baseline ALICE design.

• Can look at All or just sections of the machine• Allows ‘matching’ from section to section

• Features model positions and beam-sizes as seen at BPMs and YAG screens

• Model features in-built Nelder-Mead Simplex optimisation• Can optimise on

• Twiss parameters• Quadrupole Strengths• Dipole Strengths

• Variables include• Starting parameters• Quadrupoles• Dipoles

YAG Screen DataBPM Data

Twiss Plot

Quadrupole Controls

Beam Size Analysis and Twiss Determination

• Mathematica notebook analyses data saved with imageViewer.

• Uses MAD-8 or MLC to determine R-matrix settings• Attempts to automate process are limited by Frame-Grabber

ActiveX interface.

Conclusions• The use of an EPICS control system on the ALICE machine, and the

corresponding ease of data extraction within a multitude of high-level coding platforms, has allowed the rapid development of useable machine software.

• The use of many different software programming languages allows the restrictions or disadvantages of any one programming language to be mitigated, and helps to ensure that software is written in the most appropriate manner.

• With the introduction of advanced GUI building capabilities in all of these packages, the inherent difficulties in using a wide number of packages has effectively been negated, and control software programming is no longer strictly tied to the ‘lowest common denominator’ programming language.

Analysing a beam image at YAG-03

DIP-01

DIP-02DIP-03

DIP-04

beam direction