Hi Kevin, I have added a new function in TGraph to make a spline interpolation between points Double_t Eval(Double_t x, TSpline *spline=0) const; // Interpolate points in this graph at x using a TSpline // -if spline==0 a TSpline3 object is created using this graph // and the interpolated value from the spline is returned. // the internally created spline is deleted on return. // -if spline is specified, it is used to return the interpolated value. Now in CVS Rene Brun Kevin Reil wrote: > > Hi all, > > I've attached below a dialogue I had before about TSpline::Eval. The > method described has worked great. > > However, I want to get a pointer to a TSpline (simple spline not TSpline3 > or TSpline5). > > If I have a graph (and assume it has some points filled x=0 to x=100) > and if I draw the graph telling it to connect the dots "L" I get a simple > spline. > > TGraph *gr; > gr->Draw("L"); > > Is there in fact an object created so I could do something like. > > TGraph *gr; > gr->Draw("L"); > TSpline *s = (TSpline*)gROOT->FindObject("stemp"); > // analagous to htemp from nt-Draw(); > s->Eval(52.3); > > instead of > > TGraph *gr; > gr->Draw("L"); > TSpline3 *s = new TSpline3("grs",gr); > s->Eval(52.3); > > Thanks, > Kevin > > ----------------------------------------------------------------------------- > > Hi Kevin, > > You can use for example the TSpline class. Here is an example: > You can use TSpline::Eval to evaluate the spline at a point x. > > { > gROOT->Reset(); > c1 = new TCanvas("c1","gerrors2",200,10,700,500); > c1->SetFillColor(42); > c1->SetGrid(); > > // draw a frame to define the range > TH1F *hr = c1->DrawFrame(-0.4,0,1.2,12); > hr->SetXTitle("X title"); > hr->SetYTitle("Y title"); > c1->GetFrame()->SetFillColor(21); > c1->GetFrame()->SetBorderSize(12); > > // create first graph > Int_t n1 = 9; > Double_t x1[] = {-0.22, 0.05, 0.25, 0.35, 0.61,0.7,0.85,0.89,0.95}; > Double_t y1[] = {1,2.9,5.6,7.4,9.6,8.7,6.3,4.5,2}; > Double_t ex1[] = {.05,.1,.07,.07,.05,.06,.07,.08,.05}; > Double_t ey1[] = {.8,.7,.6,.5,.4,.5,.6,.7,.8}; > gr1 = new TGraphErrors(n1,x1,y1,ex1,ey1); > gr1->SetMarkerColor(kBlue); > gr1->SetMarkerStyle(21); > gr1->Draw("LP"); > > // use a cubic spline to smooth the graph > TSpline3 *s = new TSpline3("grs",gr1); > s->SetLineColor(kRed); > s->Draw("same"); > } > > See also class TGraphSmooth > > Rene Brun > > Kevin Reil wrote: > > > > Hi, > > > > I was wondering if it is possible to Eval a spline fit. > > > > TGraph *gr = new TGraph(100,*x, *y); > > gr->Draw("apl"); > > > > The l has made a nice spline fit from x=0 to x=100 for example. > > > > Now, I want to get the value from the spline line at say x=53.2 > > Something like: > > gr->FindObject("spline")->Eval(53.2); > > > > Thank you, > > Kevin > > > > ------------------------------------------- > > - Kevin Reil - > > - #244A INSCC - > > - http://www.physics.utah.edu/~reil - > > - reil@physics.utah.edu - > > ------------------------------------------- > > - And my father dwelt in a tent. - > > ------------------------------------------- > > |------------------------------------|---------------------------------| > | Kevin Reil | 2575 Sand Hill Road, MS 26 | > | X2447, 103D A&E Bldg. 041 | Menlo Park, CA 94025 | > |------------------------------------|---------------------------------| > | http://www.slac.stanford.edu/~reil | Office (650) 926-2447 | > | reil@slac.stanford.edu | Home (650) 938-1767 | > | http://reil.no-ip.org | Fax (650) 926-5368 | > |----------------------------------------------------------------------| > | And my father dwelt in a tent. | > |----------------------------------------------------------------------| > > On Tue, 16 Mar 2004, Frank Winklmeier wrote: > > >Hi, > > > >I get the following error message on using TChain::GetEntry() > > > >root [28] chain.GetEntry(1,0) Error in <TBranch::GetBasket>: File: > >BBbar-41.root at byte:0, branch:event, entry:-1 > >(Int_t)(-1) > > > >Can somebody explain me what this error means and where it originally > >comes from (it's not in TBranch::GetBasket)? How can I find out what's > >wrong with this root file? > > > >Thanks, > >Frank > > > > > >
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:06 MET