It would be so much simpler if you could send a test program that I can use to see what you are doing wrong. Rene Brun On Wed, 18 Sep 2002, Alberto Garcia Raboso wrote: > 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