Re: [ROOT] Problem with TGraph in a TClonesArray (under ROOT 3.03/09)

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri Sep 20 2002 - 14:20:52 MEST


Hi Tommaso,

gra->GetHistogram() will return 0 if you have not yet drawn the graph.

I have the impression that you try to emulate TMultiGraph.

Rene Brun

On Fri, 20 Sep 2002, Tommaso Chiarusi wrote:

> Dear Rooters, with ROOT 3.03/09 i try to manage an array of TGraphs in 
> order to retrieve the maximum for each of the TGraphs.
> 
> So first I get the TClonesArray:
> 
> 
> int entries = 100;// number of points for each graph
> 
>  double *bsua = new double[entries]; // abscisses of the graph
>  double *aree = new double[entries]; // ordinates  "
> 
> 
> int nd = 4; // number of TGraphs
> 
> TClonesArray g("TGraph",nd);
>  
> 
>  for (int lo=0;lo<nd;lo++){
> 
>    for (Int_t ki=0;ki<entries;ki++)
>      {
>        aree[ki]=GetOrdinates(lo); // these are two function that gets 
> the appropriate data
>        bsua[ki]=GetAbscisses(lo);
>      }
> 
>    new(g[lo]) TGraph(entries,bsua,aree);   
>    
>    
>  }
> 
>  TGraph *gra;
> 
>  TIter git(&g);
> 
>  TCanvas *c = new TCanvas("ZoneAree");
>  c->Draw();
>  
>  double io;
>  while(gra = (TGraph*)git.Next())
>    {
>      TH1F *h = gra->GetHistogram();
>       cout<<h->GetMaximum()<<endl;  
>    }
>  
> 
> 
> The error I get is:
> 
> Error: illegal pointer to class object h 0x0 145  
> FILE:Analisi_zonearea.C LINE:112
> (class G__CINT_ENDL)141368720
> *** Interpreter error recovered ***
> 
> Note, that if I draw the TGraph, it works!!!!!!
> Where do I commit a mistake?
> Thank you!!!!!
> 



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