Hi, I'm running a stand-alone program with ROOT libraries (v4.00/03) compilied into it so I can use Minuit. Because I am doing complicated fits, I can't just fit a histogram, I instead do: TVirtualFitter *minuit = TVirtualFitter::Fitter(0, 150); minuit->SetFCN(dummy_func); // wrapper for my full-blown fit routine ...etc. and all is well. I have the command minuit->ExecuteCommand("MINI",arglist,0); inside a loop that adds a new data point each time through. Again, all this is working just fine, but today I decided I would like to look at the slope of the residuals of this fit. So I figured I would use TH1D for the residuals and the method Fit("pol1"). (Actually, I made my own TF1 so I can get the slope parameter.) So into the loop I put: TF1 p1("p1","[0]+x*[1]",0.0,100.0); p1.SetParameters(0.0,0.0); tempbvalshist.Fit("p1"); slope1=p1.GetParameter(1); ...and this works as well...once. When I get back up to the minuit->ExecuteCommand("MINI") part, I get a terrible crash: *** Break *** segmentation violation Generating stack trace... 0x40fbe949 in TMinuit::Eval(int, double*, double&, double*, int) + 0x2b from /bin/root/lib/libMinuit.so 0x40fc2dfc in TMinuit::mnderi() + 0x47c from /bin/root/lib/libMinuit.so 0x40fcb8f7 in TMinuit::mnmigr() + 0x20b from /bin/root/lib/libMinuit.so 0x40fc45d6 in TMinuit::mnexcm(char const*, double*, int, int&) + 0x686 from /bin/root/lib/libMinuit.so 0x40fba057 in TFitter::ExecuteCommand(char const*, double*, int) + 0x31 from /bin/root/lib/libMinuit.so 0x080598fc in main + 0x22fa from simulate_signals 0x420156a4 in __libc_start_main + 0xe4 from /lib/tls/libc.so.6 0x0804ead9 in TFile::TFile[in-charge](char const*, char const*, char const*, int) + 0x31 from simulate_signals Aborted Now, it seems from reading through the roottalk archives that Greg Landsberg had this problem back in March 2003, running in ROOT with a macro. His solution was to save the pointer gMinuit before his second fit and then restore the pointer afterward. Because I'm running stand-alone, I don't have a gMinuit, I only have my pointer to the TVirtualFitter. The roottalk archives indicate that Rene has fixed things, but I'm still stuck. I'm using version 4.00/03, which dates from 10 May 2004, so I'm not sure if this is the same problem Greg had after all. Could somebody please advise me on how to get out of this little hole I'm stuck in? - John
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:09 MET