Hello ROOTers
I encounter a segmentation violation when I fit a TH2D with a TF2. It does not always happen but it depends on the parameter which I set at start.
Here is the error message and the part of my C++ program (not macro).
Does anyone have any help or suggestion?
Regards
SL 5.0 64 bit + ROOT 5.18.00
228 TF2* f2ab = new TF2(Form("f2ab-%d-%d", i, j),
Gauss2D_AB, x1, x2,
y1, y2, 7);
229
230 for(int k=0; k<5; k++){ 231 f2ab->SetParameter(k, f2rough->GetParameter(k)); 232 f2ab->SetParLimits(k, fitpar_min[k], fitpar_max[k]); 233 f2ab->SetParName(k, fitpar_name[k]); 234 } // k 235 236 f2ab->SetParameter(5, f2rough->GetParameter(4)); // sy => s 237 f2ab->SetParameter(6, 0.); // rho => 0 238 f2ab->SetParLimits(5, fitpar_min[5], fitpar_max[5]); 239 f2ab->SetParLimits(6, fitpar_min[6], fitpar_max[6]); 240 f2ab->SetParName(5, fitpar_name[5]); 241 f2ab->SetParName(6, fitpar_name[6]); 242 243 hist[j*kRN + i]->Fit(Form("f2ab-%d-%d", i, j), "0");
double Gauss2D_AB(double* x_, double* par) {
// z = f(A, mu_x, mu_y, BG, sigma_x, sigma_y, rho)
double x = x_[0]; double y = x_[1]; double A = par[0]; double mx = par[1]; double my = par[2]; double bg = par[3];
double z = A/(2*TMath::Pi()*sx*sy*sqrt(1-rho*rho))*
exp(-0.5/(1-rho*rho)*(pow((x-mx)/sx, 2) + pow((y-my)/sy, 2) - 2*rho*(x-mx)*(y-my)/sx/sy)) + bg;
return z;
}
OKUMURA, Akira oxon_at_icrr.u-tokyo.ac.jp
Institute for Cosmic Ray Research, University of Tokyo
5-1-5 Kashiwanoha Kashiwa Chiba 277-8582 Japan
Phone/Fax : +81 4-7136-3153
Skype : okumura.akira
Received on Fri Feb 22 2008 - 01:06:03 CET
This archive was generated by hypermail 2.2.0 : Fri Feb 22 2008 - 11:50:01 CET