Re: [ROOT] Updating and saving a canvas

From: Alberto Garcia Raboso (Alberto.Garcia.Raboso@cern.ch)
Date: Wed Sep 18 2002 - 14:21:20 MEST


Hi Rene,

The problem remains... :-(

Rene Brun wrote:
> 
> Hi Alberto,
> 
> When you call pCanv->Update(), pCanv looks for all subpads
> that have been modified and redraw only these pads.
> In your case with a pad inside the canvas, you have to
> set the "Modified" bit in the current pad.
> Add the line
>   pPad->Modified();
> before calling pCanv->Update();
> 
> Rene Brun
> 
> On Wed, 18 Sep 2002, Alberto Garcia Raboso wrote:
> 
> > Hi ROOTers,
> >
> > The following piece of code tries to:
> >    * Create one canvas, and a pad inside.
> >    * Draw a graph, update the canvas and save it.
> >    * Clear the pad.
> >    * Draw another graph, update the canvas and save it.
> >    * etc.
> >    * clear the screen and free memory
> > The problem is that when I call pCanv->Update() for the first time, ROOT
> > begins to do it while the script goes on running, so calling several
> > times pCanv->SaveAs(...) before finishing the first update of the
> > Canvas. Thus some of the files contain an empty canvas, while others
> > have a semi-drawn one.
> >
> > It seems like updating the canvas uses a thread independent from the one
> > that runs the script... is it right? Does anybody know how to make ROOT
> > update completely the Canvas before executing the next line of code?
> >
> > Thanks in advance,
> >
> > Alberto
> >
> > THE CODE:
> >
> > //
> > // Create Canvas and Pad
> > //
> > TCanvas *pCanv = new TCanvas("pCanv", "" ,200, 100, 1100, 800);
> > TPad *pPad = new TPad("pPad", "", 0.03, 0.03, 0.97, 0.97);
> > pCanv->SetFillColor(10);
> > pCanv->SetGrid();
> >
> > //
> > // Draw fpScatter
> > //
> > TH1F *GraphFrame = pPad->DrawFrame(fpCentral->GetPlotLimXMin(),
> >       fpCentral->GetPlotLimYMin(), fpCentral->GetPlotLimXMax(),
> >       fpCentral->GetPlotLimYMax(), fHistTitle.Data());
> > GraphFrame->GetXaxis()->SetTitle("#phi_{b} (rad/512)");
> > GraphFrame->GetXaxis()->CenterTitle();
> > GraphFrame->GetYaxis()->SetTitle("#Delta#phi (rad/4096)");
> > GraphFrame->GetYaxis()->CenterTitle();
> > fpScatter->SetMarkerStyle(1);
> > fpScatter->SetMarkerSize(0.35);
> > fpScatter->SetMarkerColor(4);
> > fpScatter->Draw("P");
> > pCanv->Update();
> > pCanv->SaveAs( (const Char_t*) ( TString("Sc") + fFileName +
> >       TString(".ps") ) );
> > pPad->Clear();
> >
> > //
> > // Draw fpHist
> > //
> > fpHistPt->SetStats(kFALSE);
> > fpHistPt->GetXaxis()->SetTitle("p_{t} (GeV/c)");
> > fpHistPt->GetXaxis()->CenterTitle();
> > fpHistPt->GetYaxis()->SetTitle("Number of hits");
> > fpHistPt->GetYaxis()->CenterTitle();
> > fpHistPt->Draw();
> > pCanv->Update();
> > pCanv->SaveAs( (const Char_t*) ( TString("hPt") + fFileName +
> >       TString(".ps") ) );
> > pPad->Clear();
> >
> > ... more like this ...
> >
> > //
> > // Clear screen
> > //
> > delete pPad;
> > delete pCanv;
> >
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > Alberto Garcia Raboso
> > CERN / EP
> > CH-1211 Geneva 23, Switzerland
> > Office 40-2B-19 (+41 22 76 71626)
> > E-Mail: Alberto.Garcia.Raboso@cern.ch
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > Well, farewell, my hobbits! You should come safe to your own
> > homes now, and I shall not be kept awake for fear of your
> > peril. We will send word when we may, and some of us may yet
> > meet at times; but I fear that we shall not all be gathered
> > together ever again.
> >
> >                       The return of the King. J.R.R. Tolkien
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Alberto Garcia Raboso
CERN / EP
CH-1211 Geneva 23, Switzerland
Office 40-2B-19 (+41 22 76 71626)
E-Mail: Alberto.Garcia.Raboso@cern.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Well, farewell, my hobbits! You should come safe to your own
homes now, and I shall not be kept awake for fear of your
peril. We will send word when we may, and some of us may yet
meet at times; but I fear that we shall not all be gathered
together ever again.

                      The return of the King. J.R.R. Tolkien
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:10 MET