Marco,
When you close a TFile, all histograms associated with this file are
deleted.
Remember that, by default, histograms are created in the current
directory
(in your case the TFile).
You can add the statement
h2->SetDirectory(0);
after your statement:
TH1F *h2 = (TH1F*) hist->Clone();
In this case h2 will not be associated with any directory and closing
the file will not delete h2.
Rene Brun
Marco van Leeuwen wrote:
>
> Hi,
>
> I read the following:
>
> ------------- Start Roottalk digest
>
> Sean Kelly wrote:
> >
> > Hi Rooters,
> >
> > I realize this has been the subject of previous posts. My question is
> > does the code frag below represent the simplest way to duplicate
> > a histogram ?
> >
> > TH1F *vxDHi = (TH1F*) vx->Clone();
> > vxDHi->SetName("vxDHi");
> >
> > thanks
> >
> > Sean Kelly
>
> Yes, This is the recommended way. TH1::Clone make sure that all the data
> structure supported by a TH1 object is copied.
>
> Rene Brun
>
> -------------- End Roottalk digest
>
> So, if a file named test.root contains a histogram called hist, the
> following should work:
>
> TFile f("test.root");
> TH1F *h2 = (TH1F*) hist->Clone();
> h2->SetName("h2");
> h2->Draw();
> f.Close();
>
> BUT, the histogram disappears... Why????
>
> (Using root 2.21/08 on Linux)
>
> Marco van Leeuwen
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:37 MET