Writing TPads into a root file

From: ROHLFS Reiner (Reiner.Rohlfs@obs.unige.ch)
Date: Mon Sep 14 1998 - 11:31:13 MEST


Hi ROOters,

please have a look to these two ROOT macros:

1) MakePads.C:
{
  gROOT->Reset();
 
// Create a new canvas.
  c1 = new TCanvas("Display","Display",10,10,300,200);

// make the first pad 
   pad1 = new TPad("Pad", "Pad", 0.1, 0.1, 0.5, 0.9);
   pad1->SetFillColor(3);
   pad1->Draw();
   pad1->cd();

// make the second pad 
   pad2 = new TPad("Pad", "Pad", 0.6, 0.4, 0.9, 0.7);
   pad2->SetFillColor(4);
   pad2->Draw();

   c1->SaveAs("pads.root");
}

and ReadPads.C:
{
  gROOT->Reset();

  TCanvas * c2;
  file = new TFile("pads.root", "READ", "no", 1);
  c2 = (TCanvas*)file->Get("Display");
  c2->Draw();

  file->Close();
} 

That is the sequence I call these macros:
root [1] .x MakePads.C
ROOT file: pads.root has been created
root [2] delete c1    
root [3] .x ReadPads.C

But now the pad2 is displayed beside the pad1 directly on the canvas c2. The
coordinates of pad2 (0.6, 0.4, 0.9, 0.7) are now relative to the canvas c2 and
not any more relative to the pad1 as defined in the MakePads.C macro.
Beside that the ExecuteEvent() - function of pad2 does not work any more after
reading the pads from the root file. ( The pad2 cannot be resized and removed
using the mouse and the menu of the right mouse button is lost.)

Cheers Reiner.



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:37 MET