TMinuit的问题

时间:2015-08-19 21:30:15

标签: root-framework

我正在尝试最小化ROOT中的卡方函数,这是FCN代码:

void myFCNres( int &npar , double * gin , double &f , double * par , int flag ) {

    double chi2 = 0;

    for ( int i = 1 ; i <= datasetNHres->GetSize()-2 ; ++i ) {

        par[7] = Emin + (Emax-Emin)/(2*N_div) + (i-1)*(Emax-Emin)/N_div;
        chi2 += pow( ( integrand->Integral( 1.804 , 8 , par , 1E-15) - datasetNHres->GetBinContent(i)) / datasetNHres->GetBinError(i) ,2);
    }

    chi2 += pow( (par[0] - p[0]) / sig[0] ,2) +
            pow( (par[1] - p[1]) / sig[1] ,2) +
            pow( (par[2] - p[2]) / sig[2] ,2) +
            pow( (par[3] + p[3]) / sig[3] ,2);

    f = chi2;
}

运行的结果是没有任何参数发生变化,就像我的函数不依赖于它们中的任何一个。您是否看到了FCN逻辑的问题,或者我必须在其他地方查找错误?

谢谢, 路易

0 个答案:

没有答案