Back Midas Rome Roody Rootana
  Root Display GUI, Page 1 of 7  Not logged in ELOG logo
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  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  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  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  24 May 2012, Konstantin Olchanski, Forum, test 
test of Roody forum email notification. 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.
    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, 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.
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  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  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  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  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  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.
ELOG V3.1.4-2e1708b5