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