Re: [ROOT] Histogram

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed Nov 27 2002 - 22:36:13 MET


Hi Giuseppe,

When you delete h1, you still have a reference in canvaslist to h1.
You show only a subset of your code, but you should do


  canvaslist.Remove(h1);
  delete h1;

Rene Brun

On Wed, 27 Nov 2002, [iso-8859-1] giuseppe.foggi@libero.it wrote:

> Hi, 
>  I have to read histograms by a file root e then I have to write they
>  into a second file root.
>  This is my script
>  .............
>  ............
>  TObjArray canvaslist;
>  TFile *filetotal=new TFile(nametotal->Data(),"RECREATE");
>  TFile *fileroot= new TFile(s.Data(),"READ");
>  TIter next(fileroot->GetListOfKeys());
>  TKey *key;
>  while (key=(TKey*)next())
>  {
> 	fileroot->cd();
> 	TObject *obj= key->ReadObj();
> 	if (obj->IsA()->InheritsFrom("TH1"))
> 	{
> 	  TH1F *h1=(TH1F*)obj;
> 	  canvaslist.Add(h1);
> 	  cout<<"Aggiunto Histo "<<key->GetClassName()<<"  alla posizione
>  "<<count<<endl;
> 	  count++;
> 	  filetotal->cd();
> 	  h1->Write();
> 	  delete h1;
> 	}
> 	
>  }
>  ....................
>  .............
>  
>  So when I try to Draw histogram stored in the second file, I get
>  "segmentation violation" ,why?
>  Thank you.
>  
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:21 MET