1 G4UIRoot Isidro González ALICE ROOT 2002 15/10/2002.

Slides:



Advertisements
Similar presentations
ISecurity GUI User-Friendly Interface. Features Full support of all green-screen functionality Simultaneous views of multiple iSecurity screens and activities.
Advertisements

Designing a Graphical User Interface (GUI) 10 IST – Topic 6.
User Interface. What is a User Interface  A user interface is a link between the user and the computer. It allows the user and the computer to communicate.
Software Development Languages and Environments. Programming languages High level languages are problem orientated contain many English words are easier.
JavaScript FaaDoOEngineers.com FaaDoOEngineers.com.
Why ROOT?. ROOT ROOT: is an object_oriented frame work aimed at solving the data analysis challenges of high energy physics Object _oriented: by encapsulation,
Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Visual Basic 2010 How to Program Reference: Instructor: Maysoon Bin Duwais slides Visual Basic 2010 how to program by Deitel © by Pearson Education,
O. Stézowski IPN Lyon AGATA Week September 2003 Legnaro Data Analysis – Team #3 ROOT as a framework for AGATA.
Prototyping. Horizontal Prototyping Description of Horizontal Prototyping A Horizontal, or User Interface, Prototype is a model of the outer shell of.
Eclipse[10] MIPSinEclipse. Overview Goal: To provide a friendly development environment for CS students programming in MIPS (particularly CS33 at UCLA),
Automating Tasks With Macros. 2 Design a switchboard and dialog box for a graphical user interface Database developers interact directly with Access.
EValid Getting Started. Agenda Introduction to eValid First experience of using eValid Recording and Site Analysis in eValid.
1 Introduction to the Visual Studio.NET IDE Powerpoint slides modified from Deitel & Deitel.
Victor Serbo, SLAC30 September 2004, Interlaken, Switzerland JASSimApp plugin for JAS3: Interactive Geant4 GUI Serbo, Victor (SLAC) - presenter Donszelmann,
WebXtender Tutorial just use the arrow keys to navigate the slides.
Lesson 46: Using Information From the Web copy and paste information from a Web site print a Web page download information from a Web site customize Web.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
Client/Server Architectures
Presented by Brian Griffin On behalf of Manu Goel Mohit Goel Nov 12 th, 2014 Building a dynamic GUI, configurable at runtime by backend tool.
TrendReader Standard 2 This generation of TrendReader Standard software utilizes the more familiar Windows format (“tree”) views of functions and file.
Ch 26 & 27 User Interfaces.
JCE A Java-based Commissioning Environment tool Hiroyuki Sako, JAEA Hiroshi Ikeda, Visible Information Center Inc. SAD Workshop.
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
Chocolate Bar! luqili. Milestone 3 Speed 11% of final mark 7%: path quality and speed –Some cleverness required for full marks –Implement some A* techniques.
- Circle markers produced by TAsimage: They do not match was is produced on screen. The line width is too thick. Some other markers need to be tune a bit.
CFT Offline Monitoring Michael Friedman. Contents Procedure  About the executable  Notes on how to run Results  What output there is and how to access.
What is Sure BDCs? BDC stands for Batch Data Communication and is also known as Batch Input. It is a technique for mass input of data into SAP by simulating.
Bertrand Bellenot ROOT Users Workshop Mar ROOT GUI Builder Status & Plans ROOT & External GUI World MFC, FOX, Qt, PVSS… Snapshot of the Future.
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
Objectives Understand what MATLAB is and why it is widely used in engineering and science Start the MATLAB program and solve simple problems in the command.
Introduction to Visual Basic. Quick Links Windows Application Programming Event-Driven Application Becoming familiar with VB Control Objects Saving and.
11.10 Human Computer Interface www. ICT-Teacher.com.
Marcel Casado NCAR/RAP WEATHER WARNING TOOL NCAR.
Lecture 5: Interaction 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 711,  ex 2271 
Tutorial 111 The Visual Studio.NET Environment The major differences between Visual Basic 6.0 and Visual Basic.NET are the latter’s support for true object-oriented.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Designing Interface Components. Components Navigation components - the user uses these components to give instructions. Input – Components that are used.
Integrated Development Environment (IDE)
Just as there are many human languages, there are many computer programming languages that can be used to develop software. Some are named after people,
SIMPLE PROBLEM SOLVING in Java: a Problem Set Framework Viera K. Proulx Richard Rasala Jason Jay Rodrigues CCSCNE 2002 Conference.
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved. 1 3 Welcome Application Introduction to Visual Programming.
V. Serbo, SLAC ACAT03, 1-5 December 2003 Interactive GUI for Geant4 by Victor Serbo, SLAC.
1 AutoCAD Electrical 2008 What’s New Name Company AutoCAD Electrical 2008 What’s New AMS CAD Solutions
CGI Common Gateway Interface. CGI is the scheme to interface other programs to the Web Server.
Diagnostic Pathfinder for Instructors. Diagnostic Pathfinder Local File vs. Database Normal operations Expert operations Admin operations.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Chapter 2 – Introduction to the Visual Studio .NET IDE
TownMUD An Interface for a Text-Based Multiple User Dimension.
XP New Perspectives on Microsoft Office Access 2003 Tutorial 10 1 Microsoft Office Access 2003 Tutorial 10 – Automating Tasks With Macros.
M1G Introduction to Programming 2 5. Completing the program.
File and Folder CLI Commands 12/24/ Agenda Overview of OS functions and the SHELL Internal v External Commands Command History Making & Modifying.
 2002 Prentice Hall. All rights reserved. 1 Chapter 2 – Introduction to the Visual Studio.NET IDE Outline 2.1Introduction 2.2Visual Studio.NET Integrated.
JAS and JACO – Status Report Atlas Graphics Group August 2000 Tony Johnson.
S.Linev: Go4 - J.Adamczewski, H.G.Essel, S.Linev ROOT 2005 New development in Go4.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
Project Description MintTrack is a mobile application built for the Android OS that will help keep track of where a user’s money is being spent via expense.
LCG AA Meeting 30 June 2004 Ilka Antcheva Graphics User Interface in ROOT.
 2002 Prentice Hall. All rights reserved. 1 Introduction to the Visual Studio.NET IDE Outline Introduction Visual Studio.NET Integrated Development Environment.
12-Jun-16 Event loops. 2 Programming in prehistoric times Earliest programs were all “batch” processing There was no interaction with the user Input Output.
Software Development Languages and Environments. Computer Languages Just as there are many human languages, there are many computer programming languages.
Innovation Intelligence ® 1 Chapter 2: The HyperWorks Desktop Environment.
Dive Into® Visual Basic 2010 Express
Chapter 2 – Introduction to the Visual Studio .NET IDE
Event loops.
Event loops 17-Jan-19.
Amos Introduction In this tutorial, you will be briefly introduced to the student version of the SEM software known as Amos. You should download the current.
Event loops.
ROOT Support and Developments at FNAL
Event loops.
Presentation transcript:

1 G4UIRoot Isidro González ALICE ROOT /10/2002

2 Outline Motivations What are we talking about Features Known problems To be done Conclusions Acknowledgments Interesting addresses

3 Motivations Geant4 has its own command terminal user interface Idle> /gun/particle pi- Idle> /gun/energy 10 GeV Idle> /run/beamOn 100 It is difficult to know all the Geant4 commands – The availability changes for different Geant4 status – The terminal help is tedious – A GUI to explore the tree would help a lot There are several graphical user interfaces in G4 but: – Xm (Motif) is pretty simple – OPACS was difficult to integrate in a program Classes with ROOT – GAG (Java) was slow (inter-process communication)

4 Motivations ROOT users (usually) like ROOT: – They would like something like [root] myGun->SetParticle(“pi-”); [root] myGun->SetEnergy(10*GeV); [root] myRun->BeamOn(100); [root] //Plot my histograms, fit them, do all sort of things using possibly a macro – Unfortunately Geant4 cannot be CINTified yet  We still need some way to access the Geant4 commands Which, in fact, sometimes are very convenient – However the histogramming part may be used from ROOT I wanted to learn ROOT GUI capabilities It might be a bridge between the two worlds

5 What are we talking about A GUI for Geant4: – Built with ROOT …providing: – an easy way to explore G4 command tree – a quick inspection of standard/error output A C++ Interpreter (CINT) – That may allow run time access to G4 classes – That certainly allows access to all ROOT functionallity

6 Features

7 Features (Command Tree) Full Geant4 command tree displayed in a “file system” like structure Availability clearly marked Non available commands are identified and cannot be selected. The availability is correctly updated with Geant4 status

8 Features (Normal typing) Automatic command completion using the TAB key. The navigation through the successful commands executed before may be done using the arrow keys. Selecting a command in the tree will automatically update the command line input widget and vice-versa. Normal Geant4 command typing is also possible

9 Features (Command Help) Full and short command help Full command help for selected command Short command help in pop up messages and in the status bar.

10 Features (Menus & pictures) Customisable main window title and pictures. Through the main constructor External Geant4 macros and TBrowser may be directly accessed through the menu Customisable menus to access Geant4 commands

11 Features (Output Windows) History window with saving capabilities. History is always tracked. Successful commands may be recalled at any point by simply hitting the up arrow at the command line. Different windows for error and normal output With saving capabilities.

12 Features (Root Interpreter) Root interpreter (CINT) included. It runs in the terminal. If Geant4 is CINTified it will give run-time access to the MC Interactive histograms, etc…

13 A few implementation details 4 classes + 1 dictionary = 5 KLOC ROOT and Geant4 separated (as far as it was possible) in different classes – Geant4: G4UIRoot – ROOT: G4RootMainFrame, G4RootTitleFrame, G4RootCommandFrame, G4RootTextFrame Signal/Slot mechanism used for widget event handling Fully integrated into the Geant4 (complex) compilation framework

14 Known Problems Inconvenient interaction with the output windows – Limitation in the ROOT GUI implementation Arrow keys, page up/down keys do not work Reported to ROOT – Slower output compared to standard terminal output Related to the fact that we are using graphics Possible solution using timers to schedule updates Small problems with the layouts Commands with too many parameters may not fit in the window

15 To be done Improve synchronisation between command line and tree selection input Histograms integrated in the GUI – Scan for newly created histogram after every command – Provide a basic set of tools to interact with them – We need a set of examples on how to use this Move to CVS: – Currently released through tar files – Versioning is difficult (Root/Geant4 versions) Improve the overall look Installation script Suggestions, requests ?

16 Conclusions A GUI was built with ROOT in a very short time – Main development was done in 2 months (working partially on this) – The additions and improvements were done in spare days You get all the advantages of Geant4 and ROOT Easy way to explore the Geant4 command tree Can be extended adding more complex or personal capabilities Seems to be people out there trying it

17 Acknowledgments ALICE (F. Carminati) who supported this “personal” project Jacek M. Holeczek for his clever ideas and help in solving some problems, as well as for providing the modified examples. GAG user interface whose look and feel inspired this GUI

18 Interesting addresses ROOT: – Geant4: – G4 & ROOT (from Root HowTo) – G4UIRoot: –