Back Midas Rome Roody Rootana
  Root Display GUI, Page 7 of 7  Not logged in ELOG logo
ID Date Authorup Topic Subject
  72   26 Oct 2004 Matthias SchneebeliSuggestionComments on Roody
I have committed point 1 and 2.

For point 3 you need to save all displayed histos in a stack. So that you can plot 
them into the rezoned canvas. I don't know if you want to do that.

I would prefer if you would do point 4.

Matthias
  112   16 Mar 2006 Matthias SchneebeliBug ReportCompiling under windows
Hi,

when I try to compile roody under windows I get following errors.



c:\roody>nmake -f Makefile.win

Microsoft (R) Program Maintenance Utility, Version 7.00.9466
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

cl /D "OS_WINNT" /GX /GR /Ic:\roody\include /Ic:\roody\..\mxml /IC:\ROOT\include /I. /c /Foobj/Roody.obj src/Roody.cxx
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

Roody.cxx
c:\roody\include\Roody.h(388) : error C2039: 'size_t' : is not a member of 'std'
c:\roody\include\Roody.h(391) : error C2039: 'size_t' : is not a member of 'std'
c:\roody\include\Roody.h(396) : error C2039: 'clear' : is not a member of 'basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
src/Roody.cxx(754) : error C2061: syntax error : identifier 'xml'
src/Roody.cxx(755) : error C2228: left of '.rdstate' must have class/struct/union type
src/Roody.cxx(762) : error C2296: '<<' : illegal, left operand has type 'class std::basic_ofstream<char,struct std::char_traits<char> > &(__cdecl *)(void)'
src/Roody.cxx(762) : error C2297: '<<' : illegal, right operand has type 'char [9]'
src/Roody.cxx(768) : error C2296: '<<' : illegal, left operand has type 'class std::basic_ofstream<char,struct std::char_traits<char> > &(__cdecl *)(void)'
src/Roody.cxx(768) : error C2297: '<<' : illegal, right operand has type 'char [12]'
src/Roody.cxx(769) : error C2296: '<<' : illegal, left operand has type 'class std::basic_ofstream<char,struct std::char_traits<char> > &(__cdecl *)(void)'
src/Roody.cxx(769) : error C2297: '<<' : illegal, right operand has type 'char [11]'
src/Roody.cxx(770) : error C2296: '<<' : illegal, left operand has type 'class std::basic_ofstream<char,struct std::char_traits<char> > &(__cdecl *)(void)'
src/Roody.cxx(770) : error C2297: '<<' : illegal, right operand has type 'char [11]'
src/Roody.cxx(771) : error C2296: '<<' : illegal, left operand has type 'class std::basic_ofstream<char,struct std::char_traits<char> > &(__cdecl *)(void)'
  57   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. 


.
  63   30 Sep 2004 Pierre-André AmaudruzBug Reportanoncvs account not working anymore
Access to Roody from anonymous is restored:

cvs -e ssh -d anoncvs@midas.triumf.ca:/usr/local/cvsroot checkout roody
pwd: anoncvs
  111   21 Dec 2005 Pierre-André AmaudruzBug Fixmxml
Roody is taking now the ../mxml directory. (Makefile, Makefile.win)
roody image is moved into bin (Makefile).
the local cvs mxml is empty now.
The template export bug fixed (removed export declaration).
  100   05 Jul 2005 Qing GuInfoAffect of different root versions on Roody
After changing ROOT version from root_v4.04.00 to root_v4.04.02, the histograms
don't stay highlighted after clicking, but the top "Roody" bar disappears sometimes.
  135   03 Mar 2008 Randolf PohlBug ReportROODY kills analyzer too!!
Hi,

I had the very same problem last summer during our beam time. Don't know the revision, but it was the tarball I downloaded around mid-July.
Symptom: The MIDAS (online) analyzer crashed as soon as roody was started. Started, i.e. before any user interaction became even possible. And the crash happened always. 100.0%.

My workaround was: Use roody rev. 220.
No crashes, beam time saved.

I attach 2 outputs I saved at that time.

Oh, yes: I still have the sources and such. Last modified date is July 9 and earlier (see attachment 3). I can send them around if you want to find the revision and bracket the offending commits. (I wish you were using "git". Ever read about git-bisect?)

Cheers,

Randolf

PS: Konstantin, I had promised you to try and pin down the problem after the run. Obviously I forgot, sorry. Please tell me if I can be of any help now.
  138   07 Mar 2008 Randolf PohlBug ReportRevision 221 works! But not remotely.
Hi,


Exaos Lee wrote:
I recompiled the roody of revision 221 and found this revision works. But when I run roody remotely, it still keeps killing the analyzer 100%. Frown


We used 220 (not 221) successfully, but only locally.
Now that you say it I think I recall I could not get roody to run remotely. Don't remember the exact reasons, though.
What I did then was to "ssh -X" from the remote machine into the backend and start roody there (Actually a button with a beautiful picture enabled the users to do so).

Just an idea: Are all necessary ports open on the receiving machine? Maybe the analyzer is just collateral damage, in reality roody commits suicide because the firewall is nasty to him?

I don't have my machines set up at the moment. One of the machines stayed in a box at PSI. So I can't really help you, I am sorry. I think it's time for the specialists now. Anybody there???!?! Smile

Good luck,

Randolf
  140   17 May 2009 Randolf PohlBug Fix[PATCH] ROODY kills analyzer too!!
Hi,

I have fixed the bug:

diff roody_233/include/DataSourceTNetFolder.h roody_233_fixed/include/DataSourceTNetFolder.h
100c100
< uint32_t p = 0;
---
> uintptr_t p = 0;

(Both Exaos and I were/are using roody on 64 bit machines.)

Best regards,

Randolf
  80   10 Jan 2005 Stefan RittBug Fixdisplaying cuts implementation
> A patch for mana.c so that MIDAS analyzers receive polygons has been sent to Stefan.

Patch has been submitted to CVS so mana.c is up-to-date.

- Stefan
  93   31 Mar 2005 Stefan RittBug Fixreset online histograms
> Roody can now reset online histograms via context menu or main menu.  This
> requires a small change in mana.c  Also, fixed a problem with segmentation
> faults when trying to connect to an invalid server port.

I saw that you implemented a "Reset" function in root_server_thread. This is not
necessary. You have the more general "Command" function which was meant for that.
You specify the object name, type, method to execute and optional arguments. Right
now, only the "Reset" command is implemented, but that's what you need. Can you
check if roody works with that? If so, can you remove the "Reset" function again ? 

Thanks,

  Stefan
  101   27 Oct 2005 Stefan RittBug ReportVarious item when installing ROODY
Hi,

I tried to compile ROODY, and got following problems/issues:

- I see ROODY requires root V3.10.02, ROME requires root >=4, so I will never be able to compile the two packages together with one root installation. Is that true? Since we are already at root 5.04, it might be time to migrate ROODY to newer versions of ROOT...

- The Makefile.win is under roody/, Makefile is under roody/src, not very consistent, there is no "INSTALL" or "COPYING" file which is kind of GNU standard

- I tried to compile ROODY under windows, after having installed root 3.10, but it misses the libxml/ subtree

- For the non-expert users it would be good to supply a windows executable of roody, this way the don't have to bother with compiling

Best regards,

Stefan
  104   07 Dec 2005 Stefan RittInforoody directory reorganization and Makefile changes
> 1) roody has been converted from libxml2 to mxml
> 2) the files have been shuffled around so the *.cxx, *.cpp files
>    are in the roody/src/ directory, the *.h files are in the
>    roody/include/ directory, the Makefile is in the top roody/
>    directory which is where the roody executable goes while
>    roody.so now goes into the roody/lib/ directory. The mxml
>    files are in roody/mxml.  The *.o files now go into the
>    roody/obj/ directory (which is created by the Makefile if
>    it doesn't exist).
> 3) the Makefile has been redone and simplified, and the windows
>    stuff removed, since the windows version has its own makefile.
> 4) clicking on the Help About menu item now displays a message box
>    with the current version.  For now, the code must be edited
>    manually for each code revision, but it would be nice to automate
>    this. 

Compilation under Windows now works fine, many thanks.

I had however a problem under windows. Your scheme with the rootsys.h file does
not work under windows, since the ROOTSYS variable usually points to something
like c:\root. If I follow your scheme, I get following in rootsys.h

const char* rootsys = "c:\root";

where the "\r" is interpreted as a carriage return. I did not find a clever way to
convert this to 

const char* rootsys = "c:\\root";

in the Makefile, so for windows I just make it empty, like

const char* rootsys = "";

I changed your src/main.cxx to check for an empty rootsys, and if yes just take
the environment variable. I committed that change, I hope it's ok.

There is one small warning left whern running under windows;

C:\roody>bin\roody
Error in <TWinNTSystem::BaseName>: name = 0

Do I have to worry about that?

- Stefan
  109   19 Dec 2005 Stefan RittBug Fixminor fixes

Konstantin Olchanski wrote:
Minor fixes that escaped quality assurance by previous commiters


ROODY is again broken under Windows, can someone look into this:

c:\roody\include\Roody.h(364) : error C2143: syntax error : missing ';' before '
'template<''
c:\roody\include\Roody.h(364) : error C2501: 'export' : missing storage-class or
type specifiers
c:\roody\include\Roody.h(397) : error C2143: syntax error : missing ';' before '
'template<''
c:\roody\include\Roody.h(397) : error C2501: 'export' : missing storage-class or
type specifiers
c:\roody\include\Roody.h(397) : error C2086: 'int export' : redefinition
c:\roody\include\Roody.h(364) : see declaration of 'export'
NMAKE : fatal error U1077: 'cl' : return code '0x2'
Stop.

Regards,

Stefan
  110   19 Dec 2005 Stefan RittBug Fixminor fixes

Konstantin Olchanski wrote:
4) fix an mxml bug imported from MIDAs land (xml output into a string buffer was corrupted).


That bug has already been fixed long time ago. The problem is that the mxml.c file now lives twice in repositories, once in standalone mxml package and once in roody, and they will always diverge if one does not properly apply changes from one repository to the other. Since we use mxml in midas, rome and elog, we use a separate repository "mxml", which you can access through subversion at

http://savannah.psi.ch/websvn/listing.php?repname=mxml&path=%2Ftrunk%2F

I would recommend to do the same for roody. The disadvantage will be that one has to check out two packages to build roody, the advantage will be that there will be only one mxml, and if one fixes/extends this one, it will be to the benefit of all projects. The current one has for example the new mxml_parse_entity function, so that one can make includes in XML files. And I plan to have a fast transparent binary XML cache for large XML files in the near future.

- Stefan
  139   07 Mar 2008 Stefan RittBug ReportRevision 221 works! But not remotely.

Randolf Pohl wrote:
Just an idea: Are all necessary ports open on the receiving machine? Maybe the analyzer is just collateral damage, in reality roody commits suicide because the firewall is nasty to him?


The connection between ROODY and the analyzer works only on a single port, but if anybody wants to connect via the underlying MIDAS layer there is a two-way communication: 1) "odbedit -h <host>" connects to host <host> on port 1175 and 2) mserver on <host> connects back to odbedit on an arbitrary port. For 2), one has to excempt the client program (in this case odbedit) from the firewall for all ports on the remote client and the server program port 1175 on the <host> machine. But I'm not sure if this is your problem right now.
  75   30 Nov 2004 chris pearsonSuggestionHistogram zeroing, and extended histogram display manipulation
  We need a simple way of zeroing online spectra, using the roody viewer to
select which spectra are to be zeroed.

   We would also like the histogram view to be unaffected by refreshing. 
Currently the y axis is autoscaled after a refresh.

  We would also like a quicker way of manipulating the histogram display, than
by the awkward, particularly for canvases containing multiple histograms, axis
manipulation currently available.  This could be a toolbar similar to the view
editor that already exists - are the contents of this customisable, or would a
separate toolbar be needed?, and would ideally contain the following ...
   4 buttons, which could each be labelled with a single arrow, for shifting the
histogram left/right/up/down (e.g. by half the corresponding axis's range).  4
buttons, which could each be labelled with double arrows, for scaling the x/y
axes (scaling by factors of 2 and 0.5, about the axis's initial position).  3
buttons for toggling linear/log scale on each axis (these are in the current
view editor).  3 more buttons, for resetting the view to default, for retaining
the current view and for reverting to a previously retained view.
  We would also like to be able to attach markers to a histogram (requiring
another button to remove markers).  markers would be placed using mouse clicks
on the histogram, *and* by a text entry box for typing channel numbers.  Markers
would be labelled with x,y.  There would then be a button to expand an axis
between the last 2 placed markers.  The markers would also be used for analysis
such as integral and peakfind/fitting.
  The view manipulation toolbar would be one per canvas, so there would also
need to be a toggle button to apply the view manipulation commands to all the
histograms on that canvas, or to just the currently selected histogram[s] (a way
to select several, rather than just one, histograms would be useful)

   This would be very much quicker and easier to use than selecting items from
long menus, which themselves need to be called by selecting specific, often very
small, regions of a canvas.

Chris
ELOG V3.1.4-2e1708b5