problems with ROOT

Ye Shuwei (yesw@ihp.phys.ethz.ch)
Sun, 30 Aug 1998 14:06:50 +0200 (CEST)


Hi, Fons,

I am meeting several problems in ROOT:

1) problem with IdleTimer in TApplication (for ROOT2.00/09)

Yes, I can invoke TROOT::Idle to enable or disable system Idle Handling.
But gROOT.Idle(0,"printf(\"aap\\n\");") also invoke RemoveIdleTimer of
Application to disable system Idle Handling, in which fIdleTimer and
fIdleCommand are deleted.

//____________________________________________________________________________
void TApplication::RemoveIdleTimer()
{
// Remove idle timer. Normally called via TROOT::Idle(0).

if (fIdleTimer) {
// timers are removed from the gSystem timer list by their dtor
SafeDelete(fIdleTimer);
delete [] fIdleCommand;
}
}

In case I only want to toggle system Idle Handling after SetIdleTimer,
I prefer to using StartIdleing and StopIdleing in which fIdleTimer and
fIdleCommand would not be deleted. In the source code, it reads,
//____________________________________________________________________________
void TApplication::StartIdleing()
{
// Call when system starts idleing.

if (fIdleTimer) {
fIdleTimer->Reset();
gSystem->AddTimer(fIdleTimer);
}
}
//____________________________________________________________________________
void TApplication::StopIdleing()
{
// Call when system stops idleing.

if (fIdleTimer)
gSystem->RemoveTimer(fIdleTimer);
}

But it does not work as expected in the source code.

2) Problem with TMarker3DBox::Draw (for ROOT2.00/09)

When the size of TMarker3DBox is quite large, its position in drawing is
a little shifted, the larger its size is, the more shift is.

3) Problem with rootcint at Linux for ROOT2.00/10 and 11

It always leads to "Segmentation fault" when invoking rootcint to
generate dictionary. The example I tried is "rootcint -f EventCint.cxx -c
Event.h LinkDef.h" which is in $ROOTSYS/test. The systems I tested are
RedHat4.1 and S.u.S.E-5.3

Thanks for attention --Shuwei

On Fri, 28 Aug 1998, Fons Rademakers wrote:

> Hi ye,
>
> use the idle timer via the TROOT::Idle() interface (and see there also
> how the StartIdleing() and StopIdleing() should be used). Example:
>
> gROOT.Idle(1,"printf(\"aap\\n\");")
>
> to disable:
>
> gROOT.Idle(0,"printf(\"aap\\n\");")
>
> Cheers, Fons.
>
>
> Ye Shuwei wrote:
> >
> >
> > In addition, I found that TApplication::StartIdleing() and StopIdleing()
> > do not work under interactive ROOT, I have not checked for batch mode. So I
> > have to use RemoveIdleTimer each time when I want to stop the IdleTimer, and
> > use SetIdleTimer to restart IdleTimer. I checked the corresponding source
> > code, it should work.
> >
> > Best regards --Shuwei
>
> --
> Org: CERN, European Laboratory for Particle Physics.
> Mail: 1211 Geneve 23, Switzerland Phone: +41 22 7679248
> E-Mail: Fons.Rademakers@cern.ch Fax: +41 22 7677910
>