faca87
February 21, 2023, 11:01am
1
Hello, I’m trying to fit two histograms by distorted gaussian function

```
TF1 *fit = new TF1("fit","([0]/(2*[3]))*exp((x-[1])/[3]+[2]^2/(2*[3]^2))*erfc(1/sqrt(2)*((x-[1])/[2]+[2]/[3])) + [4] + [5]*x",6980,7010);
fit->SetParameters((300*10*2), 6995, 7, -4, 5,0);
fit->SetParLimits(0,10,1e4);
fit->SetParLimits(1,6990,7000);
fit->SetParLimits(2,0,15);
fit->SetParLimits(3,-10,10);
fit->SetParLimits(4,0,1);
fit->SetParLimits(5,-1e4,1e4);
```

but it doesn’t fit it

You need to set “reasonable” initial values for all parameters of your function and try (instead of fitting): `fit->Draw();`

Once the plot looks OK, try to fit your data.

faca87
February 21, 2023, 11:26am
3
Hello @Wile_E_Coyote
I guessed that the problem is related to inital parameters…Given that it is the first time I use this function, I was looking if someone, looking the plots is able to set the initial parameters
Thanks

couet
February 21, 2023, 12:18pm
4
```
root [0] TF1 *fit = new TF1("fit","([0]/(2*[3]))*exp((x-[1])/[3]+[2]^2/(2*[3]^2))*erfc(1/sqrt(2)*((x-[1])/[2]+[2]/[3])) + [4] + [5]*x",6980,7010);
root [1] fit->SetParameters((300*10*2), 6995, 7, -4, 5,0);
root [2] fit->Draw()
```

gives:

It does not seem close to the function you are looking for:
The Y range is completely wrong
The shape also
The X range is correct thought.

couet
February 21, 2023, 12:58pm
6
what are the correct parameters?

faca87
February 21, 2023, 1:03pm
7
the lambda is positive …I firstly tried negative values, because of Skew normal distribution - Wikipedia
but the lambda is positive

for example, for one of them

```
TF1 *fit = new TF1("fit","([0]/(2*[3]))*exp((x-[1])/[3]+[2]^2/(2*[3]^2))*erfc(1/sqrt(2)*((x-[1])/[2]+[2]/[3])) + [4] + [5]*x",6950,7050);
fit->SetParameters((300*10*2), 7000, 7, 4, 5,0);
fit->SetParLimits(0,10,1e4);
fit->SetParLimits(1,6990,7000);
fit->SetParLimits(2,0,15);
fit->SetParLimits(3,1,10);
fit->SetParLimits(4,0,100);
fit->SetParLimits(5,-1e4,1e4);
```

1 Like

system
Closed
March 7, 2023, 1:04pm
8
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.