Re: [ROOT] continue statement in interpreted code??

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Aug 16 2001 - 23:18:34 MEST


I cannot reproduce your problem.
Plesae indicate which version you use.

Rene Brun

On Thu, 16 Aug 2001, Mike Kordosky wrote:

> Hi Rene,
> 
> On Thu, 16 Aug 2001, Rene Brun wrote:
> 
> I don't care about seeing those histograms after the function is done. I
> understand that they go out of scope.  This is sample code designed to
> illustrate a problem that I do not understand.  My question has to do with
> the continue statement.  If I leave it in, CINT complains:
> 
> Error: non class,struct,union object $gPad used with . or ->
> FILE:TestBug.C LINE:24
> *** Interpreter error recovered ***
> 
> Commenting out the continue statement I see that the histograms are filled
> 1000 times and the screen updates once every 10 fills.  Yes, at the end of
> the function call everything disappears.
> 
> mike
> 
> 
> > Mike,
> > You have many scoping problems in your macro. You should create
> > your objects in the heap if you want to still see them once
> > the macro has finished.
> > You will find below a simplification of your macro:
> >
> > Rene Brun
> >
> >
> > void test_bug(){
> >         TH1F *h1 = new TH1F("h1", "h1", 100, 1, 100);
> >         TH1F *h2 = new TH1F("h2", "h2", 100, 100, 200);
> >         TCanvas *can = new TCanvas("can", "can", 600, 800);
> >         can->Divide(1,2);
> >         can->cd(1);
> >         TPad *pad1 = (TPad*)gPad;
> >         h1->Draw();
> >         can->cd(2);
> >         TPad *pad2 = (TPad*)gPad;
> >         h2->Draw();
> >         Double_t result = 0;
> >         Int_t i = 0;
> >         while(i<1000){
> >                 result = gRandom->Gaus(50, 5);
> >                 if(result < 50){
> >                         i++;
> >                         continue;
> >                 }
> >                 h1->Fill(result);
> >                 h2->Fill(result*2);
> >                 if(i%10 == 0){
> >                         pad1->Modified();
> >                         pad2->Modified();
> >                         can->Update();
> >                 }
> >                 i++;
> >         }
> > }
> >
> >
> > On Thu, 16 Aug 2001, Mike Kordosky wrote:
> >
> > > Hi,
> > >
> > > I have the following macro.  The macro works as expected if I comment out
> > > the continue statement.  When I leave continue in, CINT complains:
> > >
> > > root [1] test_bug();
> > > Error: non class,struct,union object $gPad used with . or ->
> > > FILE:TestBug.C LINE:24
> > >
> > > void test_bug(){
> > >         TH1F h1("h1", "h1", 100, 1, 100);
> > >         TH1F h2("h2", "h2", 100, 100, 200);
> > >         TCanvas can("can", "can", 1000, 1000);
> > >         can.Divide(1,2);
> > >         can.cd(1);
> > >         h1.Draw();
> > >         can.cd(2);
> > >         h2.Draw();
> > >         Double_t result = 0;
> > >         Int_t i = 0;
> > > //      for(Int_t i = 0; i<1000; i++){
> > >         while(i<1000){
> > >                 result = gRandom->Gaus(50, 5);
> > >                 if(result < 50){
> > >                         i++;
> > >                         continue;
> > >                 }
> > >                 h1.Fill(result);
> > >                 h2.Fill(result*2);
> > >                 if(i%10 == 0){
> > >                         can.cd(1);
> > >                         h1.Draw();
> > >                         gPad->Update();
> > >                         can.cd(2);
> > >                         h2.Draw();
> > >                         gPad->Update();
> > >                 }
> > >                 i++;
> > >         }
> > > }
> > >
> > >
> > > Is this a bug, or am I missing something?
> > >
> > > Mike Kordosky
> > >
> > > --
> > > Graduate Research Assistant  // High Energy Physics Lab
> > > kordosky@hep.utexas.edu     // University of Texas at Austin
> > > kordosky@fnal.gov	   //
> > > ph: (512) 471-8426 (RLM Lab, Office)
> > >     (512) 475-8673 (ENS Lab)
> > >
> > >
> > >
> > >
> >
> 
> -- 
> Graduate Research Assistant  // High Energy Physics Lab
> kordosky@hep.utexas.edu     // University of Texas at Austin
> kordosky@fnal.gov	   //
> ph: (512) 471-8426 (RLM Lab, Office)
>     (512) 475-8673 (ENS Lab)
> 



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