problems with ROOT

From: Ye Shuwei (yesw@ihp.phys.ethz.ch)
Date: Sun Aug 30 1998 - 14:06:50 MEST


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
> 



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:37 MET