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