Experience of prototyping Tcl/tk-based GUI for Geant4: An object-oriented Toolkit for simulation in high energy physics

M. Nagamatsu, H. Uno, A. Obana, Hajime Yoshida, Makoto Asai, Y. Oohata, R. Hamatsu · 1997

This paper reports our experience of prototyping Tcl/tk-based Graphical User Interface for object-oriented GEANT4 toolkit. The menus and windows of the GUI are required to be automatically modifiable corresponding to various customization of GEANT4 by application programmers. Without demanding of application programmers any knowledge on GUI programming, we provide them with formal methods to register their command and associated parameters. The back-end interface of GEANT4 converts the registered ones into messages and sends them to the Tcl/tk GUI script, G4LogTerm. It, in turn, parses the messages and creates corresponding hierarchical menus and parameter widgets. Design choice of message passing method between OO-GEANT4 kernel and GUI rather than a monolithic solution using C++ GUI builder gives our GUI more flexibility and expandablility. One examplary direction is a GUI for network-distributed computation. Another is a platform independent GUI, since GEANT4 kernel is already so and can be run not only on Unix but also on personal computers. The lesson we have learned in developing a non-freezing GUI for a long-running simulation program like GEANT4 is the importance of prototyping of execution control at system call level. The integrated programming environment of Tcl/tk including low level functions such as fileevent, fconfigure as well as its useful functions like list processing helped us to implement the key parts of the GUI.

Read the paper · More papers on PaperTik