Re: [ROOT] Divide pad in compiled mode

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon May 21 2001 - 14:35:37 MEST


Hi Ivan,

I have cleaned and simplified your macro. See below

Rene Brun

int ctest()  {
  int n=0,m=0,k=0,channel; 
  TCanvas *c1 = new TCanvas("c1","Dynamic filling example",950,800); 
  c1->Divide(2,2); 
  c1->SetFillColor(42); 
  c1->GetFrame()->SetFillColor(21); 
  c1->GetFrame()->SetBorderSize(6); 
  c1->GetFrame()->SetBorderMode(-1); 
  c1->cd(1); 
  TH1F *h1= new TH1F("h1","test1",100,-3,3); 
  TH1F *h2= new TH1F("h2","test2",100,-3,3); 
  TH1F *h3= new TH1F("h3","test3",100,-3,3); 
  TH1F *h4= new TH1F("h4","test4",100,-3,3); 
  while (m!=1){
    h1->FillRandom("gaus",10); 
    h2->FillRandom("gaus",2); 
    h3->FillRandom("gaus",50); 
    h4->FillRandom("gaus",20); 
    h1->Draw(); 
    c1->cd(2); 
    h2->Draw(); 
    c1->cd(3); 
    h3->Draw(); 
    c1->cd(4); 
    h4->Draw(); 
    c1->cd(1); 
    c1->Update(); 
    gSystem->ProcessEvents(); 
    if (gROOT->IsInterrupted()) m=1;  //if "view - interrupt" is selected 
  }
}



Ivan Storgaard Vogelius wrote:
> 
> Hi!
>         The following peace of code works like a blizz in interpreter
> mode, but when compiling the canvas is not divided. I can't see why.
> 
> thanks for any help
>         Ivan
> 
> int ctest()  {
>   int n=0,m=0,k=0,channel;
>   TCanvas *c1 = new TCanvas("c1","Dynamic filling example",950,800);
>   c1->Divide(2,2);
>   c1->SetFillColor(42);
>   c1->GetFrame()->SetFillColor(21);
>   c1->GetFrame()->SetBorderSize(6);
>   c1->GetFrame()->SetBorderMode(-1);
>   TPad *c1_1 = (TPad*)(c1->GetPrimitive("c1_1")); //should be TCanvas*...?
>   TPad *c1_2 = (TPad*)(c1->GetPrimitive("c1_2"));
>   TPad *c1_3 = (TPad*)(c1->GetPrimitive("c1_3"));
>   TPad *c1_4 = (TPad*)(c1->GetPrimitive("c1_4"));
>   c1_1->Draw();
>   c1_2->Draw();
>   c1_3->Draw();
>   c1_4->Draw();
>   c1->cd(1);
>   TH1F *h1= new TH1F("h1","test1",100,-3,3);
>   TH1F *h2= new TH1F("h2","test2",100,-3,3);
>   TH1F *h3= new TH1F("h3","test3",100,-3,3);
>   TH1F *h4= new TH1F("h4","test4",100,-3,3);
>   for (;;){
>   while (m!=1){
>     h1->FillRandom("gaus",10);
>     h2->FillRandom("gaus",2);
>     h3->FillRandom("gaus",50);
>     h4->FillRandom("gaus",20);
>     h1->Draw();
>     //c1_2->Draw();
>     c1->cd(2);
>     h2->Draw();
>     //c1_3->Draw();
>     c1->cd(3);
>     h3->Draw();
>     //c1_4->Draw();
>     c1->cd(4);
>     h4->Draw();
>     c1->cd(1);
>     c1->Update();
>     gSystem->ProcessEvents();
>     if (gROOT->IsInterrupted()) m=1;  //if "view - interrupt" is selected
> in window: exit loop
>   }



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:46 MET