Back Midas Rome Roody Rootana
  Root Display GUI, Page 4 of 6  Not logged in ELOG logo
Entry  14 Sep 2004, Konstantin, , CVS and Build instructions 
Updated build instructions for end-users.

To checkout the miroodas sources use:

setenv CVS_RSH ssh
cvs -d anoncvs@dasdevpc:/usr/local/cvsroot checkout miroodas
(password: anoncvs)
cd miroodas/src
setenv ROOTSYS whatever
make
./TTriumfGui file.root or file.hbook

K.O.
Entry  27 Jul 2004, Konstantin, , Readd the peak finder context menu item 
The peak finder context menu item was present only for TH1D histograms and
absent in all other histograms. I fixed this by explicitely adding this item
to the class menu of all TH1X classes. K.O.
Entry  20 Jul 2004, Joe, , Small fixes to TTriumfFileGUI 
Added right click on online hostname to choose "Disconnect online".

Moved groups to top of the list displayed in the gui.

If the user entered save file name does not contain ".save" it will
be appended to the filename.
Entry  20 Jul 2004, Pierre, , Re-framing effort on Miroodas continues... 
Requirement List:
================
- To be done                   SW : Selection window
= Done                         GW : Graphic window
> Problem

1) Online capability
====================
- Socket connection to the Midas analyzer for histogram display.
- The Tree is not yet to be considered as yet not implemented in Root (Circular
buffer, NetTDirectory).
= done - Option of specifying the host name AND port number has to be present to
allow multiple parallel Miroodas session connected to different analyzer.
= done - Multiple Miroodas connecting to a given Midas experiment is already
available through the Midas analyzer local Root server.
= Retain the host:serverport for reconnection due to lost of possible communication
with the analyzer.
- Add RBclick for online disconnect.

2) Histogram update
===================
- While in online mode, simple mean of switching on/off the histogram update
with options such as: Single shot update, pause/resume update, change update
frequency need to be implemented.
- The update frequency is global to the application and therefore appears in a
pull-down menu in the SW.
- While the "Refresh", "Off", "On" are in the menu bar, should also be present in the
RBClick menu in either the SW or GW.

3) Open Offline Files
=====================
Possibility of concurrently open multiple files of the .root AND .hbook
file type. So far only the histogram part of the content of the files are
retrieved for display.
= The histogram list appears in a unique window and can be mixed with the
Online histogram (SW).
= The mode of histogram reference display may be using a tree listing.
= In that case the description string should merge information such as the
file name or run number in order to distinguish from the similar open files
containing equivalent histogram name.
> the Tree structure branch provide the open file name.

4) Multiple Selection buttons
=============================
> From the SW possibility of multiple selection using the standard Ctl/Alt
key should be available. Currently ROOT may not provide such option (contact
with René Brun for confirmation of this lack of flexibility).
Appears not possible, KO will look into ROOT code for implementation.

5) Grouping Histogram
=====================
Grouping is a feature allowing the display in a single operation of a
predefined set of histograms. Inital thoughts on that subject tend to suggest
that a group must be reference to the histogram name or histogram title only.
In the ONLINE mode this reference is correct as the histogram are re-used over
the multiple runs (the saving of the histograms themselves is done through
the analyzer, Miroodas doesn't have knowledge of the run state at this point
of development). For OFFLINE use, the group should also be only referenced to
the histogram name or title as the same group name could be used for
retrieving the same set of histograms from different files (different run).
The implementation of the manipulation of the group list (creation/add/remove)
is not yet defined.
= Jun 2004: main development topic (GROUPING).
= RULE: All histos of a given group cone from the same source.

6) Selection display option
===========================
= Once the selection from the SW is performed, option for the destination
selection display should permit "new canvas", "Overlay", "Replace" actions.
- Option to maintain Xscaling on different histo display.
- In the "Overlay" case option for color cycling should be available.

7) Save/Restore Configuration
=============================
= Possible save-set of the current SW is required for later quick restore
of the application state.
- The saved configuration could also include the graphical canvas characteristics.

8) Save/Restore selected histogram
==================================
- Possibility of saving a group to a file (.root) should be available.
- Possible automatic "group save" request during application termination may
be foreseen.

9) Zooming option
=================
= Zooming should survive the Online update (keep the associated zooming
parameter at the histogram level).
- hold refresh while selecting zoom option (prevent redisplay).

10) Offline file update
======================
- Possible update of the opened file can be investigated. This would allow
external application to update .root file opened by Miroodas.

11) PeakFinder() option
=======================
= done - Greg King PeakFinder() method should be part of the Miroodas.
= invoked by RBClick on the GW.

12) Pre-programmed fit
======================
- Possible extension of the list of pre-program fit function. This could be
part of the configuration file.

13) TreeViewer invocation
=========================
While Histogram is so far the only object handled by the online Miroodas
application, the offline file may contain Tree objects.
= Option for launching TTreeViewer() is beneficial.

14) Application argument option
===============================
- The Miroodas application should be able to take multiple combination of
command line arguments such as:
= initial .root, .hbook file 
= Argument option -Rfile.save for configuration (include groups).
= host name and port number for ONLINE access (-Hhost:port).
- log file description for debugging purpose.
---------------------------------------------------------------------
Current state of options:
> TTriumfFileGUI -h
USAGE:
TTriumfFileGUI [-h] [-Hhost[:port]] [file.root ...] [file.hbook ...]
Options :
   -h            - display usage
   -Hhost[:port] - connect to midas analyzer on given host and port
   file.root     - load .root files
   file.hbook    - load .hbook files
   -Rsavefile    - restore savefile
---------------------------------------------------------------------

15) Zone option
===============
= Predefine set of Zone should be available.

16) Block incrementation
=========================
In the case of a multiple CONSECUTIVE histogram selection, the Right Button
Click (RBClick) should provide option for displaying the "next block" of
histograms. The "next block" refers to the immediate following consecutive "not
yet selected" set of histograms. This option should follow the previous display
setting (ie: override canvas/new canvas, etc ). This permits a quick scan of
histogram before the block is referenced as a group by assigning a name to the
histogram set (RBClick option). 
> Depend on the mouse selection option... (see pt4).

17) Group naming in graphical canvas
====================================
- When in GW for group or block, RBClick should provide respectively the
renaming/naming of the group/block.

18) Persistence of the Xscale
=============================
- In the GW the RBClick should provide the option to freeze the last Xscale or
Yscale setting for later application to newer GW display.

19) Xscale applied to whole canvas
==================================
- In the case of a multiple histogram display (group or block), RBClick should
allow an option to apply automatically the last Xscale (or Yscale) setting to
the whole GW set of histograms.

20) Histogram Clear
===================
As for the 2) the clear action should be available at all the different CS
levels in either the SW or GW.

21) Histogram info box
======================
= Add run number extracted from the opened file name in the GW below the histogram name.
- Add possible run number extracted from online in the GW below the histogram name.
 
22) Temporary folder
====================
- Implement Temporary Tree for snapshot of any GW histogram content. 


.
Entry  19 Jul 2004, Joe, , minor bug fixes in TTriumfFileGUI and TGTextDialog 
Fixed: do not make a group named "-1" when TGTextDialog returns "-1" when
canceled; rationalize the host name and port number code; do not use hot
keys "O" and "C" in TGTextDialog as I could not enter an "O" or a "C" into
the text area (probably some conflict with X-Win32, but just as well to get
rid of it).
Entry  16 Jul 2004, Joe, , TTriumfFileGUI bug fix 
You can now save and restore as many times as you like in a single session.
Entry  15 Jul 2004, Joe, , TTriumfFileGUI changes (last one today) 
The run number is extracted from the file name of .root data files and
appended to the title for histogram plots.  If the file name contains any
numeric digits, it will be interpreted as the run number.  There should be
no adverse ramifications if the file name contains no digits.
Entry  15 Jul 2004, Joe, , TTriumfFileGUI draw group fix 
The problem with refreshing online histograms when drawn using the Draw
Group option has been fixed.
Entry  15 Jul 2004, Joe, , Save/Restore now implemented (but without xml, for now) 
Save and Restore are now implemented in TTriumfFileGUI (but without xml, for
now).  The save file format is simple keyword lookup, e.g.,

# this is a comment         --> comments begin with #
FILE filename               --> opens data file (.root or .hbook)
HOST hostname               --> opens online socket
GROUP groupname             --> makes group
HISTOGRAM source histname   --> puts histogram (from source) into this group
...
GROUP groupname             --> makes another group
HISTOGRAM source histname   --> puts histogram into this group
...

The case of the keywords are not important, but the order is important, in
that the source for any histograms to be inserted into a group must be
listed above the group.

The Draw Group option has been repaired, so a new canvas is always opened
and the window title contains the group name.  I still have to check that
the online histograms in this canvas are refreshed properly.

Modified the Open file menu so there is only one menu item (instead of .root
and .hbook) but the open file dialog allows you to choose the file type.
Entry  05 Jul 2004, Konstantin, , HBOOK support 
I commited changes to TTriumfFileGUI.{h,cxx} to add support for looking at
HBOOK files. K.O.
Entry  25 Jun 2004, Joe, , changes to TTriumfFileGUI 
Added:  current online host name is now displayed in dialog box
Fixed:  online histograms can now be added and displayed in groups
Entry  16 Jun 2004, Joe, , context menu additions for TTriumfFileGUI 
Added:
  right click on filename (under Offline) brings up "Close file" option;
  automatic creation of TEMP folder (under Offline);
  right click on Groups folder brings up "Make new group" option
    which brings up a text dialog requesting a group name, which must
    be a new name;
  right click on a group name brings up "Delete group" and "Draw" options,
    "Delete group" does just that, while "Draw" automatically creates a
    new canvas divided into #pads = #histograms in the group and draws 
    the histograms one per pad;
  right click on a histogram brings up the context menu with added option
    "Add to group", which in turn brings up the list of existing groups
Entry  08 Apr 2004, Joe, , context menu progress with TTriumfFileGUI 
PeakFind has been added to the context menu when right clicking on a drawn
histogram.  There are still problems to overcome:  the PeakFind panel needs
to communicate back to the gui that it has been deleted (to overcome a
segmentation violation error when the pointer is deleted a second time);
multiple PeakFind menu items appear when the canvas is split into multiple
pads (even though it is not added if already in the menu???); still no way
found to get a context menu for the folder icons (Files, Online, Groups);
need to figure out a way to let the user choose the active pad, so he/she
can pick any drawn histogram for peak finding (currently it only works with
the latest drawn histogram).  Also, Clear All online histograms has been
added to the main menu (it used to be a button).
    Reply  07 May 2004, Konstantin, , context menu progress with TTriumfFileGUI 
> There are still problems to overcome:
> - the PeakFind panel needs to communicate back to the gui that it has been
deleted (to overcome a segmentation violation error when the pointer is deleted
a second time);

problem confirmed.

> - multiple PeakFind menu items appear when the canvas is split into multiple
pads (even though it is not added if already in the menu???);

problem confirmed.

> - still no way found to get a context menu for the folder icons (Files,
Online, Groups);

right.

> - need to figure out a way to let the user choose the active pad, so he/she
can pick any drawn histogram for peak finding (currently it only works with the
latest drawn histogram).

the current pad (gPad) is selected by clicking on it with the middle mouse
button. This has always worked and it still works (for me).

> - Clear All online histograms has been added to the main menu (it used to be
a button).

right.

K.O.
       Reply  07 May 2004, Konstantin, , context menu progress with TTriumfFileGUI 
> > There are still problems to overcome:
> > - the PeakFind panel needs to communicate back to the gui that it has been
> deleted (to overcome a segmentation violation error when the pointer is deleted
> a second time);

This is because you delete it twice- (1) after the users hits the "close" button,
(2) when the destructor is called from TTriumfFileGUI::PeakFind().

I think we should create the peak finder panel once and then hide and show it as
need. I will commit a fix shortly.

> > - multiple PeakFind menu items appear when the canvas is split into multiple
> pads (even though it is not added if already in the menu???);

This is because Joe's check for duplicate menu items is broken (uses the wrong
object name). I simplified this by adding the menu item to the "TH1" class context
menu exactly once in the TTriumfFileGUI constructor. Will commit shortly.
 
K.O.
       Reply  07 May 2004, Konstantin, , context menu progress with TTriumfFileGUI 
> > There are still problems to overcome:
> > - the PeakFind panel needs to communicate back to the gui that it has been
> deleted (to overcome a segmentation violation error when the pointer is deleted
> a second time);

Fixed. The peak finder is created once, never destroyed. Window is opened and
closed as needed.

> > - multiple PeakFind menu items appear when the canvas is split into multiple
> pads (even though it is not added if already in the menu???);

Fixed. "PeakFind" menu item is added once in the viewer constructor.

> > - still no way found to get a context menu for the folder icons (Files,
> Online, Groups);

I am looking into it.

In the mean time, I copied&kludged code from TGFrame.cxx to make the popup menu pop
at the pointer position.

Also if histogram is plotted from context menu, the "plot in" menu setting is left
unchanged.

The other problem is multiple selection of histograms. Looking into it.

K.O.
          Reply  07 May 2004, Konstantin, , context menu progress with TTriumfFileGUI 
> > > There are still problems to overcome:
> > > - still no way found to get a context menu for the folder icons (Files,
> > Online, Groups);

I do not understand the difficulty- context menus for all menu items work the same way,
so once we know how to implement contect menus for histograms, other context menus are
done the same way. As an example, I added context menus to all non-histogram list tree
items.

> In the mean time, I copied&kludged code from TGFrame.cxx to make the popup menu pop
> at the pointer position.

RTFM of http://root.cern.ch/root/htmldoc/TGListTree.html#TGListTree:description shows
how to correctly position the popup menu without kludging the event handler. Commited.

> The other problem is multiple selection of histograms.

Short answer: Multiple selection of list tree items cannot be done. The code in
TGListTree::HandleButton(Event_t *event) explicitely enforces single-selection by
always unconditionally unselecting all items. I will have to bring this up with the
ROOT team.

K.O.
Entry  31 Mar 2004, Joe, , latest version of the root viewer gui 
The bottom canvas window has been removed.  The superfluous buttons have
been removed.  No response, yet, to my question in the ROOT forums regarding
inserting PeakFind in the pre-defined context menu when right-clicking on a
histogram.
Entry  12 Mar 2004, Joe, , online groups added to MIDASviewer 
Online histograms can now be collected in named groups.  Each group is
displayed in its own TCanvas window, instead of tabs within one window, but
hopefully that will come.  Right now, I see no way to implement TGTab's
within a TCanvas window, but the 8pi viewer does it, so it must be possible.
 A check is done so each group can contain only one instance of a histogram.
Entry  10 Mar 2004, Joe, , Peak finding added to MIDASviewer 
The peak find panel has been added to MIDASviewer.  Click on the speed
button to open the panel.  Click the Find button to find peaks, and do a fit
if the attempt to fit check box is checked.  Fitting seems slow, but that is
all internal to ROOT.
Entry  05 Mar 2004, Joe, , MIDASviewer update 
Committed MainFrame.cxx/.h with a fix for the problem of segmentation faults
while updating online histograms.  The problem was the pointers to the
histograms needed to be changed in the TGLVContainers when the histograms
were deleted and recreated due to being updated.  The main difficulty was
getting a handle on which TGLVEntry matched which histogram, when the
histogram pointers were obtained from the TPad and not the TGLVContainer. 
Anyway, you can now view online histograms without the program crashing.
Entry  03 Mar 2004, Joe, , new tabbed gui  
The new tabbed qui has been committed to CVS.  There are still problems, and
bugs, and not all the buttons have been activated.  Work continues.
Entry  19 Jan 2004, Joe, , context menu for online histograms 
implemented context menu when right clicking on an online histogram in the
upper TreeView, also eliminated duplicate entries for online histograms in
the lower ListView.
Entry  16 Jan 2004, Joe, , x-axis zoom with online histograms 
If you zoom in on the x-axis for an online histogram, the zoom now remains
in effect when the histogram is refreshed.  Also, the check mark in the
refresh drop-down menu now stays with the proper value.  Y-axis zooming is
also implemented, but commented out for now, since not sure if this is a
good idea for 1D histograms.
ELOG V3.1.4-2e1708b5