Hi, Rooters, A macro names threezoom which make three TGraph pictures zooming in syn can work well on interpreted mode of root 2.23/12 of AIX4.3 as void threezoom() { gROOT->Reset(); TCanvas *c1 = new TCanvas("c1","TCanvas",250,200,990,720); pad1 = new TPad("pad1","Window N1",0.02,0.66,0.98,0.96,18); pad2 = new TPad("pad2","Window N2",0.02,0.34,0.98,0.64,18); pad3 = new TPad("pad3","Window N3",0.02,0.02,0.98,0.32,18); pad1->SetGrid(); pad1->SetBottomMargin(0.19); pad2->SetGrid(); pad2->SetBottomMargin(0.19); pad3->SetGrid(); pad3->SetBottomMargin(0.19); pad1->Draw(); pad2->Draw(); pad3->Draw(); pad1->cd(); Float_t x[100], y[100]; Int_t n = 20; for (Int_t i=0;i<n;i++) { x[i] = i*0.1; y[i] = 10*sin(x[i]+0.2); } gr1 = new TGraph(n,x,y); gr1->Draw("AC*"); gPad->AddExec("ex","zoompad(gr1,gr2)"); gPad->AddExec("ex","zoompad(gr1,gr3)"); pad2->cd(); Float_t x[100], y[100]; Int_t n = 20; for (Int_t i=0;i<n;i++) { x[i] = i*0.1; y[i] = 10*cos(x[i]+0.2); } gr2 = new TGraph(n,x,y); gr2->Draw("AC*"); pad3->cd(); Float_t x[100], y[100]; Int_t n = 20; for (Int_t i=0;i<n;i++) { x[i] = i*0.1; y[i] = x[i]; } gr3 = new TGraph(n,x,y); gr3->Draw("AC*"); c1->Update(); } void zoompad(TGraph *tgr1, TGraph *tgr2) { int event = gPad->GetEvent(); if (event != 11) return; TObject *select = gPad->GetSelected(); if (!select) return; TAxis *axis1 = tgr1->GetXaxis(); Int_t binmin = axis1->GetFirst(); Int_t binmax = axis1->GetLast(); Float_t xmin = axis1->GetBinLowEdge(binmin); Float_t xmax = axis1->GetBinLowEdge(binmax); TAxis *axis2 = tgr2->GetXaxis(); Int_t newmin = axis2->FindBin(xmin); Int_t newmax = axis2->FindBin(xmax); axis2->SetRange(newmin,newmax); if (gr2){ pad2->Modified(); pad2->Update(); } if(gr3){ pad3->Modified(); pad3->Update(); } } But there aer always error messages if the same codes (sure, some statements sould be changed) works on compiled mode on same system: *** Interpreter error recovered *** Error: No symbol gr1 in current scope FILE:/tmp/oeaPlnizS_cint LINE:1 Error: No symbol gr3 in current scope FILE:/tmp/oeaPlnizS_cint LINE:1 Does it means that function AddExec just can work under interpreted mode and can not work under compiled mode? Thanks for any help. Best, ZYZ ------ Yongzhao Zhou, KLOE, LNF, INFN, Italy Tel:39-06-94032696 Fax:39-06-94032427
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:21 MET