Back Midas Rome Roody Rootana
  Root Display GUI, all entries  Not logged in ELOG logo
Entry  19 Mar 2021, Alexey Kalinin, Bug Report, roody failed to start 
roody failed to start with -P flag
running rootana analyzer with -P argument
commenting RecursiveRemove in TNetDirectory(.cxx .h) (rootana)  helps.
Any other suggestions?
Alexey.
    Reply  26 Mar 2021, Alexey Kalinin, Bug Report, roody failed to start 
Also, 
Mine TDirectory fOnlineHistDir (rootana online ) has more then 1000 histograms 
with difficult hierarchy. Starting roody -P (TNEtDirectory support) takes 30-60 
seconds, when jsroot THttpServer ready to go in a moment.
> roody failed to start with -P flag
> running rootana analyzer with -P argument
> commenting RecursiveRemove in TNetDirectory(.cxx .h) (rootana)  helps.
> Any other suggestions?
> Alexey.
Entry  03 Jun 2014, Dan Melconian, Bug Report, Zeroing spectra using XML data source? 
When we connect using TNet, we can zero spectra on the fly (which is
super-useful).  Using Xml (which is infinitely faster to load), it says
"ResetAll:  http://trinatdaq:9091: not implemented".  I guess the Xml way is
reading a text file rather than accessing the root file, so it isn't exactly
trivial to implement this, eh?  However, if someone brilliant knows how to do
this, that would really be great as it is really a nice feature when debugging
things.
Entry  25 May 2012, Konstantin Olchanski, Bug Fix, Fixed the "Zones" menu 
The "Zones" manu has not been working right - if you have a canvas open with one 
histogram plotted and you select Zones "2x2", nothing happens. The expected 
action is to have the canvas divide itself into 4 pads (2x2) and the one 
histogram to show up in the first pad. That's how it works now.

svn rev 240.
K.O.
Entry  24 May 2012, Konstantin Olchanski, Info, removed ROOTSYS check 
I removed the checks for ROOTSYS being the same at run time and compilation time. 
These checks never worked right and are unnecessary since we always install roody 
separately for each experiment and ROOTSYS settings are always consistent.
K.O.
Entry  24 May 2012, Konstantin Olchanski, Forum, test 
test of Roody forum email notification. K.O.
Entry  23 Feb 2012, Exaos Lee, Forum, How to access the SVN repo anonymously? 
I found that the SVN repo is forbidden for anonymous users now.
    Reply  13 May 2012, Konstantin Olchanski, Forum, How to access the SVN repo anonymously? 
> I found that the SVN repo is forbidden for anonymous users now.

Please use username "svn", password "svn", per instructions here:
http://www.triumf.info/wiki/DAQwiki/index.php/DaqSvn

K.O.
    Reply  24 May 2012, Konstantin Olchanski, Forum, How to access the SVN repo anonymously? 
> I found that the SVN repo is forbidden for anonymous users now.

It is possible that you are referencing the SVN repo using the "svn:" access method. This access method was recently 
disabled.

Please switch to the "https:" method (username/password svn/svn) using this command:

cd .../roody
svn switch --relocate svn://ladd00.triumf.ca/roody https://ladd00.triumf.ca/svn/roody

K.O.
Entry  25 May 2011, Jackie Glister, Forum, Refresh problem when drawing groups 
I'm having a Roody refresh problem: when I draw groups in online mode the entire
canvas is refreshed with the most recently selected single histogram, instead of
the group.  I used svn to install the most recent version (svn checkout
svn://ladd00.triumf.ca/roody/trunk roody).  Any help would be greatly appreciated!
Entry  19 Oct 2010, Konstantin Olchanski, Bug Fix, roody update 
And you thought that roody was dead? Well, here is an update - implement "reopen" for ROOT files, add 
"reopen" button to main menu, fix duplicated histogram names after "reopen" (at the cost of losing display 
of histogram titles in the tree view).
K.O.
    Reply  19 Oct 2010, Konstantin Olchanski, Bug Fix, roody update, fix open of  
> And you thought that roody was dead? Well, here is an update - implement "reopen" for ROOT files, add 
> "reopen" button to main menu, fix duplicated histogram names after "reopen" (at the cost of losing display 
> of histogram titles in the tree view).
> K.O.

Forgot to mention the main reason of this update: when looking at ROOT files, ROODY could not open any subdirectories because of some name 
changes inside ROOT. Now fixed.

ROODY svn rev 236
svn checkout https://ladd00.triumf.ca/svn/roody/trunk roody
K.O.
Entry  19 Oct 2010, Konstantin Olchanski, Info, roody good on macos 10.6.4 
For the record, ROODY svn rev 236 builds and runs on MacOS 10.6.4 with ROOT 5.26.00c. K.O.
Entry  22 Nov 2009, Exaos Lee, Suggestion, New main.cxx for roody main_el.cxx
The original "main.cxx" always produced "segmentation fault" on my system. So I 
rewrite a new one as the attached "main_el.cxx". It works stable on my systems. I 
use "getopt.h" to parse the command line options. Also, the options are altered 
as the following:
-------------------
--mhost, -M <mhost>   connect to MIDAS server <mhost>
--rhost, -R <rhost>   connect to ROOT server <rhost>
--port, -p <port>     connect to port <port>
--config, -c <xml>    Using config file <xml> in XML format
-------------------
The main_el.cxx doesn't pass options to TApplication except root file names. 
Please see the source in detail. I hope it may help.
Entry  02 Mar 2008, Exaos Lee, Bug Report, ROODY kills analyzer too!! 
I compiled roody svn231 with ROOT 5.18.00 and gcc 4.1 on Debain Linux 4.0 (AMD64).
I tested the roody with the "examples/experiment" in MIDAS svn4124 and
encountered the following error:
Error in <TFile::TFile>: file /last.root does not exist

 *** Break *** segmentation violation

 Program received signal SIGSEGV, Segmentation fault.
 [Switching to Thread 1090525536 (LWP 17985)]
 0x00000000004114e6 in root_server_thread (arg=<value optimized out>) at src/mana.c:5333
 Current language:  auto; currently c++
 (gdb) next
 [midas.c:2416:bm_validate_client_index,ERROR] Invalid client index 1 in buffer 'SYSMSG'. Client name '', pid 0 should be 17973
 0x00002b800b8a5460 in sighandler () from /opt/ROOT/Versions/Current/lib/libCore.so.5.18
 (gdb) next
 Single stepping until exit from function _Z10sighandleri, 
 which has no line number information.
 Cannot remove breakpoints because program is no longer writable.
 It might be running in another process.
 Further execution is probably impossible.
 0x00002b800b8a546e in sighandler () from /opt/ROOT/Versions/Current/lib/libCore.so.5.18
 ptrace: &#23052;&#8451;&#28225;&#38317;&#65348;&#37340;&#26473;&#28058;&#9660;.
 (gdb) next
 Single stepping until exit from function _Z10sighandleri, 
 which has no line number information.
 Cannot remove breakpoints because program is no longer writable.
 It might be running in another process.
 Further execution is probably impossible.
 0x00002b800b8a546e in sighandler () from /opt/ROOT/Versions/Current/lib/libCore.so.5.18
 ptrace: &#23052;&#8451;&#28225;&#38317;&#65348;&#37340;&#26473;&#28058;&#9660;.
 (gdb) next
 Single stepping until exit from function _Z10sighandleri, 
 which has no line number information.
 Cannot remove breakpoints because program is no longer writable.
 It might be running in another process.
 Further execution is probably impossible.
 0x00002b800b8a546e in sighandler () from /opt/ROOT/Versions/Current/lib/libCore.so.5.18

The system information is as the following:
$ uname -a
Linux daq-heg 2.6.18-5-amd64 #1 SMP Sat Dec 22 20:43:59 UTC 2007 x86_64 GNU/Linux

$ gcc -v
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v 
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr 
--enable-shared --with-system-zlib --libexecdir=/usr/lib 
--without-included-gettext --enable-threads=posix --enable-nls 
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu 
--enable-libstdcxx-debug --enable-mpfr --enable-checking=release 
x86_64-linux-gnu
Thread model: posix
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)

$ root-config --config
linuxx8664gcc --prefix=/opt/ROOT/Versions/5.18.00-gcc 
--datadir=/opt/ROOT/Versions/5.18.00-gcc/share 
--docdir=/opt/ROOT/Versions/5.18.00-gcc/doc 
--incdir=/opt/ROOT/Versions/5.18.00-gcc/include 
--libdir=/opt/ROOT/Versions/5.18.00-gcc/lib 
--etcdir=/opt/ROOT/Versions/5.18.00-gcc/etc 
--elispdir=/opt/ROOT/Versions/5.18.00-gcc/share/emacs/site-lisp --enable-cern 
--with-cern-libdir=/usr/lib --enable-fftw3 --enable-gdml --enable-mathcore 
--enable-mathmore --enable-opengl --enable-python --enable-qt --enable-roofit 
--enable-ruby --enable-shared --enable-soversion --enable-ssl --enable-xml 
--enable-xft --enable-xrootd --enable-g4root 
--with-g4-incdir=/opt/GEANT4/Versions/9.0.p01/include 
--with-g4-libdir=/opt/GEANT4/Versions/9.0.p01/lib/Linux-g++

Any idea to fix this problem?
    Reply  03 Mar 2008, Randolf Pohl, Bug Report, ROODY kills analyzer too!! crash-analyzer.txtcrash-roody.txtroody-tarball-dir.txt
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.
       Reply  04 Mar 2008, Exaos Lee, Bug Report, Revision 221 works! But not remotely.  
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

Hope somebody can fix it.
          Reply  07 Mar 2008, Randolf Pohl, Bug Report, Revision 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
             Reply  07 Mar 2008, Stefan Ritt, Bug Report, Revision 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.
    Reply  17 May 2009, Randolf Pohl, Bug 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
       Reply  23 Jul 2009, Exaos Lee, Bug Fix, [PATCH] ROODY kills analyzer too!! 

Randolf Pohl wrote:
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


Oh, GOD! From Wednesday, I have took almost one day to find the BUG and fix it. Then I found your post here. Tongue
Entry  18 Feb 2008, Jimmy Ngai, Bug Report, Roody kills MIDAS Analyzer 
Hi All,

I'm running Roody with MIDAS 2.0.0 and ROOT 5.14e on Scientific Linux 4.4. 
When Roody is monitoring the online histograms on Localhost, there are two 
possibilities that Roody will kill the MIDAS Analyzer: 
1) quiting Roody
2) unzoom a histogram when auto-refresh is on

Any ideas?

Best Regards,
Jimmy
Entry  16 Nov 2007, John M O'Donnell, Bug Fix, uint32_t or UInt_t DataSourceTNetFolder.h
I just downloaded and compiled the latest tarball.

line 98 of DataSourceTNetFolder.h complained about unit32_t.  While I could have
added an include to make this work, I instead changed it to use the ROOT type
UInt_t.

Perhaps this change should be included in the distribution
    Reply  16 Nov 2007, Konstantin Olchanski, Bug Fix, uint32_t or UInt_t 
> I just downloaded and compiled the latest tarball.
> 
> line 98 of DataSourceTNetFolder.h complained about unit32_t.  While I could have
> added an include to make this work, I instead changed it to use the ROOT type
> UInt_t.

Uint_t is technically incorrect. The data returned from the socket connection is a
32-bit pointer to an object in the remote process (how do they come up with
communication protocols like this?!?). The type "Uint_t" is not defined to be of any
particular size and is not necessarily big enough to hold a 32-bit unsigned integer.

According to the "C99" standard, the correct C data type for 32-bit unsigned
integers is uint32_t, defined in "#include <stdint.h>", e.g. see
http://www.oreillynet.com/pub/a/network/2003/10/07/michael_barr.html

I have now added the missing "#include <stdint.h>" statement to
DataSourceTNetFolder.h, commited as revision 230.

I am puzzled why the code compiled without this include statement, possibly on my
SL4.3 machine with ROOT v5.16.00, some ROOT or system header file included it for
me. I am curious what system you use where this code failed to compile?

K.O.
       Reply  19 Nov 2007, John M O'Donnell, Bug Fix, uint32_t or UInt_t 
I'm using Redhat workstation with:
  gcc version 3.3.3 20040412 (Red Hat Linux 3.3.3-7)
  ROOT version 5.16/00

it is unlikely that UInt_t will ever be too small.  If it is too small, then ROOT will
break!  It is clearly intended to be 32 bits long.  From Rtypes.h:

#ifdef R__INT16
typedef long           Int_t;       //Signed integer 4 bytes
typedef unsigned long  UInt_t;      //Unsigned integer 4 bytes
#else
typedef int            Int_t;       //Signed integer 4 bytes (int)
typedef unsigned int   UInt_t;      //Unsigned integer 4 bytes (unsigned int)
#endif

Of course, stdint.h is defined in a standard.  However ROOT doesn't really try to follow
the standard (CINT compiles a language similar to C++, but not exactly C++), and indeed
the file stdint.h is not explicitly included in any of $ROOTSYS/include/*.h.

John.

> > I just downloaded and compiled the latest tarball.
> > 
> > line 98 of DataSourceTNetFolder.h complained about unit32_t.  While I could have
> > added an include to make this work, I instead changed it to use the ROOT type
> > UInt_t.
> 
> Uint_t is technically incorrect. The data returned from the socket connection is a
> 32-bit pointer to an object in the remote process (how do they come up with
> communication protocols like this?!?). The type "Uint_t" is not defined to be of any
> particular size and is not necessarily big enough to hold a 32-bit unsigned integer.
> 
> According to the "C99" standard, the correct C data type for 32-bit unsigned
> integers is uint32_t, defined in "#include <stdint.h>", e.g. see
> http://www.oreillynet.com/pub/a/network/2003/10/07/michael_barr.html
> 
> I have now added the missing "#include <stdint.h>" statement to
> DataSourceTNetFolder.h, commited as revision 230.
> 
> I am puzzled why the code compiled without this include statement, possibly on my
> SL4.3 machine with ROOT v5.16.00, some ROOT or system header file included it for
> me. I am curious what system you use where this code failed to compile?
> 
> K.O.
Entry  04 Dec 2006, Konstantin Olchanski, Bug Fix, Add menu for SetOptStat 
I commited the implementation for a new menu item: "OptStat". It allows setting
gStyle->SetOptStat in a user-friendly manner. K.O.
Entry  27 Aug 2006, Konstantin Olchanski, Info, New version coming up... 
FYI, I am presently working in an updated version of roody.

The user interface, GUI and user-visible functionality I am leaving alone. The under-the-hood handling of 
histogram data I am reworking using our latest understanding of the workings of ROOT (object ownership, 
etc) and C++ (hey, with STL std::map, C++ is as easy as perl!).

The updated version may also fix some of the existing problems- crashes caused by confused object 
ownership rules, long startup times (current code has to look at every existing histogram before starting- 
slow if many histograms in an online folder) and inability to display TGraph objects (that is what started 
me working on the code).

While at it, we will move the Roody code repository from CVS to SVN.

K.O.
    Reply  26 Sep 2006, Konstantin Olchanski, Info, New version coming up... 
> FYI, I am presently working in an updated version of roody.

The new version of Roody has been commited.

It has been tested only on Linux (SL4.3) and while we are shaking out the new bugs,
all are welcome to try it and report any problems. It should not eat your data.

If the new version does not work for you at all, the old version was preserved as
an SVN branch, accessible using this SVN command:
svn checkout svn://ladd00.triumf.ca/roody/branches/roody-v1 roody-v1

K.O.
       Reply  26 Sep 2006, Konstantin Olchanski, Info, New version coming up... 
> > FYI, I am presently working in an updated version of roody.
> 
> The new version of Roody has been commited.
> 
> It has been tested only on Linux (SL4.3) and while we are shaking out the new bugs,
> all are welcome to try it and report any problems. It should not eat your data.
> 
> If the new version does not work for you at all, the old version was preserved as
> an SVN branch, accessible using this SVN command:
> svn checkout svn://ladd00.triumf.ca/roody/branches/roody-v1 roody-v1

(the email notification for this message did not work at first, trying again)

K.O.
Entry  04 Sep 2006, Konstantin Olchanski, Info, added "make docs" 
I commited the missing images, fixed the doxygen config file and added the "make docs" target. Now 
"make docs" will generate the documentation and place it into the directory "html". K.O.
Entry  04 Sep 2006, Konstantin Olchanski, Info, roody CVS converted to SVN 
The ROODY source code repository has been converted from CVS to SVN.

The new command to "get" the sources is:
svn checkout svn://ladd00.triumf.ca/roody/trunk roody

At this time, I do not know how to "convert" a local CVS checkout tree into an SVN checout tree other than 
by brute force (new svn checout, copy modified files from the cvs checout, erase the old cvs checkout 
tree).

For the latest ROODY insructions, please visit http://daq-plone.triumf.ca/SR/ROODY/

K.O.
Entry  21 Aug 2006, Konstantin Olchanski, Bug Fix, Better zoom & rebin controls, show TDirectory contents 
I commited a series of changed to Roody:
- cleanup unused files
- show contents of TDirectory objects (this used to work before, why was it
removed? It was a 1 line fix!)
- rework and simplify controls for zooming and rebinning of TCanvas contents
K.O.
Entry  22 Jun 2006, Joe Chuma, Bug Fix, roody refresh button fix (again) 
The refresh button was in the wrong state the first time the user set the refresh rate for online histograms.
Entry  07 Jun 2006, Joe Chuma, Bug Fix, roody online fixes 
Roody has been modified so the resetting of individual histograms should now work. This involved a check for "//" at beginning of path to histogram and remove if it is there.

Also, the properties of the refresh button have been changed. It is enabled when there is a socket connection, and if the refresh rate = 0, button says "refresh now", but if the refresh rate > 0, button toggles refresh on/off (with appropriate labeling).
Entry  19 Dec 2005, Konstantin Olchanski, Bug Fix, minor fixes 
Minor fixes that escaped quality assurance by previous commiters:
1) remove include/rootsys.h from cvs - it is a generated file
2) have "make clean" remove obsolete stuff from src (src/roody, src/rootsys.h, etc)
3) fix completely nonfunctional enforcement of setting ROOTSYS to the compiled-in value: execv() should have been execvp() (my bug), actually do call setenv("ROOTSYS","blah...") (OS_UNIX was not defined in the Makefile, bug by previous committer).
4) fix an mxml bug imported from MIDAs land (xml output into a string buffer was corrupted).
K.O.
    Reply  19 Dec 2005, Stefan Ritt, Bug Fix, minor 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
    Reply  19 Dec 2005, Stefan Ritt, Bug Fix, minor 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
    Reply  06 Jun 2006, Konstantin Olchanski, Bug Fix, minor fixes 

Konstantin Olchanski wrote:
Minor fixes that escaped quality assurance by previous commiters:
2) have "make clean" remove obsolete stuff from src (src/roody, src/rootsys.h, etc)
3) fix completely nonfunctional enforcement of setting ROOTSYS to the compiled-in value: execv() should have been execvp() (my bug), actually do call setenv("ROOTSYS","blah...") (OS_UNIX was not defined in the Makefile, bug by previous committer).


Restored fixes (2) and (3) that were removed by a careless previous committer.

(Note this assumes windows has "setenv()", which I believe it does have, please test compilation on Windows ASAP and let me know).

K.O.
       Reply  06 Jun 2006, Konstantin Olchanski, Bug Fix, minor fixes 
> Minor fixes that escaped quality assurance by previous commiters:
> 2) have "make clean" remove obsolete stuff from src (src/roody, src/rootsys.h,
etc)
> 3) fix completely nonfunctional enforcement of setting ROOTSYS to the
compiled-in value: execv() should have been execvp() (my bug), actually do call
setenv("ROOTSYS","blah...") (OS_UNIX was not defined in the Makefile, bug by
previous committer).


(previous message was completely garbled by the Elog "ELCode" whatever it is)


Restored fixes (2) and (3) that were removed by a careless previous committer.

(Note this assumes windows has "setenv()", which I believe it does have, please
test compilation on Windows ASAP and let me know).

K.O.
Entry  06 Jun 2006, Konstantin Olchanski, Info, Roody still using CVS 
To prevent confusion- according to Joe Chuma and Konstantin Olchanski, we are
still using CVS for Roody development. K.O.
Entry  05 Jun 2006, Joe Chuma, Bug Fix, reset histograms 
Roody should now be able to reset online histograms. Use the "reset all" menu item to reset all online histograms, or use the right click context menu on individual histograms to reset just one histogram (or a set of histograms chosen by holding down the ctrl key while selecting). The latest ROME analyzer is required for these features to be used.
Entry  19 Apr 2006, Joe Chuma, Bug Fix, pause/restart button fixed 
The pause/restart button was not working properly, as a result of some confusion about the return value from the TString Compare method. It should now be fixed.
Entry  18 Apr 2006, Joe Chuma, Bug Fix, Pause/Restart Refresh button added 
A Pause/restart refresh button has been added to the Roody frame so users may quickly pause and restart online histogram refreshing.
Entry  16 Mar 2006, Matthias Schneebeli, Bug Report, Compiling 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)'
Entry  21 Dec 2005, Pierre-André Amaudruz, Bug Fix, mxml 
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).
Entry  19 Dec 2005, Konstantin Olchanski, Bug Report, reconnect after midas analyzer is restarted? 
When I restart the MIDAS analyzer, it looks like ROODY detects that the connection is broken, but does not reestablish it. Can somebody look into this? K.O.
Entry  29 Nov 2005, Joe Chuma, Release, roody 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. 
    Reply  07 Dec 2005, Stefan Ritt, Info, roody 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
    Reply  19 Dec 2005, Konstantin Olchanski, Release, roody directory reorganization and Makefile changes 
> 2) the files have been shuffled around

Joe, is there any particular reason why the roody executable is not placed into a
"bin" directory? Just curious. (As one could argue both way: .../bin/roody is more
consistant with MIDAS; .../bin/roody creates a junk directory with only one file
in it).

K.O.
Entry  13 Dec 2005, Joe Chuma, Bug Fix, roody graphics pad problems fixed 
Problems with deciding which graphics pad to choose for drawing have been fixed.
 Now the group pads (created by choosing draw group from the group context menu)
and the zoom pad (created by choosing zoom option from the pad context menu) are
treated distinctly from the canvases titled "canvasN" for N=0,1,2,...  Also, a
user supplied zone setting will be displayed in the zones menu, and can be
chosen again later.  Problems with the cvs file locks have been repaired (by
P.Amaudruz).
Entry  21 Nov 2005, Joe Chuma, Bug Fix, Roody xml fix 
The xml code in Roody has been localized into RoodyXML to allow for future conversion to ROME xml (and a few bugs fixed in the xml code).
Entry  27 Oct 2005, Stefan Ritt, Bug Report, Various 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
Entry  05 Jul 2005, Qing Gu, Info, Affect 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.
Entry  27 Jun 2005, Joe Chuma, Bug Fix, Roody fixes 
Error messages from Roody will now appear as TGMsgBox forms which require the
user to click the "Dismiss" button to acknowledge the error message.  If the
user chooses the x-axis scales for an online histogram using the mouse to select
a range on the axis, that range will be used for re-displaying the histogram
when it is refreshed. However, if the user chooses "XaxisLimits" from the
context menu, that x-axis scaling will be used for all pads on that canvas, and
a range as described above will be overridden by this scaling.
Entry  01 Jun 2005, Joe Chuma, Bug Fix, multiple bug fixes 
Fixed refreshing of overlayed online histograms.
Fixed refresh now.
main.cxx:  class Roody now created on the stack instead of the heap.
TNetFolder.cpp:  fixed memory leak relating to TMessage pointer
                 returned by TSocket::Recv( TMessage * )
                 ?? is this related to the memory leak in the analyzer ??
Entry  04 May 2005, Joe Chuma, Bug Fix, roody bug fixes 
1) Memory leak fixed:
 when the plotting destination set to replace, cloned objects with the canvas
 about to be closed are now being deleted first.
2) Group restore fixed:
 when restoring a saved session, and objects from file subdirectories were
 added to a group, they were not being included in that group.  Now the
 data file is searched recursively for subdirectories.
3) Group draw fixed:
 TH2 and TH3 objects in a group were not being drawn.
Entry  19 Apr 2005, Konstantin Olchanski, Info, commited: macosx Makefile bits 
The Makefile bits for building roody on MacOSX have been commited, tested on
MacOSX 10.3.9 with an unknown version of ROOT. Caveats: there is no support for
linking the roody shared library (volunteers are welcome!); there are warnings
about a double-include of libz when linking "roody" (ignore them). K.O.
Entry  12 Apr 2005, Joe Chuma, Bug Fix, memory leak fix 
A memory leak was fixed in Roody.cxx, which occurred when updating a histogram
from a NetFolder object.
Entry  12 Apr 2005, Joe Chuma, Bug Fix, modified reset option implementation 
The reset option has been modified to use the new "Command" option in mana.c
instead of the "Reset" option in mana.c, which has been removed.
Entry  11 Mar 2005, Joe Chuma, Bug Fix, reset 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.
    Reply  31 Mar 2005, Stefan Ritt, Bug Fix, reset 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
Entry  18 Mar 2005, Joe Chuma, Bug Fix, context menu changes 
The group context menu options are changed to "Draw group", "Reset group" and
"Delete group", where "Reset group" means reset any online members of the group
and will only appear if there are online members in that group.  Multiple
selections (left click while holding down the control key) now have a context
menu (right click to open) but the context menu for multiple selections will
only display "New canvas", "Add to group" and, if there are online members,
"Reset", since the options "Current pad", "Overlay on pad" and "Next pad" are
not relevant to multiple selections.  Online folders now have a context menu
with "New canvas", "Add to group" and "Reset" options.
Entry  10 Mar 2005, Joe Chuma, Bug Fix, online re-connection problem fixed 
Fixed segmentation fault problems that occurred when connected online, then
having the connection broken, then re-establishing the connection, and then
clicking on an online item in the main window.  The problem is in TGListTree in
the ROOT code, and is fixed here by including 2 routines into MTGListTree.
Entry  07 Feb 2005, Joe Chuma, Bug Fix, online timer fixed 
The online timer has been modified for testing whether the online connection is
still valid. If the connection is broken, the timer tests the connection every
second until it has reconnected.  When the connection is finally remade, any
online histograms will again be refreshed as before.  This is now being done
with just the original timer, as 2 timers seem to conflict with each other.
Entry  01 Feb 2005, Joe Chuma, Bug Fix, fixed 2 problems introduced with yesterdays changes 
Two bugs were introduced yesterday...
 -- program crashes when trying to connect online via  roody -h nodename
    (uninitialized pointer)
 -- program crashes when restoring an xml file which tries to use the
    external dtd file (unchecked error condition)
Both problems are now fixed.
Entry  31 Jan 2005, Joe Chuma, Bug Fix, changes to online connection and xml  
A timer has been added to check if the online socket remains valid.  If, say,
the analyzer has been stopped while running Roody, this will be detected and the
connection closed, then, every second, that connection will be attempted until
successful.  Also, the external dtd file, roody.dtd, has been eliminated in
favour of internal dtd verification. Please note that Roody is being linked with
Root version 4.00.08, as version 4.02.00 introduces problems, such as context
menu errors.
Entry  28 Jan 2005, Joe Chuma, Bug Fix, fixing y-axis scales 
The y-axis scales can now be fixed just like the x-axis scales.  Choose
YaxisLimits from the context menu when right-clicking on a histogram frame and a
small dialog box will open in which you can enter the min and max values.  If
the frame is part of a multipad canvas, all pads on that canvas will be redrawn
with the new scales.  Choose YaxisLimits again and click on the Unzoom button to
unzoom all pads on that canvas.
Entry  26 Jan 2005, Joe Chuma, Bug Fix, zooming in on a multiframe canvas 
A "ZoomOption" has been added to the context menu produced by right clicking 
anywhere on a histogram frame.  This opens up a new canvas, titled "Zoom
Canvas", containing a copy of the histogram in the original frame.
Entry  24 Jan 2005, Joe Chuma, Bug Fix, multi-thousand histogram display problems in Roody - 2 
A minor update to the previous bug fix...
Modified Roody.cxx to display the histogram name range instead of the counter
range on the subfolders when reading > 1000 histograms from a file.
Entry  21 Jan 2005, Joe Chuma, Bug Fix, multi-thousand histogram display problems in Roody 
When opening a .root file, if there are more than 1000 histograms in the file,
the display is divided up into folders, where each folder holds 250 histograms
(except for the final folder, which may be smaller).  This was done because of a
problem with TGListTree which only shows up with a large numbers of objects.
Entry  17 Jan 2005, Konstantin Olchanski, Info, CVS instructions 
Updated CVS instructions for ROODY:

1) cvs anonymous read-only access:
     export CVS_RSH=ssh
     cvs -d anoncvs@dasdevpc.triumf.ca:/usr/local/cvsroot checkout roody
    (username: anoncvs, password: anoncvs)
2) read-write cvs access (requires user account on dasdevpc.triumf.ca)
     export CVS_RSH=ssh
     cvs -d USERNAME@dasdevpc.triumf.ca:/usr/local/cvsroot checkout roody
3) build instructions:
     cvs ... checkout roody
     cd roody/src
     make
     ./roody {file.root,file.hbook,-Hhostname:port}

K.O.
Entry  05 Oct 2004, John M O'Donnell, Suggestion, displaying and selecting cuts 
I have talked with Pierre-Andre and Stefan over the last few days about the need
to be able to display graphical cuts (TCutG) in Roody, and also to be able to
change them and send them back to the analyzer.

I expect to have some sample code for putting cuts into a folder sometime soon.
    Reply  20 Dec 2004, John M O'Donnell, Bug Fix, displaying cuts implementation cut_display.patch
Attached is a cvs patch to allow roody to display graphical cuts (TCutG).

Does somebody have the permissions to commit this patch to the cvs repository?

It also includes some hooks where code for updating a cut will be implmented.
Updating cuts will be done with another patch, to both roody and midas.  This same
mechanism can be used for creating new cuts and sending them to the analyzer.

The final part of this project will be a change to midas to allow cuts to be booked
into (sub)folders.  I have some code which I am using for testing purposes, but I
don't like where it stores the cuts for persistence between different invocations of
the analyzer.  I'm thinking that cuts should be stored in last.root, and retrieved
from there.

John.
       Reply  07 Jan 2005, John M O'Donnell, Bug Fix, displaying cuts implementation 
> Attached is a cvs patch to allow roody to display graphical cuts (TCutG).
> 
> Does somebody have the permissions to commit this patch to the cvs repository?
> 
> It also includes some hooks where code for updating a cut will be implmented.
> Updating cuts will be done with another patch, to both roody and midas.  This same
> mechanism can be used for creating new cuts and sending them to the analyzer.
> 
> The final part of this project will be a change to midas to allow cuts to be booked
> into (sub)folders.  I have some code which I am using for testing purposes, but I
> don't like where it stores the cuts for persistence between different invocations of
> the analyzer.  I'm thinking that cuts should be stored in last.root, and retrieved
> from there.
> 
> John.

cvs commit made today to support display of polygons, and sending polygons an analyzer.
A patch for mana.c so that MIDAS analyzers receive polygons has been sent to Stefan.

John.
          Reply  10 Jan 2005, Stefan Ritt, Bug Fix, displaying 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
       Reply  13 Jan 2005, John M O'Donnell, Bug Fix, displaying cuts implementation 
I have just sent a MIDAS patch to Stefan so that:

(1) cuts should be booked using TCutG *cut_book( const char *name).
    Usage is similar to h1_book etc.

(2) cuts are saved in last.root.

(3) cuts are restored from last.root.

I also fixed a bug in receiving cuts from ROODY.  The search for
cuts should be made only in gManaHistosFolder, not from gROOT.
Should this also be the case for GetPointer etc.?

I believe this implements a first pass at handling TCutG for MIDAS and ROODY.
To create a cut from scratch, one declares it in the analyzer init functions
using cut_book, and saves the pointer for use in the event-by-event code.
Then in ROODY, create a polygon, name it and send it to the analyzer (right click
on the polygon).

I believe the patchs which I have made should also be applied to ROME.

John.
Entry  30 Nov 2004, chris pearson, Suggestion, Histogram 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
    Reply  01 Dec 2004, Konstantin Olchanski, Suggestion, Histogram 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.

Problem confirmed: there is a button for "clear all", but no buttons for "clear
selected histograms" and "clear just this one histogram". It was suggested that the
right-click context menu for each histogram should have a "clear" action. Maybe same
for a "group".

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

I thought this was fixed a long time ago...

>   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.

I am thinking along the lines of locking the "zooming" of all histograms: on a 2x2
panel of histograms, rezooming any one of them would rezoom the others the same way.

> 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.

This does not sound like something I can do in 5 minutes, maybe Joe Chuma would take
this on?

>   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.

Maybe I am missing something, but is this not "standard root" functionality, using
the pad editor and adding "TLabels"?

>   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)

I like this: a control for selecting if the action is applied to just one histogram
or to all histograms in a group.

>    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.

I see: ROOT is geared very much for manipulating ONE graphical object at a time. We
want to manipulate MANY identical objects at the same time and the existing tools
are inadequate, for example because each object is physically very small and it is
hard to point-and-click it.

K.O.
       Reply  01 Dec 2004, Konstantin Olchanski, Suggestion, Histogram zeroing, and extended histogram display manipulation 
> >    We would also like the histogram view to be unaffected by refreshing. 
> > Currently the y axis is autoscaled after a refresh.
> 
> I thought this was fixed a long time ago...

Never mind that.

Vertical scale of online histograms *has* to change after a refresh- the number of
counts in an online histogram increases as it accumulates more data and the histogram
would grow up out of the visual range unless it is rescaled.

Now, we can be smart about this: for a zoomed histogram, we can freeze the "y" scaling
or we can maintain the zoom ratio while rescaling.

K.O.
Entry  04 Nov 2004, Joe Chuma, Bug Fix, cvs commit 
To set the x-axis limits, right click anywhere on a histogram frame and choose
"XaxisLimits" from the popup context menu.  This brings up a dialog box where
you can enter the xmin and xmax values. Click "OK" and all pads within the
currently selected canvas will be redrawn with that x-axis scale.  To reset all
histograms so the x-axes are unzoomed, click "Unzoom".

Every overlayed histogram on a currently drawn histogram, will be drawn in a
different color (up to the max number of colors).

When choosing a new pad division for a canvas (from the "Zones" menu), all
currently drawn histograms on that canvas will be redrawn in the new zones. If
there are fewer pads in the new configuration, the extra histograms are not
drawn.  Overlays (with their color) and x-axis scaling are preserved in the new
configuration.
Entry  28 Oct 2004, Joe Chuma, Bug Fix, cvs commit 
When the number of zones (sub-pads) is changed, any histograms on the active
canvas will be redrawn on the new canvas.  Also, more general code clean-up.
Entry  19 Oct 2004, Matthias Schneebeli, Suggestion, Comments on Roody 
I have some comments on roody :

1)
The peakfinder is only available when you right click on the histogram line.
This is a very limited area. I would rather make the peakfinder available 
whenever you right click anywhere in the histogram area.

2)
On a canvas with zones:
When you start the peakfinder from a histogram, which is not active, roody 
searches for peaks on the active histo. Therefore, I would make the histogram 
active, whenever you click on the histo, no matter which button you click. Or 
the peakfinder should make the histo active first.

3)
When you change the zones you loose all your histos. I would prefer to have the 
histos, which are already displayed also on the rezoned canvas. 

4)
When I resize the x-axis of a histogram by hand and then plot a new histogram 
in the same pad, I loose the scale I have choosen. There should be a switch, 
with which you can keep the settings of a histogram for further histos.

If you agree upon these requests, let me know if you like me to implement some 
of these features.
    Reply  22 Oct 2004, Joe Chuma, Suggestion, Comments on Roody 
> I have some comments on roody :
> 
> [snip]
> If you agree upon these requests, let me know if you like me to implement some 
> of these features.

These all seem like good suggestions and it is fine with me if you want
to work on the code.
       Reply  26 Oct 2004, Matthias Schneebeli, Suggestion, Comments 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
Entry  21 Oct 2004, Joe Chuma, Bug Fix, cvs commit 
Command line argument change:
   the space between -h and hostname is optional
   the space between -r and filename is optional

The save file is now an xml file validated with roody.dtd

When saving or restoring, if you enter a filename without an extension,
.xml will be appended.  The previous save file format is no longer
supported.

New files:  RoodyXML.h, RoodyXML.cxx, roody.dtd

Fixed up group problems when an online file is located in a folder.

Makefile modified to support libxml2.
Entry  08 Oct 2004, Joe Chuma, Info, Roody cvs commit  
Command line argument change:
 -h (or -H) followed by nothing shows program usage
 -hhostname or -hhostname:port connect to analyzer on given host (and port)
 -rsavefile restores savefile

Offline items added to a group are new removed from the group if the
file is closed.

Offline item titles are now displayed after the name if different than
the item name.

"Run# number" added to the item title if the filename contains a runnumber.
Entry  30 Sep 2004, Joe Chuma, Info, more right click features 
Right click on Offline folder opens the file dialog.

Right click on Online folder opens the hostname dialog.

If only one group exists, you will not be asked to choose the group when adding items to a group.
Entry  30 Sep 2004, Matthias Schneebeli, Bug Report, anoncvs account not working anymore 
anoncvs account is not working anymore.

Please fix that.

Thanks 

Matthias
    Reply  30 Sep 2004, Pierre-André Amaudruz, Bug Report, anoncvs 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
       Reply  30 Sep 2004, Konstantin Olchanski, Bug Report, anoncvs 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

What was the fix? I do not think it was ever broken, except for the name change from "miroodas" to "roody", which I could not document until Pierre restored this Elog forum 
a few hours ago. K.O.
Entry  20 Sep 2004, Joe, , multiple selection update 
One can now select multiple histograms by holding down the CTRL key while
left clicking the mouse.  After selecting the histograms, keep holding down
the CTRL key and right click the mouse to bring up the context menu to add
these histograms to a previously created group.  Usefulness is somewhat
limited so far, but more functionality will be added later.
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.
Entry  15 Jan 2004, Joe, , context menu added, etc. 
Added context menu -- single right click on a data item in the upper
TreeView window and a context menu opens on the right, choose where to plot
the item.  This becomes the default plotting location if you later double
click on an item.

Items chosen to plot from upper TreeView window will only appear once in the
lower ListView window (checks name, title, source, and type).

Also, more code clean-up (the "this" pointer was being deleted on exit even
though "this" was created on the stack and not on the heap???).
Entry  12 Jan 2004, Joe, , drop down menu changes 
Modified TTriumfFileGui.h and .cxx to fix up drop down menus, putting in
check marks to denote which option is currently in effect.  Also, a few more
cosmetic changes.
Entry  09 Jan 2004, Joe, , draw in first pad 
Modified TTriumfFileGUI to draw in the first pad when the canvas
is divided into zones.  Also, a few cosmetic changes.
Entry  01 Jan 2004, Konstantin, , Implement "Draw in next pad" and ilk 
I commited fixes for a few annoying problems:
1) get rid of useless "delete/create TCanvas"
2) make the "zones" actually work
3) implement "draw in new canvas", "draw in current pad", "draw in next pad"
and "overplot in current pad"
4) consolidate all drawing into a single "DrawObject()" function.
K.O.
Entry  20 Dec 2003, Konstantin, , Fix Chuma's CVS access 
Somehow neither Joe nor myself were in the "cvs" group and could not commit
to the miroodas CVS. Fixed by editing root@dasdevpc:/etc/group + NIS reload.
K.O.
Entry  20 Dec 2003, Konstantin, , silence message "No Loaded Online Histograms" 
I commited a change to TTriumfFileGUI.cxx to silence the message "No Loaded
Online Histograms". K.O.
Entry  20 Dec 2003, Konstantin, , Simplify Makefile 
I commited a simplification of the Makefile:
- "make" now builds the GUI executable
- removed useless cruft for building the GUI on Solaris, RedHat 4.x, etc
K.O.
Entry  20 Dec 2003, Konstantin, , remove Greg King from email list 
I removed Greg King from the MIROODAS email notification. K.O.
Entry  20 Dec 2003, Joe, , cleanup by Joe 
Joe Chuma commited some code cleanup and sundry unknown changes. K.O.
Entry  14 Aug 2003, Greg, , Miroodas 
MAIN GUI
========
Invocation:
TTriumfFileGUI -h 
 ->Displays Usage message
TTriumfFileGUI host
 ->Opens GUI and connects to host on default port 9090
TTriumfFileGUI host:port
 ->Opens GUI and connects to host on port (to be implemented)
TTriumfFileGUI file.root
 ->Opens GUI and opens file.root for browsing
TTriumfFileGUI file.hbook
 ->Opens GUI and opens file.hbook for browsing (to be implemented)
TTriumfFileGUI
 ->Opens GUI

File Menu
 -> Open .root
	Opens file selection dialog to find and open a ROOT file
 -> Open .hbook
	Opens file selection dialog to find and open an HBOOK file
 -> Online
	Opens hostname entry dialog ... Will try and access that host on
        port 9090 (currently using 9090 as default port)
 	If hostname:port, will try and access hostname on proper port 
        (Not Yet Implemented)
 -> Save
	Not Yet Implemented -> Idea:
		Will bring up a save dialog which will allow user to save 
		all opened histograms
 -> Exit
	Closes the program

Refresh Menu
 ->Not Yet Implemented -> Idea: (Radio Buttons)
     ->Stop Refresh
	 Stops the refreshing of online histograms by stopping the TTimer
     ->Refresh 1 sec  \
     ->Refresh 3 sec   |
     ->Refresh 5 sec   |-- Change TTimer time length (and start it)
     ->Refresh 10 sec /

Zones Menu 
  ->Not Yet Implemented -> Idea: (Radio Button)
     ->1x1
     ->1x2
     ->2x1
     ->2x2
     ->3x3
     -> ...
	Each of these will changes force all the new TCanvas() created to be 
	divided into zones
	If double clicked (TGListTree or TGListView) will create new canvas,
        unless option is changed in AddHist to Menu.
        If from context menu -> can overlay in current pad
                             -> can plot in current pad (removes old hist)
                             -> can create new canvas
                             -> can plot in next pad (if last pad ... plot 
                                in first pad)

AddHist to Menu:
  ->Not Yet Implemented -> Idea: (Radio Button)
      -> 4 Options:
	-> plot in new canvas
        -> plot in current pad
        -> plot in next pad
        -> overlay in current pad
      -> Depending on which one is checked the double click functionality 
         will change

Open Files Panel (TGListTree)
  ->Shows open files (offline and online) as well as TH*, TProfile*, TTree ...
  ->Need to add ContextMenus
	ContextMenu (depends on UserData)
	 ->Close Files (remove file from list)
	 ->Plot Options (for histograms) ->see AddHist to menu options
  ->Need to have: when item selected in TGListTree, items in TGListView
    are deselected

Open Histograms Panel (TGListView)
  ->Shows open histograms (i.e. goes over gROOT->GetListOfCanvases())
  ->Need to add ContextMenus
      ->Histogram stuff ->see AddHist to menu options
  ->Need to have: when item selected in TGListView, itesms in TGListTree
    are deselected

Buttons
  ->Not yet Implemented
  ->Refresh (goes over all open histograms)
  ->Banish 
     ->if histogram selected ... removes from associated Pad and 
       deletes from list (in TGListView)
     ->if file is selected in TGListTree ... removes file (may need to close 
       TTreeViewer ... but histograms are made persistent so no need to 
       close)
     ->Save same functionality as the File->Save
  ->Clear (clears currently selected histogram)
Entry  14 Aug 2003, Greg, ,  
MAIN GUI
========
Invocation:
TTriumfFileGUI -h 
 ->Displays Usage message
TTriumfFileGUI host
 ->Opens GUI and connects to host on default port 9090
TTriumfFileGUI host:port
 ->Opens GUI and connects to host on port (to be implemented)
TTriumfFileGUI file.root
 ->Opens GUI and opens file.root for browsing
TTriumfFileGUI file.hbook
 ->Opens GUI and opens file.hbook for browsing (to be implemented)
TTriumfFileGUI
 ->Opens GUI

File Menu
 -> Open .root
	Opens file selection dialog to find and open a ROOT file
 -> Open .hbook
	Opens file selection dialog to find and open an HBOOK file
 -> Online
	Opens hostname entry dialog ... Will try and access that host on
        port 9090 (currently using 9090 as default port)
 	If hostname:port, will try and access hostname on proper port 
        (Not Yet Implemented)
 -> Save
	Not Yet Implemented -> Idea:
		Will bring up a save dialog which will allow user to save 
		all opened histograms
 -> Exit
	Closes the program

Refresh Menu
 ->Not Yet Implemented -> Idea: (Radio Buttons)
     ->Stop Refresh
	 Stops the refreshing of online histograms by stopping the TTimer
     ->Refresh 1 sec  \
     ->Refresh 3 sec   |
     ->Refresh 5 sec   |-- Change TTimer time length (and start it)
     ->Refresh 10 sec /

Zones Menu 
  ->Not Yet Implemented -> Idea: (Radio Button)
     ->1x1
     ->1x2
     ->2x1
     ->2x2
     ->3x3
     -> ...
	Each of these will changes force all the new TCanvas() created to be 
	divided into zones
	If double clicked (TGListTree or TGListView) will create new canvas,
        unless option is changed in AddHist to Menu.
        If from context menu -> can overlay in current pad
                             -> can plot in current pad (removes old hist)
                             -> can create new canvas
                             -> can plot in next pad (if last pad ... plot 
                                in first pad)

AddHist to Menu:
  ->Not Yet Implemented -> Idea: (Radio Button)
      -> 4 Options:
	-> plot in new canvas
        -> plot in current pad
        -> plot in next pad
        -> overlay in current pad
      -> Depending on which one is checked the double click functionality 
         will change

Open Files Panel (TGListTree)
  ->Shows open files (offline and online) as well as TH*, TProfile*, TTree ...
  ->Need to add ContextMenus
	ContextMenu (depends on UserData)
	 ->Close Files (remove file from list)
	 ->Plot Options (for histograms) ->see AddHist to menu options
  ->Need to have: when item selected in TGListTree, items in TGListView
    are deselected

Open Histograms Panel (TGListView)
  ->Shows open histograms (i.e. goes over gROOT->GetListOfCanvases())
  ->Need to add ContextMenus
      ->Histogram stuff ->see AddHist to menu options
  ->Need to have: when item selected in TGListView, itesms in TGListTree
    are deselected

Buttons
  ->Not yet Implemented
  ->Refresh (goes over all open histograms)
  ->Banish 
     ->if histogram selected ... removes from associated Pad and 
       deletes from list (in TGListView)
     ->if file is selected in TGListTree ... removes file (may need to close 
       TTreeViewer ... but histograms are made persistent so no need to 
       close)
     ->Save same functionality as the File->Save
Entry  30 Jul 2003, Greg, , List of Development Components for MIROODAS 
Here is the list of components that must/should be developed for MIROODAS:

1. Peak Finding Panel (1D w/ TSpectrum, 2D w/ TSpectrum2 ... note 2D is not
functional yet)
    *THIS is a new feature*
2. Fit Panel
    *This will be a remake of the old feature ... with some improvements*
3. Draw Options Panel
    *This will be a remake of the old feature ... with some improvements*
4. Stat Option Panel 
    *THIS is a new feature*
5. TCanvas
    including: custum context menus which will associate with the new features
6. TTreeViewer
    including: necessary bug fixes and developments as discussd in the meeting
7. Attributes Panel
    *Remake all Attributes Panels and combine into one panel*
    Reply  30 Jul 2003, Greg, , List of Development Components for MIROODAS 
> 2. Improved Fit Panel
> 3. Improved Draw Options Panel
> 5. TCanvas updates
> 6. TTreeViewer updates
> 7. Improve Attributes Panel

What are these "improvements" and "updates"? We cannot plan without good data.

K.O.
Entry  29 Jul 2003, Konstantin, , Wednesday 10am meeting 
We will have the 10am meeting this Wednesday in the ISAC2 2nd floor kitchen.
Agenda:
 - progress reports
 - status of midas online connection (K.O.)
 - priority of improvements to the histogram viewer (TCanvas) and tree view
(TTreeViewer). (G.K.)
K.O.
Entry  29 Jul 2003, Konstantin, , test midas experiment 
I revived the test midas experiment on midtis06. We can start using it to
develop the online connection to the root gui. Here are the instructions
on running things:
 - login to midtis06
 - set ROOTSYS to /send/home/olchansk/daq/root
 - cd /send/home/olchansk/daq/root
 - ./start_daq (four xterm windows should open:
   1) mhttpd (on port 8080). Point a web browser to http://midtis06:8080
   2) odbedit
   3) a front end
   4) an analyzer)
 - run ~olchansk/daq/midas/linux/bin/rmidas
   enter "midtis06" in the "hostname" box.
   five histogram names should appear in the list on the left: CADC00
through 03 and ADCSUM. Click on the names to see the histograms.
 - start a run (from a web browser, or enter "start" in odbedit)
 - the frontend window should count 100 events/sec.
 - click on the rmidas "update" button, the counts should increment.
This is all done by vanilla ROOT and MIDAS.

The ROOT code to access the MIDAS histograms is in
~olchansk/daq/midas/src/rmidas.c, functions:
 - ConnectServer()
 - GetHistoList()
 - GetHisto()
 - ClearHisto()

K.O.
Entry  22 Jul 2003, Greg, , CVS 
miroodas code has been imported into the CVS and can be checkout

cvs -d /dasdevpc/cvsroot co miroodas

or

cvs -d gking@dasdevpc:/usr/local/cvsroot co miroodas
--using gking as an example user

Please see miroodas/doc/README.txt for more information on compiling

cheers,
Greg
Entry  21 Jul 2003, Konstantin, , meeting this Tuesday! 
We will have our regular meeting this Tuesday at 10am in the ISAC2 2nd 
floor kitchen. 
 
Agenda: 
 -review of assigned homework (I did most of mine!). 
 -layout of our cvs repository 
 
K.O. 
 
Entry  21 Jul 2003, Konstantin, , miroodas forum 
The URL for the MIROODAS forum is: http://daq.triumf.ca:8085/MIROODAS 
K.O. 
 
Entry  21 Jul 2003, Konstantin, , Account for Joe Chuma 
I created an account for Joe Chuma on the DAQ cluster. The home directory 
is /send/home/chuma. Joe, please contact me to learn your password. K.O. 
 
Entry  21 Jul 2003, Konstantin, , Account for Joe Chuma 
I created an account for Joe Chuma on the DAQ cluster. The home directory 
is /send/home/chuma. Joe, please contact me to learn your password. K.O. 
 
Entry  21 Jul 2003, Konstantin, , CVS repository 
I created a CVS repository for the ROOT GUI project: 
/dasdevpc/cvsroot/miroodas (dasdevpc:/usr/local/cvsroot/miroodas) 
 
K.O. 
Entry  21 Jul 2003, Konstantin, ,  
I created a CVS repository for the ROOT GUI project: 
/dasdevpc/cvsroot/rootgui (dasdevpc:/usr/local/cvsroot/rootgui) 
 
(should I rename it to cvsroot/miroodas?). 
 
K.O. 
 
ELOG V3.1.4-2e1708b5