Documentation for the CLEO Live Project
Table of Contents
Introduction to the CLEO Live Project
The CLEO Live project is an attempt to display actual CLEO data for educational/outreach purposes. What the public sees is a web site, mostly consisting of introductory material as to what the experiment is, with one page in the site having an applet. This applet is the primary attraction. What the applet displays are some the paths particles take during a given event. The applet works by creating a network connection between itself and an event server, which sends the applet these paths or tracks in an the easily displayable format of an object containing a label for the event and arrays containing parameters to arcs and similar Java-supported geometric objects. The events are as close to as real time and in real sequence as can be achieved with no live Cornell code and minimal UIUC maintenance.
How to use/maintain CLEO Live
To change the events in CLEO Live, first get the generated event list from Mats (disp.dump). Next, run perl preprocessEvents.pl in the same folder as the disp.dump file. Finally, place the generated trig.txt file into the C:/CleoLiveData folder of Lachesis. Logging out will cause all the current events to be flushed and this list to be read in and processed. Should anything go wrong, or if you want to add features to CLEO Live, please email email@example.com.
Basic structure of CLEO Live's source code
There are three basic steps the code has to handle:
The first step, to aquire the event, takes advantage of Suez, the standard offline CLEOIII analysis tool, to generate a large file that is a list of semiprocessed events. Another appication is used to bring the file to an easily processed state. This file-based can be illustrated nicely by a directed graph:
- Aquire the event
- Process and serve the event
- Receive and display the event
Aquire -write file-> file -read file-> preprocess --write file---> file ---read file---> Process --network connection --> Display
Currently, our method gives us the component momentums and charge sign for each track. From this, we can derive an circle in space that include the curve, and what part of the circle includes the curve. This is enough information to desplay a track. Also, our method gives us a lable for the event.
The second step, to process and serve the event, is handled by a queue and multiple threads. The queue holds events that have been processed, but not served. Threads are Java's mechanism for parallel behavior. This allows both processing and serving behavior to have equal use of the processing power at hand. However, only one thread at a time is given access to the queue.
Processing and serving are handled by CleoSimInfoServer.java and various threads, as well as some files to support a queue, all of which are given by name in the comments to CleoSimInfoServer.java.
The third step, to receive and display the event, is handled quite simply by receiving an event object containing the event label and a
list of coordinates which define an arch and plotting them on demand. After an event has
finished, the user has the choice of getting another one. More advanced functionality may be added later. Please check our links session for a demonstration of this user interface.
Receiving and displaying are handled by CleoSimClient.java.
Links to CLEO Live web sites
Currently, there is only one CLEO Live web site, and it is at UIUC.
UIUC CLEO Live!
High Energy Physics at UIUC, Last modified June 1, 2000
Return to the software index