Hi Justin, Predefined functions such as "gaus","poln" and "expo" compute the initial values of their parameters automatically. You can prevent this by doing in your example: pol1->SetNumber(0); Rene Brun Justin Findlay wrote: > > Hi, > > Setting parameter limits equal in a TF1 seems to cause a fit to logically > fail. pol1::p0 will always become the number, 288.074, for the profile > histogram, fixpar.C, no matter what fixing value I choose. Setting > ParLimits tolerably apart works, however. > > hand built root-3.5.3 on: > redhat-8.0 > gcc (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7) > AMD Athlon(tm) Processor 1994.691 MHz 256 KB cache > > running root on a terminal with: > 8.0 Mb memory > redhat-6.1 ctwm /*no desktop, only the window manager*/ > vt100 xterm > > bash-2.05b$ root -b -q fixpar.C fixpar.cpp > > ... > > root [0] > Processing fixpar.C... > > Processing scripts/fixpar.cpp... > Note: File "iostream" already loaded > 288.074 > 288.074 > 1.1 > > /*fixpar.cpp*/ > { > #include <iostream> > > using namespace std; > > htemp->Fit( "pol1", "q" ); > > pol1->FixParameter( 0, 1.0 ); > htemp->Fit( "pol1", "q" ); > cout << pol1->GetParameter( 0 ) << endl; > > pol1->SetParLimits( 0, 1.0, 1.0 ); > htemp->Fit( "pol1", "q" ); > cout << pol1->GetParameter( 0 ) << endl; > > pol1->SetParLimits( 0, 0.9, 1.1 ); > htemp->Fit( "pol1", "q" ); > cout << pol1->GetParameter( 0 ) << endl; > } > > Justin > > -------------------------------------------------------------------------------- > Name: fixpar.C > fixpar.C Type: Plain Text (TEXT/PLAIN) > Encoding: BASE64 > > Name: fixpar.cpp > fixpar.cpp Type: Plain Text (TEXT/PLAIN) > Encoding: BASE64
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:10 MET