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);
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