Hi John, without more specifics it is hard to tell what goes wrong . If you insert your 2 lines in tutorials/Ifit.C you can check that in principle it does what it is supposed to do Eddy --- "Dr. John Krane" <jkrane@netzero.com> wrote: > Hi, > > Some time ago, I asked how to save intermediate > steps during weeks-long > Minuit fits. The suggested code was simply to do > something like: > > TFile > f("temp_minuit_intermediate_state.root","RECREATE"); > gMinuit->Write(); > > > I have a class called "func_fit" that has a > minimization method. > (Because TMinuit wants a bare function, I wrote a > wrapper for the member > function called "dummy_func", visible in the stack > trace below.) My > class increments a counter every time the > minimization method is called; > when I get zero for fmod(counter,10000), I try to > write the TMinuit > object as above. Unfortunately, I get the following > stack trace. > > I'm confused as to the source of the problem, which > occurs deep in the > Streamer methods. I'm hoping somebody knows what > I'm doing wrong. If > anyone has any advice or proposals for tests, I'll > be very grateful. > > - John > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 1091201184 (LWP 24100)] > 0x4025d8a2 in ROOT::TObject_IsA(void const*) () from > > /bin/root/lib/libCore.so > (gdb) where > #0 0x4025d8a2 in ROOT::TObject_IsA(void const*) () > from > /bin/root/lib/libCore.so > #1 0x401619b4 in TClass::GetActualClass(void > const*) const () from > /bin/root/lib/libCore.so > #2 0x400ec4ff in TBuffer::WriteObjectAny(void > const*, TClass*) () from > /bin/root/lib/libCore.so > #3 0x4024f7cf in operator<<(TBuffer&, TObject > const*) () from > /bin/root/lib/libCore.so > #4 0x40e9d933 in TMinuit::Streamer(TBuffer&) () > from > /bin/root/lib/libMinuit.so > #5 0x40101246 in TKey::TKey(TObject*, char const*, > int) () from > /bin/root/lib/libCore.so > #6 0x4010e293 in TObject::Write(char const*, int, > int) () from > /bin/root/lib/libCore.so > #7 0x0805297c in func_fit::minimize(int&, double*, > double&, double*, > int) (this=0x8059a20, npar=@0xbfffd4f4, > grad=0xd6f56d0, mychi2=@0xbfffd620, > params=0xd6ec0b0, iflag=4) at func_fit.cpp:395 > #8 0x080547d5 in dummy_func(int&, double*, double&, > double*, int) > (npar=@0xbfffd4f4, grad=0xd6f56d0, > mychi2=@0xbfffd620, params=0xd6ec0b0, > iflag=4) > at fit_idx.cpp:46 > #9 0x40e8458d in TMinuit::Eval(int, double*, > double&, double*, int) () > from /bin/root/lib/libMinuit.so > #10 0x40e8d827 in TMinuit::mnhess() () from > /bin/root/lib/libMinuit.so > #11 0x40e914b7 in TMinuit::mnmigr() () from > /bin/root/lib/libMinuit.so > #12 0x40e8a21a in TMinuit::mnexcm(char const*, > double*, int, int&) () > from /bin/root/lib/libMinuit.so > #13 0x40e8020f in TFitter::ExecuteCommand(char > const*, double*, int) () > from /bin/root/lib/libMinuit.so > #14 0x08055296 in main (argc=2, argv=0xbfffe874) at > fit_idx.cpp:140 > #15 0x420156a4 in __libc_start_main () from > /lib/tls/libc.so.6 > >
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:07 MET