Dear Rooters, I came across a slight problem in accessing the gPad-pointer in one of my macros. The script below does not execute properly with my version of ROOT (3.01/06 on RedHat Linux 6.?). ROOT is unable to find or access the gPad-pointer: Error: non class,struct,union object $gPad used with . or -> FILE:tc.C LINE:15 Any ideas on what is causing this effect ? Cheers, Sven Schagen // Failing Macro void test1(void) { gROOT->Reset(); TCanvas c1("c1","test canvas",400,400); c1.Divide(2,2); TH1F* histo = new TH1F("histo","histo",1,1,2); histo->SetBinContent(1,10); for(Int_t i = 0; i < 4; i++){ c1.cd(i+1); if(i == 1) // Remove this statement, and the script works gPad->SetLogx(); histo->Draw(); } } The problem can be solved by doing the following: // Successfull Macro void test2(void) { gROOT->Reset(); TCanvas c1("c1","test canvas",400,400); c1.Divide(2,2); TH1F* histo = new TH1F("histo","histo",1,1,2); histo->SetBinContent(1,10); for(Int_t i = 0; i < 4; i++){ c1.cd(i+1); TPad* paddy = gPad; // Store the gPad pointer in a temp var. if(i==1) paddy->SetLogx(); histo->Draw(); } }
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:59 MET