FWTM of a skewed gaussian

Dear Root users

I am new on root and i want to get FWTM for skewed Gaussian. I found the crystal ball function to be a good fit for my histogram which has a tail at low energies. For normal Gaussian, FWHM = 2.35sigma and FWTM= 4.29sigma. However this is not the case for a skewed Gaussian as it has a tail. Is there way to get the FWTM of skewed Gaussian?

My simple code now looks like this:
void draw(){

TF1 *g9 = new TF1(“g9”, “crystalball”);


//int xmin = h1->GetMinimum(2650);
//int xmax = h1->GetMaximum(2675)
int bin1 = h1->FindFirstBinAbove(h1->GetMaximum()/10);
int bin2 = h1->FindLastBinAbove(h1->GetMaximum()/10);
double fwhm = h1->GetBinCenter(bin2) - h1->GetBinCenter(bin1);
cout << endl << "FWTM = " << fwtm << endl;
This is not true because sigma at 10% of my peak will be different on both side of the mean, because the low energy side has a tail while the high energy side has normal Gaussian shape.

You ideas will be highly appreciated.


Hi @LuckyMakhathini,

  • Are you sure that you want FWxM of the tail? Usually, you are interested not in the tail (you would avoid it if you could), and extract parameters from the Gaussian core. That’s because the core is the process you are interested in, and the tail is just a nuisance.
  • I’m not aware of an analytical way to compute it, but you can do it with brute force. Since you already have the TF1 g9, use this instead of a histogram of the function. TF1 has the function GetX(), which computes the x-value corresponding to a given y value. Do it two times, and compute the difference, done.

Hi, @StephanH

I want to get the ratio of FWTM/FWHM to check the neutron damage on HPGe clover detector. If the detector were expose to neutron, they develop a tail on the low energy side of the spectrum. Now i have the get Full with at tenth Maximum to access the neutron damage in these detectors. However i will try your second suggestion and see if I can compute sigma at 10% the spectrum,