RE: FW: [ROOT] Problem encountered processing mouse event in win32

From: Ed Oltman (eoltman@imago.com)
Date: Fri Jan 04 2002 - 18:17:19 MET


Rene,
  Yes, that works.. Thank you!
Ed

> -----Original Message-----
> From: Rene Brun [mailto:brun@pcbrun.cern.ch]
> Sent: Friday, January 04, 2002 11:06 AM
> To: Ed Oltman
> Cc: roottalk@pcroot.cern.ch
> Subject: Re: FW: [ROOT] Problem encountered processing mouse event in
> win32
>
>
> Hi Ed,
>
> I have no way to test your case under Windows until I am back to CERN next
> week.
> Meanwhile, could you replace the statement:
>                 parent->Fit("gaus","w","",roiLo,roiHi);
> by
>                 parent->Fit("gaus","w","same",roiLo,roiHi);
>
> Rene Brun
>
> On Fri, 4 Jan 2002, Ed Oltman wrote:
>
> > Rene,
> >
> >   Even when I remove the following code
> >
> >  		gPad->DeleteExec("ex1");
> >
> > from the running TExec object, the system still hangs if a Fit method is
> > called. Is there a way I might get around this problem?   Thanks!
> >
> >
> > Ed Oltman
> >
> >
> >
> > -----Original Message-----
> > From: Rene Brun [mailto:brun@pcbrun.cern.ch]
> > Sent: Friday, January 04, 2002 3:48 AM
> > To: Ed Oltman
> > Cc: roottalk@pcroot.cern.ch
> > Subject: Re: [ROOT] Problem encountered processing mouse event in win32
> >
> >
> > Ed,
> >
> > In your example, you delete the TExec object. This is illegal while
> > executing the TExec object itself.
> >
> > Rene Brun
> >
> > On Thu, 3 Jan 2002, Ed Oltman wrote:
> >
> > > Hello,
> > >
> > > Are there documented limitations on the types of things that
> can be done
> > in
> > > event handlers in root?  I have a handler that allows interactive
> > selection
> > > of a region of interest of a histogram using the mouse: One
> performs the
> > > same mouse operations that are used for zoom along the
> x-axis.  It works
> > > fine, until I add the fitting call - it performs the fit but never
> > returns.
> > > (comment out the fit and it works fine)  I use hsimple.root in the
> > > tutorials - any TH1F will work
> > >
> > > Here is my root session:
> > >
> > > root [0] TFile f("hsimple.root")
> > > root [1] hpx->Draw()
> > > <TCanvas::MakeDefCanvas>: created default TCanvas with name c1
> > > root [2] c1->AddExec("ex1",".x event.c")
> > > root [3]  ROI limits: -1.280000 1.280000
> > >  FCN=21723.2 FROM MIGRAD    STATUS=CONVERGED      73 CALLS          74
> > TOTAL
> > >                      EDM=7.24727e-008    STRATEGY= 1  ERROR MATRIX
> > > UNCERTAINTY   1.4 per cent
> > >   EXT PARAMETER                                   STEP         FIRST
> > >   NO.   NAME      VALUE            ERROR          SIZE      DERIVATIVE
> > >    1  Constant    7.95014e+002  2.94883e-001  5.95042e-005
> 3.14561e-004
> > >    2  Mean        9.96928e-003  4.72499e-004 -1.30032e-006
> 1.79069e-001
> > >    3  Sigma       1.00597e+000  7.17379e-004 -5.21731e-006
> 1.88585e+000
> > >
> > >  CTRL-C hit !!! ROOT is terminated !
> > >
> > > [Note: I had to control-C out - no cpu was being used, root
> simply hung]
> > >
> > > and here is my event handler - event.c
> > >
> > > {
> > > //
> > > //	This allows selection of an ROI:
> > > //
> > > 	Float_t roiLo,roiHi;
> > > 	int ix,ixl,ixh;
> > > 	int event = gPad->GetEvent();
> > >
> > > 	// only care about Button1Down (1) and Button1Up(11) events
> > > 	if ((event!=1) && (event!=11) ) return;
> > > 	TObject *select = gPad->GetSelected();
> > >
> > > 	// only care if selected item is x-axis
> > > 	if (strcmp(select->GetName(),"xaxis")!=0) return;
> > > 	ix = gPad->GetEventX();
> > > 	TAxis *h = (TAxis*)select;
> > > 	if (event==1) // button down
> > > 	{
> > > 		// compute lower limit of ROI
> > > 		roiLo = gPad->AbsPixeltoX(ix);
> > > 		ixl = h->FindBin(roiLo);
> > > 		roiLo = h->GetBinLowEdge(ixl);
> > >
> > > 	}
> > > 	else // button up
> > > 	{
> > > 		// disable event
> > > 		gPad->DeleteExec("ex1");
> > >
> > > 		// compute upper limit of ROI
> > > 		roiHi = gPad->AbsPixeltoX(ix);
> > > 		ixh = h->FindBin(roiHi);
> > > 		roiHi = h->GetBinLowEdge(ixh)+h->GetBinWidth(ixh);
> > > 		printf(" ROI limits: %f %f\n",roiLo,roiHi);
> > > 		TH1F *parent = (TH1F *)h->GetParent();
> > > 		parent->Fit("gaus","w","",roiLo,roiHi);
> > > 	}
> > > }
> > >
> > >
> > >  I am running version 3.02/06 of root on Win2000. I am using VC++ v6
> > w/sp5.
> > > Thanks..
> > >
> > >
> > >
> > > Ed Oltman
> > >
> > >
> > >
> > >
> >
> >
> >
> >
> >
>
>
>
>



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