Hi Harufumi, You have two solutions to your problem: solution 1 ========= remove the statement Double_t x1,x2 from GetDist.C in your root session, do: root > Double_t x1, x2; root > myhisto->Draw(); root > c1->AddExec("ex1", ".x GetDist.C") solution 2 (recommended) ========== replace the line: Double_t x1, x2; by static Double_t x1, x2; root > .L GetDist.C root > myhisto->Draw(); root > c1->AddExec("ex1", "GetDist()"); Rene Brun On Sun, 10 Nov 2002, Harufumi TSUCHIYA wrote: > Hello. > > Thank you for you reply. > > What I would like to do is the follwing. > > I have the histogram which has time as x-axis and count as y-axis. > When I zoom in along xaxis, I would like to know the points > where I press and release to obtain time range of my zoom selection. > > So, I made the attached macro and I used this macro in my compiled > code using c1->AddExec("ex1", ".x GetDist.C"). > But, in this case, x1 always 0. > So, Can I get both x1 and x2 in the follwing code ? > > Harufumi Tsuchiya > > ROOT v3.03.09 > g++ 2.95.3 > FreeBSD 4.6.2-RELEASE > > ------------------ GetDist.C --------------------------- > void GetDist() { > Double_t x1, x2; > Int_t event = gPad->GetEvent(); > if ( event != kButton1Up && event != kButton1Down ) return; > TObject *select = gPad->GetSelected(); > if ( strcmp(select->GetName(), "xaxis") != 0 )return; > Int_t px = gPad->GetEventX(); > Double_t xp = gPad->AbsPixeltoX(px); > if ( event == kButton1Down ) { > // Get x1 // > x1 = gPad->PadtoX(xp); > } > else if ( event == kButton1Up ) { > // Get x2 // > x2 = gPad->PadtoX(xp); > Double_t dist = x2 - x1; > cout << "x1, x2, dist " << x1 << " " << x2 << " " << dist << endl; > } > } > > > > Hi Harufumi, > > Assuming that > > Int_t px1,py1 are the mouse pixel coordinates of the point > > where you press the button and px2,py2 where you release > > the button, you can compute the user coordinates with > > Double_t x1 = gPad->AbsPixeltoX(px1); > > Double_t y1 = gPad->AbsPixeltoX(py1); > > same for x2,y2 > > > > Rene Brun > > > > > > > > On Sat, 9 Nov 2002, Harufumi TSUCHIYA wrote: > > > > > > > > Hello ROOTers > > > > > > I am now trying to modify exec1.C in $ROOT/tutorials to > > > calculate distance two points along x-axis of my histogram. > > > The two points are pushed and released by mouse, respectively. > > > > > > I succeeded in knowing pushed points and released points > > > using return values of gPad->GetEvent()(kButton1Down and kButton1Up). > > > > > > But, the distance between two points could not be obtained. > > > > > > So, is there the way to get the distance of the two points ? > > > > > > Harufumi Tsuchiya > > > > > > ROOT v3.03.09 > > > g++ 2.95.3 > > > FreeBSD 4.6.2 > > > > > >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:17 MET