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