pointer defined but ROOT complain "not defined"

From: wxie <wxie_at_purdue.edu>
Date: Thu, 5 Jan 2012 17:40:53 -0500


I run the following macro producing a file "oo.root".

{

     TFile f("oo.root", "recreate");
     TH1F* h = new TH1F("h", "", 1, 0, 1);
     h->Fill(0.5);
     h->Sumw2();

     TH1F* h0 = new TH1F("h0", "", 1, 0, 1);
     h0->Sumw2();
     h0->Fill(0.5);

     TH1F* h1 = new TH1F("h1", "", 1, 0, 1);
     h1->Sumw2();
     h1->Fill(0.5);

     h->Write();
     h0->Write();
     h1->Write();
     f.Close();

}

then I run the following macro:
{

     TFile f("oo.root");
     h->Divide(h0);
     h->Divide(h1);

}

and got an error message:

root.exe [1]     h->Divide(h0);
root.exe [2]     h->Divide(h1);

Error: Symbol h1 is not defined in current scope (tmpfile):1: *** Interpreter error recovered ***

People usually bypass it by defining another pointer, e.g. the following macro:
{

     TFile f("oo.root");
     h->Divide(h0);
     TH1F* h2 = h1;
     h->Divide(h2);

}

Is there a way not to redefine this new pointer?

Thanks
--Wei Received on Thu Jan 05 2012 - 23:41:05 CET

This archive was generated by hypermail 2.2.0 : Fri Jan 06 2012 - 05:50:01 CET