Hi Davide, Replace the line: TH1F* ModRMS[i] = (TH1F*)gROOT->Get(name); by TH1F* ModRMS[i] = (TH1F*)f->Get(name); Rene Brun On Tue, 17 Sep 2002, Davide Gerbaudo wrote: > > Hi > I'm having some troubles opening some TH1F I saved in a file .root . > If I try to list objects it seems that they're in gDirectory really, and > even when I create pointers to access them it does not give any error > message. > But if I try to draw them it doesn't work and it says it's an illegal > pointer. I tought that I did it like in "A simple fitting example" but > maybe I'm forgetting something. > Thank you very much in advance > > Davide Gerbaudo > ___________________________________________________ > { > gROOT->Reset(); > > char name[50]; > int i,j,k; > int NbApv = 4; > > TH1F* ModRMS[4]; > > char *histosFileName; > histosFileName = "histoNOISE_090602_150833.root"; > > // Open the file containing histos > > TFile *f = new TFile(histosFileName, "READ"); > > //cout<<f.GetNkeys(); // here it seems to see objects > //f.ls(); > //gDirectory->ls(); > > //(h_ModMeanPed 0)->Draw(); // but I can't access directly to them > //TH1F *ModRMS = ((TH1F*)gROOT->FindObject("ModRMS 0"))->Draw(); > //-------------------------- > // creating pointers to histos in the file > //------------------------- > for(i=0;i<4;i++) > { > sprintf(&name[i], "h_ModRMS%2d", i); > TH1F* ModRMS[i] = (TH1F*)gROOT->Get(name); > } > //ModRMS[0]->Draw(); > // or > ModRMS[1]->Draw(); > f.Close(); > cout<<"\n"; > } > > >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:10 MET