Re: TColor problem?

From: Axel Naumann <Axel.Naumann_at_cern.ch>
Date: Mon, 16 Nov 2009 12:17:38 +0100


Hi Akira,

the issue with gPad is a limitation in the coordination between ROOT and CINT. ROOT tells CINT about gPad in a special way (because in fact it's not a global variable) - but it can currently only do that once gPad is != NULL. So the workaround for now is to do what Rene suggested.

You said that the additional run time is caused by some processes eating a lot of CPU time. Can you tell us (with the OS's process monitors) what these processes are?

Cheers, Axel.

Akira OKUMURA wrote on 11/16/2009 12:04 PM:
> Hello Rene,
>

>> I cannot reproduce your timing problem with ACLIC. I see a constant 
>> time for each execution.

>
> I added an instance of TStopwatch in the macro. This is the output. I
> removed some warnings for TCanvas and TH2D.
>
> root [0] .x color.C+
> Real time 0:00:02, CP time 0.300
> root [1] .x color.C+
> Real time 0:00:03, CP time 1.100
> root [2] .x color.C+
> Real time 0:00:04, CP time 2.550
> root [3] .x color.C+
> Real time 0:00:06, CP time 4.540
> root [4] .x color.C+
> Real time 0:00:09, CP time 6.960
>
> I confirmed that this problem happens on both Mac OS X and SL 4.6. I
> tried 5.25.02 and the current SVN. Configure options for Mac and SL are
>
> $ ./configure macosx
>
> and
>
> $ ./configure --enable-python --enable-pythia6 --with-pythia6-libdir=lib
>
> respectively. Can anyone reproduce this?
>
>> For the other problem, replace the statement
>>    can->cd(i+1)
>> by
>> gPad = can->cd(i+1);

>
>
> Thanks. It works. But actually I know that TPad::cd returns the pointer
> which should be gPad. I expected that TPad::cd automatically set the
> gPad to the pointer to the current pad even if I use CINT. This is also
> explained in the comment of TPad::cd.
> http://root.cern.ch/root/html/src/TPad.cxx.html#l0kMaE
>
> Regards,
>
> OKUMURA, Akira oxon_at_juno.phys.s.u-tokyo.ac.jp
> Department of Physics, The University of Tokyo
> 7-3-1 Hongo, Bunkyo-ku, Tokyo 113-0033
> TEL/FAX +81 3-5841-4173/4059
> Skype : okumura.akira
>
> On 2009/11/16, at 16:49, Rene Brun wrote:
>
>> I cannot reproduce your timing problem with ACLIC. I see a constant 
>> time for each execution.
>>
>> For the other problem, replace the statement
>>    can->cd(i+1)
>> by
>> gPad = can->cd(i+1);
>>
>> Rene Brun
>>
>> Akira OKUMURA wrote:
>>> Hello ROOTers,
>>>
>>> I attache a short macro which shows younger students in my lab how to 
>>> use different color palettes.
>>>
>>> When I run it using ACLiC, it works as I expected. But I have two 
>>> problems. I still do not know which lines cause this problems.
>>>
>>> $ root -n
>>> root [0] .x color.C+ <= runs properly
>>> Info in <TUnixSystem::ACLiC>: creating shared library 
>>> /Users/oxon/./color_C.so
>>>
>>> $ root -n
>>> root [0] .x color.C <= fails
>>> Error: non class,struct,union object $gPad used with . or -> color.C:68:
>>> *** Interpreter error recovered ***
>>>
>>> My questions are;
>>>
>>> Q1. I do not know why I cannot access gPad when I use CINT. What is 
>>> the problem in my macro?
>>>
>>> Q2. The process of root.exe becomes slowly (i.e. high CPU load), when 
>>> I execute the macro with ACLiC many times. What is the reason and how 
>>> can I remove it?
>>>
>>> e.g. try
>>> root [0] .x color.C+
>>> root [1] .x color.C+
>>> root [2] .x color.C+
>>> root [3] .x color.C+
>>> root [4] .x color.C+
>>> root [5] .x color.C+
>>> root [6] .x color.C+
>>> .....
>>>
>>> I am using
>>> - ROOT 5.24.00 + Mac OS X 10.5.8 (intel)
>>> - ROOT 5.24.00 + SL 4.6 (64 bit)
>>>
>>> Thank you in advance.
>>>
>>> Regards,
>>>
>>> OKUMURA, Akira oxon_at_juno.phys.s.u-tokyo.ac.jp
>>> Department of Physics, The University of Tokyo
>>> 7-3-1 Hongo, Bunkyo-ku, Tokyo 113-0033
>>> TEL/FAX +81 3-5841-4173/4059
>>> Skype : okumura.akira
>>

>
>
Received on Mon Nov 16 2009 - 12:16:06 CET

This archive was generated by hypermail 2.2.0 : Mon Nov 16 2009 - 17:50:02 CET