Hi Tommaso, Your histogram "hp" is created in the current directory by default (here your file hfile). When you close this file, the histogram is automatically deleted. see Users Guide: Chapter on Object Ownership page 101 You have two solutions: 1- create your histogram before opening hfile 2- remove the reference to this histogram from the current directory by calling TH1::SetDirectory(0); see the line in your code below If you opt for this option, you must find a way to get a pointer to your histogram later, such that you can delete it (to avoid a possible memory leak). Rene Brun Tommaso Chiarusi wrote: > > Dear Rooters, I cannot see the plot I draw() using the following procedure > that I put in my class' method Deco::PDistrib() (I generated Deco.C con > MakeClass) > > void Deco::PDistrib(double pmin, double pmax) > { > > TFile *hfile = new TFile("Pdist.root","RECREATE","DATA"); > > _pmin = pmin; _pmax=pmax; > Int_t nentries = Int_t(fChain->GetEntries()); > > TH1F *hp = new TH1F("hp","P distrib",_nbin,pmin,pmax); hp->SetDirectory(0); //<==================== > > double areamin=100000,areamax=0; > Int_t nbytes = 0, nb = 0; > for (Int_t jentry=0; jentry<nentries;jentry++) { > Int_t ientry = LoadTree(jentry); > nb = fChain->GetEntry(jentry); nbytes += nb; > // if (Cut(ientry) < 0) continue; > > hp->Fill(tp); > } > > hp->Write(); > hfile->Close(); > > TCanvas *nc = new TCanvas("nc"); > hp->Draw(""); > > } > > The fact is that the plot exist but does not appear in the canvas! > I think that the problem is in creating and closing of TFile *hfile. > I tried to change the position of the line > > TFile *hfile = new TFile("Pdist.root","RECREATE","DATA"); > > postponing it after the iteration over "jentry" but, naturally, it is the > same! > Neither mooving the lines > > TCanvas *nc = new TCanvas("nc"); > hp->Draw(""); > > out from the "scope" > > TFile *hfile = new TFile("Pdist.root","RECREATE","DATA"); > > ... > > hfile->Close(); > > but it yelded the same result: no plot on the screen. > > Why does it happen? > Which mistake do I commit? > > Thanks and Cheers, Tommaso
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:08 MET