Re: [ROOT] Bug in Macros generated by SaveAs *.C

From: Ilka Antcheva (Ilka.Antcheva@cern.ch)
Date: Mon Jul 28 2003 - 11:51:01 MEST


Hi Andreas,

There is no problem in the generating macro if you write
the histo + canvas names without spaces.

Best regards, Ilka

Andreas Zoglauer wrote:

> Hello!
>
> When I try to save a canvas as a macro (SaveAs --> *.C or the
> SaveSource() function) then the interpreter can not read the file due to
> several "problems".
>
> Let's look at an example:
>
> //-------------------------------------------------------------------
> void Bug()
> {
>    float x, y;
>
>    TH2D* Hist =
>      new TH2D("MyHistogram", "A 2D Histogram", 3, -5, 5, 3, -5, 5);
> <==== no spaces in histo name
>
>    int c = 0;
>    const int MaxCounter = 10000;
>    for (c = 0; c < MaxCounter; ++c) {
>      gRandom->Rannor(x, y);
>      Hist->Fill(x, y);
>    }
>
>    TCanvas* Canvas = new TCanvas("MyCanvas");   <==== no spaces in canvas
> name
>    Hist->Draw("CONT4");
>    Canvas->Update();
>    Canvas->SaveSource("Bug_saved.C");
> }
> //------------------------------------------------------------------
>
> This macro generates another macro out of a canvas:
>
> The resulting macro Bug_saved.C looks like this:
>
> {
> //=========Macro generated from canvas: My Canvas/
> //=========  (Mon Jul 28 11:14:14 2003) by ROOT version3.05/07
>     TCanvas *My Canvas = new TCanvas("My Canvas", "",8,8,699,499);
>     My->Range(-0.721689,-0.721815,0.721689,0.721815);
>     TView *view = new TView(1);
>     view->SetRange(-5,-5,0,5,5,9073.63);
>     My->SetBorderSize(2);
>     My->SetFrameFillColor(0);
>
>     TH1 *A 2D Histogram = new TH2D("A 2D Histogram","A 2D
> Histogram",3,-5,5,3,-5,5);
>     A 2D Histogram->SetEntries(10000);
>     A 2D Histogram->SetBinContent(6,20);
>     A 2D Histogram->SetBinContent(7,466);
> // ....
>
> Obviously it has several problems:
>
> 1. The histogram name and the canvas contains spaces:
>     TCanvas *My Canvas = new TCanvas("My Canvas", "",8,8,699,499);
>     TH1 *A 2D Histogram = ...
>     That's obviouly a bug!
>     During the name generation, they should be replaced by e.g.
>     underscores.
> 2. Not covered by the above example is another problem:
>     It is not checked whether or not the canvas and histogram have the
>     same name!
>
> Andreas



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:14 MET