Hi Vic, I do not remember having changed something in the logic with Postscript since a long time. Look at URL: http://root.cern.ch/HowtoPS.html for an example when the canvas is divided. I have modified your macro below accordingly. I could not test it because I do not have your data file, but it should work. Rene Brun On Wed, 19 Jan 2000, Victoria Anne Wright wrote: > I have a macro that I was using succesfully before Christmas (enclosed) > and before version 2.23/10. When I tried to use it again today I have > found that the postscript files contain about 1000 blank pages. I did > not > have this problem before. I am now trying to run on version 2.22/10 and > now receive the error > > *** Break *** segmentation violation > Root > Function regResid_P() busy flag cleared > > before the macro is due to make it's first plots. > > Could you please tell me what I am doing wrong? I am running on Linux. > > Thanks > Vic > > > void regResid_P(int job){ > Int_t id,RegR1, RegR2,RegR3, RegP1, RegP2, RegP3; > char outps[500]; > char s3[20]="_reg.ps"; > > sprintf(outps,"section4_P.ps"); > TPostScript myps(outps,111); > myps.Range(16,24); > > > TCanvas *c1 = new TCanvas("c1","Check",200,10,700,900); > > > printf(" Job#=%d, vics_section4\n",job); > char filename[500]; > char s1[]="/vics_section4.root"; > char s2[]="_link.root"; > sprintf(filename,"LSFJOB_%d%s",job,s1); > printf(" filename=%s\n",filename); > // Display the result. > TFile ff (filename); > > > > gStyle->SetOptStat(0); > gStyle->SetOptFit(111111); > TH2F *histo; > char histoname[100]; > > > Bool_t iplot=kFALSE; > // // divide canvas outside the loops <============================= c1->Divide(2,3); > for (RegR1=0;RegR1<4;RegR1++){ > for (RegR2=0;RegR2<4;RegR2++){ > for (RegR3=0;RegR3<4;RegR3++){ > for (RegP1=0;RegP1<2;RegP1++){ > for (RegP2=0;RegP2<2;RegP2++){ > for (RegP3=0;RegP3<2;RegP3++){ > > > printf("combination %d %d %d %d %d %d > \n",RegR1,RegR2,RegR3,RegP1,RegP2,RegP3); > >// c1->Clear(); //<=====================the two lines replaced >// c1->Divide(2,3); c1->cd(); //<============== myps.NewPage(); //<============ > > for (id=2;id<8;id++){ > > sprintf (histoname, > "RegionResidualsPhi%d%d%d%d%d%d%d",id,RegR1,RegR2, > RegR3,RegP1,RegP2,RegP3); > > histo = (TH2F *)ff->Get(histoname); > > if (histo!=0) { > > c1->cd(id-1); > histo->Draw("box"); > c1->Update(); > > } > //getchar(); > } >// c1->Clear(); //<========== two lines replaced >// c1->Divide(2,3); c1->cd(); //<================ myps.NewPage(); //<=============== > > for (id=2;id<8;id++){ > > sprintf (histoname, > "RegionResidualsPhi%d%d%d%d%d%d%d",id,RegR1,RegR2, > RegR3,RegP1,RegP2,RegP3); > > histo = (TH2F *)ff->Get(histoname); > > if (histo!=0) { > c1->cd(id-1); > TH1D *newstuff = histo-> ProjectionY("Projection", 0, 100, > "E"); > newstuff.Draw(); > newstuff.Fit("gaus"); > > c1->Update(); > > } > //getchar(); > } > } > } > } > } > } > } > > myps.Close(); > // c1->Print(outps); > } >
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:17 MET