Проблема с параметрами объявления функции ROOT TF1 - PullRequest
0 голосов
/ 15 мая 2019

Я использую пользовательскую функцию для подгонки набора данных в ROOT. Объявление класса TF1 в моем коде:

double t=1000;
double a=0.1*t, b=0.9*t;
...
TF1 *ffit = new TF1("ffit",fit,a,b,2);
ffit->FixParameter(0,t);
ffit->SetParameter(1,1);
...
TGraph *g = new TGraph(n,x,y);
g->Fit("ffit","R");

Я ожидаю, что это будет работать, но на самом деле это не так. Существует нарушение сегментации вместе с беспорядком, появляющимся, когда я запускаю этот код. Однако, когда я просто помещаю 100 и 900 вместо a и b в объявлении функции TF1, это работает хорошо.

Итак, в чем здесь проблема? Как я могу преодолеть эту проблему? Функция fit выглядит следующим образом:

double fit(double *x, double *par) 
{ 
double y=par[0], g=par[1], y0=x[0];
double r=(y0*(y-y0))/y;  
return (pow(r,1.5)*g); 
} 

P / s: я использую ROOT v6.14

...