Title: From picoseconds to galaxies
1TGATS tiling and data acquisition
software October 7, 2005
Wojtek Skulski Laboratory for Laser Energetics
University of Rochester Rochester New York
14623-1299
2Acknowledgements
- Programming
- Dave Hassett and Mark Wilson (LLE).
- Megan Alexander, Eryk Druszkiewicz, Daniel Miner,
Saba Zuberi (students). - Cuno Pfister and Wolfgang Weck (Oberon
Microsystems). - Robert Campbell (BAE Systems).
- Gérard Meunier (BlackBox community).
- Hardware, optics, electronics
- Joachim Bunkenburg, Larry Iwan, Terry Kessler,
Charles Kellogg, Conor Kelly, - John Price, Dave Canning, Matthew Swain (LLE).
- Jan Toke (Chemistry), Frank Wolfs (Physics).
3Available presentations
This presentation is the third one in a series. I
will highlight a difference between engineering
and scientific programming, using LLE tiling and
TGATS software as examples. Other available
presentations Scientific programming without a
sting (BlackBox for Scientists and Engineers). An
overview and benefits of BlackBox
programming. http//www.pas.rochester.edu/skulski
/Presentations/BB_Class.ppt Spatially
Synchronous Phase Detection Unboxed. The details
of the SSPD, as implemented at LLE. \\Hopi\Omega-E
P\OMEGA-EP Presentations\General\SSPD_Unboxed.ppt
4A bit of history how the HW/SW project started
February 2004
September 2004
April 2005
Manual control
Automatic control One grating pair
Automatic control Four grating pairs (Mach-Zehnder
)
Closed loop, one TMA
Feb/2004
Sept/2004
Apr/2005
May/2004
5Algorithm ? implementation ? application
Model (or LOTF meas.)
Science
Usually quite simple E.g., SSPD is only 6 steps.
Algorithm
Has to deal with practical issues E.g., noise is
big issue for phase unwrapping in SSPD.
Implementation
Many months of work in the lab Here you discover
why you need rich diagnostic tools and displays.
Application
6Scientific versus engineering programming
Tiling
TGATS
Engineering project
Scientific project
Meetings and discussions
Meetings and discussions
Requirements document
Exploration
Developing SW to meets requirements
Developing SW continuously along the way
Working product
SW is constantly evolving
Deployment and maintainance
Know-how
7Research software is developed on the go
- My research experience every experiment is an
exploration. Software is often developed without
rigid requirements. - As a consequence
- Professional programmers seldom write research
SW. - Physicists do.
- There is a well established method to deal with
the situation. - The same method worked at LLE (TGATS experiment).
8Component Pascal is a tool for research SW
- Component Pascal (CP) software is a proper tool
for research SW. - Tiling of diffraction gratings ? 2 papers.
- TGATS data acquisition ? successful experiment.
- Waveform digitizer GUI ? physics outreach.
- What makes CP and BlackBox development so
effective? - Robustness and efficiency of the development
environment. - Scientific and engineering toolboxes.
- Scientist-friendly architecture.
- Most of the effort is spent on algorithms. GUI is
secondary.
9What makes CP and BlackBox so effective? Scientis
t-oriented tools and packages Modular
structure Hardware interfacing Debugging effort
is dramatically reduced
10The tool for tiling math scientific computation
library Chill
Over 5000 functions developed at BAE Systems for
military airborne radar.
Fourier transforms. Matrices and vectors. Special
functions. High-precision math. Digital filter
design. Random numbers. Rational
numbers. Scientific plotting. Etc.
11GUI on the fly
- Before BlackBox, SW effort was often dominated
by GUI. - Empty GUI was created first.
- The placeholders were later filled with code.
- Examples of this approach LabView, VB, various
C GUI builders. - Under BlackBox, GUI can be generated
automatically. - GUI can also be composed by hand.
- Code is written first, and the GUI is then
created automatically. - Work can focus almost solely on the algorithm.
- This approach is very scientist-friendly.
12Robustness of old and new programming languages
Old languages are not safe C, C, Fortran, and
original Pascal. Internal errors are not
prevented by design in the old languages. Main
offenders pointer arithmetics, typecasts, and
memory leaks. New languages eliminated most if
not all internal errors. Internal errors are
prevented by design in Component Pascal, Oberon,
Java, and C. Debugging is dramatically
reduced. Work can focus on research and algorithm
development.
13Interfacing with hardware
- All HW interfacing is handled via DLLs.
- DLLs are called by BlackBox.
- Several HW projects completed with BlackBox at
UofR. - CAMAC, USB, video frame-grabber card, mechanical
actuators, distance-measuring interferometer
(DMI), waveform digitizers. - This topic is covered in depth in my other
presentations.
14Summary of BlackBox tools
- Scientific libraries (math, vectors, etc.) Chill
- Histogramming Chill and/or Gr
- Graphics display Chill and/or Gr
- Data management POM
- User-defined extensions Data Logger
- Interfacing with hardware DLLs
- Networking TBD (tools built-in)
- Database access TBD (tools built-in)
- TBD I have not used it yet.
15Project 1 Get tiled! Project started as
engineering, later evolved to research. Initially,
the goal was closed-ended. The structure of the
program reflects the structure of the problem.
16Software structure follows the problem
Next slide shows close correspondence between the
TGA hardware and the architecture of the
software. The correspondence is not exactly
one-to-one, but it is close.
Actuator subsystem
Far Field calculations
Near Field calculations
17SW structure resembles the structure of HW
Part of the structure stems directly from the
problem, part from the programming considerations
(e.g., the math tools).
TgcCmd Display commands.
GUI
Far Field
TgcUnits Near Field processing.
TgcFarFields Far Field processing.
Near Field
Actuators
TgcGeometry Actuator coordinates
TgcFilters Time-domain signal averaging
TgcTools Math tools specific to this project.
Pico Picomotor driver
Math
Subsystem Lib Math and graphics library Public
domain, with source.
Legend server ? client.
MODULE
18Implementation - related diagnostics
These displays help understand results of SSPD.
19Application related diagnostics
These displays help understand the behavior of a
TGA.
20Example of implementation issue temporal noise
Temporal noise is significant in realistic
conditions, even under the hood.
Drift due to lateral piston
Drift subtracted offline.
Hee-Nee
Two TGAs retro-mirror.
21Full compressor, first time ever !
After the algorithm and implementation are
understood ? success!
Infrared
22Main features of the tiling SW
- Requirements / specs existed ? SW customized for
the task. - Recording of tip, tilt, piston originated as a
debugging aid. - The recordings evolved into a powerful research
tool. - Application needs diagnostics ? many optional
diagnostic displays. - Easy to add new features along the design lines
(e.g., some new math). - Difficult to add new unplanned features (e.g.,
additional sensor recording). - Overall.
- The OISG tiling SW is doing its job very well.
- This SW is tailored to a specific task.
- Like all BB software, it is very robust.
23From tiling to TGATS
- Lets do TGATS.
- .. and we face a dilemma. The solution that was
customized to one task, is not easy to use in a
vastly different situation. - Why is the situation different?
- The list of sensors is open-ended. We know there
will be more... - Four recordings ? dozens of recordings.
- Well-defined task ? exploration.
24Project 2 TGATS A research project. An
open-ended goal. A closed-ended program is not
the right solution. Software structure is
open-ended (a framework).
25TGA Discrete Sensor Locations
In addition to tiling variables, we need to
acquire several new ones.
This list is open-ended !
TAmb ( Ambient Temp)
TBK7 (Glass Temp)
TBeam (Beam Temp)
DMI 4 (Actuator 4)
Cap 4 (Actuator 4)
Cap 5 (Actuator 5)
Heide 1-1 (Actuator 5)
DMI 6(Actuator 6)
Cap 6(Actuator 6)
26Structure of TGATS software (simplified)
GUI panels Do not contain any code.
Data Logger Experiment-specific, customized
script.
The entire project 1
Object management Organizes histograms into a
tree-like view on screen.
A/D and DMI interface Utilities and calculations
Tiling software
FF camera
Heide interface (M.Wilson)
Heide probes
NF camera
Pascal domain
Low-level domain
DLLs provided by the vendors or developed by
D.Hassett.
27TGATS data acquisition framework
- Ingredients of the TGATS data acquisition
software. - Histogramming ? Gr Toolbox (WS).
- Graphics display ? Gr Toolbox (WS).
- Data management ? Persistent Object Manager
(WSDM). - Compiled DAQ script ? TGATS Data Logger (WS).
- Tiling software, including image acquisition and
processing (WS). - Hardware interface
- Zygo DMI interface DLL (source from Zygo,
modified by DH WS). - National Instruments interface DLLs (DH).
- Piezo actuator control loop (DH).
- Heidenhain readout over RS-232 (MW).
28Data Logger and Object Management
Data Logger experiment-specific script that is
developed on-the-go.
Object management.
Gr
29TGATS SW summary
- We evaluated and achieved qualification of a
demanding system composed of mechanical hardware,
optics, electronics, and software. - Complex software system was developed in short
time by a small team. - The experiment was almost continuously operated
for several months with only occasional downtime
due to low-level DLLs. The downtime was seldom
(if ever) caused by high-level Pascal code, even
though the SW was constantly evolving. - The software has fulfilled its mission despite
being a constantly evolving prototype.
30How TGATS software can be integrated with other
systems
TGATS tiling and DAQ software Tiling, math, data
acquisition .
Internet communication (TBD)
Local domain
Lab domain
Other computer A
Other computer B
31Technology transfer
- Minutes of CDR OMEGA EP Tiled Grating Assembly
Control Software - MATLAB software is considered a useful tool for
these analyses and many scientists use it.
The System Science Group should have the
responsibility of developing these algorithms,
which, once developed, should be put under
revision control by the Software Development
Group. - System Science and Software Development now
jointly work on the problem. - I hope that the approach presented herein will
help these groups.
32Conclusions
Robust and useful SW developed by a small
programming team. Two complementary approaches
were demonstrated. Engineering approach.
Requirements documents. SW meets requirements,
but may be difficult to evolve. Scientific
approach. Exploration research, loose
requirements, design-as-you-go. Needs a general
framework that is easy to evolve. With proper
tools, scientific approach can yield
production-quality. Component Pascal and BlackBox
are such proper tools.
Algorithm
Implementation
Application
Simple
Demanding
33The End Extra slides follow
34Component Pascal in one slide
Robustness is not left to the programmer. It is
enforced by the compiler. Safety checks are both
complete and involuntary. Memory management is
automatic (garbage collection). Typecasts are
always guarded. (Never crash the runtime
system.) Variable compatibility is enforced
during compilation (strongly typed
language). Both object-orientation and classic
programming are supported equally well. Any
Numerical Recipe can be translated from Fortran
in a few minutes. C.P. development is efficient,
code performance is good, and it directly
supports hierarchical structure (modules and
components). ? Efficient tool for a scientist,
esp. when the timeline is tight.
35BlackBox framework in one slide
The entire framework is implemented in C.P.
Source is available. The framework itself is
composed of modules and components. Model-View-Con
troller and Factory Objects are used
throughout. All objects can be (optionally) made
persistent. For persistency, objects can be
arranged into Directed Acyclic Graphs. Metaprogram
ming (i.e., reflection) is handled by the
framework. The scientist hardly needs to deal
with any of the above. The Tiling Project was
implemented without having to know what is
Model-View-Controller. ? Explore those things
if you have spare time. You do not have to!
36Tiling achievements
Development of tiling algorithms for a single,
double, and four TGAs (i.e., the full compressor
arrangement) of two-grating assemblies. Two
papers an LLE review, and a forthcoming journal
paper. Application in TGATS (see the next
section).
37TGATS Data Acquisition exploration research
TGATS DAQ Gr POM Logger electronic
logbook.
38Sources of experience and inspiration
- My tools and solutions are based on experience
gathered with the following acquisition and
analysis software. - In addition, I have used and extensively studied
object-oriented systems Turbo Pascal, Oberon
System V4, Spirit of Oberon S3 (now available as
BlueBottle), and BlackBox. - RAQUEL (Indiana University, ca. 1985).
- Smaug/Xamine (Michigan State University, ca.
1990). - Evolved into SpecTcl, see
docs.nscl.msu.edu/daq/spectcl/index.htm - Physics Analysis Workstation PAW (CERN, ca.
1988). - paw.web.cern.ch/paw/
- ROOT (CERN, ca. 1995). root.cern.ch/
- Commercial software IGOR, www.wavemetrics.com