Re: PROOF: TTree::Draw() strangeness with canvas handling

From: Gerardo Ganis <gerardo.ganis_at_cern.ch>
Date: Tue, 20 Jan 2009 18:43:26 +0100

   Dear Thiemo,

   The first problem is related to the way the autobin functionality works; it needs some minimal statistics

   to get synchronized between workers and 100 entries are currently not enough. We will provide a solution

   addressing the low statistic case. As a workaround, you can force the binning with something like

           t->Draw("var>>hnew(nbins,xmin,xmax)", "", "", 100);

   with nbins, xmin, xmax the values appropriate to your case.

   Note, however, that with autobin you will always depend on the order the data are processed; this is true also

   in the local (non-PROOF) case, changing, for example, the order of the files in your chain.

   The second observation is partially related to a bug and partially to a feature.

   The feature is that the first canvas that you get is the one created and used by the feedback mechanism

   which shows the histogram while it is filled. The final histogram drawing, when the query is finished,

   is done on the default canvas: if you create a second canvas from the file menu you change the default

   canvas and the final plot is going there.    The bug is that the temporary feedback objects are merged twice in some cases; this will be fixed asap.

   Thanks for reporting the problems.

   G. Ganis

Thiemo Nagel wrote:
> Hello,
>
> I noticed strange things when using the same TTree::Draw() with PROOF
> multiple times. Eg. when calling
>
> t->Draw("var", "", "", 100);
> t->Draw("var", "", "", 100);
> t->Draw("var", "", "", 100);
> t->Draw("var", "", "", 100);
> t->Draw("var", "", "", 100);
> t->Draw("var", "", "", 100);
> t->Draw("var", "", "", 100);
>
> the scaling of the x axis will vary between calls whereas I'd expect it
> to be identical every time.
>
> The situation gets worse when opening a second Canvas:
>
> t->Draw("var", "", "", 100);
> menu action: File ---> New Canvas
> t->Draw("var", "", "", 100);
>
> This time, the newly opened canvas will contain the histogram alright,
> but at the same time, the histogram is plotted a 2nd time inside the
> first canvas with all values being multiplied by a factor of two.
>
> How can that happen?
>
> BTW:
>
> t->SetProof(false);
>
> removes this kind of strange behaviour.
>
> Thank you and kind regards,
>
> Thiemo
>

-- 
+--------------------------------------------------------------------------+
  Gerardo GANIS    PH Department, CERN
        address    CERN, CH 1211 Geneve 23  
                   room: 32-RC-017, tel / fax: +412276 76439 / 69133
         e-mail    gerardo.ganis_at_cern.ch
+--------------------------------------------------------------------------+
Received on Tue Jan 20 2009 - 18:43:30 CET

This archive was generated by hypermail 2.2.0 : Mon Feb 02 2009 - 17:50:01 CET