// @(#)root/spectrum:$Id$
// Author: Miroslav Morhac   25/09/06

//__________________________________________________________________________
//   THIS CLASS CONTAINS ADVANCED SPECTRA FITTING FUNCTIONS.               //
//                                                                         //
//                                                                         //
//   These functions were written by:                                      //
//   Miroslav Morhac                                                       //
//   Institute of Physics                                                  //
//   Slovak Academy of Sciences                                            //
//   Dubravska cesta 9, 842 28 BRATISLAVA                                  //
//   SLOVAKIA                                                              //
//                                                                         //
//   email:fyzimiro@savba.sk,    fax:+421 7 54772479                       //
//                                                                         //
//  The original code in C has been repackaged as a C++ class by R.Brun    //
//                                                                         //
//  The algorithms in this class have been published in the following      //
//  references:                                                            //
//   [1] M. Morhac et al.: Efficient fitting algorithms applied to         //
//   analysis of coincidence gamma-ray spectra. Computer Physics           //
//   Communications, Vol 172/1 (2005) pp. 19-41.                           //
//                                                                         //
//   [2]  M. Morhac et al.: Study of fitting algorithms applied to         //
//   simultaneous analysis of large number of peaks in gamma-ray spectra.  //
//   Applied Spectroscopy, Vol. 57, No. 7, pp. 753-760, 2003.              //
//                                                                         //
//                                                                         //
//____________________________________________________________________________

#include "TSpectrumFit.h"
#include "TMath.h"

ClassImp(TSpectrumFit)

//______________________________________________________________________________
TSpectrumFit::TSpectrumFit() :TNamed("SpectrumFit", "Miroslav Morhac peak fitter")
{
   //default constructor

   fNPeaks = 0;
   fNumberIterations = 1;
   fXmin = 0;
   fXmax = 100;
   fStatisticType = kFitOptimChiCounts;
   fAlphaOptim = kFitAlphaHalving;
   fPower = kFitPower2;
   fFitTaylor = kFitTaylorOrderFirst;
   fAlpha =1;
   fChi = 0;
   fPositionInit   = 0;
   fPositionCalc   = 0;
   fPositionErr   = 0;
   fFixPosition   = 0;
   fAmpInit   = 0;
   fAmpCalc   = 0;
   fAmpErr    = 0;
   fFixAmp    = 0;
   fArea      = 0;
   fAreaErr   = 0;
   fSigmaInit = 2;
   fSigmaCalc = 1;
   fSigmaErr  = 0;
   fTInit = 0;
   fTCalc = 0;
   fTErr = 0;
   fBInit = 1;
   fBCalc = 0;
   fBErr = 0;
   fSInit = 0;
   fSCalc = 0;
   fSErr = 0;
   fA0Init = 0;
   fA0Calc = 0;
   fA0Err = 0;
   fA1Init = 0;
   fA1Calc = 0;
   fA1Err = 0;
   fA2Init = 0;
   fA2Calc = 0;
   fA2Err = 0;
   fFixSigma = false;
   fFixT = true;
   fFixB = true;
   fFixS = true;
   fFixA0 = true;
   fFixA1 = true;
   fFixA2 = true;
}

//______________________________________________________________________________
TSpectrumFit::TSpectrumFit(Int_t numberPeaks) :TNamed("SpectrumFit", "Miroslav Morhac peak fitter")
{
   //numberPeaks: number of fitted peaks (must be greater than zero)
   //the constructor allocates arrays for all fitted parameters (peak positions, amplitudes etc) and sets the member
   //variables to their default values. One can change these variables by member functions (setters) of TSpectrumFit class.
//Begin_Html <!--
/* -->
<div class=Section1>

<p class=MsoNormal style='text-align:justify'>Shape function of the fitted
peaks is </p>

<p class=MsoNormal style='text-align:justify'>

<table cellpadding=0 cellspacing=0 align=left>
 <tr>
  <td width=68 height=6></td>
 </tr>
 <tr>
  <td></td>
  <td><img width=388 height=132 src="gif/spectrumfit_constructor_image001.gif"></td>
 </tr>
</table>

<span style='font-family:Arial'>&nbsp;</span></p>

<p class=MsoNormal style='text-align:justify'>&nbsp;</p>

<p class=MsoNormal style='text-align:justify'>&nbsp;</p>

<p class=MsoNormal style='text-align:justify'>&nbsp;</p>

<p class=MsoNormal style='text-align:justify'>&nbsp;</p>

<p class=MsoNormal><i>&nbsp;</i></p>

<p class=MsoNormal><i>&nbsp;</i></p>

<p class=MsoNormal><i>&nbsp;</i></p>

<br clear=ALL>

<p class=MsoNormal style='text-align:justify'>where a represents vector of
fitted parameters (positions p(j), amplitudes A(j), sigma, relative amplitudes
T, S and slope B).</p>

<p class=MsoNormal><span style='font-size:16.0pt'>&nbsp;</span></p>

</div>

<!-- */
// --> End_Html

   if (numberPeaks <= 0){
      Error ("TSpectrumFit","Invalid number of peaks, must be > than 0");
      return;
   }
   fNPeaks = numberPeaks;
   fNumberIterations = 1;
   fXmin = 0;
   fXmax = 100;
   fStatisticType = kFitOptimChiCounts;
   fAlphaOptim = kFitAlphaHalving;
   fPower = kFitPower2;
   fFitTaylor = kFitTaylorOrderFirst;
   fAlpha =1;
   fChi = 0;
   fPositionInit   = new Double_t[numberPeaks];
   fPositionCalc   = new Double_t[numberPeaks];
   fPositionErr   = new Double_t[numberPeaks];
   fFixPosition   = new Bool_t[numberPeaks];
   fAmpInit   = new Double_t[numberPeaks];
   fAmpCalc   = new Double_t[numberPeaks];
   fAmpErr    = new Double_t[numberPeaks];
   fFixAmp    = new Bool_t[numberPeaks];
   fArea      = new Double_t[numberPeaks];
   fAreaErr   = new Double_t[numberPeaks];
   fSigmaInit = 2;
   fSigmaCalc = 1;
   fSigmaErr  = 0;
   fTInit = 0;
   fTCalc = 0;
   fTErr = 0;
   fBInit = 1;
   fBCalc = 0;
   fBErr = 0;
   fSInit = 0;
   fSCalc = 0;
   fSErr = 0;
   fA0Init = 0;
   fA0Calc = 0;
   fA0Err = 0;
   fA1Init = 0;
   fA1Calc = 0;
   fA1Err = 0;
   fA2Init = 0;
   fA2Calc = 0;
   fA2Err = 0;
   fFixSigma = false;
   fFixT = true;
   fFixB = true;
   fFixS = true;
   fFixA0 = true;
   fFixA1 = true;
   fFixA2 = true;
}



//______________________________________________________________________________
TSpectrumFit::~TSpectrumFit()
{
   //destructor
   delete [] fPositionInit;
   delete [] fPositionCalc;
   delete [] fPositionErr;
   delete [] fFixPosition;
   delete [] fAmpInit;
   delete [] fAmpCalc;
   delete [] fAmpErr;
   delete [] fFixAmp;
   delete [] fArea;
   delete [] fAreaErr;
}

//_____________________________________________________________________________
/////////////////BEGINNING OF AUXILIARY FUNCTIONS USED BY FITTING FUNCTION Fit1//////////////////////////
Double_t TSpectrumFit::Erfc(Double_t x)
{
//////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                      //
//                                                                          //
//   This function calculates error function of x.                           //
//                                                                          //
//////////////////////////////////////////////////////////////////////////////
   Double_t da1 = 0.1740121, da2 = -0.0479399, da3 = 0.3739278, dap = 0.47047;
   Double_t a, t, c, w;
   a = TMath::Abs(x);
   w = 1. + dap * a;
   t = 1. / w;
   w = a * a;
   if (w < 700)
      c = exp(-w);

   else {
      c = 0;
   }
   c = c * t * (da1 + t * (da2 + t * da3));
   if (x < 0)
      c = 1. - c;
   return (c);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Derfc(Double_t x)
{
//////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                      //
//                                                                          //
//   This function calculates derivative of error function of x.             //
//                                                                          //
//////////////////////////////////////////////////////////////////////////////
   Double_t a, t, c, w;
   Double_t da1 = 0.1740121, da2 = -0.0479399, da3 = 0.3739278, dap = 0.47047;
   a = TMath::Abs(x);
   w = 1. + dap * a;
   t = 1. / w;
   w = a * a;
   if (w < 700)
      c = exp(-w);

   else {
      c = 0;
   }
   c = (-1.) * dap * c * t * t * (da1 + t * (2. * da2 + t * 3. * da3)) -
       2. * a * Erfc(a);
   return (c);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Deramp(Double_t i, Double_t i0, Double_t sigma, Double_t t,
                           Double_t s, Double_t b)
{
//////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                      //
//                                                                          //
//   This function calculates derivative of peak shape function (see manual) //
//   according to amplitude of peak.                                        //
//      Function parameters:                                                //
//              -i-channel                                                  //
//              -i0-position of peak                                        //
//              -sigma-sigma of peak                                        //
//              -t, s-relative amplitudes                                   //
//              -b-slope                                                    //
//                                                                          //
//////////////////////////////////////////////////////////////////////////////
   Double_t p, q, r, a;
   p = (i - i0) / sigma;
   if ((p * p) < 700)
      q = exp(-p * p);

   else {
      q = 0;
   }
   r = 0;
   if (t != 0) {
      a = p / b;
      if (a > 700)
         a = 700;
      r = t * exp(a) / 2.;
   }
   if (r != 0)
      r = r * Erfc(p + 1. / (2. * b));
   q = q + r;
   if (s != 0)
      q = q + s * Erfc(p) / 2.;
   return (q);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Deri0(Double_t i, Double_t amp, Double_t i0, Double_t sigma,
                          Double_t t, Double_t s, Double_t b)
{
//////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                      //
//                                                                          //
//   This function calculates derivative of peak shape function (see manual) //
//   according to peak position.                                            //
//      Function parameters:                                                //
//              -i-channel                                                  //
//              -amp-amplitude of peak                                      //
//              -i0-position of peak                                        //
//              -sigma-sigma of peak                                        //
//              -t, s-relative amplitudes                                   //
//              -b-slope                                                    //
//                                                                          //
//////////////////////////////////////////////////////////////////////////////
   Double_t p, r1, r2, r3, r4, c, d, e;
   p = (i - i0) / sigma;
   d = 2. * sigma;
   if ((p * p) < 700)
      r1 = 2. * p * exp(-p * p) / sigma;

   else {
      r1 = 0;
   }
   r2 = 0, r3 = 0;
   if (t != 0) {
      c = p + 1. / (2. * b);
      e = p / b;
      if (e > 700)
         e = 700;
      r2 = -t * exp(e) * Erfc(c) / (d * b);
      r3 = -t * exp(e) * Derfc(c) / d;
   }
   r4 = 0;
   if (s != 0)
      r4 = -s * Derfc(p) / d;
   r1 = amp * (r1 + r2 + r3 + r4);
   return (r1);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Derderi0(Double_t i, Double_t amp, Double_t i0,
                             Double_t sigma)
{
//////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                      //
//                                                                          //
//   This function calculates second derivative of peak shape function       //
//   (see manual) according to peak position.                               //
//      Function parameters:                                                //
//              -i-channel                                                  //
//              -amp-amplitude of peak                                      //
//              -i0-position of peak                                        //
//              -sigma-width of peak                                        //
//                                                                          //
//////////////////////////////////////////////////////////////////////////////
   Double_t p, r1, r2, r3, r4;
   p = (i - i0) / sigma;
   if ((p * p) < 700)
      r1 = exp(-p * p);

   else {
      r1 = 0;
   }
   r1 = r1 * (4 * p * p - 2) / (sigma * sigma);
   r2 = 0, r3 = 0, r4 = 0;
   r1 = amp * (r1 + r2 + r3 + r4);
   return (r1);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Dersigma(Int_t num_of_fitted_peaks, Double_t i,
                             const Double_t *parameter, Double_t sigma,
                             Double_t t, Double_t s, Double_t b)
{
//////////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                          //
//                                                                              //
//   This function calculates derivative of peaks shape function (see manual)    //
//   according to sigma of peaks.                                               //
//      Function parameters:                                                    //
//              -num_of_fitted_peaks-number of fitted peaks                     //
//              -i-channel                                                      //
//              -parameter-array of peaks parameters (amplitudes and positions) //
//              -sigma-sigma of peak                                            //
//              -t, s-relative amplitudes                                       //
//              -b-slope                                                        //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
   Int_t j;
   Double_t r, p, r1, r2, r3, r4, c, d, e;
   r = 0;
   d = 2. * sigma;
   for (j = 0; j < num_of_fitted_peaks; j++) {
      p = (i - parameter[2 * j + 1]) / sigma;
      r1 = 0;
      if (TMath::Abs(p) < 3) {
         if ((p * p) < 700)
            r1 = 2. * p * p * exp(-p * p) / sigma;

         else {
            r1 = 0;
         }
      }
      r2 = 0, r3 = 0;
      if (t != 0) {
         c = p + 1. / (2. * b);
         e = p / b;
         if (e > 700)
            e = 700;
         r2 = -t * p * exp(e) * Erfc(c) / (d * b);
         r3 = -t * p * exp(e) * Derfc(c) / d;
      }
      r4 = 0;
      if (s != 0)
         r4 = -s * p * Derfc(p) / d;
      r = r + parameter[2 * j] * (r1 + r2 + r3 + r4);
   }
   return (r);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Derdersigma(Int_t num_of_fitted_peaks, Double_t i,
                               const Double_t *parameter, Double_t sigma)
{
//////////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                          //
//                                                                              //
//   This function calculates second derivative of peaks shape function          //
//   (see manual) according to sigma of peaks.                                  //
//      Function parameters:                                                    //
//              -num_of_fitted_peaks-number of fitted peaks                     //
//              -i-channel                                                      //
//              -parameter-array of peaks parameters (amplitudes and positions) //
//              -sigma-sigma of peak                                            //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
   Int_t j;
   Double_t r, p, r1, r2, r3, r4;
   r = 0;
   for (j = 0; j < num_of_fitted_peaks; j++) {
      p = (i - parameter[2 * j + 1]) / sigma;
      r1 = 0;
      if (TMath::Abs(p) < 3) {
         if ((p * p) < 700)
            r1 = exp(-p * p) * p * p * (4. * p * p - 6) / (sigma * sigma);

         else {
            r1 = 0;
         }
      }
      r2 = 0, r3 = 0, r4 = 0;
      r = r + parameter[2 * j] * (r1 + r2 + r3 + r4);
   }
   return (r);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Dert(Int_t num_of_fitted_peaks, Double_t i,
                        const Double_t *parameter, Double_t sigma, Double_t b)
{
//////////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                          //
//                                                                              //
//   This function calculates derivative of peaks shape function (see manual)    //
//   according to relative amplitude t.                                         //
//      Function parameters:                                                    //
//              -num_of_fitted_peaks-number of fitted peaks                     //
//              -i-channel                                                      //
//              -parameter-array of peaks parameters (amplitudes and positions) //
//              -sigma-sigma of peak                                            //
//              -b-slope                                                        //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
   Int_t j;
   Double_t r, p, r1, c, e;
   r = 0;
   for (j = 0; j < num_of_fitted_peaks; j++) {
      p = (i - parameter[2 * j + 1]) / sigma;
      c = p + 1. / (2. * b);
      e = p / b;
      if (e > 700)
         e = 700;
      r1 = exp(e) * Erfc(c);
      r = r + parameter[2 * j] * r1;
   }
   r = r / 2.;
   return (r);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Ders(Int_t num_of_fitted_peaks, Double_t i,
                        const Double_t *parameter, Double_t sigma)
{
//////////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                          //
//                                                                              //
//   This function calculates derivative of peaks shape function (see manual)    //
//   according to relative amplitude s.                                               //
//      Function parameters:                                                    //
//              -num_of_fitted_peaks-number of fitted peaks                     //
//              -i-channel                                                      //
//              -parameter-array of peaks parameters (amplitudes and positions) //
//              -sigma-sigma of peak                                            //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
   Int_t j;
   Double_t r, p, r1;
   r = 0;
   for (j = 0; j < num_of_fitted_peaks; j++) {
      p = (i - parameter[2 * j + 1]) / sigma;
      r1 = Erfc(p);
      r = r + parameter[2 * j] * r1;
   }
   r = r / 2.;
   return (r);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Derb(Int_t num_of_fitted_peaks, Double_t i,
                        const Double_t *parameter, Double_t sigma, Double_t t,
                        Double_t b)
{
//////////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                          //
//                                                                              //
//   This function calculates derivative of peaks shape function (see manual)    //
//   according to slope b.                                                      //
//      Function parameters:                                                    //
//              -num_of_fitted_peaks-number of fitted peaks                     //
//              -i-channel                                                      //
//              -parameter-array of peaks parameters (amplitudes and positions) //
//              -sigma-sigma of peak                                            //
//              -t-relative amplitude                                           //
//              -b-slope                                                        //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
   Int_t j;
   Double_t r, p, r1, c, e;
   r = 0;
   for (j = 0; j < num_of_fitted_peaks && t != 0; j++) {
      p = (i - parameter[2 * j + 1]) / sigma;
      c = p + 1. / (2. * b);
      e = p / b;
      r1 = p * Erfc(c);
      r1 = r1 + Derfc(c) / 2.;
      if (e > 700)
         e = 700;
      if (e < -700)
         r1 = 0;

      else
         r1 = r1 * exp(e);
      r = r + parameter[2 * j] * r1;
   }
   r = -r * t / (2. * b * b);
   return (r);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Dera1(Double_t i)
{
   //derivative of background according to a1
   return (i);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Dera2(Double_t i)
{
   //derivative of background according to a2
   return (i * i);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Shape(Int_t num_of_fitted_peaks, Double_t i,
                         const Double_t *parameter, Double_t sigma, Double_t t,
                         Double_t s, Double_t b, Double_t a0, Double_t a1,
                         Double_t a2)
{
//////////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                          //
//                                                                              //
//   This function calculates peaks shape function (see manual)                  //
//      Function parameters:                                                    //
//              -num_of_fitted_peaks-number of fitted peaks                     //
//              -i-channel                                                      //
//              -parameter-array of peaks parameters (amplitudes and positions) //
//              -sigma-sigma of peak                                            //
//              -t, s-relative amplitudes                                       //
//              -b-slope                                                        //
//              -a0, a1, a2- background coefficients                            //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
   Int_t j;
   Double_t r, p, r1, r2, r3, c, e;
   r = 0;
   for (j = 0; j < num_of_fitted_peaks; j++) {
      if (sigma > 0.0001)
         p = (i - parameter[2 * j + 1]) / sigma;

      else {
         if (i == parameter[2 * j + 1])
            p = 0;

         else
            p = 10;
      }
      r1 = 0;
      if (TMath::Abs(p) < 3) {
         if ((p * p) < 700)
            r1 = exp(-p * p);

         else {
            r1 = 0;
         }
      }
      r2 = 0;
      if (t != 0) {
         c = p + 1. / (2. * b);
         e = p / b;
         if (e > 700)
            e = 700;
         r2 = t * exp(e) * Erfc(c) / 2.;
      }
      r3 = 0;
      if (s != 0)
         r3 = s * Erfc(p) / 2.;
      r = r + parameter[2 * j] * (r1 + r2 + r3);
   }
   r = r + a0 + a1 * i + a2 * i * i;
   return (r);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Area(Double_t a, Double_t sigma, Double_t t, Double_t b)
{
//////////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                          //
//                                                                              //
//   This function calculates area of a peak                                     //
//      Function parameters:                                                    //
//              -a-amplitude of the peak                                        //
//              -sigma-sigma of peak                                            //
//              -t-relative amplitude                                           //
//              -b-slope                                                        //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
   Double_t odm_pi = 1.7724538, r = 0;
   if (b != 0)
      r = 0.5 / b;
   r = (-1.) * r * r;
   if (TMath::Abs(r) < 700)
      r = a * sigma * (odm_pi + t * b * exp(r));

   else {
      r = a * sigma * odm_pi;
   }
   return (r);
}

//____________________________________________________________________________
Double_t TSpectrumFit::Derpa(Double_t sigma, Double_t t, Double_t b)
{
//////////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                          //
//                                                                              //
//   This function calculates derivative of the area of peak                     //
//   according to its amplitude.                                                //
//      Function parameters:                                                    //
//              -sigma-sigma of peak                                            //
//              -t-relative amplitudes                                          //
//              -b-slope                                                        //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
   Double_t odm_pi = 1.7724538, r;
   r = 0.5 / b;
   r = (-1.) * r * r;
   if (TMath::Abs(r) < 700)
      r = sigma * (odm_pi + t * b * exp(r));

   else {
      r = sigma * odm_pi;
   }
   return (r);
}
Double_t TSpectrumFit::Derpsigma(Double_t a, Double_t t, Double_t b)
{
//////////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                          //
//                                                                              //
//   This function calculates derivative of the area of peak                     //
//   according to sigma of peaks.                                               //
//      Function parameters:                                                    //
//              -a-amplitude of peak                                            //
//              -t-relative amplitudes                                          //
//              -b-slope                                                        //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
   Double_t odm_pi = 1.7724538, r;
   r = 0.5 / b;
   r = (-1.) * r * r;
   if (TMath::Abs(r) < 700)
      r = a * (odm_pi + t * b * exp(r));

   else {
      r = a * odm_pi;
   }
   return (r);
}

//______________________________________________________________________________
Double_t TSpectrumFit::Derpt(Double_t a, Double_t sigma, Double_t b)
{
//////////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                          //
//                                                                              //
//   This function calculates derivative of the area of peak                     //
//   according to t parameter.                                                  //
//      Function parameters:                                                    //
//              -sigma-sigma of peak                                            //
//              -t-relative amplitudes                                          //
//              -b-slope                                                        //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
   Double_t r;
   r = 0.5 / b;
   r = (-1.) * r * r;
   if (TMath::Abs(r) < 700)
      r = a * sigma * b * exp(r);

   else {
      r = 0;
   }
   return (r);
}

//______________________________________________________________________________
Double_t TSpectrumFit::Derpb(Double_t a, Double_t sigma, Double_t t, Double_t b)
{
//////////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                          //
//                                                                              //
//   This function calculates derivative of the area of peak                     //
//   according to b parameter.                                                  //
//      Function parameters:                                                    //
//              -sigma-sigma of peak                                            //
//              -t-relative amplitudes                                          //
//              -b-slope                                                        //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
   Double_t r;
   r = (-1) * 0.25 / (b * b);
   if (TMath::Abs(r) < 700)
      r = a * sigma * t * exp(r) * (1 - 2 * r);

   else {
      r = 0;
   }
   return (r);
}

//______________________________________________________________________________
Double_t TSpectrumFit::Ourpowl(Double_t a, Int_t pw)
{
   //power function
   Double_t c;
   Double_t a2 = a*a;
   c = 1;
   if (pw >  0) c *= a2;
   if (pw >  2) c *= a2;
   if (pw >  4) c *= a2;
   if (pw >  6) c *= a2;
   if (pw >  8) c *= a2;
   if (pw > 10) c *= a2;
   if (pw > 12) c *= a2;
   return (c);
}

/////////////////END OF AUXILIARY FUNCTIONS USED BY FITTING FUNCTIONS FitAWMI, FitStiefel//////////////////////////
/////////////////FITTING FUNCTION WITHOUT MATRIX INVERSION///////////////////////////////////////

//____________________________________________________________________________
void TSpectrumFit::FitAwmi(Double_t *source)
{
/////////////////////////////////////////////////////////////////////////////
//        ONE-DIMENSIONAL FIT FUNCTION
//        ALGORITHM WITHOUT MATRIX INVERSION
//        This function fits the source spectrum. The calling program should
//        fill in input parameters of the TSpectrumFit class
//        The fitted parameters are written into
//        TSpectrumFit class output parameters and fitted data are written into
//        source spectrum.
//
//        Function parameters:
//        source-pointer to the vector of source spectrum
//
/////////////////////////////////////////////////////////////////////////////
//
//Begin_Html <!--
/* -->
<div class=Section2>

<p class=MsoNormal><b><span style='font-size:14.0pt'>Fitting</span></b></p>

<p class=MsoNormal style='text-align:justify'><i>Goal: to estimate
simultaneously peak shape parameters in spectra with large number of peaks</i></p>

<p class=MsoNormal style='margin-left:36.0pt;text-align:justify;text-indent:
-18.0pt'>•<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>peaks can be fitted separately, each peak (or multiplets) in a region or
together all peaks in a spectrum. To fit separately each peak one needs to
determine the fitted region. However it can happen that the regions of
neighboring peaks are overlapping. Then the results of fitting are very poor.
On the other hand, when fitting together all peaks found in a  spectrum, one
needs to have a method that is  stable (converges) and fast enough to carry out
fitting in reasonable time </p>

<p class=MsoNormal style='margin-left:36.0pt;text-align:justify;text-indent:
-18.0pt'>•<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>we have implemented the nonsymmetrical semiempirical peak shape function
[1]</p>

<p class=MsoNormal style='margin-left:36.0pt;text-align:justify;text-indent:
-18.0pt'>•<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>it contains the symmetrical Gaussian as well as nonsymmetrical terms.</p>

<p class=MsoNormal style='text-align:justify'>

<table cellpadding=0 cellspacing=0 align=left>
 <tr>
  <td width=84 height=18></td>
 </tr>
 <tr>
  <td></td>
  <td><img width=372 height=127 src="gif/spectrumfit_awni_image001.gif"></td>
 </tr>
</table>

<span style='font-size:16.0pt'>&nbsp;</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:16.0pt'>&nbsp;</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:16.0pt'>&nbsp;</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:16.0pt'>&nbsp;</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:16.0pt'>&nbsp;</span></p>

<br clear=ALL>

<p class=MsoNormal style='text-indent:34.2pt'>where T and S are relative amplitudes
and B is slope.</p>

<p class=MsoNormal>&nbsp;</p>

<p class=MsoNormal style='margin-left:36.0pt;text-align:justify;text-indent:
-18.0pt'>•<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>algorithm without matrix inversion (AWMI) allows fitting tens, hundreds
of peaks simultaneously that represent sometimes thousands of parameters [2],
[5]. </p>

<p class=MsoNormal><i>Function:</i></p>

<p class=MsoNormal style='text-align:justify'>void <a
href="http://root.cern.ch/root/html/TSpectrum.html#TSpectrum:Fit1Awmi"><b>TSpectrumFit::FitAwmi</b></a>(<a
href="http://root.cern.ch/root/html/ListOfTypes.html#double"><b>double</b></a> *fSource)
</p>

<p class=MsoNormal style='text-align:justify'>This function fits the source
spectrum using AWMI algorithm. The calling program should fill in input fitting
parameters of the TSpectrumFit class using a set of TSpectrumFit setters. The
fitted parameters are written into the class and the fitted data are written
into source spectrum. </p>

<p class=MsoNormal>&nbsp;</p>

<p class=MsoNormal><i><span style='color:red'>Parameter:</span></i></p>

<p class=MsoNormal style='text-align:justify'>        <b>fSource</b>-pointer to
the vector of source spectrum                  </p>

<p class=MsoNormal style='text-align:justify'>        </p>

<p class=MsoNormal><i><span style='color:red'>Member variables of the
TSpectrumFit class:</span></i></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Int_t     fNPeaks;                    //number of peaks present in fit, input
parameter, it should be &gt; 0</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Int_t     fNumberIterations;          //number of iterations in fitting
procedure, input parameter, it should be &gt; 0</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Int_t     fXmin;                      //first fitted channel</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Int_t     fXmax;                      //last fitted channel</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Int_t     fStatisticType;             //type of statistics, possible values
kFitOptimChiCounts (chi square statistics with counts as weighting
coefficients), kFitOptimChiFuncValues (chi square statistics with function
values as weighting coefficients),kFitOptimMaxLikelihood</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Int_t     fAlphaOptim;                //optimization of convergence algorithm, possible
values kFitAlphaHalving, kFitAlphaOptimal</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Int_t     fPower;                     //possible values kFitPower2,4,6,8,10,12,
for details see references. It applies only for Awmi fitting function.</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Int_t     fFitTaylor;                 //order of Taylor expansion, possible
values kFitTaylorOrderFirst, kFitTaylorOrderSecond. It applies only for Awmi
fitting function.</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fAlpha;                     //convergence coefficient, input
parameter, it should be positive number and &lt;=1, for details see references</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fChi;                       //here the fitting functions return
resulting chi square   </span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t *fPositionInit;              //[fNPeaks] array of initial values of
peaks positions, input parameters</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t *fPositionCalc;              //[fNPeaks] array of calculated values of
fitted positions, output parameters</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t *fPositionErr;               //[fNPeaks] array of position errors</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t *fAmpInit;                   //[fNPeaks] array of initial values of
peaks amplitudes, input parameters</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t *fAmpCalc;                   //[fNPeaks] array of calculated values of
fitted amplitudes, output parameters</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t *fAmpErr;                    //[fNPeaks] array of amplitude errors</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t *fArea;                      //[fNPeaks] array of calculated areas of
peaks</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t *fAreaErr;                   //[fNPeaks] array of errors of peak areas</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fSigmaInit;                 //initial value of sigma parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fSigmaCalc;                 //calculated value of sigma parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fSigmaErr;                  //error value of sigma parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fTInit;                     //initial value of t parameter (relative
amplitude of tail), for details see html manual and references</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fTCalc;                     //calculated value of t parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fTErr;                      //error value of t parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fBInit;                     //initial value of b parameter (slope),
for details see html manual and references</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fBCalc;                     //calculated value of b parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fBErr;                      //error value of b parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fSInit;                     //initial value of s parameter (relative
amplitude of step), for details see html manual and references</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fSCalc;                     //calculated value of s parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fSErr;                      //error value of s parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fA0Init;                    //initial value of background a0
parameter(backgroud is estimated as a0+a1*x+a2*x*x)</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fA0Calc;                    //calculated value of background a0
parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fA0Err;                     //error value of background a0 parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fA1Init;                    //initial value of background a1
parameter(backgroud is estimated as a0+a1*x+a2*x*x)</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fA1Calc;                    //calculated value of background a1
parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fA1Err;                     //error value of background a1 parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fA2Init;                    //initial value of background a2
parameter(backgroud is estimated as a0+a1*x+a2*x*x)</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fA2Calc;                    //calculated value of background a2
parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Double_t  fA2Err;                     //error value of background a2 parameter</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Bool_t   *fFixPosition;               //[fNPeaks] array of logical values which
allow to fix appropriate positions (not fit). However they are present in the
estimated functional   </span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Bool_t   *fFixAmp;                    //[fNPeaks] array of logical values which
allow to fix appropriate amplitudes (not fit). However they are present in the
estimated functional      </span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Bool_t    fFixSigma;                  //logical value of sigma parameter, which
allows to fix the parameter (not to fit).   </span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Bool_t    fFixT;                      //logical value of t parameter, which
allows to fix the parameter (not to fit).      </span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Bool_t    fFixB;                      //logical value of b parameter, which
allows to fix the parameter (not to fit).   </span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Bool_t    fFixS;                      //logical value of s parameter, which
allows to fix the parameter (not to fit).      </span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Bool_t    fFixA0;                     //logical value of a0 parameter, which
allows to fix the parameter (not to fit).</span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Bool_t    fFixA1;                     //logical value of a1 parameter, which
allows to fix the parameter (not to fit).   </span></p>

<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt'>  
Bool_t    fFixA2;                     //logical value of a2 parameter, which
allows to fix the parameter (not to fit).</span></p>

<p class=MsoNormal style='text-align:justify'><b><i>&nbsp;</i></b></p>

<p class=MsoNormal style='text-align:justify'><b><i>References:</i></b></p>

<p class=MsoNormal style='text-align:justify'>[1] Phillps G.W., Marlow K.W.,
NIM 137 (1976) 525.</p>

<p class=MsoNormal style='text-align:justify'>[2] I. A. Slavic: Nonlinear
least-squares fitting without matrix inversion applied to complex Gaussian
spectra analysis. NIM 134 (1976) 285-289.</p>

<p class=MsoNormal style='text-align:justify'>[3] T. Awaya: A new method for
curve fitting to the data with low statistics not using chi-square method. NIM
165 (1979) 317-323.</p>

<p class=MsoNormal style='text-align:justify'>[4] T. Hauschild, M. Jentschel:
Comparison of maximum likelihood estimation and chi-square statistics applied
to counting experiments. NIM A 457 (2001) 384-401.</p>

<p class=MsoNormal style='text-align:justify'> [5]  M. Morhá&#269;,  J.
Kliman,  M. Jandel,  &#317;. Krupa, V. Matoušek: Study of fitting algorithms
applied to simultaneous analysis of large number of peaks in -ray spectra. <span
lang=EN-GB>Applied Spectroscopy, Vol. 57, No. 7, pp. 753-760, 2003</span></p>

<p class=MsoNormal style='text-align:justify'> </p>

<p class=MsoNormal style='text-align:justify'><i>Example  – script FitAwmi.c:</i></p>

<p class=MsoNormal style='text-align:justify'><i><span style='font-size:16.0pt'><img
border=0 width=601 height=402 src="gif/spectrumfit_awni_image002.jpg"></span></i></p>

<p class=MsoNormal style='text-align:justify'><b>Fig. 1 Original spectrum
(black line) and fitted spectrum using AWMI algorithm (red line) and number of
iteration steps = 1000. Positions of fitted peaks are denoted by markers</b></p>

<p class=MsoNormal><b><span style='color:#339966'>Script:</span></b></p>

<p class=MsoNormal><span style='font-size:10.0pt'>// Example to illustrate
fitting function using AWMI algorithm.</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>// To execute this example,
do</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>// root &gt; .x FitAwmi.C</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>&nbsp;</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>void FitAwmi() {</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Double_t a;</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Int_t
i,nfound=0,bin;</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Int_t nbins = 256;</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Int_t xmin  = 0;</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Int_t xmax  =
nbins;</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Double_t * source =
new Double_t[nbins];</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Double_t * dest =
new Double_t[nbins];   </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   TH1F *h = new
TH1F(&quot;h&quot;,&quot;Fitting using AWMI algorithm&quot;,nbins,xmin,xmax);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   TH1F *d = new
TH1F(&quot;d&quot;,&quot;&quot;,nbins,xmin,xmax);      </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   TFile *f = new
TFile(&quot;TSpectrum.root&quot;);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   h=(TH1F*)
f-&gt;Get(&quot;fit;1&quot;);   </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   for (i = 0; i &lt;
nbins; i++) source[i]=h-&gt;GetBinContent(i + 1);      </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   TCanvas *Fit1 =
gROOT-&gt;GetListOfCanvases()-&gt;FindObject(&quot;Fit1&quot;);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   if (!Fit1) Fit1 =
new TCanvas(&quot;Fit1&quot;,&quot;Fit1&quot;,10,10,1000,700);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>  
h-&gt;Draw(&quot;L&quot;);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   TSpectrum *s = new
TSpectrum();</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   //searching for
candidate peaks positions</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   nfound =
s-&gt;SearchHighRes(source, dest, nbins, 2, 0.1, kFALSE, 10000, kFALSE, 0);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Bool_t *FixPos =
new Bool_t[nfound];</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Bool_t *FixAmp =
new Bool_t[nfound];      </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   for(i = 0; i&lt;
nfound ; i++){</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>      FixPos[i] =
kFALSE;</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>      FixAmp[i] =
kFALSE;    </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   }</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   //filling in the
initial estimates of the input parameters</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Double_t *PosX =
new Double_t[nfound];         </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Double_t *PosY =
new Double_t[nfound];</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   PosX =
s-&gt;GetPositionX();</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   for (i = 0; i &lt;
nfound; i++) {</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>                                                a=PosX[i];</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>        bin = 1 +
Int_t(a + 0.5);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>        PosY[i] =
h-&gt;GetBinContent(bin);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   }   </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   TSpectrumFit
*pfit=new TSpectrumFit(nfound);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>  
pfit-&gt;SetFitParameters(xmin, xmax-1, 1000, 0.1, pfit-&gt;kFitOptimChiCounts,
pfit-&gt;kFitAlphaHalving, pfit-&gt;kFitPower2,
pfit-&gt;kFitTaylorOrderFirst);   </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   pfit-&gt;SetPeakParameters(2,
kFALSE, PosX, (Bool_t *) FixPos, PosY, (Bool_t *) FixAmp);   </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>  
pfit-&gt;FitAwmi(source);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Double_t
*CalcPositions = new Double_t[nfound];      </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Double_t
*CalcAmplitudes = new Double_t[nfound];         </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>  
CalcPositions=pfit-&gt;GetPositions();</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>  
CalcAmplitudes=pfit-&gt;GetAmplitudes();   </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   for (i = 0; i &lt;
nbins; i++) d-&gt;SetBinContent(i + 1,source[i]);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>  
d-&gt;SetLineColor(kRed);   </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>  
d-&gt;Draw(&quot;SAME L&quot;);  </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   for (i = 0; i &lt;
nfound; i++) {</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>                                                a=CalcPositions[i];</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>        bin = 1 +
Int_t(a + 0.5);                </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>        PosX[i] =
d-&gt;GetBinCenter(bin);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>        PosY[i] =
d-&gt;GetBinContent(bin);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   }</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   TPolyMarker * pm =
(TPolyMarker*)h-&gt;GetListOfFunctions()-&gt;FindObject(&quot;TPolyMarker&quot;);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   if (pm) {</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>     
h-&gt;GetListOfFunctions()-&gt;Remove(pm);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>      delete pm;</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   }</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   pm = new
TPolyMarker(nfound, PosX, PosY);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>  
h-&gt;GetListOfFunctions()-&gt;Add(pm);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>  
pm-&gt;SetMarkerStyle(23);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>  
pm-&gt;SetMarkerColor(kRed);</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>  
pm-&gt;SetMarkerSize(1);   </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>}</span></p>

</div>

<!-- */
// --> End_Html

   Int_t i, j, k, shift =
       2 * fNPeaks + 7, peak_vel, rozmer, iter, pw, regul_cycle,
       flag;
   Double_t a, b, c, d = 0, alpha, chi_opt, yw, ywm, f, chi2, chi_min, chi =
       0, pi, pmin = 0, chi_cel = 0, chi_er;
   Double_t *working_space = new Double_t[5 * (2 * fNPeaks + 7)];
   for (i = 0, j = 0; i < fNPeaks; i++) {
      working_space[2 * i] = fAmpInit[i];        //vector parameter
      if (fFixAmp[i] == false) {
         working_space[shift + j] = fAmpInit[i];        //vector xk
         j += 1;
      }
      working_space[2 * i + 1] = fPositionInit[i];        //vector parameter
      if (fFixPosition[i] == false) {
         working_space[shift + j] = fPositionInit[i];        //vector xk
         j += 1;
      }
   }
   peak_vel = 2 * i;
   working_space[2 * i] = fSigmaInit;        //vector parameter
   if (fFixSigma == false) {
      working_space[shift + j] = fSigmaInit;        //vector xk
      j += 1;
   }
   working_space[2 * i + 1] = fTInit;        //vector parameter
   if (fFixT == false) {
      working_space[shift + j] = fTInit;        //vector xk
      j += 1;
   }
   working_space[2 * i + 2] = fBInit;        //vector parameter
   if (fFixB == false) {
      working_space[shift + j] = fBInit;        //vector xk
      j += 1;
   }
   working_space[2 * i + 3] = fSInit;        //vector parameter
   if (fFixS == false) {
      working_space[shift + j] = fSInit;        //vector xk
      j += 1;
   }
   working_space[2 * i + 4] = fA0Init;        //vector parameter
   if (fFixA0 == false) {
      working_space[shift + j] = fA0Init;        //vector xk
      j += 1;
   }
   working_space[2 * i + 5] = fA1Init;        //vector parameter
   if (fFixA1 == false) {
      working_space[shift + j] = fA1Init;        //vector xk
      j += 1;
   }
   working_space[2 * i + 6] = fA2Init;        //vector parameter
   if (fFixA2 == false) {
      working_space[shift + j] = fA2Init;        //vector xk
      j += 1;
   }
   rozmer = j;
   if (rozmer == 0){
      delete [] working_space;
      Error ("FitAwmi","All parameters are fixed");
      return;
   }
   if (rozmer >= fXmax - fXmin + 1){
      delete [] working_space;
      Error ("FitAwmi","Number of fitted parameters is larger than # of fitted points");
      return;
   }
   for (iter = 0; iter < fNumberIterations; iter++) {
      for (j = 0; j < rozmer; j++) {
         working_space[2 * shift + j] = 0, working_space[3 * shift + j] = 0;        //der,temp
      }

          //filling vectors
      alpha = fAlpha;
      chi_opt = 0, pw = fPower - 2;
      for (i = fXmin; i <= fXmax; i++) {
         yw = source[i];
         ywm = yw;
         f = Shape(fNPeaks, (Double_t) i, working_space,
                    working_space[peak_vel], working_space[peak_vel + 1],
                    working_space[peak_vel + 3],
                    working_space[peak_vel + 2],
                    working_space[peak_vel + 4],
                    working_space[peak_vel + 5],
                    working_space[peak_vel + 6]);
         if (fStatisticType == kFitOptimMaxLikelihood) {
            if (f > 0.00001)
               chi_opt += yw * TMath::Log(f) - f;
         }

         else {
            if (ywm != 0)
               chi_opt += (yw - f) * (yw - f) / ywm;
         }
         if (fStatisticType == kFitOptimChiFuncValues) {
            ywm = f;
            if (f < 0.00001)
               ywm = 0.00001;
         }

         else if (fStatisticType == kFitOptimMaxLikelihood) {
            ywm = f;
            if (f < 0.001)
               ywm = 0.001;
         }

         else {
            if (ywm == 0)
               ywm = 1;
         }

             //calculation of gradient vector
             for (j = 0, k = 0; j < fNPeaks; j++) {
            if (fFixAmp[j] == false) {
               a = Deramp((Double_t) i, working_space[2 * j + 1],
                           working_space[peak_vel],
                           working_space[peak_vel + 1],
                           working_space[peak_vel + 3],
                           working_space[peak_vel + 2]);
               if (ywm != 0) {
                  c = Ourpowl(a, pw);
                  if (fStatisticType == kFitOptimChiFuncValues) {
                     b = a * (yw * yw - f * f) / (ywm * ywm);
                     working_space[2 * shift + k] += b * c;        //der
                     b = a * a * (4 * yw - 2 * f) / (ywm * ywm);
                     working_space[3 * shift + k] += b * c;        //temp
                  }

                  else {
                     b = a * (yw - f) / ywm;
                     working_space[2 * shift + k] += b * c;        //der
                     b = a * a / ywm;
                     working_space[3 * shift + k] += b * c;        //temp
                  }
               }
               k += 1;
            }
            if (fFixPosition[j] == false) {
               a = Deri0((Double_t) i, working_space[2 * j],
                          working_space[2 * j + 1],
                          working_space[peak_vel],
                          working_space[peak_vel + 1],
                          working_space[peak_vel + 3],
                          working_space[peak_vel + 2]);
               if (fFitTaylor == kFitTaylorOrderSecond)
                  d = Derderi0((Double_t) i, working_space[2 * j],
                                working_space[2 * j + 1],
                                working_space[peak_vel]);
               if (ywm != 0) {
                  c = Ourpowl(a, pw);
                  if (TMath::Abs(a) > 0.00000001
                       && fFitTaylor == kFitTaylorOrderSecond) {
                     d = d * TMath::Abs(yw - f) / (2 * a * ywm);
                     if (((a + d) <= 0 && a >= 0) || ((a + d) >= 0 && a <= 0))
                        d = 0;
                  }

                  else
                     d = 0;
                  a = a + d;
                  if (fStatisticType == kFitOptimChiFuncValues) {
                     b = a * (yw * yw - f * f) / (ywm * ywm);
                     working_space[2 * shift + k] += b * c;        //der
                     b = a * a * (4 * yw - 2 * f) / (ywm * ywm);
                     working_space[3 * shift + k] += b * c;        //temp
                  }

                  else {
                     b = a * (yw - f) / ywm;
                     working_space[2 * shift + k] += b * c;        //der
                     b = a * a / ywm;
                     working_space[3 * shift + k] += b * c;        //temp
                  }
               }
               k += 1;
            }
         }
         if (fFixSigma == false) {
            a = Dersigma(fNPeaks, (Double_t) i, working_space,
                          working_space[peak_vel],
                          working_space[peak_vel + 1],
                          working_space[peak_vel + 3],
                          working_space[peak_vel + 2]);
            if (fFitTaylor == kFitTaylorOrderSecond)
               d = Derdersigma(fNPeaks, (Double_t) i,
                                working_space, working_space[peak_vel]);
            if (ywm != 0) {
               c = Ourpowl(a, pw);
               if (TMath::Abs(a) > 0.00000001
                    && fFitTaylor == kFitTaylorOrderSecond) {
                  d = d * TMath::Abs(yw - f) / (2 * a * ywm);
                  if (((a + d) <= 0 && a >= 0) || ((a + d) >= 0 && a <= 0))
                     d = 0;
               }

               else
                  d = 0;
               a = a + d;
               if (fStatisticType == kFitOptimChiFuncValues) {
                  b = a * (yw * yw - f * f) / (ywm * ywm);
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a * (4 * yw - 2 * f) / (ywm * ywm);
                  working_space[3 * shift + k] += b * c;        //temp
               }

               else {
                  b = a * (yw - f) / ywm;
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a / ywm;
                  working_space[3 * shift + k] += b * c;        //temp
               }
            }
            k += 1;
         }
         if (fFixT == false) {
            a = Dert(fNPeaks, (Double_t) i, working_space,
                      working_space[peak_vel],
                      working_space[peak_vel + 2]);
            if (ywm != 0) {
               c = Ourpowl(a, pw);
               if (fStatisticType == kFitOptimChiFuncValues) {
                  b = a * (yw * yw - f * f) / (ywm * ywm);
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a * (4 * yw - 2 * f) / (ywm * ywm);
                  working_space[3 * shift + k] += b * c;        //temp
               }

               else {
                  b = a * (yw - f) / ywm;
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a / ywm;
                  working_space[3 * shift + k] += b * c;        //temp
               }
            }
            k += 1;
         }
         if (fFixB == false) {
            a = Derb(fNPeaks, (Double_t) i, working_space,
                      working_space[peak_vel], working_space[peak_vel + 1],
                      working_space[peak_vel + 2]);
            if (ywm != 0) {
               c = Ourpowl(a, pw);
               if (fStatisticType == kFitOptimChiFuncValues) {
                  b = a * (yw * yw - f * f) / (ywm * ywm);
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a * (4 * yw - 2 * f) / (ywm * ywm);
                  working_space[3 * shift + k] += b * c;        //temp
               }

               else {
                  b = a * (yw - f) / ywm;
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a / ywm;
                  working_space[3 * shift + k] += b * c;        //temp
               }
            }
            k += 1;
         }
         if (fFixS == false) {
            a = Ders(fNPeaks, (Double_t) i, working_space,
                      working_space[peak_vel]);
            if (ywm != 0) {
               c = Ourpowl(a, pw);
               if (fStatisticType == kFitOptimChiFuncValues) {
                  b = a * (yw * yw - f * f) / (ywm * ywm);
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a * (4 * yw - 2 * f) / (ywm * ywm);
                  working_space[3 * shift + k] += b * c;        //temp
               }

               else {
                  b = a * (yw - f) / ywm;
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a / ywm;
                  working_space[3 * shift + k] += b * c;        //temp
               }
            }
            k += 1;
         }
         if (fFixA0 == false) {
            a = 1.;
            if (ywm != 0) {
               c = Ourpowl(a, pw);
               if (fStatisticType == kFitOptimChiFuncValues) {
                  b = a * (yw * yw - f * f) / (ywm * ywm);
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a * (4 * yw - 2 * f) / (ywm * ywm);
                  working_space[3 * shift + k] += b * c;        //temp
               }

               else {
                  b = a * (yw - f) / ywm;
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a / ywm;
                  working_space[3 * shift + k] += b * c;        //temp
               }
            }
            k += 1;
         }
         if (fFixA1 == false) {
            a = Dera1((Double_t) i);
            if (ywm != 0) {
               c = Ourpowl(a, pw);
               if (fStatisticType == kFitOptimChiFuncValues) {
                  b = a * (yw * yw - f * f) / (ywm * ywm);
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a * (4 * yw - 2 * f) / (ywm * ywm);
                  working_space[3 * shift + k] += b * c;        //temp
               }

               else {
                  b = a * (yw - f) / ywm;
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a / ywm;
                  working_space[3 * shift + k] += b * c;        //temp
               }
            }
            k += 1;
         }
         if (fFixA2 == false) {
            a = Dera2((Double_t) i);
            if (ywm != 0) {
               c = Ourpowl(a, pw);
               if (fStatisticType == kFitOptimChiFuncValues) {
                  b = a * (yw * yw - f * f) / (ywm * ywm);
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a * (4 * yw - 2 * f) / (ywm * ywm);
                  working_space[3 * shift + k] += b * c;        //temp
               }

               else {
                  b = a * (yw - f) / ywm;
                  working_space[2 * shift + k] += b * c;        //der
                  b = a * a / ywm;
                  working_space[3 * shift + k] += b * c;        //temp
               }
            }
            k += 1;
         }
      }
      for (j = 0; j < rozmer; j++) {
         if (TMath::Abs(working_space[3 * shift + j]) > 0.000001)
            working_space[2 * shift + j] = working_space[2 * shift + j] / TMath::Abs(working_space[3 * shift + j]);        //der[j]=der[j]/temp[j]
         else
            working_space[2 * shift + j] = 0;        //der[j]
      }

      //calculate chi_opt
      chi2 = chi_opt;
      chi_opt = TMath::Sqrt(TMath::Abs(chi_opt));

      //calculate new parameters
      regul_cycle = 0;
      for (j = 0; j < rozmer; j++) {
         working_space[4 * shift + j] = working_space[shift + j];        //temp_xk[j]=xk[j]
      }

      do {
         if (fAlphaOptim == kFitAlphaOptimal) {
            if (fStatisticType != kFitOptimMaxLikelihood)
               chi_min = 10000 * chi2;

            else
               chi_min = 0.1 * chi2;
            flag = 0;
            for (pi = 0.1; flag == 0 && pi <= 100; pi += 0.1) {
               for (j = 0; j < rozmer; j++) {
                  working_space[shift + j] = working_space[4 * shift + j] + pi * alpha * working_space[2 * shift + j];        //xk[j]=temp_xk[j]+pi*alpha*der[j]
               }
               for (i = 0, j = 0; i < fNPeaks; i++) {
                  if (fFixAmp[i] == false) {
                     if (working_space[shift + j] < 0)        //xk[j]
                        working_space[shift + j] = 0;        //xk[j]
                     working_space[2 * i] = working_space[shift + j];        //parameter[2*i]=xk[j]
                     j += 1;
                  }
                  if (fFixPosition[i] == false) {
                     if (working_space[shift + j] < fXmin)        //xk[j]
                        working_space[shift + j] = fXmin;        //xk[j]
                     if (working_space[shift + j] > fXmax)        //xk[j]
                        working_space[shift + j] = fXmax;        //xk[j]
                     working_space[2 * i + 1] = working_space[shift + j];        //parameter[2*i+1]=xk[j]
                     j += 1;
                  }
               }
               if (fFixSigma == false) {
                  if (working_space[shift + j] < 0.001) {        //xk[j]
                     working_space[shift + j] = 0.001;        //xk[j]
                  }
                  working_space[peak_vel] = working_space[shift + j];        //parameter[peak_vel]=xk[j]
                  j += 1;
               }
               if (fFixT == false) {
                  working_space[peak_vel + 1] = working_space[shift + j];        //parameter[peak_vel+1]=xk[j]
                  j += 1;
               }
               if (fFixB == false) {
                  if (TMath::Abs(working_space[shift + j]) < 0.001) {        //xk[j]
                     if (working_space[shift + j] < 0)        //xk[j]
                        working_space[shift + j] = -0.001;        //xk[j]
                     else
                        working_space[shift + j] = 0.001;        //xk[j]
                  }
                  working_space[peak_vel + 2] = working_space[shift + j];        //parameter[peak_vel+2]=xk[j]
                  j += 1;
               }
               if (fFixS == false) {
                  working_space[peak_vel + 3] = working_space[shift + j];        //parameter[peak_vel+3]=xk[j]
                  j += 1;
               }
               if (fFixA0 == false) {
                  working_space[peak_vel + 4] = working_space[shift + j];        //parameter[peak_vel+4]=xk[j]
                  j += 1;
               }
               if (fFixA1 == false) {
                  working_space[peak_vel + 5] = working_space[shift + j];        //parameter[peak_vel+5]=xk[j]
                  j += 1;
               }
               if (fFixA2 == false) {
                  working_space[peak_vel + 6] = working_space[shift + j];        //parameter[peak_vel+6]=xk[j]
                  j += 1;
               }
               chi2 = 0;
               for (i = fXmin; i <= fXmax; i++) {
                  yw = source[i];
                  ywm = yw;
                  f = Shape(fNPeaks, (Double_t) i, working_space,
                  working_space[peak_vel],
                  working_space[peak_vel + 1],
                  working_space[peak_vel + 3],
                  working_space[peak_vel + 2],
                  working_space[peak_vel + 4],
                  working_space[peak_vel + 5],
                  working_space[peak_vel + 6]);
                  if (fStatisticType == kFitOptimChiFuncValues) {
                     ywm = f;
                     if (f < 0.00001)
                        ywm = 0.00001;
                  }
                  if (fStatisticType == kFitOptimMaxLikelihood) {
                     if (f > 0.00001)
                        chi2 += yw * TMath::Log(f) - f;
                  }

                  else {
                     if (ywm != 0)
                        chi2 += (yw - f) * (yw - f) / ywm;
                  }
               }
               if ((chi2 < chi_min
                    && fStatisticType != kFitOptimMaxLikelihood)
                    || (chi2 > chi_min
                    && fStatisticType == kFitOptimMaxLikelihood)) {
                  pmin = pi, chi_min = chi2;
               }

               else
                  flag = 1;
               if (pi == 0.1)
                  chi_min = chi2;
               chi = chi_min;
            }
            if (pmin != 0.1) {
               for (j = 0; j < rozmer; j++) {
                  working_space[shift + j] = working_space[4 * shift + j] + pmin * alpha * working_space[2 * shift + j];        //xk[j]=temp_xk[j]+pmin*alpha*der[j]
               }
               for (i = 0, j = 0; i < fNPeaks; i++) {
                  if (fFixAmp[i] == false) {
                     if (working_space[shift + j] < 0)        //xk[j]
                        working_space[shift + j] = 0;        //xk[j]
                     working_space[2 * i] = working_space[shift + j];        //parameter[2*i]=xk[j]
                     j += 1;
                  }
                  if (fFixPosition[i] == false) {
                     if (working_space[shift + j] < fXmin)        //xk[j]
                        working_space[shift + j] = fXmin;        //xk[j]
                     if (working_space[shift + j] > fXmax)        //xk[j]
                        working_space[shift + j] = fXmax;        //xk[j]
                     working_space[2 * i + 1] = working_space[shift + j];        //parameter[2*i+1]=xk[j]
                     j += 1;
                  }
               }
               if (fFixSigma == false) {
                  if (working_space[shift + j] < 0.001) {        //xk[j]
                     working_space[shift + j] = 0.001;        //xk[j]
                  }
                  working_space[peak_vel] = working_space[shift + j];        //parameter[peak_vel]=xk[j]
                  j += 1;
               }
               if (fFixT == false) {
                  working_space[peak_vel + 1] = working_space[shift + j];        //parameter[peak_vel+1]=xk[j]
                  j += 1;
               }
               if (fFixB == false) {
                  if (TMath::Abs(working_space[shift + j]) < 0.001) {        //xk[j]
                     if (working_space[shift + j] < 0)        //xk[j]
                        working_space[shift + j] = -0.001;        //xk[j]
                     else
                        working_space[shift + j] = 0.001;        //xk[j]
                  }
                  working_space[peak_vel + 2] = working_space[shift + j];        //parameter[peak_vel+2]=xk[j]
                  j += 1;
               }
               if (fFixS == false) {
                  working_space[peak_vel + 3] = working_space[shift + j];        //parameter[peak_vel+3]=xk[j]
                  j += 1;
               }
               if (fFixA0 == false) {
                  working_space[peak_vel + 4] = working_space[shift + j];        //parameter[peak_vel+4]=xk[j]
                  j += 1;
               }
               if (fFixA1 == false) {
                  working_space[peak_vel + 5] = working_space[shift + j];        //parameter[peak_vel+5]=xk[j]
                  j += 1;
               }
               if (fFixA2 == false) {
                  working_space[peak_vel + 6] = working_space[shift + j];        //parameter[peak_vel+6]=xk[j]
                  j += 1;
               }
               chi = chi_min;
            }
         }

         else {
            for (j = 0; j < rozmer; j++) {
               working_space[shift + j] = working_space[4 * shift + j] + alpha * working_space[2 * shift + j];        //xk[j]=temp_xk[j]+pi*alpha*der[j]
            }
            for (i = 0, j = 0; i < fNPeaks; i++) {
               if (fFixAmp[i] == false) {
                  if (working_space[shift + j] < 0)        //xk[j]
                     working_space[shift + j] = 0;        //xk[j]
                  working_space[2 * i] = working_space[shift + j];        //parameter[2*i]=xk[j]
                  j += 1;
               }
               if (fFixPosition[i] == false) {
                  if (working_space[shift + j] < fXmin)        //xk[j]
                     working_space[shift + j] = fXmin;        //xk[j]
                  if (working_space[shift + j] > fXmax)        //xk[j]
                     working_space[shift + j] = fXmax;        //xk[j]
                  working_space[2 * i + 1] = working_space[shift + j];        //parameter[2*i+1]=xk[j]
                  j += 1;
               }
            }
            if (fFixSigma == false) {
               if (working_space[shift + j] < 0.001) {        //xk[j]
                  working_space[shift + j] = 0.001;        //xk[j]
               }
               working_space[peak_vel] = working_space[shift + j];        //parameter[peak_vel]=xk[j]
               j += 1;
            }
            if (fFixT == false) {
               working_space[peak_vel + 1] = working_space[shift + j];        //parameter[peak_vel+1]=xk[j]
               j += 1;
            }
            if (fFixB == false) {
               if (TMath::Abs(working_space[shift + j]) < 0.001) {        //xk[j]
                  if (working_space[shift + j] < 0)        //xk[j]
                     working_space[shift + j] = -0.001;        //xk[j]
                  else
                     working_space[shift + j] = 0.001;        //xk[j]
               }
               working_space[peak_vel + 2] = working_space[shift + j];        //parameter[peak_vel+2]=xk[j]
               j += 1;
            }
            if (fFixS == false) {
               working_space[peak_vel + 3] = working_space[shift + j];        //parameter[peak_vel+3]=xk[j]
               j += 1;
            }
            if (fFixA0 == false) {
               working_space[peak_vel + 4] = working_space[shift + j];        //parameter[peak_vel+4]=xk[j]
               j += 1;
            }
            if (fFixA1 == false) {
               working_space[peak_vel + 5] = working_space[shift + j];        //parameter[peak_vel+5]=xk[j]
               j += 1;
            }
            if (fFixA2 == false) {
               working_space[peak_vel + 6] = working_space[shift + j];        //parameter[peak_vel+6]=xk[j]
               j += 1;
            }
            chi = 0;
            for (i = fXmin; i <= fXmax; i++) {
               yw = source[i];
               ywm = yw;
               f = Shape(fNPeaks, (Double_t) i, working_space,
               working_space[peak_vel],
               working_space[peak_vel + 1],
               working_space[peak_vel + 3],
               working_space[peak_vel + 2],
               working_space[peak_vel + 4],
               working_space[peak_vel + 5],
               working_space[peak_vel + 6]);
               if (fStatisticType == kFitOptimChiFuncValues) {
                  ywm = f;
                  if (f < 0.00001)
                     ywm = 0.00001;
               }
               if (fStatisticType == kFitOptimMaxLikelihood) {
                  if (f > 0.00001)
                     chi += yw * TMath::Log(f) - f;
               }

               else {
                  if (ywm != 0)
                     chi += (yw - f) * (yw - f) / ywm;
               }
            }
         }
         chi2 = chi;
         chi = TMath::Sqrt(TMath::Abs(chi));
         if (fAlphaOptim == kFitAlphaHalving && chi > 1E-6)
            alpha = alpha * chi_opt / (2 * chi);

         else if (fAlphaOptim == kFitAlphaOptimal)
            alpha = alpha / 10.0;
         iter += 1;
         regul_cycle += 1;
      } while (((chi > chi_opt
                 && fStatisticType != kFitOptimMaxLikelihood)
                 || (chi < chi_opt
                 && fStatisticType == kFitOptimMaxLikelihood))
                && regul_cycle < kFitNumRegulCycles);
      for (j = 0; j < rozmer; j++) {
         working_space[4 * shift + j] = 0;        //temp_xk[j]
         working_space[2 * shift + j] = 0;        //der[j]
      }
      for (i = fXmin, chi_cel = 0; i <= fXmax; i++) {
         yw = source[i];
         if (yw == 0)
            yw = 1;
         f = Shape(fNPeaks, (Double_t) i, working_space,
         working_space[peak_vel], working_space[peak_vel + 1],
         working_space[peak_vel + 3],
         working_space[peak_vel + 2],
         working_space[peak_vel + 4],
         working_space[peak_vel + 5],
         working_space[peak_vel + 6]);
         chi_opt = (yw - f) * (yw - f) / yw;
         chi_cel += (yw - f) * (yw - f) / yw;

             //calculate gradient vector
         for (j = 0, k = 0; j < fNPeaks; j++) {
            if (fFixAmp[j] == false) {
               a = Deramp((Double_t) i, working_space[2 * j + 1],
               working_space[peak_vel],
               working_space[peak_vel + 1],
               working_space[peak_vel + 3],
               working_space[peak_vel + 2]);
               if (yw != 0) {
                  c = Ourpowl(a, pw);
                  working_space[2 * shift + k] += chi_opt * c;        //der[k]
                  b = a * a / yw;
                  working_space[4 * shift + k] += b * c;        //temp_xk[k]
               }
               k += 1;
            }
            if (fFixPosition[j] == false) {
               a = Deri0((Double_t) i, working_space[2 * j],
               working_space[2 * j + 1],
               working_space[peak_vel],
               working_space[peak_vel + 1],
               working_space[peak_vel + 3],
               working_space[peak_vel + 2]);
               if (yw != 0) {
                  c = Ourpowl(a, pw);
                  working_space[2 * shift + k] += chi_opt * c;        //der[k]
                  b = a * a / yw;
                  working_space[4 * shift + k] += b * c;        //temp_xk[k]
               }
               k += 1;
            }
         }
         if (fFixSigma == false) {
            a = Dersigma(fNPeaks, (Double_t) i, working_space,
            working_space[peak_vel],
            working_space[peak_vel + 1],
            working_space[peak_vel + 3],
            working_space[peak_vel + 2]);
            if (yw != 0) {
               c = Ourpowl(a, pw);
               working_space[2 * shift + k] += chi_opt * c;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b * c;        //temp_xk[k]
            }
            k += 1;
         }
         if (fFixT == false) {
            a = Dert(fNPeaks, (Double_t) i, working_space,
            working_space[peak_vel],
            working_space[peak_vel + 2]);
            if (yw != 0) {
               c = Ourpowl(a, pw);
               working_space[2 * shift + k] += chi_opt * c;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b * c;        //temp_xk[k]
            }
            k += 1;
         }
         if (fFixB == false) {
            a = Derb(fNPeaks, (Double_t) i, working_space,
            working_space[peak_vel], working_space[peak_vel + 1],
            working_space[peak_vel + 2]);
            if (yw != 0) {
               c = Ourpowl(a, pw);
               working_space[2 * shift + k] += chi_opt * c;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b * c;        //temp_xk[k]
            }
            k += 1;
         }
         if (fFixS == false) {
            a = Ders(fNPeaks, (Double_t) i, working_space,
            working_space[peak_vel]);
            if (yw != 0) {
               c = Ourpowl(a, pw);
               working_space[2 * shift + k] += chi_opt * c;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b * c;        //tem_xk[k]
            }
            k += 1;
         }
         if (fFixA0 == false) {
            a = 1.0;
            if (yw != 0) {
               c = Ourpowl(a, pw);
               working_space[2 * shift + k] += chi_opt * c;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b * c;        //temp_xk[k]
            }
            k += 1;
         }
         if (fFixA1 == false) {
            a = Dera1((Double_t) i);
            if (yw != 0) {
               c = Ourpowl(a, pw);
               working_space[2 * shift + k] += chi_opt * c;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b * c;        //temp_xk[k]
            }
            k += 1;
         }
         if (fFixA2 == false) {
            a = Dera2((Double_t) i);
            if (yw != 0) {
               c = Ourpowl(a, pw);
               working_space[2 * shift + k] += chi_opt * c;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b * c;        //temp_xk[k]
            }
            k += 1;
         }
      }
   }
   b = fXmax - fXmin + 1 - rozmer;
   chi_er = chi_cel / b;
   for (i = 0, j = 0; i < fNPeaks; i++) {
      fArea[i] =
          Area(working_space[2 * i], working_space[peak_vel],
               working_space[peak_vel + 1], working_space[peak_vel + 2]);
      if (fFixAmp[i] == false) {
         fAmpCalc[i] = working_space[shift + j];        //xk[j]
         if (working_space[3 * shift + j] != 0)
            fAmpErr[i] = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
         if (fArea[i] > 0) {
            a = Derpa(working_space[peak_vel],
                       working_space[peak_vel + 1],
                       working_space[peak_vel + 2]);
            b = working_space[4 * shift + j];        //temp_xk[j]
            if (b == 0)
               b = 1;

            else
               b = 1 / b;
            fAreaErr[i] = TMath::Sqrt(TMath::Abs(a * a * b * chi_er));
         }

         else
            fAreaErr[i] = 0;
         j += 1;
      }

      else {
         fAmpCalc[i] = fAmpInit[i];
         fAmpErr[i] = 0;
         fAreaErr[i] = 0;
      }
      if (fFixPosition[i] == false) {
         fPositionCalc[i] = working_space[shift + j];        //xk[j]
         if (working_space[3 * shift + j] != 0)        //temp[j]
            fPositionErr[i] = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
         j += 1;
      }

      else {
         fPositionCalc[i] = fPositionInit[i];
         fPositionErr[i] = 0;
      }
   }
   if (fFixSigma == false) {
      fSigmaCalc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fSigmaErr = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fSigmaCalc = fSigmaInit;
      fSigmaErr = 0;
   }
   if (fFixT == false) {
      fTCalc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fTErr = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fTCalc = fTInit;
      fTErr = 0;
   }
   if (fFixB == false) {
      fBCalc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fBErr = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fBCalc = fBInit;
      fBErr = 0;
   }
   if (fFixS == false) {
      fSCalc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fSErr = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fSCalc = fSInit;
      fSErr = 0;
   }
   if (fFixA0 == false) {
      fA0Calc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fA0Err = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fA0Calc = fA0Init;
      fA0Err = 0;
   }
   if (fFixA1 == false) {
      fA1Calc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fA1Err = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fA1Calc = fA1Init;
      fA1Err = 0;
   }
   if (fFixA2 == false) {
      fA2Calc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fA2Err = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fA2Calc = fA2Init;
      fA2Err = 0;
   }
   b = fXmax - fXmin + 1 - rozmer;
   fChi = chi_cel / b;
   for (i = fXmin; i <= fXmax; i++) {
      f = Shape(fNPeaks, (Double_t) i, working_space,
                 working_space[peak_vel], working_space[peak_vel + 1],
                 working_space[peak_vel + 3], working_space[peak_vel + 2],
                 working_space[peak_vel + 4], working_space[peak_vel + 5],
                 working_space[peak_vel + 6]);
      source[i] = f;
   }
   delete[]working_space;
   return;
}

/////////////////FITTING FUNCTION WITH MATRIX INVERSION///////////////////////////////////////

//_______________________________________________________________________________
void TSpectrumFit::StiefelInversion(Double_t **a, Int_t size)
{
//////////////////////////////////////////////////////////////////////////////////
//   AUXILIARY FUNCTION                                                          //
//                                                                              //
//   This function calculates solution of the system of linear equations.        //
//   The matrix a should have a dimension size*(size+4)                         //
//   The calling function should fill in the matrix, the column size should     //
//   contain vector y (right side of the system of equations). The result is    //
//   placed into size+1 column of the matrix.                                   //
//   according to sigma of peaks.                                               //
//      Function parameters:                                                    //
//              -a-matrix with dimension size*(size+4)                          //                                            //
//              -size-number of rows of the matrix                              //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
   Int_t i, j, k = 0;
   Double_t sk = 0, b, lambdak, normk, normk_old = 0;

   do {
      normk = 0;

          //calculation of rk and norm
          for (i = 0; i < size; i++) {
         a[i][size + 2] = -a[i][size];        //rk=-C
         for (j = 0; j < size; j++) {
            a[i][size + 2] += a[i][j] * a[j][size + 1];        //A*xk-C
         }
         normk += a[i][size + 2] * a[i][size + 2];        //calculation normk
      }

      //calculation of sk
      if (k != 0) {
         sk = normk / normk_old;
      }

      //calculation of uk
      for (i = 0; i < size; i++) {
         a[i][size + 3] = -a[i][size + 2] + sk * a[i][size + 3];        //uk=-rk+sk*uk-1
      }

      //calculation of lambdak
      lambdak = 0;
      for (i = 0; i < size; i++) {
         for (j = 0, b = 0; j < size; j++) {
            b += a[i][j] * a[j][size + 3];        //A*uk
         }
         lambdak += b * a[i][size + 3];
      }
      if (TMath::Abs(lambdak) > 1e-50)        //computer zero
         lambdak = normk / lambdak;

      else
         lambdak = 0;
      for (i = 0; i < size; i++)
         a[i][size + 1] += lambdak * a[i][size + 3];        //xk+1=xk+lambdak*uk
      normk_old = normk;
      k += 1;
   } while (k < size && TMath::Abs(normk) > 1e-50);        //computer zero
   return;
}

//_______________________________________________________________________________
void TSpectrumFit::FitStiefel(Double_t *source)
{
/////////////////////////////////////////////////////////////////////////////
//        ONE-DIMENSIONAL FIT FUNCTION
//        ALGORITHM WITH MATRIX INVERSION (STIEFEL-HESTENS METHOD)
//        This function fits the source spectrum. The calling program should
//        fill in input parameters
//        The fitted parameters are written into
//        output parameters and fitted data are written into
//        source spectrum.
//
//        Function parameters:
//        source-pointer to the vector of source spectrum
//
/////////////////////////////////////////////////////////////////////////////
//Begin_Html <!--
/* -->
<div class=Section3>

<p class=MsoNormal><b><span style='font-size:14.0pt'>Stiefel fitting algorithm</span></b></p>

<p class=MsoNormal style='text-align:justify'><i><span style='font-size:18.0pt'>&nbsp;</span></i></p>

<p class=MsoNormal><i>Function:</i></p>

<p class=MsoNormal style='text-align:justify'>void <a
href="http://root.cern.ch/root/html/TSpectrum.html#TSpectrum:Fit1Awmi"><b>TSpectrumFit::</b></a>FitStiefel(<a
href="http://root.cern.ch/root/html/ListOfTypes.html#double"><b>double</b></a> *fSource)
</p>

<p class=MsoNormal style='text-align:justify'>&nbsp;</p>

<p class=MsoNormal style='text-align:justify'>This function fits the source
spectrum using Stiefel-Hestens method [1] (see Awmi function).  The calling
program should fill in input fitting parameters of the TSpectrumFit class using
a set of TSpectrumFit setters. The fitted parameters are written into the class
and the fitted data are written into source spectrum. It converges faster than
Awmi method.</p>

<p class=MsoNormal>&nbsp;</p>

<p class=MsoNormal><i><span style='color:red'>Parameter:</span></i></p>

<p class=MsoNormal style='text-align:justify'>        <b>fSource</b>-pointer to
the vector of source spectrum                  </p>

<p class=MsoNormal style='text-align:justify'>        </p>

<p class=MsoNormal style='text-align:justify'><i>Example – script FitStiefel.c:</i></p>

<p class=MsoNormal style='text-align:justify'><i><span style='font-size:16.0pt'><img
border=0 width=601 height=402 src="gif/spectrumfit_stiefel_image001.jpg"></span></i></p>

<p class=MsoNormal style='text-align:justify'><b>Fig. 2 Original spectrum
(black line) and fitted spectrum using Stiefel-Hestens method (red line) and
number of iteration steps = 100. Positions of fitted peaks are denoted by
markers</b></p>

<p class=MsoNormal><b><span style='color:#339966'>&nbsp;</span></b></p>

<p class=MsoNormal><b><span style='color:#339966'>Script:</span></b></p>

<p class=MsoNormal><span style='font-size:10.0pt'>// Example to illustrate
fitting function using Stiefel-Hestens method.</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>// To execute this example, do</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>// root &gt; .x FitStiefel.C</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>&nbsp;</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>void FitStiefel() {</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   Double_t a;</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   Int_t i,nfound=0,bin;</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   Int_t nbins = 256;</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   </span><span lang=FR
style='font-size:10.0pt'>Int_t xmin  = 0;</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   Int_t xmax  =
nbins;</span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   </span><span
style='font-size:10.0pt'>Double_t * source = new Double_t[nbins];</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   Double_t * dest = new
Double_t[nbins];   </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   TH1F *h = new TH1F(&quot;h&quot;,&quot;Fitting
using AWMI algorithm&quot;,nbins,xmin,xmax);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   TH1F *d = new
TH1F(&quot;d&quot;,&quot;&quot;,nbins,xmin,xmax);      </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   TFile *f = new
TFile(&quot;TSpectrum.root&quot;);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   h=(TH1F*)
f-&gt;Get(&quot;fit;1&quot;);   </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   for (i = 0; i &lt; nbins;
i++) source[i]=h-&gt;GetBinContent(i + 1);      </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   TCanvas *Fit1 =
gROOT-&gt;GetListOfCanvases()-&gt;FindObject(&quot;Fit1&quot;);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   if (!Fit1) Fit1 = new
TCanvas(&quot;Fit1&quot;,&quot;Fit1&quot;,10,10,1000,700);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   h-&gt;Draw(&quot;L&quot;);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   TSpectrum *s = new
TSpectrum();</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   //searching for candidate
peaks positions</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   nfound =
s-&gt;SearchHighRes(source, dest, nbins, 2, 0.1, kFALSE, 10000, kFALSE, 0);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   Bool_t *FixPos = new
Bool_t[nfound];</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   Bool_t *FixAmp = new
Bool_t[nfound];      </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   for(i = 0; i&lt; nfound ;
i++){</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>      FixPos[i] = kFALSE;</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>      FixAmp[i] = kFALSE;    </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   }</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   //filling in the initial
estimates of the input parameters</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   Double_t *PosX = new
Double_t[nfound];         </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   Double_t *PosY = new
Double_t[nfound];</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   PosX =
s-&gt;GetPositionX();</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   for (i = 0; i &lt; nfound;
i++) {</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>                                                a=PosX[i];</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>        bin = 1 + Int_t(a +
0.5);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>        PosY[i] =
h-&gt;GetBinContent(bin);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   }   </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   TSpectrumFit *pfit=new
TSpectrumFit(nfound);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>  
pfit-&gt;SetFitParameters(xmin, xmax-1, 1000, 0.1, pfit-&gt;kFitOptimChiCounts,
pfit-&gt;kFitAlphaHalving, pfit-&gt;kFitPower2,
pfit-&gt;kFitTaylorOrderFirst);   </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   pfit-&gt;SetPeakParameters(2,
kFALSE, PosX, (Bool_t *) FixPos, PosY, (Bool_t *) FixAmp);   </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>  
pfit-&gt;FitStiefel(source);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   Double_t *CalcPositions =
new Double_t[nfound];      </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   </span><span lang=FR
style='font-size:10.0pt'>Double_t *CalcAmplitudes = new
Double_t[nfound];         </span></p>

<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>   </span><span
style='font-size:10.0pt'>CalcPositions=pfit-&gt;GetPositions();</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>  
CalcAmplitudes=pfit-&gt;GetAmplitudes();   </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   for (i = 0; i &lt; nbins;
i++) d-&gt;SetBinContent(i + 1,source[i]);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>  
d-&gt;SetLineColor(kRed);   </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   d-&gt;Draw(&quot;SAME
L&quot;);  </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   for (i = 0; i &lt; nfound;
i++) {</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>                                                a=CalcPositions[i];</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>        bin = 1 + Int_t(a +
0.5);                </span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>        PosX[i] =
d-&gt;GetBinCenter(bin);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>        PosY[i] =
d-&gt;GetBinContent(bin);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   }</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   TPolyMarker * pm =
(TPolyMarker*)h-&gt;GetListOfFunctions()-&gt;FindObject(&quot;TPolyMarker&quot;);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   if (pm) {</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>     
h-&gt;GetListOfFunctions()-&gt;Remove(pm);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>      delete pm;</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   }</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   pm = new
TPolyMarker(nfound, PosX, PosY);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>  
h-&gt;GetListOfFunctions()-&gt;Add(pm);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   pm-&gt;SetMarkerStyle(23);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>  
pm-&gt;SetMarkerColor(kRed);</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>   pm-&gt;SetMarkerSize(1);  
</span></p>

<p class=MsoNormal><span style='font-size:10.0pt'>}</span></p>

</div>

<!-- */
// --> End_Html

   Int_t i, j, k, shift =
       2 * fNPeaks + 7, peak_vel, rozmer, iter, regul_cycle,
       flag;
   Double_t a, b, alpha, chi_opt, yw, ywm, f, chi2, chi_min, chi =
       0, pi, pmin = 0, chi_cel = 0, chi_er;
   Double_t *working_space = new Double_t[5 * (2 * fNPeaks + 7)];
   for (i = 0, j = 0; i < fNPeaks; i++) {
      working_space[2 * i] = fAmpInit[i];        //vector parameter
      if (fFixAmp[i] == false) {
         working_space[shift + j] = fAmpInit[i];        //vector xk
         j += 1;
      }
      working_space[2 * i + 1] = fPositionInit[i];        //vector parameter
      if (fFixPosition[i] == false) {
         working_space[shift + j] = fPositionInit[i];        //vector xk
         j += 1;
      }
   }
   peak_vel = 2 * i;
   working_space[2 * i] = fSigmaInit;        //vector parameter
   if (fFixSigma == false) {
      working_space[shift + j] = fSigmaInit;        //vector xk
      j += 1;
   }
   working_space[2 * i + 1] = fTInit;        //vector parameter
   if (fFixT == false) {
      working_space[shift + j] = fTInit;        //vector xk
      j += 1;
   }
   working_space[2 * i + 2] = fBInit;        //vector parameter
   if (fFixB == false) {
      working_space[shift + j] = fBInit;        //vector xk
      j += 1;
   }
   working_space[2 * i + 3] = fSInit;        //vector parameter
   if (fFixS == false) {
      working_space[shift + j] = fSInit;        //vector xk
      j += 1;
   }
   working_space[2 * i + 4] = fA0Init;        //vector parameter
   if (fFixA0 == false) {
      working_space[shift + j] = fA0Init;        //vector xk
      j += 1;
   }
   working_space[2 * i + 5] = fA1Init;        //vector parameter
   if (fFixA1 == false) {
      working_space[shift + j] = fA1Init;        //vector xk
      j += 1;
   }
   working_space[2 * i + 6] = fA2Init;        //vector parameter
   if (fFixA2 == false) {
      working_space[shift + j] = fA2Init;        //vector xk
      j += 1;
   }
   rozmer = j;
   if (rozmer == 0){
      Error ("FitAwmi","All parameters are fixed");
      delete [] working_space;
      return;
   }
   if (rozmer >= fXmax - fXmin + 1){
      Error ("FitAwmi","Number of fitted parameters is larger than # of fitted points");
      delete [] working_space;
      return;
   }
   Double_t **working_matrix = new Double_t *[rozmer];
   for (i = 0; i < rozmer; i++)
      working_matrix[i] = new Double_t[rozmer + 4];
   for (iter = 0; iter < fNumberIterations; iter++) {
      for (j = 0; j < rozmer; j++) {
         working_space[3 * shift + j] = 0;        //temp
         for (k = 0; k <= rozmer; k++) {
            working_matrix[j][k] = 0;
         }
      }

      //filling working matrix
      alpha = fAlpha;
      chi_opt = 0;
      for (i = fXmin; i <= fXmax; i++) {

             //calculation of gradient vector
             for (j = 0, k = 0; j < fNPeaks; j++) {
            if (fFixAmp[j] == false) {
               working_space[2 * shift + k] =
                   Deramp((Double_t) i, working_space[2 * j + 1],
               working_space[peak_vel],
               working_space[peak_vel + 1],
               working_space[peak_vel + 3],
               working_space[peak_vel + 2]);
               k += 1;
            }
            if (fFixPosition[j] == false) {
               working_space[2 * shift + k] =
                   Deri0((Double_t) i, working_space[2 * j],
               working_space[2 * j + 1], working_space[peak_vel],
               working_space[peak_vel + 1],
               working_space[peak_vel + 3],
               working_space[peak_vel + 2]);
               k += 1;
            }
         } if (fFixSigma == false) {
            working_space[2 * shift + k] =
                Dersigma(fNPeaks, (Double_t) i, working_space,
            working_space[peak_vel],
            working_space[peak_vel + 1],
            working_space[peak_vel + 3],
            working_space[peak_vel + 2]);
            k += 1;
         }
         if (fFixT == false) {
            working_space[2 * shift + k] =
                Dert(fNPeaks, (Double_t) i, working_space,
            working_space[peak_vel], working_space[peak_vel + 2]);
            k += 1;
         }
         if (fFixB == false) {
            working_space[2 * shift + k] =
                Derb(fNPeaks, (Double_t) i, working_space,
            working_space[peak_vel], working_space[peak_vel + 1],
            working_space[peak_vel + 2]);
            k += 1;
         }
         if (fFixS == false) {
            working_space[2 * shift + k] =
                Ders(fNPeaks, (Double_t) i, working_space,
            working_space[peak_vel]);
            k += 1;
         }
         if (fFixA0 == false) {
            working_space[2 * shift + k] = 1.;
            k += 1;
         }
         if (fFixA1 == false) {
            working_space[2 * shift + k] = Dera1((Double_t) i);
            k += 1;
         }
         if (fFixA2 == false) {
            working_space[2 * shift + k] = Dera2((Double_t) i);
            k += 1;
         }
         yw = source[i];
         ywm = yw;
         f = Shape(fNPeaks, (Double_t) i, working_space,
         working_space[peak_vel], working_space[peak_vel + 1],
         working_space[peak_vel + 3],
         working_space[peak_vel + 2],
         working_space[peak_vel + 4],
         working_space[peak_vel + 5],
         working_space[peak_vel + 6]);
         if (fStatisticType == kFitOptimMaxLikelihood) {
            if (f > 0.00001)
               chi_opt += yw * TMath::Log(f) - f;
         }

         else {
            if (ywm != 0)
               chi_opt += (yw - f) * (yw - f) / ywm;
         }
         if (fStatisticType == kFitOptimChiFuncValues) {
            ywm = f;
            if (f < 0.00001)
               ywm = 0.00001;
         }

         else if (fStatisticType == kFitOptimMaxLikelihood) {
            ywm = f;
            if (f < 0.00001)
               ywm = 0.00001;
         }

         else {
            if (ywm == 0)
               ywm = 1;
         }
         for (j = 0; j < rozmer; j++) {
            for (k = 0; k < rozmer; k++) {
               b = working_space[2 * shift +
                                  j] * working_space[2 * shift + k] / ywm;
               if (fStatisticType == kFitOptimChiFuncValues)
                  b = b * (4 * yw - 2 * f) / ywm;
               working_matrix[j][k] += b;
               if (j == k)
                  working_space[3 * shift + j] += b;
            }
         }
         if (fStatisticType == kFitOptimChiFuncValues)
            b = (f * f - yw * yw) / (ywm * ywm);

         else
            b = (f - yw) / ywm;
         for (j = 0; j < rozmer; j++) {
            working_matrix[j][rozmer] -= b * working_space[2 * shift + j];
         }
      }
      for (i = 0; i < rozmer; i++) {
         working_matrix[i][rozmer + 1] = 0;        //xk
      }
      StiefelInversion(working_matrix, rozmer);
      for (i = 0; i < rozmer; i++) {
         working_space[2 * shift + i] = working_matrix[i][rozmer + 1];        //der
      }

      //calculate chi_opt
      chi2 = chi_opt;
      chi_opt = TMath::Sqrt(TMath::Abs(chi_opt));

      //calculate new parameters
      regul_cycle = 0;
      for (j = 0; j < rozmer; j++) {
         working_space[4 * shift + j] = working_space[shift + j];        //temp_xk[j]=xk[j]
      }

      do {
         if (fAlphaOptim == kFitAlphaOptimal) {
            if (fStatisticType != kFitOptimMaxLikelihood)
               chi_min = 10000 * chi2;

            else
               chi_min = 0.1 * chi2;
            flag = 0;
            for (pi = 0.1; flag == 0 && pi <= 100; pi += 0.1) {
               for (j = 0; j < rozmer; j++) {
                  working_space[shift + j] = working_space[4 * shift + j] + pi * alpha * working_space[2 * shift + j];        //xk[j]=temp_xk[j]+pi*alpha*der[j]
               }
               for (i = 0, j = 0; i < fNPeaks; i++) {
                  if (fFixAmp[i] == false) {
                     if (working_space[shift + j] < 0)        //xk[j]
                        working_space[shift + j] = 0;        //xk[j]
                     working_space[2 * i] = working_space[shift + j];        //parameter[2*i]=xk[j]
                     j += 1;
                  }
                  if (fFixPosition[i] == false) {
                     if (working_space[shift + j] < fXmin)        //xk[j]
                        working_space[shift + j] = fXmin;        //xk[j]
                     if (working_space[shift + j] > fXmax)        //xk[j]
                        working_space[shift + j] = fXmax;        //xk[j]
                     working_space[2 * i + 1] = working_space[shift + j];        //parameter[2*i+1]=xk[j]
                     j += 1;
                  }
               }
               if (fFixSigma == false) {
                  if (working_space[shift + j] < 0.001) {        //xk[j]
                     working_space[shift + j] = 0.001;        //xk[j]
                  }
                  working_space[peak_vel] = working_space[shift + j];        //parameter[peak_vel]=xk[j]
                  j += 1;
               }
               if (fFixT == false) {
                  working_space[peak_vel + 1] = working_space[shift + j];        //parameter[peak_vel+1]=xk[j]
                  j += 1;
               }
               if (fFixB == false) {
                  if (TMath::Abs(working_space[shift + j]) < 0.001) {        //xk[j]
                     if (working_space[shift + j] < 0)        //xk[j]
                        working_space[shift + j] = -0.001;        //xk[j]
                     else
                        working_space[shift + j] = 0.001;        //xk[j]
                  }
                  working_space[peak_vel + 2] = working_space[shift + j];        //parameter[peak_vel+2]=xk[j]
                  j += 1;
               }
               if (fFixS == false) {
                  working_space[peak_vel + 3] = working_space[shift + j];        //parameter[peak_vel+3]=xk[j]
                  j += 1;
               }
               if (fFixA0 == false) {
                  working_space[peak_vel + 4] = working_space[shift + j];        //parameter[peak_vel+4]=xk[j]
                  j += 1;
               }
               if (fFixA1 == false) {
                  working_space[peak_vel + 5] = working_space[shift + j];        //parameter[peak_vel+5]=xk[j]
                  j += 1;
               }
               if (fFixA2 == false) {
                  working_space[peak_vel + 6] = working_space[shift + j];        //parameter[peak_vel+6]=xk[j]
                  j += 1;
               }
               chi2 = 0;
               for (i = fXmin; i <= fXmax; i++) {
                  yw = source[i];
                  ywm = yw;
                  f = Shape(fNPeaks, (Double_t) i, working_space,
                  working_space[peak_vel],
                  working_space[peak_vel + 1],
                  working_space[peak_vel + 3],
                  working_space[peak_vel + 2],
                  working_space[peak_vel + 4],
                  working_space[peak_vel + 5],
                  working_space[peak_vel + 6]);
                  if (fStatisticType == kFitOptimChiFuncValues) {
                     ywm = f;
                     if (f < 0.00001)
                        ywm = 0.00001;
                  }
                  if (fStatisticType == kFitOptimMaxLikelihood) {
                     if (f > 0.00001)
                        chi2 += yw * TMath::Log(f) - f;
                  }

                  else {
                     if (ywm != 0)
                        chi2 += (yw - f) * (yw - f) / ywm;
                  }
               }
               if ((chi2 < chi_min
                    && fStatisticType != kFitOptimMaxLikelihood)
                    || (chi2 > chi_min
                    && fStatisticType == kFitOptimMaxLikelihood)) {
                  pmin = pi, chi_min = chi2;
               }

               else
                  flag = 1;
               if (pi == 0.1)
                  chi_min = chi2;
               chi = chi_min;
            }
            if (pmin != 0.1) {
               for (j = 0; j < rozmer; j++) {
                  working_space[shift + j] = working_space[4 * shift + j] + pmin * alpha * working_space[2 * shift + j];        //xk[j]=temp_xk[j]+pmin*alpha*der[j]
               }
               for (i = 0, j = 0; i < fNPeaks; i++) {
                  if (fFixAmp[i] == false) {
                     if (working_space[shift + j] < 0)        //xk[j]
                        working_space[shift + j] = 0;        //xk[j]
                     working_space[2 * i] = working_space[shift + j];        //parameter[2*i]=xk[j]
                     j += 1;
                  }
                  if (fFixPosition[i] == false) {
                     if (working_space[shift + j] < fXmin)        //xk[j]
                        working_space[shift + j] = fXmin;        //xk[j]
                     if (working_space[shift + j] > fXmax)        //xk[j]
                        working_space[shift + j] = fXmax;        //xk[j]
                     working_space[2 * i + 1] = working_space[shift + j];        //parameter[2*i+1]=xk[j]
                     j += 1;
                  }
               }
               if (fFixSigma == false) {
                  if (working_space[shift + j] < 0.001) {        //xk[j]
                     working_space[shift + j] = 0.001;        //xk[j]
                  }
                  working_space[peak_vel] = working_space[shift + j];        //parameter[peak_vel]=xk[j]
                  j += 1;
               }
               if (fFixT == false) {
                  working_space[peak_vel + 1] = working_space[shift + j];        //parameter[peak_vel+1]=xk[j]
                  j += 1;
               }
               if (fFixB == false) {
                  if (TMath::Abs(working_space[shift + j]) < 0.001) {        //xk[j]
                     if (working_space[shift + j] < 0)        //xk[j]
                        working_space[shift + j] = -0.001;        //xk[j]
                     else
                        working_space[shift + j] = 0.001;        //xk[j]
                  }
                  working_space[peak_vel + 2] = working_space[shift + j];        //parameter[peak_vel+2]=xk[j]
                  j += 1;
               }
               if (fFixS == false) {
                  working_space[peak_vel + 3] = working_space[shift + j];        //parameter[peak_vel+3]=xk[j]
                  j += 1;
               }
               if (fFixA0 == false) {
                  working_space[peak_vel + 4] = working_space[shift + j];        //parameter[peak_vel+4]=xk[j]
                  j += 1;
               }
               if (fFixA1 == false) {
                  working_space[peak_vel + 5] = working_space[shift + j];        //parameter[peak_vel+5]=xk[j]
                  j += 1;
               }
               if (fFixA2 == false) {
                  working_space[peak_vel + 6] = working_space[shift + j];        //parameter[peak_vel+6]=xk[j]
                  j += 1;
               }
               chi = chi_min;
            }
         }

         else {
            for (j = 0; j < rozmer; j++) {
               working_space[shift + j] = working_space[4 * shift + j] + alpha * working_space[2 * shift + j];        //xk[j]=temp_xk[j]+alpha*der[j]
            }
            for (i = 0, j = 0; i < fNPeaks; i++) {
               if (fFixAmp[i] == false) {
                  if (working_space[shift + j] < 0)        //xk[j]
                     working_space[shift + j] = 0;        //xk[j]
                  working_space[2 * i] = working_space[shift + j];        //parameter[2*i]=xk[j]
                  j += 1;
               }
               if (fFixPosition[i] == false) {
                  if (working_space[shift + j] < fXmin)        //xk[j]
                     working_space[shift + j] = fXmin;        //xk[j]
                  if (working_space[shift + j] > fXmax)        //xk[j]
                     working_space[shift + j] = fXmax;        //xk[j]
                  working_space[2 * i + 1] = working_space[shift + j];        //parameter[2*i+1]=xk[j]
                  j += 1;
               }
            }
            if (fFixSigma == false) {
               if (working_space[shift + j] < 0.001) {        //xk[j]
                  working_space[shift + j] = 0.001;        //xk[j]
               }
               working_space[peak_vel] = working_space[shift + j];        //parameter[peak_vel]=xk[j]
               j += 1;
            }
            if (fFixT == false) {
               working_space[peak_vel + 1] = working_space[shift + j];        //parameter[peak_vel+1]=xk[j]
               j += 1;
            }
            if (fFixB == false) {
               if (TMath::Abs(working_space[shift + j]) < 0.001) {        //xk[j]
                  if (working_space[shift + j] < 0)        //xk[j]
                     working_space[shift + j] = -0.001;        //xk[j]
                  else
                     working_space[shift + j] = 0.001;        //xk[j]
               }
               working_space[peak_vel + 2] = working_space[shift + j];        //parameter[peak_vel+2]=xk[j]
               j += 1;
            }
            if (fFixS == false) {
               working_space[peak_vel + 3] = working_space[shift + j];        //parameter[peak_vel+3]=xk[j]
               j += 1;
            }
            if (fFixA0 == false) {
               working_space[peak_vel + 4] = working_space[shift + j];        //parameter[peak_vel+4]=xk[j]
               j += 1;
            }
            if (fFixA1 == false) {
               working_space[peak_vel + 5] = working_space[shift + j];        //parameter[peak_vel+5]=xk[j]
               j += 1;
            }
            if (fFixA2 == false) {
               working_space[peak_vel + 6] = working_space[shift + j];        //parameter[peak_vel+6]=xk[j]
               j += 1;
            }
            chi = 0;
            for (i = fXmin; i <= fXmax; i++) {
               yw = source[i];
               ywm = yw;
               f = Shape(fNPeaks, (Double_t) i, working_space,
               working_space[peak_vel],
               working_space[peak_vel + 1],
               working_space[peak_vel + 3],
               working_space[peak_vel + 2],
               working_space[peak_vel + 4],
               working_space[peak_vel + 5],
               working_space[peak_vel + 6]);
               if (fStatisticType == kFitOptimChiFuncValues) {
                  ywm = f;
                  if (f < 0.00001)
                     ywm = 0.00001;
               }
               if (fStatisticType == kFitOptimMaxLikelihood) {
                  if (f > 0.00001)
                     chi += yw * TMath::Log(f) - f;
               }

               else {
                  if (ywm != 0)
                     chi += (yw - f) * (yw - f) / ywm;
               }
            }
         }
         chi2 = chi;
         chi = TMath::Sqrt(TMath::Abs(chi));
         if (fAlphaOptim == kFitAlphaHalving && chi > 1E-6)
            alpha = alpha * chi_opt / (2 * chi);

         else if (fAlphaOptim == kFitAlphaOptimal)
            alpha = alpha / 10.0;
         iter += 1;
         regul_cycle += 1;
      } while (((chi > chi_opt
                 && fStatisticType != kFitOptimMaxLikelihood)
                 || (chi < chi_opt
                 && fStatisticType == kFitOptimMaxLikelihood))
                && regul_cycle < kFitNumRegulCycles);
      for (j = 0; j < rozmer; j++) {
         working_space[4 * shift + j] = 0;        //temp_xk[j]
         working_space[2 * shift + j] = 0;        //der[j]
      }
      for (i = fXmin, chi_cel = 0; i <= fXmax; i++) {
         yw = source[i];
         if (yw == 0)
            yw = 1;
         f = Shape(fNPeaks, (Double_t) i, working_space,
         working_space[peak_vel], working_space[peak_vel + 1],
         working_space[peak_vel + 3],
         working_space[peak_vel + 2],
         working_space[peak_vel + 4],
         working_space[peak_vel + 5],
         working_space[peak_vel + 6]);
         chi_opt = (yw - f) * (yw - f) / yw;
         chi_cel += (yw - f) * (yw - f) / yw;

             //calculate gradient vector
             for (j = 0, k = 0; j < fNPeaks; j++) {
            if (fFixAmp[j] == false) {
               a = Deramp((Double_t) i, working_space[2 * j + 1],
               working_space[peak_vel],
               working_space[peak_vel + 1],
               working_space[peak_vel + 3],
               working_space[peak_vel + 2]);
               if (yw != 0) {
                  working_space[2 * shift + k] += chi_opt;        //der[k]
                  b = a * a / yw;
                  working_space[4 * shift + k] += b;        //temp_xk[k]
               }
               k += 1;
            }
            if (fFixPosition[j] == false) {
               a = Deri0((Double_t) i, working_space[2 * j],
               working_space[2 * j + 1],
               working_space[peak_vel],
               working_space[peak_vel + 1],
               working_space[peak_vel + 3],
               working_space[peak_vel + 2]);
               if (yw != 0) {
                  working_space[2 * shift + k] += chi_opt;        //der[k]
                  b = a * a / yw;
                  working_space[4 * shift + k] += b;        //temp_xk[k]
               }
               k += 1;
            }
         }
         if (fFixSigma == false) {
            a = Dersigma(fNPeaks, (Double_t) i, working_space,
            working_space[peak_vel],
            working_space[peak_vel + 1],
            working_space[peak_vel + 3],
           working_space[peak_vel + 2]);
            if (yw != 0) {
               working_space[2 * shift + k] += chi_opt;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b;        //temp_xk[k]
            }
            k += 1;
         }
         if (fFixT == false) {
            a = Dert(fNPeaks, (Double_t) i, working_space,
            working_space[peak_vel],
            working_space[peak_vel + 2]);
            if (yw != 0) {
               working_space[2 * shift + k] += chi_opt;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b;        //temp_xk[k]
            }
            k += 1;
         }
         if (fFixB == false) {
            a = Derb(fNPeaks, (Double_t) i, working_space,
            working_space[peak_vel], working_space[peak_vel + 1],
            working_space[peak_vel + 2]);
            if (yw != 0) {
               working_space[2 * shift + k] += chi_opt;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b;        //temp_xk[k]
            }
            k += 1;
         }
         if (fFixS == false) {
            a = Ders(fNPeaks, (Double_t) i, working_space,
            working_space[peak_vel]);
            if (yw != 0) {
               working_space[2 * shift + k] += chi_opt;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b;        //tem_xk[k]
            }
            k += 1;
         }
         if (fFixA0 == false) {
            a = 1.0;
            if (yw != 0) {
               working_space[2 * shift + k] += chi_opt;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b;        //temp_xk[k]
            }
            k += 1;
         }
         if (fFixA1 == false) {
            a = Dera1((Double_t) i);
            if (yw != 0) {
               working_space[2 * shift + k] += chi_opt;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b;        //temp_xk[k]
            }
            k += 1;
         }
         if (fFixA2 == false) {
            a = Dera2((Double_t) i);
            if (yw != 0) {
               working_space[2 * shift + k] += chi_opt;        //der[k]
               b = a * a / yw;
               working_space[4 * shift + k] += b;        //temp_xk[k]
            }
            k += 1;
         }
      }
   }
   b = fXmax - fXmin + 1 - rozmer;
   chi_er = chi_cel / b;
   for (i = 0, j = 0; i < fNPeaks; i++) {
      fArea[i] =
          Area(working_space[2 * i], working_space[peak_vel],
               working_space[peak_vel + 1], working_space[peak_vel + 2]);
      if (fFixAmp[i] == false) {
         fAmpCalc[i] = working_space[shift + j];        //xk[j]
         if (working_space[3 * shift + j] != 0)
            fAmpErr[i] = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
         if (fArea[i] > 0) {
            a = Derpa(working_space[peak_vel],
            working_space[peak_vel + 1],
            working_space[peak_vel + 2]);
            b = working_space[4 * shift + j];        //temp_xk[j]
            if (b == 0)
               b = 1;

            else
               b = 1 / b;
            fAreaErr[i] = TMath::Sqrt(TMath::Abs(a * a * b * chi_er));
         }

         else
            fAreaErr[i] = 0;
         j += 1;
      }

      else {
         fAmpCalc[i] = fAmpInit[i];
         fAmpErr[i] = 0;
         fAreaErr[i] = 0;
      }
      if (fFixPosition[i] == false) {
         fPositionCalc[i] = working_space[shift + j];        //xk[j]
         if (working_space[3 * shift + j] != 0)        //temp[j]
            fPositionErr[i] = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //Der[j]/temp[j]
         j += 1;
      }

      else {
         fPositionCalc[i] = fPositionInit[i];
         fPositionErr[i] = 0;
      }
   }
   if (fFixSigma == false) {
      fSigmaCalc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fSigmaErr = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fSigmaCalc = fSigmaInit;
      fSigmaErr = 0;
   }
   if (fFixT == false) {
      fTCalc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fTErr = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fTCalc = fTInit;
      fTErr = 0;
   }
   if (fFixB == false) {
      fBCalc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fBErr = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fBCalc = fBInit;
      fBErr = 0;
   }
   if (fFixS == false) {
      fSCalc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fSErr = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fSCalc = fSInit;
      fSErr = 0;
   }
   if (fFixA0 == false) {
      fA0Calc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fA0Err = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fA0Calc = fA0Init;
      fA0Err = 0;
   }
   if (fFixA1 == false) {
      fA1Calc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fA1Err = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fA1Calc = fA1Init;
      fA1Err = 0;
   }
   if (fFixA2 == false) {
      fA2Calc = working_space[shift + j];        //xk[j]
      if (working_space[3 * shift + j] != 0)        //temp[j]
         fA2Err = TMath::Sqrt(TMath::Abs(working_space[2 * shift + j])) / TMath::Sqrt(TMath::Abs(working_space[3 * shift + j]));        //der[j]/temp[j]
      j += 1;
   }

   else {
      fA2Calc = fA2Init;
      fA2Err = 0;
   }
   b = fXmax - fXmin + 1 - rozmer;
   fChi = chi_cel / b;
   for (i = fXmin; i <= fXmax; i++) {
      f = Shape(fNPeaks, (Double_t) i, working_space,
      working_space[peak_vel], working_space[peak_vel + 1],
      working_space[peak_vel + 3], working_space[peak_vel + 2],
      working_space[peak_vel + 4], working_space[peak_vel + 5],
      working_space[peak_vel + 6]);
      source[i] = f;
   }
   for (i = 0; i < rozmer; i++)
      delete [] working_matrix[i];
   delete [] working_matrix;
   delete [] working_space;
   return;
}

//____________________________________________________________________________
void TSpectrumFit::SetFitParameters(Int_t xmin,Int_t xmax, Int_t numberIterations, Double_t alpha, Int_t statisticType, Int_t alphaOptim, Int_t power, Int_t fitTaylor)
{
//////////////////////////////////////////////////////////////////////////////
//   SETTER FUNCTION
//
//   This function sets the following fitting parameters:
//         -xmin, xmax - fitting region
//         -numberIterations - # of desired iterations in the fit
//         -alpha - convergence coefficient, it should be positive number and <=1, for details see references
//         -statisticType - type of statistics, possible values kFitOptimChiCounts (chi square statistics with counts as weighting coefficients), kFitOptimChiFuncValues (chi square statistics with function values as weighting coefficients),kFitOptimMaxLikelihood
//         -alphaOptim - optimization of convergence algorithm, possible values kFitAlphaHalving, kFitAlphaOptimal
//         -power - possible values kFitPower2,4,6,8,10,12, for details see references. It applies only for Awmi fitting function.
//         -fitTaylor - order of Taylor expansion, possible values kFitTaylorOrderFirst, kFitTaylorOrderSecond. It applies only for Awmi fitting function.
//////////////////////////////////////////////////////////////////////////////
   if(xmin<0 || xmax <= xmin){
      Error("SetFitParameters", "Wrong range");
      return;
   }
   if (numberIterations <= 0){
      Error("SetFitParameters","Invalid number of iterations, must be positive");
      return;
   }
   if (alpha <= 0 || alpha > 1){
      Error ("SetFitParameters","Invalid step coefficient alpha, must be > than 0 and <=1");
      return;
   }
   if (statisticType != kFitOptimChiCounts
        && statisticType != kFitOptimChiFuncValues
        && statisticType != kFitOptimMaxLikelihood){
      Error("SetFitParameters","Wrong type of statistic");
      return;
   }
   if (alphaOptim != kFitAlphaHalving
        && alphaOptim != kFitAlphaOptimal){
      Error("SetFitParameters","Wrong optimization algorithm");
      return;
   }
   if (power != kFitPower2 && power != kFitPower4
        && power != kFitPower6 && power != kFitPower8
        && power != kFitPower10 && power != kFitPower12){
      Error("SetFitParameters","Wrong power");
      return;
   }
   if (fitTaylor != kFitTaylorOrderFirst
        && fitTaylor != kFitTaylorOrderSecond){
      Error("SetFitParameters","Wrong order of Taylor development");
      return;
   }
   fXmin=xmin,fXmax=xmax,fNumberIterations=numberIterations,fAlpha=alpha,fStatisticType=statisticType,fAlphaOptim=alphaOptim,fPower=power,fFitTaylor=fitTaylor;
}

//_______________________________________________________________________________
void TSpectrumFit::SetPeakParameters(Double_t sigma, Bool_t fixSigma, const Double_t *positionInit, const Bool_t *fixPosition, const Double_t *ampInit, const Bool_t *fixAmp)
{
//////////////////////////////////////////////////////////////////////////////
//   SETTER FUNCTION
//
//   This function sets the following fitting parameters of peaks:
//         -sigma - initial value of sigma parameter
//         -fixSigma - logical value of sigma parameter, which allows to fix the parameter (not to fit)
//         -positionInit - aray of initial values of peaks positions
//         -fixPosition - array of logical values which allow to fix appropriate positions (not fit). However they are present in the estimated functional.
//         -ampInit - aray of initial values of peaks amplitudes
//         -fixAmp - aray of logical values which allow to fix appropriate amplitudes (not fit). However they are present in the estimated functional
//////////////////////////////////////////////////////////////////////////////

   Int_t i;
   if (sigma <= 0){
      Error ("SetPeakParameters","Invalid sigma, must be > than 0");
      return;
   }
   for(i=0; i < fNPeaks; i++){
      if((Int_t) positionInit[i] < fXmin || (Int_t) positionInit[i] > fXmax){
         Error ("SetPeakParameters","Invalid peak position, must be in the range fXmin, fXmax");
         return;
      }
      if(ampInit[i] < 0){
         Error ("SetPeakParameters","Invalid peak amplitude, must be > than 0");
         return;
      }
   }
   fSigmaInit = sigma,fFixSigma = fixSigma;
   for(i=0; i < fNPeaks; i++){
      fPositionInit[i] = (Double_t) positionInit[i];
      fFixPosition[i] = fixPosition[i];
      fAmpInit[i] = (Double_t) ampInit[i];
      fFixAmp[i] = fixAmp[i];
   }
}

//_______________________________________________________________________________
void TSpectrumFit::SetBackgroundParameters(Double_t a0Init, Bool_t fixA0, Double_t a1Init, Bool_t fixA1, Double_t a2Init, Bool_t fixA2)
{
//////////////////////////////////////////////////////////////////////////////
//   SETTER FUNCTION
//
//   This function sets the following fitting parameters of background:
//         -a0Init - initial value of a0 parameter (backgroud is estimated as a0+a1*x+a2*x*x)
//         -fixA0 - logical value of a0 parameter, which allows to fix the parameter (not to fit)
//         -a1Init - initial value of a1 parameter
//         -fixA1 - logical value of a1 parameter, which allows to fix the parameter (not to fit)
//         -a2Init - initial value of a2 parameter
//         -fixA2 - logical value of a2 parameter, which allows to fix the parameter (not to fit)
//////////////////////////////////////////////////////////////////////////////

   fA0Init = a0Init;
   fFixA0 = fixA0;
   fA1Init = a1Init;
   fFixA1 = fixA1;
   fA2Init = a2Init;
   fFixA2 = fixA2;
}

//_______________________________________________________________________________
void TSpectrumFit::SetTailParameters(Double_t tInit, Bool_t fixT, Double_t bInit, Bool_t fixB, Double_t sInit, Bool_t fixS)
{
//////////////////////////////////////////////////////////////////////////////
//   SETTER FUNCTION
//
//   This function sets the following fitting parameters of tails of peaks
//         -tInit - initial value of t parameter
//         -fixT - logical value of t parameter, which allows to fix the parameter (not to fit)
//         -bInit - initial value of b parameter
//         -fixB - logical value of b parameter, which allows to fix the parameter (not to fit)
//         -sInit - initial value of s parameter
//         -fixS - logical value of s parameter, which allows to fix the parameter (not to fit)
//////////////////////////////////////////////////////////////////////////////

   fTInit = tInit;
   fFixT = fixT;
   fBInit = bInit;
   fFixB = fixB;
   fSInit = sInit;
   fFixS = fixS;
}

//_______________________________________________________________________________
void TSpectrumFit::GetSigma(Double_t &sigma, Double_t &sigmaErr)
{
//////////////////////////////////////////////////////////////////////////////
//   GETTER FUNCTION
//
//   This function gets the sigma parameter and its error
//         -sigma - gets the fitted value of sigma parameter
//         -sigmaErr - gets error value of sigma parameter
//////////////////////////////////////////////////////////////////////////////
   sigma=fSigmaCalc;
   sigmaErr=fSigmaErr;
}

//_______________________________________________________________________________
void TSpectrumFit::GetBackgroundParameters(Double_t &a0, Double_t &a0Err, Double_t &a1, Double_t &a1Err, Double_t &a2, Double_t &a2Err)
{
//////////////////////////////////////////////////////////////////////////////
//   GETTER FUNCTION
//
//   This function gets the background parameters and their errors
//         -a0 - gets the fitted value of a0 parameter
//         -a0Err - gets error value of a0 parameter
//         -a1 - gets the fitted value of a1 parameter
//         -a1Err - gets error value of a1 parameter
//         -a2 - gets the fitted value of a2 parameter
//         -a2Err - gets error value of a2 parameter
//////////////////////////////////////////////////////////////////////////////
   a0 = fA0Calc;
   a0Err = fA0Err;
   a1 = fA1Calc;
   a1Err = fA1Err;
   a2 = fA2Calc;
   a2Err = fA2Err;
}

//_______________________________________________________________________________
void TSpectrumFit::GetTailParameters(Double_t &t, Double_t &tErr, Double_t &b, Double_t &bErr, Double_t &s, Double_t &sErr)
{
//////////////////////////////////////////////////////////////////////////////
//   GETTER FUNCTION
//
//   This function gets the tail parameters and their errors
//         -t - gets the fitted value of t parameter
//         -tErr - gets error value of t parameter
//         -b - gets the fitted value of b parameter
//         -bErr - gets error value of b parameter
//         -s - gets the fitted value of s parameter
//         -sErr - gets error value of s parameter
//////////////////////////////////////////////////////////////////////////////
   t = fTCalc;
   tErr = fTErr;
   b = fBCalc;
   bErr = fBErr;
   s = fSCalc;
   sErr = fSErr;
}

 TSpectrumFit.cxx:1
 TSpectrumFit.cxx:2
 TSpectrumFit.cxx:3
 TSpectrumFit.cxx:4
 TSpectrumFit.cxx:5
 TSpectrumFit.cxx:6
 TSpectrumFit.cxx:7
 TSpectrumFit.cxx:8
 TSpectrumFit.cxx:9
 TSpectrumFit.cxx:10
 TSpectrumFit.cxx:11
 TSpectrumFit.cxx:12
 TSpectrumFit.cxx:13
 TSpectrumFit.cxx:14
 TSpectrumFit.cxx:15
 TSpectrumFit.cxx:16
 TSpectrumFit.cxx:17
 TSpectrumFit.cxx:18
 TSpectrumFit.cxx:19
 TSpectrumFit.cxx:20
 TSpectrumFit.cxx:21
 TSpectrumFit.cxx:22
 TSpectrumFit.cxx:23
 TSpectrumFit.cxx:24
 TSpectrumFit.cxx:25
 TSpectrumFit.cxx:26
 TSpectrumFit.cxx:27
 TSpectrumFit.cxx:28
 TSpectrumFit.cxx:29
 TSpectrumFit.cxx:30
 TSpectrumFit.cxx:31
 TSpectrumFit.cxx:32
 TSpectrumFit.cxx:33
 TSpectrumFit.cxx:34
 TSpectrumFit.cxx:35
 TSpectrumFit.cxx:36
 TSpectrumFit.cxx:37
 TSpectrumFit.cxx:38
 TSpectrumFit.cxx:39
 TSpectrumFit.cxx:40
 TSpectrumFit.cxx:41
 TSpectrumFit.cxx:42
 TSpectrumFit.cxx:43
 TSpectrumFit.cxx:44
 TSpectrumFit.cxx:45
 TSpectrumFit.cxx:46
 TSpectrumFit.cxx:47
 TSpectrumFit.cxx:48
 TSpectrumFit.cxx:49
 TSpectrumFit.cxx:50
 TSpectrumFit.cxx:51
 TSpectrumFit.cxx:52
 TSpectrumFit.cxx:53
 TSpectrumFit.cxx:54
 TSpectrumFit.cxx:55
 TSpectrumFit.cxx:56
 TSpectrumFit.cxx:57
 TSpectrumFit.cxx:58
 TSpectrumFit.cxx:59
 TSpectrumFit.cxx:60
 TSpectrumFit.cxx:61
 TSpectrumFit.cxx:62
 TSpectrumFit.cxx:63
 TSpectrumFit.cxx:64
 TSpectrumFit.cxx:65
 TSpectrumFit.cxx:66
 TSpectrumFit.cxx:67
 TSpectrumFit.cxx:68
 TSpectrumFit.cxx:69
 TSpectrumFit.cxx:70
 TSpectrumFit.cxx:71
 TSpectrumFit.cxx:72
 TSpectrumFit.cxx:73
 TSpectrumFit.cxx:74
 TSpectrumFit.cxx:75
 TSpectrumFit.cxx:76
 TSpectrumFit.cxx:77
 TSpectrumFit.cxx:78
 TSpectrumFit.cxx:79
 TSpectrumFit.cxx:80
 TSpectrumFit.cxx:81
 TSpectrumFit.cxx:82
 TSpectrumFit.cxx:83
 TSpectrumFit.cxx:84
 TSpectrumFit.cxx:85
 TSpectrumFit.cxx:86
 TSpectrumFit.cxx:87
 TSpectrumFit.cxx:88
 TSpectrumFit.cxx:89
 TSpectrumFit.cxx:90
 TSpectrumFit.cxx:91
 TSpectrumFit.cxx:92
 TSpectrumFit.cxx:93
 TSpectrumFit.cxx:94
 TSpectrumFit.cxx:95
 TSpectrumFit.cxx:96
 TSpectrumFit.cxx:97
 TSpectrumFit.cxx:98
 TSpectrumFit.cxx:99
 TSpectrumFit.cxx:100
 TSpectrumFit.cxx:101
 TSpectrumFit.cxx:102
 TSpectrumFit.cxx:103
 TSpectrumFit.cxx:104
 TSpectrumFit.cxx:105
 TSpectrumFit.cxx:106
 TSpectrumFit.cxx:107
 TSpectrumFit.cxx:108
 TSpectrumFit.cxx:109
 TSpectrumFit.cxx:110
 TSpectrumFit.cxx:111
 TSpectrumFit.cxx:112
 TSpectrumFit.cxx:113
 TSpectrumFit.cxx:114
 TSpectrumFit.cxx:115
 TSpectrumFit.cxx:116
 TSpectrumFit.cxx:117
 TSpectrumFit.cxx:118
 TSpectrumFit.cxx:119
 TSpectrumFit.cxx:120
 TSpectrumFit.cxx:121
 TSpectrumFit.cxx:122
 TSpectrumFit.cxx:123
 TSpectrumFit.cxx:124
 TSpectrumFit.cxx:125
 TSpectrumFit.cxx:126
 TSpectrumFit.cxx:127
 TSpectrumFit.cxx:128
 TSpectrumFit.cxx:129
 TSpectrumFit.cxx:130
 TSpectrumFit.cxx:131
 TSpectrumFit.cxx:132
 TSpectrumFit.cxx:133
 TSpectrumFit.cxx:134
 TSpectrumFit.cxx:135
 TSpectrumFit.cxx:136
 TSpectrumFit.cxx:137
 TSpectrumFit.cxx:138
 TSpectrumFit.cxx:139
 TSpectrumFit.cxx:140
 TSpectrumFit.cxx:141
 TSpectrumFit.cxx:142
 TSpectrumFit.cxx:143
 TSpectrumFit.cxx:144
 TSpectrumFit.cxx:145
 TSpectrumFit.cxx:146
 TSpectrumFit.cxx:147
 TSpectrumFit.cxx:148
 TSpectrumFit.cxx:149
 TSpectrumFit.cxx:150
 TSpectrumFit.cxx:151
 TSpectrumFit.cxx:152
 TSpectrumFit.cxx:153
 TSpectrumFit.cxx:154
 TSpectrumFit.cxx:155
 TSpectrumFit.cxx:156
 TSpectrumFit.cxx:157
 TSpectrumFit.cxx:158
 TSpectrumFit.cxx:159
 TSpectrumFit.cxx:160
 TSpectrumFit.cxx:161
 TSpectrumFit.cxx:162
 TSpectrumFit.cxx:163
 TSpectrumFit.cxx:164
 TSpectrumFit.cxx:165
 TSpectrumFit.cxx:166
 TSpectrumFit.cxx:167
 TSpectrumFit.cxx:168
 TSpectrumFit.cxx:169
 TSpectrumFit.cxx:170
 TSpectrumFit.cxx:171
 TSpectrumFit.cxx:172
 TSpectrumFit.cxx:173
 TSpectrumFit.cxx:174
 TSpectrumFit.cxx:175
 TSpectrumFit.cxx:176
 TSpectrumFit.cxx:177
 TSpectrumFit.cxx:178
 TSpectrumFit.cxx:179
 TSpectrumFit.cxx:180
 TSpectrumFit.cxx:181
 TSpectrumFit.cxx:182
 TSpectrumFit.cxx:183
 TSpectrumFit.cxx:184
 TSpectrumFit.cxx:185
 TSpectrumFit.cxx:186
 TSpectrumFit.cxx:187
 TSpectrumFit.cxx:188
 TSpectrumFit.cxx:189
 TSpectrumFit.cxx:190
 TSpectrumFit.cxx:191
 TSpectrumFit.cxx:192
 TSpectrumFit.cxx:193
 TSpectrumFit.cxx:194
 TSpectrumFit.cxx:195
 TSpectrumFit.cxx:196
 TSpectrumFit.cxx:197
 TSpectrumFit.cxx:198
 TSpectrumFit.cxx:199
 TSpectrumFit.cxx:200
 TSpectrumFit.cxx:201
 TSpectrumFit.cxx:202
 TSpectrumFit.cxx:203
 TSpectrumFit.cxx:204
 TSpectrumFit.cxx:205
 TSpectrumFit.cxx:206
 TSpectrumFit.cxx:207
 TSpectrumFit.cxx:208
 TSpectrumFit.cxx:209
 TSpectrumFit.cxx:210
 TSpectrumFit.cxx:211
 TSpectrumFit.cxx:212
 TSpectrumFit.cxx:213
 TSpectrumFit.cxx:214
 TSpectrumFit.cxx:215
 TSpectrumFit.cxx:216
 TSpectrumFit.cxx:217
 TSpectrumFit.cxx:218
 TSpectrumFit.cxx:219
 TSpectrumFit.cxx:220
 TSpectrumFit.cxx:221
 TSpectrumFit.cxx:222
 TSpectrumFit.cxx:223
 TSpectrumFit.cxx:224
 TSpectrumFit.cxx:225
 TSpectrumFit.cxx:226
 TSpectrumFit.cxx:227
 TSpectrumFit.cxx:228
 TSpectrumFit.cxx:229
 TSpectrumFit.cxx:230
 TSpectrumFit.cxx:231
 TSpectrumFit.cxx:232
 TSpectrumFit.cxx:233
 TSpectrumFit.cxx:234
 TSpectrumFit.cxx:235
 TSpectrumFit.cxx:236
 TSpectrumFit.cxx:237
 TSpectrumFit.cxx:238
 TSpectrumFit.cxx:239
 TSpectrumFit.cxx:240
 TSpectrumFit.cxx:241
 TSpectrumFit.cxx:242
 TSpectrumFit.cxx:243
 TSpectrumFit.cxx:244
 TSpectrumFit.cxx:245
 TSpectrumFit.cxx:246
 TSpectrumFit.cxx:247
 TSpectrumFit.cxx:248
 TSpectrumFit.cxx:249
 TSpectrumFit.cxx:250
 TSpectrumFit.cxx:251
 TSpectrumFit.cxx:252
 TSpectrumFit.cxx:253
 TSpectrumFit.cxx:254
 TSpectrumFit.cxx:255
 TSpectrumFit.cxx:256
 TSpectrumFit.cxx:257
 TSpectrumFit.cxx:258
 TSpectrumFit.cxx:259
 TSpectrumFit.cxx:260
 TSpectrumFit.cxx:261
 TSpectrumFit.cxx:262
 TSpectrumFit.cxx:263
 TSpectrumFit.cxx:264
 TSpectrumFit.cxx:265
 TSpectrumFit.cxx:266
 TSpectrumFit.cxx:267
 TSpectrumFit.cxx:268
 TSpectrumFit.cxx:269
 TSpectrumFit.cxx:270
 TSpectrumFit.cxx:271
 TSpectrumFit.cxx:272
 TSpectrumFit.cxx:273
 TSpectrumFit.cxx:274
 TSpectrumFit.cxx:275
 TSpectrumFit.cxx:276
 TSpectrumFit.cxx:277
 TSpectrumFit.cxx:278
 TSpectrumFit.cxx:279
 TSpectrumFit.cxx:280
 TSpectrumFit.cxx:281
 TSpectrumFit.cxx:282
 TSpectrumFit.cxx:283
 TSpectrumFit.cxx:284
 TSpectrumFit.cxx:285
 TSpectrumFit.cxx:286
 TSpectrumFit.cxx:287
 TSpectrumFit.cxx:288
 TSpectrumFit.cxx:289
 TSpectrumFit.cxx:290
 TSpectrumFit.cxx:291
 TSpectrumFit.cxx:292
 TSpectrumFit.cxx:293
 TSpectrumFit.cxx:294
 TSpectrumFit.cxx:295
 TSpectrumFit.cxx:296
 TSpectrumFit.cxx:297
 TSpectrumFit.cxx:298
 TSpectrumFit.cxx:299
 TSpectrumFit.cxx:300
 TSpectrumFit.cxx:301
 TSpectrumFit.cxx:302
 TSpectrumFit.cxx:303
 TSpectrumFit.cxx:304
 TSpectrumFit.cxx:305
 TSpectrumFit.cxx:306
 TSpectrumFit.cxx:307
 TSpectrumFit.cxx:308
 TSpectrumFit.cxx:309
 TSpectrumFit.cxx:310
 TSpectrumFit.cxx:311
 TSpectrumFit.cxx:312
 TSpectrumFit.cxx:313
 TSpectrumFit.cxx:314
 TSpectrumFit.cxx:315
 TSpectrumFit.cxx:316
 TSpectrumFit.cxx:317
 TSpectrumFit.cxx:318
 TSpectrumFit.cxx:319
 TSpectrumFit.cxx:320
 TSpectrumFit.cxx:321
 TSpectrumFit.cxx:322
 TSpectrumFit.cxx:323
 TSpectrumFit.cxx:324
 TSpectrumFit.cxx:325
 TSpectrumFit.cxx:326
 TSpectrumFit.cxx:327
 TSpectrumFit.cxx:328
 TSpectrumFit.cxx:329
 TSpectrumFit.cxx:330
 TSpectrumFit.cxx:331
 TSpectrumFit.cxx:332
 TSpectrumFit.cxx:333
 TSpectrumFit.cxx:334
 TSpectrumFit.cxx:335
 TSpectrumFit.cxx:336
 TSpectrumFit.cxx:337
 TSpectrumFit.cxx:338
 TSpectrumFit.cxx:339
 TSpectrumFit.cxx:340
 TSpectrumFit.cxx:341
 TSpectrumFit.cxx:342
 TSpectrumFit.cxx:343
 TSpectrumFit.cxx:344
 TSpectrumFit.cxx:345
 TSpectrumFit.cxx:346
 TSpectrumFit.cxx:347
 TSpectrumFit.cxx:348
 TSpectrumFit.cxx:349
 TSpectrumFit.cxx:350
 TSpectrumFit.cxx:351
 TSpectrumFit.cxx:352
 TSpectrumFit.cxx:353
 TSpectrumFit.cxx:354
 TSpectrumFit.cxx:355
 TSpectrumFit.cxx:356
 TSpectrumFit.cxx:357
 TSpectrumFit.cxx:358
 TSpectrumFit.cxx:359
 TSpectrumFit.cxx:360
 TSpectrumFit.cxx:361
 TSpectrumFit.cxx:362
 TSpectrumFit.cxx:363
 TSpectrumFit.cxx:364
 TSpectrumFit.cxx:365
 TSpectrumFit.cxx:366
 TSpectrumFit.cxx:367
 TSpectrumFit.cxx:368
 TSpectrumFit.cxx:369
 TSpectrumFit.cxx:370
 TSpectrumFit.cxx:371
 TSpectrumFit.cxx:372
 TSpectrumFit.cxx:373
 TSpectrumFit.cxx:374
 TSpectrumFit.cxx:375
 TSpectrumFit.cxx:376
 TSpectrumFit.cxx:377
 TSpectrumFit.cxx:378
 TSpectrumFit.cxx:379
 TSpectrumFit.cxx:380
 TSpectrumFit.cxx:381
 TSpectrumFit.cxx:382
 TSpectrumFit.cxx:383
 TSpectrumFit.cxx:384
 TSpectrumFit.cxx:385
 TSpectrumFit.cxx:386
 TSpectrumFit.cxx:387
 TSpectrumFit.cxx:388
 TSpectrumFit.cxx:389
 TSpectrumFit.cxx:390
 TSpectrumFit.cxx:391
 TSpectrumFit.cxx:392
 TSpectrumFit.cxx:393
 TSpectrumFit.cxx:394
 TSpectrumFit.cxx:395
 TSpectrumFit.cxx:396
 TSpectrumFit.cxx:397
 TSpectrumFit.cxx:398
 TSpectrumFit.cxx:399
 TSpectrumFit.cxx:400
 TSpectrumFit.cxx:401
 TSpectrumFit.cxx:402
 TSpectrumFit.cxx:403
 TSpectrumFit.cxx:404
 TSpectrumFit.cxx:405
 TSpectrumFit.cxx:406
 TSpectrumFit.cxx:407
 TSpectrumFit.cxx:408
 TSpectrumFit.cxx:409
 TSpectrumFit.cxx:410
 TSpectrumFit.cxx:411
 TSpectrumFit.cxx:412
 TSpectrumFit.cxx:413
 TSpectrumFit.cxx:414
 TSpectrumFit.cxx:415
 TSpectrumFit.cxx:416
 TSpectrumFit.cxx:417
 TSpectrumFit.cxx:418
 TSpectrumFit.cxx:419
 TSpectrumFit.cxx:420
 TSpectrumFit.cxx:421
 TSpectrumFit.cxx:422
 TSpectrumFit.cxx:423
 TSpectrumFit.cxx:424
 TSpectrumFit.cxx:425
 TSpectrumFit.cxx:426
 TSpectrumFit.cxx:427
 TSpectrumFit.cxx:428
 TSpectrumFit.cxx:429
 TSpectrumFit.cxx:430
 TSpectrumFit.cxx:431
 TSpectrumFit.cxx:432
 TSpectrumFit.cxx:433
 TSpectrumFit.cxx:434
 TSpectrumFit.cxx:435
 TSpectrumFit.cxx:436
 TSpectrumFit.cxx:437
 TSpectrumFit.cxx:438
 TSpectrumFit.cxx:439
 TSpectrumFit.cxx:440
 TSpectrumFit.cxx:441
 TSpectrumFit.cxx:442
 TSpectrumFit.cxx:443
 TSpectrumFit.cxx:444
 TSpectrumFit.cxx:445
 TSpectrumFit.cxx:446
 TSpectrumFit.cxx:447
 TSpectrumFit.cxx:448
 TSpectrumFit.cxx:449
 TSpectrumFit.cxx:450
 TSpectrumFit.cxx:451
 TSpectrumFit.cxx:452
 TSpectrumFit.cxx:453
 TSpectrumFit.cxx:454
 TSpectrumFit.cxx:455
 TSpectrumFit.cxx:456
 TSpectrumFit.cxx:457
 TSpectrumFit.cxx:458
 TSpectrumFit.cxx:459
 TSpectrumFit.cxx:460
 TSpectrumFit.cxx:461
 TSpectrumFit.cxx:462
 TSpectrumFit.cxx:463
 TSpectrumFit.cxx:464
 TSpectrumFit.cxx:465
 TSpectrumFit.cxx:466
 TSpectrumFit.cxx:467
 TSpectrumFit.cxx:468
 TSpectrumFit.cxx:469
 TSpectrumFit.cxx:470
 TSpectrumFit.cxx:471
 TSpectrumFit.cxx:472
 TSpectrumFit.cxx:473
 TSpectrumFit.cxx:474
 TSpectrumFit.cxx:475
 TSpectrumFit.cxx:476
 TSpectrumFit.cxx:477
 TSpectrumFit.cxx:478
 TSpectrumFit.cxx:479
 TSpectrumFit.cxx:480
 TSpectrumFit.cxx:481
 TSpectrumFit.cxx:482
 TSpectrumFit.cxx:483
 TSpectrumFit.cxx:484
 TSpectrumFit.cxx:485
 TSpectrumFit.cxx:486
 TSpectrumFit.cxx:487
 TSpectrumFit.cxx:488
 TSpectrumFit.cxx:489
 TSpectrumFit.cxx:490
 TSpectrumFit.cxx:491
 TSpectrumFit.cxx:492
 TSpectrumFit.cxx:493
 TSpectrumFit.cxx:494
 TSpectrumFit.cxx:495
 TSpectrumFit.cxx:496
 TSpectrumFit.cxx:497
 TSpectrumFit.cxx:498
 TSpectrumFit.cxx:499
 TSpectrumFit.cxx:500
 TSpectrumFit.cxx:501
 TSpectrumFit.cxx:502
 TSpectrumFit.cxx:503
 TSpectrumFit.cxx:504
 TSpectrumFit.cxx:505
 TSpectrumFit.cxx:506
 TSpectrumFit.cxx:507
 TSpectrumFit.cxx:508
 TSpectrumFit.cxx:509
 TSpectrumFit.cxx:510
 TSpectrumFit.cxx:511
 TSpectrumFit.cxx:512
 TSpectrumFit.cxx:513
 TSpectrumFit.cxx:514
 TSpectrumFit.cxx:515
 TSpectrumFit.cxx:516
 TSpectrumFit.cxx:517
 TSpectrumFit.cxx:518
 TSpectrumFit.cxx:519
 TSpectrumFit.cxx:520
 TSpectrumFit.cxx:521
 TSpectrumFit.cxx:522
 TSpectrumFit.cxx:523
 TSpectrumFit.cxx:524
 TSpectrumFit.cxx:525
 TSpectrumFit.cxx:526
 TSpectrumFit.cxx:527
 TSpectrumFit.cxx:528
 TSpectrumFit.cxx:529
 TSpectrumFit.cxx:530
 TSpectrumFit.cxx:531
 TSpectrumFit.cxx:532
 TSpectrumFit.cxx:533
 TSpectrumFit.cxx:534
 TSpectrumFit.cxx:535
 TSpectrumFit.cxx:536
 TSpectrumFit.cxx:537
 TSpectrumFit.cxx:538
 TSpectrumFit.cxx:539
 TSpectrumFit.cxx:540
 TSpectrumFit.cxx:541
 TSpectrumFit.cxx:542
 TSpectrumFit.cxx:543
 TSpectrumFit.cxx:544
 TSpectrumFit.cxx:545
 TSpectrumFit.cxx:546
 TSpectrumFit.cxx:547
 TSpectrumFit.cxx:548
 TSpectrumFit.cxx:549
 TSpectrumFit.cxx:550
 TSpectrumFit.cxx:551
 TSpectrumFit.cxx:552
 TSpectrumFit.cxx:553
 TSpectrumFit.cxx:554
 TSpectrumFit.cxx:555
 TSpectrumFit.cxx:556
 TSpectrumFit.cxx:557
 TSpectrumFit.cxx:558
 TSpectrumFit.cxx:559
 TSpectrumFit.cxx:560
 TSpectrumFit.cxx:561
 TSpectrumFit.cxx:562
 TSpectrumFit.cxx:563
 TSpectrumFit.cxx:564
 TSpectrumFit.cxx:565
 TSpectrumFit.cxx:566
 TSpectrumFit.cxx:567
 TSpectrumFit.cxx:568
 TSpectrumFit.cxx:569
 TSpectrumFit.cxx:570
 TSpectrumFit.cxx:571
 TSpectrumFit.cxx:572
 TSpectrumFit.cxx:573
 TSpectrumFit.cxx:574
 TSpectrumFit.cxx:575
 TSpectrumFit.cxx:576
 TSpectrumFit.cxx:577
 TSpectrumFit.cxx:578
 TSpectrumFit.cxx:579
 TSpectrumFit.cxx:580
 TSpectrumFit.cxx:581
 TSpectrumFit.cxx:582
 TSpectrumFit.cxx:583
 TSpectrumFit.cxx:584
 TSpectrumFit.cxx:585
 TSpectrumFit.cxx:586
 TSpectrumFit.cxx:587
 TSpectrumFit.cxx:588
 TSpectrumFit.cxx:589
 TSpectrumFit.cxx:590
 TSpectrumFit.cxx:591
 TSpectrumFit.cxx:592
 TSpectrumFit.cxx:593
 TSpectrumFit.cxx:594
 TSpectrumFit.cxx:595
 TSpectrumFit.cxx:596
 TSpectrumFit.cxx:597
 TSpectrumFit.cxx:598
 TSpectrumFit.cxx:599
 TSpectrumFit.cxx:600
 TSpectrumFit.cxx:601
 TSpectrumFit.cxx:602
 TSpectrumFit.cxx:603
 TSpectrumFit.cxx:604
 TSpectrumFit.cxx:605
 TSpectrumFit.cxx:606
 TSpectrumFit.cxx:607
 TSpectrumFit.cxx:608
 TSpectrumFit.cxx:609
 TSpectrumFit.cxx:610
 TSpectrumFit.cxx:611
 TSpectrumFit.cxx:612
 TSpectrumFit.cxx:613
 TSpectrumFit.cxx:614
 TSpectrumFit.cxx:615
 TSpectrumFit.cxx:616
 TSpectrumFit.cxx:617
 TSpectrumFit.cxx:618
 TSpectrumFit.cxx:619
 TSpectrumFit.cxx:620
 TSpectrumFit.cxx:621
 TSpectrumFit.cxx:622
 TSpectrumFit.cxx:623
 TSpectrumFit.cxx:624
 TSpectrumFit.cxx:625
 TSpectrumFit.cxx:626
 TSpectrumFit.cxx:627
 TSpectrumFit.cxx:628
 TSpectrumFit.cxx:629
 TSpectrumFit.cxx:630
 TSpectrumFit.cxx:631
 TSpectrumFit.cxx:632
 TSpectrumFit.cxx:633
 TSpectrumFit.cxx:634
 TSpectrumFit.cxx:635
 TSpectrumFit.cxx:636
 TSpectrumFit.cxx:637
 TSpectrumFit.cxx:638
 TSpectrumFit.cxx:639
 TSpectrumFit.cxx:640
 TSpectrumFit.cxx:641
 TSpectrumFit.cxx:642
 TSpectrumFit.cxx:643
 TSpectrumFit.cxx:644
 TSpectrumFit.cxx:645
 TSpectrumFit.cxx:646
 TSpectrumFit.cxx:647
 TSpectrumFit.cxx:648
 TSpectrumFit.cxx:649
 TSpectrumFit.cxx:650
 TSpectrumFit.cxx:651
 TSpectrumFit.cxx:652
 TSpectrumFit.cxx:653
 TSpectrumFit.cxx:654
 TSpectrumFit.cxx:655
 TSpectrumFit.cxx:656
 TSpectrumFit.cxx:657
 TSpectrumFit.cxx:658
 TSpectrumFit.cxx:659
 TSpectrumFit.cxx:660
 TSpectrumFit.cxx:661
 TSpectrumFit.cxx:662
 TSpectrumFit.cxx:663
 TSpectrumFit.cxx:664
 TSpectrumFit.cxx:665
 TSpectrumFit.cxx:666
 TSpectrumFit.cxx:667
 TSpectrumFit.cxx:668
 TSpectrumFit.cxx:669
 TSpectrumFit.cxx:670
 TSpectrumFit.cxx:671
 TSpectrumFit.cxx:672
 TSpectrumFit.cxx:673
 TSpectrumFit.cxx:674
 TSpectrumFit.cxx:675
 TSpectrumFit.cxx:676
 TSpectrumFit.cxx:677
 TSpectrumFit.cxx:678
 TSpectrumFit.cxx:679
 TSpectrumFit.cxx:680
 TSpectrumFit.cxx:681
 TSpectrumFit.cxx:682
 TSpectrumFit.cxx:683
 TSpectrumFit.cxx:684
 TSpectrumFit.cxx:685
 TSpectrumFit.cxx:686
 TSpectrumFit.cxx:687
 TSpectrumFit.cxx:688
 TSpectrumFit.cxx:689
 TSpectrumFit.cxx:690
 TSpectrumFit.cxx:691
 TSpectrumFit.cxx:692
 TSpectrumFit.cxx:693
 TSpectrumFit.cxx:694
 TSpectrumFit.cxx:695
 TSpectrumFit.cxx:696
 TSpectrumFit.cxx:697
 TSpectrumFit.cxx:698
 TSpectrumFit.cxx:699
 TSpectrumFit.cxx:700
 TSpectrumFit.cxx:701
 TSpectrumFit.cxx:702
 TSpectrumFit.cxx:703
 TSpectrumFit.cxx:704
 TSpectrumFit.cxx:705
 TSpectrumFit.cxx:706
 TSpectrumFit.cxx:707
 TSpectrumFit.cxx:708
 TSpectrumFit.cxx:709
 TSpectrumFit.cxx:710
 TSpectrumFit.cxx:711
 TSpectrumFit.cxx:712
 TSpectrumFit.cxx:713
 TSpectrumFit.cxx:714
 TSpectrumFit.cxx:715
 TSpectrumFit.cxx:716
 TSpectrumFit.cxx:717
 TSpectrumFit.cxx:718
 TSpectrumFit.cxx:719
 TSpectrumFit.cxx:720
 TSpectrumFit.cxx:721
 TSpectrumFit.cxx:722
 TSpectrumFit.cxx:723
 TSpectrumFit.cxx:724
 TSpectrumFit.cxx:725
 TSpectrumFit.cxx:726
 TSpectrumFit.cxx:727
 TSpectrumFit.cxx:728
 TSpectrumFit.cxx:729
 TSpectrumFit.cxx:730
 TSpectrumFit.cxx:731
 TSpectrumFit.cxx:732
 TSpectrumFit.cxx:733
 TSpectrumFit.cxx:734
 TSpectrumFit.cxx:735
 TSpectrumFit.cxx:736
 TSpectrumFit.cxx:737
 TSpectrumFit.cxx:738
 TSpectrumFit.cxx:739
 TSpectrumFit.cxx:740
 TSpectrumFit.cxx:741
 TSpectrumFit.cxx:742
 TSpectrumFit.cxx:743
 TSpectrumFit.cxx:744
 TSpectrumFit.cxx:745
 TSpectrumFit.cxx:746
 TSpectrumFit.cxx:747
 TSpectrumFit.cxx:748
 TSpectrumFit.cxx:749
 TSpectrumFit.cxx:750
 TSpectrumFit.cxx:751
 TSpectrumFit.cxx:752
 TSpectrumFit.cxx:753
 TSpectrumFit.cxx:754
 TSpectrumFit.cxx:755
 TSpectrumFit.cxx:756
 TSpectrumFit.cxx:757
 TSpectrumFit.cxx:758
 TSpectrumFit.cxx:759
 TSpectrumFit.cxx:760
 TSpectrumFit.cxx:761
 TSpectrumFit.cxx:762
 TSpectrumFit.cxx:763
 TSpectrumFit.cxx:764
 TSpectrumFit.cxx:765
 TSpectrumFit.cxx:766
 TSpectrumFit.cxx:767
 TSpectrumFit.cxx:768
 TSpectrumFit.cxx:769
 TSpectrumFit.cxx:770
 TSpectrumFit.cxx:771
 TSpectrumFit.cxx:772
 TSpectrumFit.cxx:773
 TSpectrumFit.cxx:774
 TSpectrumFit.cxx:775
 TSpectrumFit.cxx:776
 TSpectrumFit.cxx:777
 TSpectrumFit.cxx:778
 TSpectrumFit.cxx:779
 TSpectrumFit.cxx:780
 TSpectrumFit.cxx:781
 TSpectrumFit.cxx:782
 TSpectrumFit.cxx:783
 TSpectrumFit.cxx:784
 TSpectrumFit.cxx:785
 TSpectrumFit.cxx:786
 TSpectrumFit.cxx:787
 TSpectrumFit.cxx:788
 TSpectrumFit.cxx:789
 TSpectrumFit.cxx:790
 TSpectrumFit.cxx:791
 TSpectrumFit.cxx:792
 TSpectrumFit.cxx:793
 TSpectrumFit.cxx:794
 TSpectrumFit.cxx:795
 TSpectrumFit.cxx:796
 TSpectrumFit.cxx:797
 TSpectrumFit.cxx:798
 TSpectrumFit.cxx:799
 TSpectrumFit.cxx:800
 TSpectrumFit.cxx:801
 TSpectrumFit.cxx:802
 TSpectrumFit.cxx:803
 TSpectrumFit.cxx:804
 TSpectrumFit.cxx:805
 TSpectrumFit.cxx:806
 TSpectrumFit.cxx:807
 TSpectrumFit.cxx:808
 TSpectrumFit.cxx:809
 TSpectrumFit.cxx:810
 TSpectrumFit.cxx:811
 TSpectrumFit.cxx:812
 TSpectrumFit.cxx:813
 TSpectrumFit.cxx:814
 TSpectrumFit.cxx:815
 TSpectrumFit.cxx:816
 TSpectrumFit.cxx:817
 TSpectrumFit.cxx:818
 TSpectrumFit.cxx:819
 TSpectrumFit.cxx:820
 TSpectrumFit.cxx:821
 TSpectrumFit.cxx:822
 TSpectrumFit.cxx:823
 TSpectrumFit.cxx:824
 TSpectrumFit.cxx:825
 TSpectrumFit.cxx:826
 TSpectrumFit.cxx:827
 TSpectrumFit.cxx:828
 TSpectrumFit.cxx:829
 TSpectrumFit.cxx:830
 TSpectrumFit.cxx:831
 TSpectrumFit.cxx:832
 TSpectrumFit.cxx:833
 TSpectrumFit.cxx:834
 TSpectrumFit.cxx:835
 TSpectrumFit.cxx:836
 TSpectrumFit.cxx:837
 TSpectrumFit.cxx:838
 TSpectrumFit.cxx:839
 TSpectrumFit.cxx:840
 TSpectrumFit.cxx:841
 TSpectrumFit.cxx:842
 TSpectrumFit.cxx:843
 TSpectrumFit.cxx:844
 TSpectrumFit.cxx:845
 TSpectrumFit.cxx:846
 TSpectrumFit.cxx:847
 TSpectrumFit.cxx:848
 TSpectrumFit.cxx:849
 TSpectrumFit.cxx:850
 TSpectrumFit.cxx:851
 TSpectrumFit.cxx:852
 TSpectrumFit.cxx:853
 TSpectrumFit.cxx:854
 TSpectrumFit.cxx:855
 TSpectrumFit.cxx:856
 TSpectrumFit.cxx:857
 TSpectrumFit.cxx:858
 TSpectrumFit.cxx:859
 TSpectrumFit.cxx:860
 TSpectrumFit.cxx:861
 TSpectrumFit.cxx:862
 TSpectrumFit.cxx:863
 TSpectrumFit.cxx:864
 TSpectrumFit.cxx:865
 TSpectrumFit.cxx:866
 TSpectrumFit.cxx:867
 TSpectrumFit.cxx:868
 TSpectrumFit.cxx:869
 TSpectrumFit.cxx:870
 TSpectrumFit.cxx:871
 TSpectrumFit.cxx:872
 TSpectrumFit.cxx:873
 TSpectrumFit.cxx:874
 TSpectrumFit.cxx:875
 TSpectrumFit.cxx:876
 TSpectrumFit.cxx:877
 TSpectrumFit.cxx:878
 TSpectrumFit.cxx:879
 TSpectrumFit.cxx:880
 TSpectrumFit.cxx:881
 TSpectrumFit.cxx:882
 TSpectrumFit.cxx:883
 TSpectrumFit.cxx:884
 TSpectrumFit.cxx:885
 TSpectrumFit.cxx:886
 TSpectrumFit.cxx:887
 TSpectrumFit.cxx:888
 TSpectrumFit.cxx:889
 TSpectrumFit.cxx:890
 TSpectrumFit.cxx:891
 TSpectrumFit.cxx:892
 TSpectrumFit.cxx:893
 TSpectrumFit.cxx:894
 TSpectrumFit.cxx:895
 TSpectrumFit.cxx:896
 TSpectrumFit.cxx:897
 TSpectrumFit.cxx:898
 TSpectrumFit.cxx:899
 TSpectrumFit.cxx:900
 TSpectrumFit.cxx:901
 TSpectrumFit.cxx:902
 TSpectrumFit.cxx:903
 TSpectrumFit.cxx:904
 TSpectrumFit.cxx:905
 TSpectrumFit.cxx:906
 TSpectrumFit.cxx:907
 TSpectrumFit.cxx:908
 TSpectrumFit.cxx:909
 TSpectrumFit.cxx:910
 TSpectrumFit.cxx:911
 TSpectrumFit.cxx:912
 TSpectrumFit.cxx:913
 TSpectrumFit.cxx:914
 TSpectrumFit.cxx:915
 TSpectrumFit.cxx:916
 TSpectrumFit.cxx:917
 TSpectrumFit.cxx:918
 TSpectrumFit.cxx:919
 TSpectrumFit.cxx:920
 TSpectrumFit.cxx:921
 TSpectrumFit.cxx:922
 TSpectrumFit.cxx:923
 TSpectrumFit.cxx:924
 TSpectrumFit.cxx:925
 TSpectrumFit.cxx:926
 TSpectrumFit.cxx:927
 TSpectrumFit.cxx:928
 TSpectrumFit.cxx:929
 TSpectrumFit.cxx:930
 TSpectrumFit.cxx:931
 TSpectrumFit.cxx:932
 TSpectrumFit.cxx:933
 TSpectrumFit.cxx:934
 TSpectrumFit.cxx:935
 TSpectrumFit.cxx:936
 TSpectrumFit.cxx:937
 TSpectrumFit.cxx:938
 TSpectrumFit.cxx:939
 TSpectrumFit.cxx:940
 TSpectrumFit.cxx:941
 TSpectrumFit.cxx:942
 TSpectrumFit.cxx:943
 TSpectrumFit.cxx:944
 TSpectrumFit.cxx:945
 TSpectrumFit.cxx:946
 TSpectrumFit.cxx:947
 TSpectrumFit.cxx:948
 TSpectrumFit.cxx:949
 TSpectrumFit.cxx:950
 TSpectrumFit.cxx:951
 TSpectrumFit.cxx:952
 TSpectrumFit.cxx:953
 TSpectrumFit.cxx:954
 TSpectrumFit.cxx:955
 TSpectrumFit.cxx:956
 TSpectrumFit.cxx:957
 TSpectrumFit.cxx:958
 TSpectrumFit.cxx:959
 TSpectrumFit.cxx:960
 TSpectrumFit.cxx:961
 TSpectrumFit.cxx:962
 TSpectrumFit.cxx:963
 TSpectrumFit.cxx:964
 TSpectrumFit.cxx:965
 TSpectrumFit.cxx:966
 TSpectrumFit.cxx:967
 TSpectrumFit.cxx:968
 TSpectrumFit.cxx:969
 TSpectrumFit.cxx:970
 TSpectrumFit.cxx:971
 TSpectrumFit.cxx:972
 TSpectrumFit.cxx:973
 TSpectrumFit.cxx:974
 TSpectrumFit.cxx:975
 TSpectrumFit.cxx:976
 TSpectrumFit.cxx:977
 TSpectrumFit.cxx:978
 TSpectrumFit.cxx:979
 TSpectrumFit.cxx:980
 TSpectrumFit.cxx:981
 TSpectrumFit.cxx:982
 TSpectrumFit.cxx:983
 TSpectrumFit.cxx:984
 TSpectrumFit.cxx:985
 TSpectrumFit.cxx:986
 TSpectrumFit.cxx:987
 TSpectrumFit.cxx:988
 TSpectrumFit.cxx:989
 TSpectrumFit.cxx:990
 TSpectrumFit.cxx:991
 TSpectrumFit.cxx:992
 TSpectrumFit.cxx:993
 TSpectrumFit.cxx:994
 TSpectrumFit.cxx:995
 TSpectrumFit.cxx:996
 TSpectrumFit.cxx:997
 TSpectrumFit.cxx:998
 TSpectrumFit.cxx:999
 TSpectrumFit.cxx:1000
 TSpectrumFit.cxx:1001
 TSpectrumFit.cxx:1002
 TSpectrumFit.cxx:1003
 TSpectrumFit.cxx:1004
 TSpectrumFit.cxx:1005
 TSpectrumFit.cxx:1006
 TSpectrumFit.cxx:1007
 TSpectrumFit.cxx:1008
 TSpectrumFit.cxx:1009
 TSpectrumFit.cxx:1010
 TSpectrumFit.cxx:1011
 TSpectrumFit.cxx:1012
 TSpectrumFit.cxx:1013
 TSpectrumFit.cxx:1014
 TSpectrumFit.cxx:1015
 TSpectrumFit.cxx:1016
 TSpectrumFit.cxx:1017
 TSpectrumFit.cxx:1018
 TSpectrumFit.cxx:1019
 TSpectrumFit.cxx:1020
 TSpectrumFit.cxx:1021
 TSpectrumFit.cxx:1022
 TSpectrumFit.cxx:1023
 TSpectrumFit.cxx:1024
 TSpectrumFit.cxx:1025
 TSpectrumFit.cxx:1026
 TSpectrumFit.cxx:1027
 TSpectrumFit.cxx:1028
 TSpectrumFit.cxx:1029
 TSpectrumFit.cxx:1030
 TSpectrumFit.cxx:1031
 TSpectrumFit.cxx:1032
 TSpectrumFit.cxx:1033
 TSpectrumFit.cxx:1034
 TSpectrumFit.cxx:1035
 TSpectrumFit.cxx:1036
 TSpectrumFit.cxx:1037
 TSpectrumFit.cxx:1038
 TSpectrumFit.cxx:1039
 TSpectrumFit.cxx:1040
 TSpectrumFit.cxx:1041
 TSpectrumFit.cxx:1042
 TSpectrumFit.cxx:1043
 TSpectrumFit.cxx:1044
 TSpectrumFit.cxx:1045
 TSpectrumFit.cxx:1046
 TSpectrumFit.cxx:1047
 TSpectrumFit.cxx:1048
 TSpectrumFit.cxx:1049
 TSpectrumFit.cxx:1050
 TSpectrumFit.cxx:1051
 TSpectrumFit.cxx:1052
 TSpectrumFit.cxx:1053
 TSpectrumFit.cxx:1054
 TSpectrumFit.cxx:1055
 TSpectrumFit.cxx:1056
 TSpectrumFit.cxx:1057
 TSpectrumFit.cxx:1058
 TSpectrumFit.cxx:1059
 TSpectrumFit.cxx:1060
 TSpectrumFit.cxx:1061
 TSpectrumFit.cxx:1062
 TSpectrumFit.cxx:1063
 TSpectrumFit.cxx:1064
 TSpectrumFit.cxx:1065
 TSpectrumFit.cxx:1066
 TSpectrumFit.cxx:1067
 TSpectrumFit.cxx:1068
 TSpectrumFit.cxx:1069
 TSpectrumFit.cxx:1070
 TSpectrumFit.cxx:1071
 TSpectrumFit.cxx:1072
 TSpectrumFit.cxx:1073
 TSpectrumFit.cxx:1074
 TSpectrumFit.cxx:1075
 TSpectrumFit.cxx:1076
 TSpectrumFit.cxx:1077
 TSpectrumFit.cxx:1078
 TSpectrumFit.cxx:1079
 TSpectrumFit.cxx:1080
 TSpectrumFit.cxx:1081
 TSpectrumFit.cxx:1082
 TSpectrumFit.cxx:1083
 TSpectrumFit.cxx:1084
 TSpectrumFit.cxx:1085
 TSpectrumFit.cxx:1086
 TSpectrumFit.cxx:1087
 TSpectrumFit.cxx:1088
 TSpectrumFit.cxx:1089
 TSpectrumFit.cxx:1090
 TSpectrumFit.cxx:1091
 TSpectrumFit.cxx:1092
 TSpectrumFit.cxx:1093
 TSpectrumFit.cxx:1094
 TSpectrumFit.cxx:1095
 TSpectrumFit.cxx:1096
 TSpectrumFit.cxx:1097
 TSpectrumFit.cxx:1098
 TSpectrumFit.cxx:1099
 TSpectrumFit.cxx:1100
 TSpectrumFit.cxx:1101
 TSpectrumFit.cxx:1102
 TSpectrumFit.cxx:1103
 TSpectrumFit.cxx:1104
 TSpectrumFit.cxx:1105
 TSpectrumFit.cxx:1106
 TSpectrumFit.cxx:1107
 TSpectrumFit.cxx:1108
 TSpectrumFit.cxx:1109
 TSpectrumFit.cxx:1110
 TSpectrumFit.cxx:1111
 TSpectrumFit.cxx:1112
 TSpectrumFit.cxx:1113
 TSpectrumFit.cxx:1114
 TSpectrumFit.cxx:1115
 TSpectrumFit.cxx:1116
 TSpectrumFit.cxx:1117
 TSpectrumFit.cxx:1118
 TSpectrumFit.cxx:1119
 TSpectrumFit.cxx:1120
 TSpectrumFit.cxx:1121
 TSpectrumFit.cxx:1122
 TSpectrumFit.cxx:1123
 TSpectrumFit.cxx:1124
 TSpectrumFit.cxx:1125
 TSpectrumFit.cxx:1126
 TSpectrumFit.cxx:1127
 TSpectrumFit.cxx:1128
 TSpectrumFit.cxx:1129
 TSpectrumFit.cxx:1130
 TSpectrumFit.cxx:1131
 TSpectrumFit.cxx:1132
 TSpectrumFit.cxx:1133
 TSpectrumFit.cxx:1134
 TSpectrumFit.cxx:1135
 TSpectrumFit.cxx:1136
 TSpectrumFit.cxx:1137
 TSpectrumFit.cxx:1138
 TSpectrumFit.cxx:1139
 TSpectrumFit.cxx:1140
 TSpectrumFit.cxx:1141
 TSpectrumFit.cxx:1142
 TSpectrumFit.cxx:1143
 TSpectrumFit.cxx:1144
 TSpectrumFit.cxx:1145
 TSpectrumFit.cxx:1146
 TSpectrumFit.cxx:1147
 TSpectrumFit.cxx:1148
 TSpectrumFit.cxx:1149
 TSpectrumFit.cxx:1150
 TSpectrumFit.cxx:1151
 TSpectrumFit.cxx:1152
 TSpectrumFit.cxx:1153
 TSpectrumFit.cxx:1154
 TSpectrumFit.cxx:1155
 TSpectrumFit.cxx:1156
 TSpectrumFit.cxx:1157
 TSpectrumFit.cxx:1158
 TSpectrumFit.cxx:1159
 TSpectrumFit.cxx:1160
 TSpectrumFit.cxx:1161
 TSpectrumFit.cxx:1162
 TSpectrumFit.cxx:1163
 TSpectrumFit.cxx:1164
 TSpectrumFit.cxx:1165
 TSpectrumFit.cxx:1166
 TSpectrumFit.cxx:1167
 TSpectrumFit.cxx:1168
 TSpectrumFit.cxx:1169
 TSpectrumFit.cxx:1170
 TSpectrumFit.cxx:1171
 TSpectrumFit.cxx:1172
 TSpectrumFit.cxx:1173
 TSpectrumFit.cxx:1174
 TSpectrumFit.cxx:1175
 TSpectrumFit.cxx:1176
 TSpectrumFit.cxx:1177
 TSpectrumFit.cxx:1178
 TSpectrumFit.cxx:1179
 TSpectrumFit.cxx:1180
 TSpectrumFit.cxx:1181
 TSpectrumFit.cxx:1182
 TSpectrumFit.cxx:1183
 TSpectrumFit.cxx:1184
 TSpectrumFit.cxx:1185
 TSpectrumFit.cxx:1186
 TSpectrumFit.cxx:1187
 TSpectrumFit.cxx:1188
 TSpectrumFit.cxx:1189
 TSpectrumFit.cxx:1190
 TSpectrumFit.cxx:1191
 TSpectrumFit.cxx:1192
 TSpectrumFit.cxx:1193
 TSpectrumFit.cxx:1194
 TSpectrumFit.cxx:1195
 TSpectrumFit.cxx:1196
 TSpectrumFit.cxx:1197
 TSpectrumFit.cxx:1198
 TSpectrumFit.cxx:1199
 TSpectrumFit.cxx:1200
 TSpectrumFit.cxx:1201
 TSpectrumFit.cxx:1202
 TSpectrumFit.cxx:1203
 TSpectrumFit.cxx:1204
 TSpectrumFit.cxx:1205
 TSpectrumFit.cxx:1206
 TSpectrumFit.cxx:1207
 TSpectrumFit.cxx:1208
 TSpectrumFit.cxx:1209
 TSpectrumFit.cxx:1210
 TSpectrumFit.cxx:1211
 TSpectrumFit.cxx:1212
 TSpectrumFit.cxx:1213
 TSpectrumFit.cxx:1214
 TSpectrumFit.cxx:1215
 TSpectrumFit.cxx:1216
 TSpectrumFit.cxx:1217
 TSpectrumFit.cxx:1218
 TSpectrumFit.cxx:1219
 TSpectrumFit.cxx:1220
 TSpectrumFit.cxx:1221
 TSpectrumFit.cxx:1222
 TSpectrumFit.cxx:1223
 TSpectrumFit.cxx:1224
 TSpectrumFit.cxx:1225
 TSpectrumFit.cxx:1226
 TSpectrumFit.cxx:1227
 TSpectrumFit.cxx:1228
 TSpectrumFit.cxx:1229
 TSpectrumFit.cxx:1230
 TSpectrumFit.cxx:1231
 TSpectrumFit.cxx:1232
 TSpectrumFit.cxx:1233
 TSpectrumFit.cxx:1234
 TSpectrumFit.cxx:1235
 TSpectrumFit.cxx:1236
 TSpectrumFit.cxx:1237
 TSpectrumFit.cxx:1238
 TSpectrumFit.cxx:1239
 TSpectrumFit.cxx:1240
 TSpectrumFit.cxx:1241
 TSpectrumFit.cxx:1242
 TSpectrumFit.cxx:1243
 TSpectrumFit.cxx:1244
 TSpectrumFit.cxx:1245
 TSpectrumFit.cxx:1246
 TSpectrumFit.cxx:1247
 TSpectrumFit.cxx:1248
 TSpectrumFit.cxx:1249
 TSpectrumFit.cxx:1250
 TSpectrumFit.cxx:1251
 TSpectrumFit.cxx:1252
 TSpectrumFit.cxx:1253
 TSpectrumFit.cxx:1254
 TSpectrumFit.cxx:1255
 TSpectrumFit.cxx:1256
 TSpectrumFit.cxx:1257
 TSpectrumFit.cxx:1258
 TSpectrumFit.cxx:1259
 TSpectrumFit.cxx:1260
 TSpectrumFit.cxx:1261
 TSpectrumFit.cxx:1262
 TSpectrumFit.cxx:1263
 TSpectrumFit.cxx:1264
 TSpectrumFit.cxx:1265
 TSpectrumFit.cxx:1266
 TSpectrumFit.cxx:1267
 TSpectrumFit.cxx:1268
 TSpectrumFit.cxx:1269
 TSpectrumFit.cxx:1270
 TSpectrumFit.cxx:1271
 TSpectrumFit.cxx:1272
 TSpectrumFit.cxx:1273
 TSpectrumFit.cxx:1274
 TSpectrumFit.cxx:1275
 TSpectrumFit.cxx:1276
 TSpectrumFit.cxx:1277
 TSpectrumFit.cxx:1278
 TSpectrumFit.cxx:1279
 TSpectrumFit.cxx:1280
 TSpectrumFit.cxx:1281
 TSpectrumFit.cxx:1282
 TSpectrumFit.cxx:1283
 TSpectrumFit.cxx:1284
 TSpectrumFit.cxx:1285
 TSpectrumFit.cxx:1286
 TSpectrumFit.cxx:1287
 TSpectrumFit.cxx:1288
 TSpectrumFit.cxx:1289
 TSpectrumFit.cxx:1290
 TSpectrumFit.cxx:1291
 TSpectrumFit.cxx:1292
 TSpectrumFit.cxx:1293
 TSpectrumFit.cxx:1294
 TSpectrumFit.cxx:1295
 TSpectrumFit.cxx:1296
 TSpectrumFit.cxx:1297
 TSpectrumFit.cxx:1298
 TSpectrumFit.cxx:1299
 TSpectrumFit.cxx:1300
 TSpectrumFit.cxx:1301
 TSpectrumFit.cxx:1302
 TSpectrumFit.cxx:1303
 TSpectrumFit.cxx:1304
 TSpectrumFit.cxx:1305
 TSpectrumFit.cxx:1306
 TSpectrumFit.cxx:1307
 TSpectrumFit.cxx:1308
 TSpectrumFit.cxx:1309
 TSpectrumFit.cxx:1310
 TSpectrumFit.cxx:1311
 TSpectrumFit.cxx:1312
 TSpectrumFit.cxx:1313
 TSpectrumFit.cxx:1314
 TSpectrumFit.cxx:1315
 TSpectrumFit.cxx:1316
 TSpectrumFit.cxx:1317
 TSpectrumFit.cxx:1318
 TSpectrumFit.cxx:1319
 TSpectrumFit.cxx:1320
 TSpectrumFit.cxx:1321
 TSpectrumFit.cxx:1322
 TSpectrumFit.cxx:1323
 TSpectrumFit.cxx:1324
 TSpectrumFit.cxx:1325
 TSpectrumFit.cxx:1326
 TSpectrumFit.cxx:1327
 TSpectrumFit.cxx:1328
 TSpectrumFit.cxx:1329
 TSpectrumFit.cxx:1330
 TSpectrumFit.cxx:1331
 TSpectrumFit.cxx:1332
 TSpectrumFit.cxx:1333
 TSpectrumFit.cxx:1334
 TSpectrumFit.cxx:1335
 TSpectrumFit.cxx:1336
 TSpectrumFit.cxx:1337
 TSpectrumFit.cxx:1338
 TSpectrumFit.cxx:1339
 TSpectrumFit.cxx:1340
 TSpectrumFit.cxx:1341
 TSpectrumFit.cxx:1342
 TSpectrumFit.cxx:1343
 TSpectrumFit.cxx:1344
 TSpectrumFit.cxx:1345
 TSpectrumFit.cxx:1346
 TSpectrumFit.cxx:1347
 TSpectrumFit.cxx:1348
 TSpectrumFit.cxx:1349
 TSpectrumFit.cxx:1350
 TSpectrumFit.cxx:1351
 TSpectrumFit.cxx:1352
 TSpectrumFit.cxx:1353
 TSpectrumFit.cxx:1354
 TSpectrumFit.cxx:1355
 TSpectrumFit.cxx:1356
 TSpectrumFit.cxx:1357
 TSpectrumFit.cxx:1358
 TSpectrumFit.cxx:1359
 TSpectrumFit.cxx:1360
 TSpectrumFit.cxx:1361
 TSpectrumFit.cxx:1362
 TSpectrumFit.cxx:1363
 TSpectrumFit.cxx:1364
 TSpectrumFit.cxx:1365
 TSpectrumFit.cxx:1366
 TSpectrumFit.cxx:1367
 TSpectrumFit.cxx:1368
 TSpectrumFit.cxx:1369
 TSpectrumFit.cxx:1370
 TSpectrumFit.cxx:1371
 TSpectrumFit.cxx:1372
 TSpectrumFit.cxx:1373
 TSpectrumFit.cxx:1374
 TSpectrumFit.cxx:1375
 TSpectrumFit.cxx:1376
 TSpectrumFit.cxx:1377
 TSpectrumFit.cxx:1378
 TSpectrumFit.cxx:1379
 TSpectrumFit.cxx:1380
 TSpectrumFit.cxx:1381
 TSpectrumFit.cxx:1382
 TSpectrumFit.cxx:1383
 TSpectrumFit.cxx:1384
 TSpectrumFit.cxx:1385
 TSpectrumFit.cxx:1386
 TSpectrumFit.cxx:1387
 TSpectrumFit.cxx:1388
 TSpectrumFit.cxx:1389
 TSpectrumFit.cxx:1390
 TSpectrumFit.cxx:1391
 TSpectrumFit.cxx:1392
 TSpectrumFit.cxx:1393
 TSpectrumFit.cxx:1394
 TSpectrumFit.cxx:1395
 TSpectrumFit.cxx:1396
 TSpectrumFit.cxx:1397
 TSpectrumFit.cxx:1398
 TSpectrumFit.cxx:1399
 TSpectrumFit.cxx:1400
 TSpectrumFit.cxx:1401
 TSpectrumFit.cxx:1402
 TSpectrumFit.cxx:1403
 TSpectrumFit.cxx:1404
 TSpectrumFit.cxx:1405
 TSpectrumFit.cxx:1406
 TSpectrumFit.cxx:1407
 TSpectrumFit.cxx:1408
 TSpectrumFit.cxx:1409
 TSpectrumFit.cxx:1410
 TSpectrumFit.cxx:1411
 TSpectrumFit.cxx:1412
 TSpectrumFit.cxx:1413
 TSpectrumFit.cxx:1414
 TSpectrumFit.cxx:1415
 TSpectrumFit.cxx:1416
 TSpectrumFit.cxx:1417
 TSpectrumFit.cxx:1418
 TSpectrumFit.cxx:1419
 TSpectrumFit.cxx:1420
 TSpectrumFit.cxx:1421
 TSpectrumFit.cxx:1422
 TSpectrumFit.cxx:1423
 TSpectrumFit.cxx:1424
 TSpectrumFit.cxx:1425
 TSpectrumFit.cxx:1426
 TSpectrumFit.cxx:1427
 TSpectrumFit.cxx:1428
 TSpectrumFit.cxx:1429
 TSpectrumFit.cxx:1430
 TSpectrumFit.cxx:1431
 TSpectrumFit.cxx:1432
 TSpectrumFit.cxx:1433
 TSpectrumFit.cxx:1434
 TSpectrumFit.cxx:1435
 TSpectrumFit.cxx:1436
 TSpectrumFit.cxx:1437
 TSpectrumFit.cxx:1438
 TSpectrumFit.cxx:1439
 TSpectrumFit.cxx:1440
 TSpectrumFit.cxx:1441
 TSpectrumFit.cxx:1442
 TSpectrumFit.cxx:1443
 TSpectrumFit.cxx:1444
 TSpectrumFit.cxx:1445
 TSpectrumFit.cxx:1446
 TSpectrumFit.cxx:1447
 TSpectrumFit.cxx:1448
 TSpectrumFit.cxx:1449
 TSpectrumFit.cxx:1450
 TSpectrumFit.cxx:1451
 TSpectrumFit.cxx:1452
 TSpectrumFit.cxx:1453
 TSpectrumFit.cxx:1454
 TSpectrumFit.cxx:1455
 TSpectrumFit.cxx:1456
 TSpectrumFit.cxx:1457
 TSpectrumFit.cxx:1458
 TSpectrumFit.cxx:1459
 TSpectrumFit.cxx:1460
 TSpectrumFit.cxx:1461
 TSpectrumFit.cxx:1462
 TSpectrumFit.cxx:1463
 TSpectrumFit.cxx:1464
 TSpectrumFit.cxx:1465
 TSpectrumFit.cxx:1466
 TSpectrumFit.cxx:1467
 TSpectrumFit.cxx:1468
 TSpectrumFit.cxx:1469
 TSpectrumFit.cxx:1470
 TSpectrumFit.cxx:1471
 TSpectrumFit.cxx:1472
 TSpectrumFit.cxx:1473
 TSpectrumFit.cxx:1474
 TSpectrumFit.cxx:1475
 TSpectrumFit.cxx:1476
 TSpectrumFit.cxx:1477
 TSpectrumFit.cxx:1478
 TSpectrumFit.cxx:1479
 TSpectrumFit.cxx:1480
 TSpectrumFit.cxx:1481
 TSpectrumFit.cxx:1482
 TSpectrumFit.cxx:1483
 TSpectrumFit.cxx:1484
 TSpectrumFit.cxx:1485
 TSpectrumFit.cxx:1486
 TSpectrumFit.cxx:1487
 TSpectrumFit.cxx:1488
 TSpectrumFit.cxx:1489
 TSpectrumFit.cxx:1490
 TSpectrumFit.cxx:1491
 TSpectrumFit.cxx:1492
 TSpectrumFit.cxx:1493
 TSpectrumFit.cxx:1494
 TSpectrumFit.cxx:1495
 TSpectrumFit.cxx:1496
 TSpectrumFit.cxx:1497
 TSpectrumFit.cxx:1498
 TSpectrumFit.cxx:1499
 TSpectrumFit.cxx:1500
 TSpectrumFit.cxx:1501
 TSpectrumFit.cxx:1502
 TSpectrumFit.cxx:1503
 TSpectrumFit.cxx:1504
 TSpectrumFit.cxx:1505
 TSpectrumFit.cxx:1506
 TSpectrumFit.cxx:1507
 TSpectrumFit.cxx:1508
 TSpectrumFit.cxx:1509
 TSpectrumFit.cxx:1510
 TSpectrumFit.cxx:1511
 TSpectrumFit.cxx:1512
 TSpectrumFit.cxx:1513
 TSpectrumFit.cxx:1514
 TSpectrumFit.cxx:1515
 TSpectrumFit.cxx:1516
 TSpectrumFit.cxx:1517
 TSpectrumFit.cxx:1518
 TSpectrumFit.cxx:1519
 TSpectrumFit.cxx:1520
 TSpectrumFit.cxx:1521
 TSpectrumFit.cxx:1522
 TSpectrumFit.cxx:1523
 TSpectrumFit.cxx:1524
 TSpectrumFit.cxx:1525
 TSpectrumFit.cxx:1526
 TSpectrumFit.cxx:1527
 TSpectrumFit.cxx:1528
 TSpectrumFit.cxx:1529
 TSpectrumFit.cxx:1530
 TSpectrumFit.cxx:1531
 TSpectrumFit.cxx:1532
 TSpectrumFit.cxx:1533
 TSpectrumFit.cxx:1534
 TSpectrumFit.cxx:1535
 TSpectrumFit.cxx:1536
 TSpectrumFit.cxx:1537
 TSpectrumFit.cxx:1538
 TSpectrumFit.cxx:1539
 TSpectrumFit.cxx:1540
 TSpectrumFit.cxx:1541
 TSpectrumFit.cxx:1542
 TSpectrumFit.cxx:1543
 TSpectrumFit.cxx:1544
 TSpectrumFit.cxx:1545
 TSpectrumFit.cxx:1546
 TSpectrumFit.cxx:1547
 TSpectrumFit.cxx:1548
 TSpectrumFit.cxx:1549
 TSpectrumFit.cxx:1550
 TSpectrumFit.cxx:1551
 TSpectrumFit.cxx:1552
 TSpectrumFit.cxx:1553
 TSpectrumFit.cxx:1554
 TSpectrumFit.cxx:1555
 TSpectrumFit.cxx:1556
 TSpectrumFit.cxx:1557
 TSpectrumFit.cxx:1558
 TSpectrumFit.cxx:1559
 TSpectrumFit.cxx:1560
 TSpectrumFit.cxx:1561
 TSpectrumFit.cxx:1562
 TSpectrumFit.cxx:1563
 TSpectrumFit.cxx:1564
 TSpectrumFit.cxx:1565
 TSpectrumFit.cxx:1566
 TSpectrumFit.cxx:1567
 TSpectrumFit.cxx:1568
 TSpectrumFit.cxx:1569
 TSpectrumFit.cxx:1570
 TSpectrumFit.cxx:1571
 TSpectrumFit.cxx:1572
 TSpectrumFit.cxx:1573
 TSpectrumFit.cxx:1574
 TSpectrumFit.cxx:1575
 TSpectrumFit.cxx:1576
 TSpectrumFit.cxx:1577
 TSpectrumFit.cxx:1578
 TSpectrumFit.cxx:1579
 TSpectrumFit.cxx:1580
 TSpectrumFit.cxx:1581
 TSpectrumFit.cxx:1582
 TSpectrumFit.cxx:1583
 TSpectrumFit.cxx:1584
 TSpectrumFit.cxx:1585
 TSpectrumFit.cxx:1586
 TSpectrumFit.cxx:1587
 TSpectrumFit.cxx:1588
 TSpectrumFit.cxx:1589
 TSpectrumFit.cxx:1590
 TSpectrumFit.cxx:1591
 TSpectrumFit.cxx:1592
 TSpectrumFit.cxx:1593
 TSpectrumFit.cxx:1594
 TSpectrumFit.cxx:1595
 TSpectrumFit.cxx:1596
 TSpectrumFit.cxx:1597
 TSpectrumFit.cxx:1598
 TSpectrumFit.cxx:1599
 TSpectrumFit.cxx:1600
 TSpectrumFit.cxx:1601
 TSpectrumFit.cxx:1602
 TSpectrumFit.cxx:1603
 TSpectrumFit.cxx:1604
 TSpectrumFit.cxx:1605
 TSpectrumFit.cxx:1606
 TSpectrumFit.cxx:1607
 TSpectrumFit.cxx:1608
 TSpectrumFit.cxx:1609
 TSpectrumFit.cxx:1610
 TSpectrumFit.cxx:1611
 TSpectrumFit.cxx:1612
 TSpectrumFit.cxx:1613
 TSpectrumFit.cxx:1614
 TSpectrumFit.cxx:1615
 TSpectrumFit.cxx:1616
 TSpectrumFit.cxx:1617
 TSpectrumFit.cxx:1618
 TSpectrumFit.cxx:1619
 TSpectrumFit.cxx:1620
 TSpectrumFit.cxx:1621
 TSpectrumFit.cxx:1622
 TSpectrumFit.cxx:1623
 TSpectrumFit.cxx:1624
 TSpectrumFit.cxx:1625
 TSpectrumFit.cxx:1626
 TSpectrumFit.cxx:1627
 TSpectrumFit.cxx:1628
 TSpectrumFit.cxx:1629
 TSpectrumFit.cxx:1630
 TSpectrumFit.cxx:1631
 TSpectrumFit.cxx:1632
 TSpectrumFit.cxx:1633
 TSpectrumFit.cxx:1634
 TSpectrumFit.cxx:1635
 TSpectrumFit.cxx:1636
 TSpectrumFit.cxx:1637
 TSpectrumFit.cxx:1638
 TSpectrumFit.cxx:1639
 TSpectrumFit.cxx:1640
 TSpectrumFit.cxx:1641
 TSpectrumFit.cxx:1642
 TSpectrumFit.cxx:1643
 TSpectrumFit.cxx:1644
 TSpectrumFit.cxx:1645
 TSpectrumFit.cxx:1646
 TSpectrumFit.cxx:1647
 TSpectrumFit.cxx:1648
 TSpectrumFit.cxx:1649
 TSpectrumFit.cxx:1650
 TSpectrumFit.cxx:1651
 TSpectrumFit.cxx:1652
 TSpectrumFit.cxx:1653
 TSpectrumFit.cxx:1654
 TSpectrumFit.cxx:1655
 TSpectrumFit.cxx:1656
 TSpectrumFit.cxx:1657
 TSpectrumFit.cxx:1658
 TSpectrumFit.cxx:1659
 TSpectrumFit.cxx:1660
 TSpectrumFit.cxx:1661
 TSpectrumFit.cxx:1662
 TSpectrumFit.cxx:1663
 TSpectrumFit.cxx:1664
 TSpectrumFit.cxx:1665
 TSpectrumFit.cxx:1666
 TSpectrumFit.cxx:1667
 TSpectrumFit.cxx:1668
 TSpectrumFit.cxx:1669
 TSpectrumFit.cxx:1670
 TSpectrumFit.cxx:1671
 TSpectrumFit.cxx:1672
 TSpectrumFit.cxx:1673
 TSpectrumFit.cxx:1674
 TSpectrumFit.cxx:1675
 TSpectrumFit.cxx:1676
 TSpectrumFit.cxx:1677
 TSpectrumFit.cxx:1678
 TSpectrumFit.cxx:1679
 TSpectrumFit.cxx:1680
 TSpectrumFit.cxx:1681
 TSpectrumFit.cxx:1682
 TSpectrumFit.cxx:1683
 TSpectrumFit.cxx:1684
 TSpectrumFit.cxx:1685
 TSpectrumFit.cxx:1686
 TSpectrumFit.cxx:1687
 TSpectrumFit.cxx:1688
 TSpectrumFit.cxx:1689
 TSpectrumFit.cxx:1690
 TSpectrumFit.cxx:1691
 TSpectrumFit.cxx:1692
 TSpectrumFit.cxx:1693
 TSpectrumFit.cxx:1694
 TSpectrumFit.cxx:1695
 TSpectrumFit.cxx:1696
 TSpectrumFit.cxx:1697
 TSpectrumFit.cxx:1698
 TSpectrumFit.cxx:1699
 TSpectrumFit.cxx:1700
 TSpectrumFit.cxx:1701
 TSpectrumFit.cxx:1702
 TSpectrumFit.cxx:1703
 TSpectrumFit.cxx:1704
 TSpectrumFit.cxx:1705
 TSpectrumFit.cxx:1706
 TSpectrumFit.cxx:1707
 TSpectrumFit.cxx:1708
 TSpectrumFit.cxx:1709
 TSpectrumFit.cxx:1710
 TSpectrumFit.cxx:1711
 TSpectrumFit.cxx:1712
 TSpectrumFit.cxx:1713
 TSpectrumFit.cxx:1714
 TSpectrumFit.cxx:1715
 TSpectrumFit.cxx:1716
 TSpectrumFit.cxx:1717
 TSpectrumFit.cxx:1718
 TSpectrumFit.cxx:1719
 TSpectrumFit.cxx:1720
 TSpectrumFit.cxx:1721
 TSpectrumFit.cxx:1722
 TSpectrumFit.cxx:1723
 TSpectrumFit.cxx:1724
 TSpectrumFit.cxx:1725
 TSpectrumFit.cxx:1726
 TSpectrumFit.cxx:1727
 TSpectrumFit.cxx:1728
 TSpectrumFit.cxx:1729
 TSpectrumFit.cxx:1730
 TSpectrumFit.cxx:1731
 TSpectrumFit.cxx:1732
 TSpectrumFit.cxx:1733
 TSpectrumFit.cxx:1734
 TSpectrumFit.cxx:1735
 TSpectrumFit.cxx:1736
 TSpectrumFit.cxx:1737
 TSpectrumFit.cxx:1738
 TSpectrumFit.cxx:1739
 TSpectrumFit.cxx:1740
 TSpectrumFit.cxx:1741
 TSpectrumFit.cxx:1742
 TSpectrumFit.cxx:1743
 TSpectrumFit.cxx:1744
 TSpectrumFit.cxx:1745
 TSpectrumFit.cxx:1746
 TSpectrumFit.cxx:1747
 TSpectrumFit.cxx:1748
 TSpectrumFit.cxx:1749
 TSpectrumFit.cxx:1750
 TSpectrumFit.cxx:1751
 TSpectrumFit.cxx:1752
 TSpectrumFit.cxx:1753
 TSpectrumFit.cxx:1754
 TSpectrumFit.cxx:1755
 TSpectrumFit.cxx:1756
 TSpectrumFit.cxx:1757
 TSpectrumFit.cxx:1758
 TSpectrumFit.cxx:1759
 TSpectrumFit.cxx:1760
 TSpectrumFit.cxx:1761
 TSpectrumFit.cxx:1762
 TSpectrumFit.cxx:1763
 TSpectrumFit.cxx:1764
 TSpectrumFit.cxx:1765
 TSpectrumFit.cxx:1766
 TSpectrumFit.cxx:1767
 TSpectrumFit.cxx:1768
 TSpectrumFit.cxx:1769
 TSpectrumFit.cxx:1770
 TSpectrumFit.cxx:1771
 TSpectrumFit.cxx:1772
 TSpectrumFit.cxx:1773
 TSpectrumFit.cxx:1774
 TSpectrumFit.cxx:1775
 TSpectrumFit.cxx:1776
 TSpectrumFit.cxx:1777
 TSpectrumFit.cxx:1778
 TSpectrumFit.cxx:1779
 TSpectrumFit.cxx:1780
 TSpectrumFit.cxx:1781
 TSpectrumFit.cxx:1782
 TSpectrumFit.cxx:1783
 TSpectrumFit.cxx:1784
 TSpectrumFit.cxx:1785
 TSpectrumFit.cxx:1786
 TSpectrumFit.cxx:1787
 TSpectrumFit.cxx:1788
 TSpectrumFit.cxx:1789
 TSpectrumFit.cxx:1790
 TSpectrumFit.cxx:1791
 TSpectrumFit.cxx:1792
 TSpectrumFit.cxx:1793
 TSpectrumFit.cxx:1794
 TSpectrumFit.cxx:1795
 TSpectrumFit.cxx:1796
 TSpectrumFit.cxx:1797
 TSpectrumFit.cxx:1798
 TSpectrumFit.cxx:1799
 TSpectrumFit.cxx:1800
 TSpectrumFit.cxx:1801
 TSpectrumFit.cxx:1802
 TSpectrumFit.cxx:1803
 TSpectrumFit.cxx:1804
 TSpectrumFit.cxx:1805
 TSpectrumFit.cxx:1806
 TSpectrumFit.cxx:1807
 TSpectrumFit.cxx:1808
 TSpectrumFit.cxx:1809
 TSpectrumFit.cxx:1810
 TSpectrumFit.cxx:1811
 TSpectrumFit.cxx:1812
 TSpectrumFit.cxx:1813
 TSpectrumFit.cxx:1814
 TSpectrumFit.cxx:1815
 TSpectrumFit.cxx:1816
 TSpectrumFit.cxx:1817
 TSpectrumFit.cxx:1818
 TSpectrumFit.cxx:1819
 TSpectrumFit.cxx:1820
 TSpectrumFit.cxx:1821
 TSpectrumFit.cxx:1822
 TSpectrumFit.cxx:1823
 TSpectrumFit.cxx:1824
 TSpectrumFit.cxx:1825
 TSpectrumFit.cxx:1826
 TSpectrumFit.cxx:1827
 TSpectrumFit.cxx:1828
 TSpectrumFit.cxx:1829
 TSpectrumFit.cxx:1830
 TSpectrumFit.cxx:1831
 TSpectrumFit.cxx:1832
 TSpectrumFit.cxx:1833
 TSpectrumFit.cxx:1834
 TSpectrumFit.cxx:1835
 TSpectrumFit.cxx:1836
 TSpectrumFit.cxx:1837
 TSpectrumFit.cxx:1838
 TSpectrumFit.cxx:1839
 TSpectrumFit.cxx:1840
 TSpectrumFit.cxx:1841
 TSpectrumFit.cxx:1842
 TSpectrumFit.cxx:1843
 TSpectrumFit.cxx:1844
 TSpectrumFit.cxx:1845
 TSpectrumFit.cxx:1846
 TSpectrumFit.cxx:1847
 TSpectrumFit.cxx:1848
 TSpectrumFit.cxx:1849
 TSpectrumFit.cxx:1850
 TSpectrumFit.cxx:1851
 TSpectrumFit.cxx:1852
 TSpectrumFit.cxx:1853
 TSpectrumFit.cxx:1854
 TSpectrumFit.cxx:1855
 TSpectrumFit.cxx:1856
 TSpectrumFit.cxx:1857
 TSpectrumFit.cxx:1858
 TSpectrumFit.cxx:1859
 TSpectrumFit.cxx:1860
 TSpectrumFit.cxx:1861
 TSpectrumFit.cxx:1862
 TSpectrumFit.cxx:1863
 TSpectrumFit.cxx:1864
 TSpectrumFit.cxx:1865
 TSpectrumFit.cxx:1866
 TSpectrumFit.cxx:1867
 TSpectrumFit.cxx:1868
 TSpectrumFit.cxx:1869
 TSpectrumFit.cxx:1870
 TSpectrumFit.cxx:1871
 TSpectrumFit.cxx:1872
 TSpectrumFit.cxx:1873
 TSpectrumFit.cxx:1874
 TSpectrumFit.cxx:1875
 TSpectrumFit.cxx:1876
 TSpectrumFit.cxx:1877
 TSpectrumFit.cxx:1878
 TSpectrumFit.cxx:1879
 TSpectrumFit.cxx:1880
 TSpectrumFit.cxx:1881
 TSpectrumFit.cxx:1882
 TSpectrumFit.cxx:1883
 TSpectrumFit.cxx:1884
 TSpectrumFit.cxx:1885
 TSpectrumFit.cxx:1886
 TSpectrumFit.cxx:1887
 TSpectrumFit.cxx:1888
 TSpectrumFit.cxx:1889
 TSpectrumFit.cxx:1890
 TSpectrumFit.cxx:1891
 TSpectrumFit.cxx:1892
 TSpectrumFit.cxx:1893
 TSpectrumFit.cxx:1894
 TSpectrumFit.cxx:1895
 TSpectrumFit.cxx:1896
 TSpectrumFit.cxx:1897
 TSpectrumFit.cxx:1898
 TSpectrumFit.cxx:1899
 TSpectrumFit.cxx:1900
 TSpectrumFit.cxx:1901
 TSpectrumFit.cxx:1902
 TSpectrumFit.cxx:1903
 TSpectrumFit.cxx:1904
 TSpectrumFit.cxx:1905
 TSpectrumFit.cxx:1906
 TSpectrumFit.cxx:1907
 TSpectrumFit.cxx:1908
 TSpectrumFit.cxx:1909
 TSpectrumFit.cxx:1910
 TSpectrumFit.cxx:1911
 TSpectrumFit.cxx:1912
 TSpectrumFit.cxx:1913
 TSpectrumFit.cxx:1914
 TSpectrumFit.cxx:1915
 TSpectrumFit.cxx:1916
 TSpectrumFit.cxx:1917
 TSpectrumFit.cxx:1918
 TSpectrumFit.cxx:1919
 TSpectrumFit.cxx:1920
 TSpectrumFit.cxx:1921
 TSpectrumFit.cxx:1922
 TSpectrumFit.cxx:1923
 TSpectrumFit.cxx:1924
 TSpectrumFit.cxx:1925
 TSpectrumFit.cxx:1926
 TSpectrumFit.cxx:1927
 TSpectrumFit.cxx:1928
 TSpectrumFit.cxx:1929
 TSpectrumFit.cxx:1930
 TSpectrumFit.cxx:1931
 TSpectrumFit.cxx:1932
 TSpectrumFit.cxx:1933
 TSpectrumFit.cxx:1934
 TSpectrumFit.cxx:1935
 TSpectrumFit.cxx:1936
 TSpectrumFit.cxx:1937
 TSpectrumFit.cxx:1938
 TSpectrumFit.cxx:1939
 TSpectrumFit.cxx:1940
 TSpectrumFit.cxx:1941
 TSpectrumFit.cxx:1942
 TSpectrumFit.cxx:1943
 TSpectrumFit.cxx:1944
 TSpectrumFit.cxx:1945
 TSpectrumFit.cxx:1946
 TSpectrumFit.cxx:1947
 TSpectrumFit.cxx:1948
 TSpectrumFit.cxx:1949
 TSpectrumFit.cxx:1950
 TSpectrumFit.cxx:1951
 TSpectrumFit.cxx:1952
 TSpectrumFit.cxx:1953
 TSpectrumFit.cxx:1954
 TSpectrumFit.cxx:1955
 TSpectrumFit.cxx:1956
 TSpectrumFit.cxx:1957
 TSpectrumFit.cxx:1958
 TSpectrumFit.cxx:1959
 TSpectrumFit.cxx:1960
 TSpectrumFit.cxx:1961
 TSpectrumFit.cxx:1962
 TSpectrumFit.cxx:1963
 TSpectrumFit.cxx:1964
 TSpectrumFit.cxx:1965
 TSpectrumFit.cxx:1966
 TSpectrumFit.cxx:1967
 TSpectrumFit.cxx:1968
 TSpectrumFit.cxx:1969
 TSpectrumFit.cxx:1970
 TSpectrumFit.cxx:1971
 TSpectrumFit.cxx:1972
 TSpectrumFit.cxx:1973
 TSpectrumFit.cxx:1974
 TSpectrumFit.cxx:1975
 TSpectrumFit.cxx:1976
 TSpectrumFit.cxx:1977
 TSpectrumFit.cxx:1978
 TSpectrumFit.cxx:1979
 TSpectrumFit.cxx:1980
 TSpectrumFit.cxx:1981
 TSpectrumFit.cxx:1982
 TSpectrumFit.cxx:1983
 TSpectrumFit.cxx:1984
 TSpectrumFit.cxx:1985
 TSpectrumFit.cxx:1986
 TSpectrumFit.cxx:1987
 TSpectrumFit.cxx:1988
 TSpectrumFit.cxx:1989
 TSpectrumFit.cxx:1990
 TSpectrumFit.cxx:1991
 TSpectrumFit.cxx:1992
 TSpectrumFit.cxx:1993
 TSpectrumFit.cxx:1994
 TSpectrumFit.cxx:1995
 TSpectrumFit.cxx:1996
 TSpectrumFit.cxx:1997
 TSpectrumFit.cxx:1998
 TSpectrumFit.cxx:1999
 TSpectrumFit.cxx:2000
 TSpectrumFit.cxx:2001
 TSpectrumFit.cxx:2002
 TSpectrumFit.cxx:2003
 TSpectrumFit.cxx:2004
 TSpectrumFit.cxx:2005
 TSpectrumFit.cxx:2006
 TSpectrumFit.cxx:2007
 TSpectrumFit.cxx:2008
 TSpectrumFit.cxx:2009
 TSpectrumFit.cxx:2010
 TSpectrumFit.cxx:2011
 TSpectrumFit.cxx:2012
 TSpectrumFit.cxx:2013
 TSpectrumFit.cxx:2014
 TSpectrumFit.cxx:2015
 TSpectrumFit.cxx:2016
 TSpectrumFit.cxx:2017
 TSpectrumFit.cxx:2018
 TSpectrumFit.cxx:2019
 TSpectrumFit.cxx:2020
 TSpectrumFit.cxx:2021
 TSpectrumFit.cxx:2022
 TSpectrumFit.cxx:2023
 TSpectrumFit.cxx:2024
 TSpectrumFit.cxx:2025
 TSpectrumFit.cxx:2026
 TSpectrumFit.cxx:2027
 TSpectrumFit.cxx:2028
 TSpectrumFit.cxx:2029
 TSpectrumFit.cxx:2030
 TSpectrumFit.cxx:2031
 TSpectrumFit.cxx:2032
 TSpectrumFit.cxx:2033
 TSpectrumFit.cxx:2034
 TSpectrumFit.cxx:2035
 TSpectrumFit.cxx:2036
 TSpectrumFit.cxx:2037
 TSpectrumFit.cxx:2038
 TSpectrumFit.cxx:2039
 TSpectrumFit.cxx:2040
 TSpectrumFit.cxx:2041
 TSpectrumFit.cxx:2042
 TSpectrumFit.cxx:2043
 TSpectrumFit.cxx:2044
 TSpectrumFit.cxx:2045
 TSpectrumFit.cxx:2046
 TSpectrumFit.cxx:2047
 TSpectrumFit.cxx:2048
 TSpectrumFit.cxx:2049
 TSpectrumFit.cxx:2050
 TSpectrumFit.cxx:2051
 TSpectrumFit.cxx:2052
 TSpectrumFit.cxx:2053
 TSpectrumFit.cxx:2054
 TSpectrumFit.cxx:2055
 TSpectrumFit.cxx:2056
 TSpectrumFit.cxx:2057
 TSpectrumFit.cxx:2058
 TSpectrumFit.cxx:2059
 TSpectrumFit.cxx:2060
 TSpectrumFit.cxx:2061
 TSpectrumFit.cxx:2062
 TSpectrumFit.cxx:2063
 TSpectrumFit.cxx:2064
 TSpectrumFit.cxx:2065
 TSpectrumFit.cxx:2066
 TSpectrumFit.cxx:2067
 TSpectrumFit.cxx:2068
 TSpectrumFit.cxx:2069
 TSpectrumFit.cxx:2070
 TSpectrumFit.cxx:2071
 TSpectrumFit.cxx:2072
 TSpectrumFit.cxx:2073
 TSpectrumFit.cxx:2074
 TSpectrumFit.cxx:2075
 TSpectrumFit.cxx:2076
 TSpectrumFit.cxx:2077
 TSpectrumFit.cxx:2078
 TSpectrumFit.cxx:2079
 TSpectrumFit.cxx:2080
 TSpectrumFit.cxx:2081
 TSpectrumFit.cxx:2082
 TSpectrumFit.cxx:2083
 TSpectrumFit.cxx:2084
 TSpectrumFit.cxx:2085
 TSpectrumFit.cxx:2086
 TSpectrumFit.cxx:2087
 TSpectrumFit.cxx:2088
 TSpectrumFit.cxx:2089
 TSpectrumFit.cxx:2090
 TSpectrumFit.cxx:2091
 TSpectrumFit.cxx:2092
 TSpectrumFit.cxx:2093
 TSpectrumFit.cxx:2094
 TSpectrumFit.cxx:2095
 TSpectrumFit.cxx:2096
 TSpectrumFit.cxx:2097
 TSpectrumFit.cxx:2098
 TSpectrumFit.cxx:2099
 TSpectrumFit.cxx:2100
 TSpectrumFit.cxx:2101
 TSpectrumFit.cxx:2102
 TSpectrumFit.cxx:2103
 TSpectrumFit.cxx:2104
 TSpectrumFit.cxx:2105
 TSpectrumFit.cxx:2106
 TSpectrumFit.cxx:2107
 TSpectrumFit.cxx:2108
 TSpectrumFit.cxx:2109
 TSpectrumFit.cxx:2110
 TSpectrumFit.cxx:2111
 TSpectrumFit.cxx:2112
 TSpectrumFit.cxx:2113
 TSpectrumFit.cxx:2114
 TSpectrumFit.cxx:2115
 TSpectrumFit.cxx:2116
 TSpectrumFit.cxx:2117
 TSpectrumFit.cxx:2118
 TSpectrumFit.cxx:2119
 TSpectrumFit.cxx:2120
 TSpectrumFit.cxx:2121
 TSpectrumFit.cxx:2122
 TSpectrumFit.cxx:2123
 TSpectrumFit.cxx:2124
 TSpectrumFit.cxx:2125
 TSpectrumFit.cxx:2126
 TSpectrumFit.cxx:2127
 TSpectrumFit.cxx:2128
 TSpectrumFit.cxx:2129
 TSpectrumFit.cxx:2130
 TSpectrumFit.cxx:2131
 TSpectrumFit.cxx:2132
 TSpectrumFit.cxx:2133
 TSpectrumFit.cxx:2134
 TSpectrumFit.cxx:2135
 TSpectrumFit.cxx:2136
 TSpectrumFit.cxx:2137
 TSpectrumFit.cxx:2138
 TSpectrumFit.cxx:2139
 TSpectrumFit.cxx:2140
 TSpectrumFit.cxx:2141
 TSpectrumFit.cxx:2142
 TSpectrumFit.cxx:2143
 TSpectrumFit.cxx:2144
 TSpectrumFit.cxx:2145
 TSpectrumFit.cxx:2146
 TSpectrumFit.cxx:2147
 TSpectrumFit.cxx:2148
 TSpectrumFit.cxx:2149
 TSpectrumFit.cxx:2150
 TSpectrumFit.cxx:2151
 TSpectrumFit.cxx:2152
 TSpectrumFit.cxx:2153
 TSpectrumFit.cxx:2154
 TSpectrumFit.cxx:2155
 TSpectrumFit.cxx:2156
 TSpectrumFit.cxx:2157
 TSpectrumFit.cxx:2158
 TSpectrumFit.cxx:2159
 TSpectrumFit.cxx:2160
 TSpectrumFit.cxx:2161
 TSpectrumFit.cxx:2162
 TSpectrumFit.cxx:2163
 TSpectrumFit.cxx:2164
 TSpectrumFit.cxx:2165
 TSpectrumFit.cxx:2166
 TSpectrumFit.cxx:2167
 TSpectrumFit.cxx:2168
 TSpectrumFit.cxx:2169
 TSpectrumFit.cxx:2170
 TSpectrumFit.cxx:2171
 TSpectrumFit.cxx:2172
 TSpectrumFit.cxx:2173
 TSpectrumFit.cxx:2174
 TSpectrumFit.cxx:2175
 TSpectrumFit.cxx:2176
 TSpectrumFit.cxx:2177
 TSpectrumFit.cxx:2178
 TSpectrumFit.cxx:2179
 TSpectrumFit.cxx:2180
 TSpectrumFit.cxx:2181
 TSpectrumFit.cxx:2182
 TSpectrumFit.cxx:2183
 TSpectrumFit.cxx:2184
 TSpectrumFit.cxx:2185
 TSpectrumFit.cxx:2186
 TSpectrumFit.cxx:2187
 TSpectrumFit.cxx:2188
 TSpectrumFit.cxx:2189
 TSpectrumFit.cxx:2190
 TSpectrumFit.cxx:2191
 TSpectrumFit.cxx:2192
 TSpectrumFit.cxx:2193
 TSpectrumFit.cxx:2194
 TSpectrumFit.cxx:2195
 TSpectrumFit.cxx:2196
 TSpectrumFit.cxx:2197
 TSpectrumFit.cxx:2198
 TSpectrumFit.cxx:2199
 TSpectrumFit.cxx:2200
 TSpectrumFit.cxx:2201
 TSpectrumFit.cxx:2202
 TSpectrumFit.cxx:2203
 TSpectrumFit.cxx:2204
 TSpectrumFit.cxx:2205
 TSpectrumFit.cxx:2206
 TSpectrumFit.cxx:2207
 TSpectrumFit.cxx:2208
 TSpectrumFit.cxx:2209
 TSpectrumFit.cxx:2210
 TSpectrumFit.cxx:2211
 TSpectrumFit.cxx:2212
 TSpectrumFit.cxx:2213
 TSpectrumFit.cxx:2214
 TSpectrumFit.cxx:2215
 TSpectrumFit.cxx:2216
 TSpectrumFit.cxx:2217
 TSpectrumFit.cxx:2218
 TSpectrumFit.cxx:2219
 TSpectrumFit.cxx:2220
 TSpectrumFit.cxx:2221
 TSpectrumFit.cxx:2222
 TSpectrumFit.cxx:2223
 TSpectrumFit.cxx:2224
 TSpectrumFit.cxx:2225
 TSpectrumFit.cxx:2226
 TSpectrumFit.cxx:2227
 TSpectrumFit.cxx:2228
 TSpectrumFit.cxx:2229
 TSpectrumFit.cxx:2230
 TSpectrumFit.cxx:2231
 TSpectrumFit.cxx:2232
 TSpectrumFit.cxx:2233
 TSpectrumFit.cxx:2234
 TSpectrumFit.cxx:2235
 TSpectrumFit.cxx:2236
 TSpectrumFit.cxx:2237
 TSpectrumFit.cxx:2238
 TSpectrumFit.cxx:2239
 TSpectrumFit.cxx:2240
 TSpectrumFit.cxx:2241
 TSpectrumFit.cxx:2242
 TSpectrumFit.cxx:2243
 TSpectrumFit.cxx:2244
 TSpectrumFit.cxx:2245
 TSpectrumFit.cxx:2246
 TSpectrumFit.cxx:2247
 TSpectrumFit.cxx:2248
 TSpectrumFit.cxx:2249
 TSpectrumFit.cxx:2250
 TSpectrumFit.cxx:2251
 TSpectrumFit.cxx:2252
 TSpectrumFit.cxx:2253
 TSpectrumFit.cxx:2254
 TSpectrumFit.cxx:2255
 TSpectrumFit.cxx:2256
 TSpectrumFit.cxx:2257
 TSpectrumFit.cxx:2258
 TSpectrumFit.cxx:2259
 TSpectrumFit.cxx:2260
 TSpectrumFit.cxx:2261
 TSpectrumFit.cxx:2262
 TSpectrumFit.cxx:2263
 TSpectrumFit.cxx:2264
 TSpectrumFit.cxx:2265
 TSpectrumFit.cxx:2266
 TSpectrumFit.cxx:2267
 TSpectrumFit.cxx:2268
 TSpectrumFit.cxx:2269
 TSpectrumFit.cxx:2270
 TSpectrumFit.cxx:2271
 TSpectrumFit.cxx:2272
 TSpectrumFit.cxx:2273
 TSpectrumFit.cxx:2274
 TSpectrumFit.cxx:2275
 TSpectrumFit.cxx:2276
 TSpectrumFit.cxx:2277
 TSpectrumFit.cxx:2278
 TSpectrumFit.cxx:2279
 TSpectrumFit.cxx:2280
 TSpectrumFit.cxx:2281
 TSpectrumFit.cxx:2282
 TSpectrumFit.cxx:2283
 TSpectrumFit.cxx:2284
 TSpectrumFit.cxx:2285
 TSpectrumFit.cxx:2286
 TSpectrumFit.cxx:2287
 TSpectrumFit.cxx:2288
 TSpectrumFit.cxx:2289
 TSpectrumFit.cxx:2290
 TSpectrumFit.cxx:2291
 TSpectrumFit.cxx:2292
 TSpectrumFit.cxx:2293
 TSpectrumFit.cxx:2294
 TSpectrumFit.cxx:2295
 TSpectrumFit.cxx:2296
 TSpectrumFit.cxx:2297
 TSpectrumFit.cxx:2298
 TSpectrumFit.cxx:2299
 TSpectrumFit.cxx:2300
 TSpectrumFit.cxx:2301
 TSpectrumFit.cxx:2302
 TSpectrumFit.cxx:2303
 TSpectrumFit.cxx:2304
 TSpectrumFit.cxx:2305
 TSpectrumFit.cxx:2306
 TSpectrumFit.cxx:2307
 TSpectrumFit.cxx:2308
 TSpectrumFit.cxx:2309
 TSpectrumFit.cxx:2310
 TSpectrumFit.cxx:2311
 TSpectrumFit.cxx:2312
 TSpectrumFit.cxx:2313
 TSpectrumFit.cxx:2314
 TSpectrumFit.cxx:2315
 TSpectrumFit.cxx:2316
 TSpectrumFit.cxx:2317
 TSpectrumFit.cxx:2318
 TSpectrumFit.cxx:2319
 TSpectrumFit.cxx:2320
 TSpectrumFit.cxx:2321
 TSpectrumFit.cxx:2322
 TSpectrumFit.cxx:2323
 TSpectrumFit.cxx:2324
 TSpectrumFit.cxx:2325
 TSpectrumFit.cxx:2326
 TSpectrumFit.cxx:2327
 TSpectrumFit.cxx:2328
 TSpectrumFit.cxx:2329
 TSpectrumFit.cxx:2330
 TSpectrumFit.cxx:2331
 TSpectrumFit.cxx:2332
 TSpectrumFit.cxx:2333
 TSpectrumFit.cxx:2334
 TSpectrumFit.cxx:2335
 TSpectrumFit.cxx:2336
 TSpectrumFit.cxx:2337
 TSpectrumFit.cxx:2338
 TSpectrumFit.cxx:2339
 TSpectrumFit.cxx:2340
 TSpectrumFit.cxx:2341
 TSpectrumFit.cxx:2342
 TSpectrumFit.cxx:2343
 TSpectrumFit.cxx:2344
 TSpectrumFit.cxx:2345
 TSpectrumFit.cxx:2346
 TSpectrumFit.cxx:2347
 TSpectrumFit.cxx:2348
 TSpectrumFit.cxx:2349
 TSpectrumFit.cxx:2350
 TSpectrumFit.cxx:2351
 TSpectrumFit.cxx:2352
 TSpectrumFit.cxx:2353
 TSpectrumFit.cxx:2354
 TSpectrumFit.cxx:2355
 TSpectrumFit.cxx:2356
 TSpectrumFit.cxx:2357
 TSpectrumFit.cxx:2358
 TSpectrumFit.cxx:2359
 TSpectrumFit.cxx:2360
 TSpectrumFit.cxx:2361
 TSpectrumFit.cxx:2362
 TSpectrumFit.cxx:2363
 TSpectrumFit.cxx:2364
 TSpectrumFit.cxx:2365
 TSpectrumFit.cxx:2366
 TSpectrumFit.cxx:2367
 TSpectrumFit.cxx:2368
 TSpectrumFit.cxx:2369
 TSpectrumFit.cxx:2370
 TSpectrumFit.cxx:2371
 TSpectrumFit.cxx:2372
 TSpectrumFit.cxx:2373
 TSpectrumFit.cxx:2374
 TSpectrumFit.cxx:2375
 TSpectrumFit.cxx:2376
 TSpectrumFit.cxx:2377
 TSpectrumFit.cxx:2378
 TSpectrumFit.cxx:2379
 TSpectrumFit.cxx:2380
 TSpectrumFit.cxx:2381
 TSpectrumFit.cxx:2382
 TSpectrumFit.cxx:2383
 TSpectrumFit.cxx:2384
 TSpectrumFit.cxx:2385
 TSpectrumFit.cxx:2386
 TSpectrumFit.cxx:2387
 TSpectrumFit.cxx:2388
 TSpectrumFit.cxx:2389
 TSpectrumFit.cxx:2390
 TSpectrumFit.cxx:2391
 TSpectrumFit.cxx:2392
 TSpectrumFit.cxx:2393
 TSpectrumFit.cxx:2394
 TSpectrumFit.cxx:2395
 TSpectrumFit.cxx:2396
 TSpectrumFit.cxx:2397
 TSpectrumFit.cxx:2398
 TSpectrumFit.cxx:2399
 TSpectrumFit.cxx:2400
 TSpectrumFit.cxx:2401
 TSpectrumFit.cxx:2402
 TSpectrumFit.cxx:2403
 TSpectrumFit.cxx:2404
 TSpectrumFit.cxx:2405
 TSpectrumFit.cxx:2406
 TSpectrumFit.cxx:2407
 TSpectrumFit.cxx:2408
 TSpectrumFit.cxx:2409
 TSpectrumFit.cxx:2410
 TSpectrumFit.cxx:2411
 TSpectrumFit.cxx:2412
 TSpectrumFit.cxx:2413
 TSpectrumFit.cxx:2414
 TSpectrumFit.cxx:2415
 TSpectrumFit.cxx:2416
 TSpectrumFit.cxx:2417
 TSpectrumFit.cxx:2418
 TSpectrumFit.cxx:2419
 TSpectrumFit.cxx:2420
 TSpectrumFit.cxx:2421
 TSpectrumFit.cxx:2422
 TSpectrumFit.cxx:2423
 TSpectrumFit.cxx:2424
 TSpectrumFit.cxx:2425
 TSpectrumFit.cxx:2426
 TSpectrumFit.cxx:2427
 TSpectrumFit.cxx:2428
 TSpectrumFit.cxx:2429
 TSpectrumFit.cxx:2430
 TSpectrumFit.cxx:2431
 TSpectrumFit.cxx:2432
 TSpectrumFit.cxx:2433
 TSpectrumFit.cxx:2434
 TSpectrumFit.cxx:2435
 TSpectrumFit.cxx:2436
 TSpectrumFit.cxx:2437
 TSpectrumFit.cxx:2438
 TSpectrumFit.cxx:2439
 TSpectrumFit.cxx:2440
 TSpectrumFit.cxx:2441
 TSpectrumFit.cxx:2442
 TSpectrumFit.cxx:2443
 TSpectrumFit.cxx:2444
 TSpectrumFit.cxx:2445
 TSpectrumFit.cxx:2446
 TSpectrumFit.cxx:2447
 TSpectrumFit.cxx:2448
 TSpectrumFit.cxx:2449
 TSpectrumFit.cxx:2450
 TSpectrumFit.cxx:2451
 TSpectrumFit.cxx:2452
 TSpectrumFit.cxx:2453
 TSpectrumFit.cxx:2454
 TSpectrumFit.cxx:2455
 TSpectrumFit.cxx:2456
 TSpectrumFit.cxx:2457
 TSpectrumFit.cxx:2458
 TSpectrumFit.cxx:2459
 TSpectrumFit.cxx:2460
 TSpectrumFit.cxx:2461
 TSpectrumFit.cxx:2462
 TSpectrumFit.cxx:2463
 TSpectrumFit.cxx:2464
 TSpectrumFit.cxx:2465
 TSpectrumFit.cxx:2466
 TSpectrumFit.cxx:2467
 TSpectrumFit.cxx:2468
 TSpectrumFit.cxx:2469
 TSpectrumFit.cxx:2470
 TSpectrumFit.cxx:2471
 TSpectrumFit.cxx:2472
 TSpectrumFit.cxx:2473
 TSpectrumFit.cxx:2474
 TSpectrumFit.cxx:2475
 TSpectrumFit.cxx:2476
 TSpectrumFit.cxx:2477
 TSpectrumFit.cxx:2478
 TSpectrumFit.cxx:2479
 TSpectrumFit.cxx:2480
 TSpectrumFit.cxx:2481
 TSpectrumFit.cxx:2482
 TSpectrumFit.cxx:2483
 TSpectrumFit.cxx:2484
 TSpectrumFit.cxx:2485
 TSpectrumFit.cxx:2486
 TSpectrumFit.cxx:2487
 TSpectrumFit.cxx:2488
 TSpectrumFit.cxx:2489
 TSpectrumFit.cxx:2490
 TSpectrumFit.cxx:2491
 TSpectrumFit.cxx:2492
 TSpectrumFit.cxx:2493
 TSpectrumFit.cxx:2494
 TSpectrumFit.cxx:2495
 TSpectrumFit.cxx:2496
 TSpectrumFit.cxx:2497
 TSpectrumFit.cxx:2498
 TSpectrumFit.cxx:2499
 TSpectrumFit.cxx:2500
 TSpectrumFit.cxx:2501
 TSpectrumFit.cxx:2502
 TSpectrumFit.cxx:2503
 TSpectrumFit.cxx:2504
 TSpectrumFit.cxx:2505
 TSpectrumFit.cxx:2506
 TSpectrumFit.cxx:2507
 TSpectrumFit.cxx:2508
 TSpectrumFit.cxx:2509
 TSpectrumFit.cxx:2510
 TSpectrumFit.cxx:2511
 TSpectrumFit.cxx:2512
 TSpectrumFit.cxx:2513
 TSpectrumFit.cxx:2514
 TSpectrumFit.cxx:2515
 TSpectrumFit.cxx:2516
 TSpectrumFit.cxx:2517
 TSpectrumFit.cxx:2518
 TSpectrumFit.cxx:2519
 TSpectrumFit.cxx:2520
 TSpectrumFit.cxx:2521
 TSpectrumFit.cxx:2522
 TSpectrumFit.cxx:2523
 TSpectrumFit.cxx:2524
 TSpectrumFit.cxx:2525
 TSpectrumFit.cxx:2526
 TSpectrumFit.cxx:2527
 TSpectrumFit.cxx:2528
 TSpectrumFit.cxx:2529
 TSpectrumFit.cxx:2530
 TSpectrumFit.cxx:2531
 TSpectrumFit.cxx:2532
 TSpectrumFit.cxx:2533
 TSpectrumFit.cxx:2534
 TSpectrumFit.cxx:2535
 TSpectrumFit.cxx:2536
 TSpectrumFit.cxx:2537
 TSpectrumFit.cxx:2538
 TSpectrumFit.cxx:2539
 TSpectrumFit.cxx:2540
 TSpectrumFit.cxx:2541
 TSpectrumFit.cxx:2542
 TSpectrumFit.cxx:2543
 TSpectrumFit.cxx:2544
 TSpectrumFit.cxx:2545
 TSpectrumFit.cxx:2546
 TSpectrumFit.cxx:2547
 TSpectrumFit.cxx:2548
 TSpectrumFit.cxx:2549
 TSpectrumFit.cxx:2550
 TSpectrumFit.cxx:2551
 TSpectrumFit.cxx:2552
 TSpectrumFit.cxx:2553
 TSpectrumFit.cxx:2554
 TSpectrumFit.cxx:2555
 TSpectrumFit.cxx:2556
 TSpectrumFit.cxx:2557
 TSpectrumFit.cxx:2558
 TSpectrumFit.cxx:2559
 TSpectrumFit.cxx:2560
 TSpectrumFit.cxx:2561
 TSpectrumFit.cxx:2562
 TSpectrumFit.cxx:2563
 TSpectrumFit.cxx:2564
 TSpectrumFit.cxx:2565
 TSpectrumFit.cxx:2566
 TSpectrumFit.cxx:2567
 TSpectrumFit.cxx:2568
 TSpectrumFit.cxx:2569
 TSpectrumFit.cxx:2570
 TSpectrumFit.cxx:2571
 TSpectrumFit.cxx:2572
 TSpectrumFit.cxx:2573
 TSpectrumFit.cxx:2574
 TSpectrumFit.cxx:2575
 TSpectrumFit.cxx:2576
 TSpectrumFit.cxx:2577
 TSpectrumFit.cxx:2578
 TSpectrumFit.cxx:2579
 TSpectrumFit.cxx:2580
 TSpectrumFit.cxx:2581
 TSpectrumFit.cxx:2582
 TSpectrumFit.cxx:2583
 TSpectrumFit.cxx:2584
 TSpectrumFit.cxx:2585
 TSpectrumFit.cxx:2586
 TSpectrumFit.cxx:2587
 TSpectrumFit.cxx:2588
 TSpectrumFit.cxx:2589
 TSpectrumFit.cxx:2590
 TSpectrumFit.cxx:2591
 TSpectrumFit.cxx:2592
 TSpectrumFit.cxx:2593
 TSpectrumFit.cxx:2594
 TSpectrumFit.cxx:2595
 TSpectrumFit.cxx:2596
 TSpectrumFit.cxx:2597
 TSpectrumFit.cxx:2598
 TSpectrumFit.cxx:2599
 TSpectrumFit.cxx:2600
 TSpectrumFit.cxx:2601
 TSpectrumFit.cxx:2602
 TSpectrumFit.cxx:2603
 TSpectrumFit.cxx:2604
 TSpectrumFit.cxx:2605
 TSpectrumFit.cxx:2606
 TSpectrumFit.cxx:2607
 TSpectrumFit.cxx:2608
 TSpectrumFit.cxx:2609
 TSpectrumFit.cxx:2610
 TSpectrumFit.cxx:2611
 TSpectrumFit.cxx:2612
 TSpectrumFit.cxx:2613
 TSpectrumFit.cxx:2614
 TSpectrumFit.cxx:2615
 TSpectrumFit.cxx:2616
 TSpectrumFit.cxx:2617
 TSpectrumFit.cxx:2618
 TSpectrumFit.cxx:2619
 TSpectrumFit.cxx:2620
 TSpectrumFit.cxx:2621
 TSpectrumFit.cxx:2622
 TSpectrumFit.cxx:2623
 TSpectrumFit.cxx:2624
 TSpectrumFit.cxx:2625
 TSpectrumFit.cxx:2626
 TSpectrumFit.cxx:2627
 TSpectrumFit.cxx:2628
 TSpectrumFit.cxx:2629
 TSpectrumFit.cxx:2630
 TSpectrumFit.cxx:2631
 TSpectrumFit.cxx:2632
 TSpectrumFit.cxx:2633
 TSpectrumFit.cxx:2634
 TSpectrumFit.cxx:2635
 TSpectrumFit.cxx:2636
 TSpectrumFit.cxx:2637
 TSpectrumFit.cxx:2638
 TSpectrumFit.cxx:2639
 TSpectrumFit.cxx:2640
 TSpectrumFit.cxx:2641
 TSpectrumFit.cxx:2642
 TSpectrumFit.cxx:2643
 TSpectrumFit.cxx:2644
 TSpectrumFit.cxx:2645
 TSpectrumFit.cxx:2646
 TSpectrumFit.cxx:2647
 TSpectrumFit.cxx:2648
 TSpectrumFit.cxx:2649
 TSpectrumFit.cxx:2650
 TSpectrumFit.cxx:2651
 TSpectrumFit.cxx:2652
 TSpectrumFit.cxx:2653
 TSpectrumFit.cxx:2654
 TSpectrumFit.cxx:2655
 TSpectrumFit.cxx:2656
 TSpectrumFit.cxx:2657
 TSpectrumFit.cxx:2658
 TSpectrumFit.cxx:2659
 TSpectrumFit.cxx:2660
 TSpectrumFit.cxx:2661
 TSpectrumFit.cxx:2662
 TSpectrumFit.cxx:2663
 TSpectrumFit.cxx:2664
 TSpectrumFit.cxx:2665
 TSpectrumFit.cxx:2666
 TSpectrumFit.cxx:2667
 TSpectrumFit.cxx:2668
 TSpectrumFit.cxx:2669
 TSpectrumFit.cxx:2670
 TSpectrumFit.cxx:2671
 TSpectrumFit.cxx:2672
 TSpectrumFit.cxx:2673
 TSpectrumFit.cxx:2674
 TSpectrumFit.cxx:2675
 TSpectrumFit.cxx:2676
 TSpectrumFit.cxx:2677
 TSpectrumFit.cxx:2678
 TSpectrumFit.cxx:2679
 TSpectrumFit.cxx:2680
 TSpectrumFit.cxx:2681
 TSpectrumFit.cxx:2682
 TSpectrumFit.cxx:2683
 TSpectrumFit.cxx:2684
 TSpectrumFit.cxx:2685
 TSpectrumFit.cxx:2686
 TSpectrumFit.cxx:2687
 TSpectrumFit.cxx:2688
 TSpectrumFit.cxx:2689
 TSpectrumFit.cxx:2690
 TSpectrumFit.cxx:2691
 TSpectrumFit.cxx:2692
 TSpectrumFit.cxx:2693
 TSpectrumFit.cxx:2694
 TSpectrumFit.cxx:2695
 TSpectrumFit.cxx:2696
 TSpectrumFit.cxx:2697
 TSpectrumFit.cxx:2698
 TSpectrumFit.cxx:2699
 TSpectrumFit.cxx:2700
 TSpectrumFit.cxx:2701
 TSpectrumFit.cxx:2702
 TSpectrumFit.cxx:2703
 TSpectrumFit.cxx:2704
 TSpectrumFit.cxx:2705
 TSpectrumFit.cxx:2706
 TSpectrumFit.cxx:2707
 TSpectrumFit.cxx:2708
 TSpectrumFit.cxx:2709
 TSpectrumFit.cxx:2710
 TSpectrumFit.cxx:2711
 TSpectrumFit.cxx:2712
 TSpectrumFit.cxx:2713
 TSpectrumFit.cxx:2714
 TSpectrumFit.cxx:2715
 TSpectrumFit.cxx:2716
 TSpectrumFit.cxx:2717
 TSpectrumFit.cxx:2718
 TSpectrumFit.cxx:2719
 TSpectrumFit.cxx:2720
 TSpectrumFit.cxx:2721
 TSpectrumFit.cxx:2722
 TSpectrumFit.cxx:2723
 TSpectrumFit.cxx:2724
 TSpectrumFit.cxx:2725
 TSpectrumFit.cxx:2726
 TSpectrumFit.cxx:2727
 TSpectrumFit.cxx:2728
 TSpectrumFit.cxx:2729
 TSpectrumFit.cxx:2730
 TSpectrumFit.cxx:2731
 TSpectrumFit.cxx:2732
 TSpectrumFit.cxx:2733
 TSpectrumFit.cxx:2734
 TSpectrumFit.cxx:2735
 TSpectrumFit.cxx:2736
 TSpectrumFit.cxx:2737
 TSpectrumFit.cxx:2738
 TSpectrumFit.cxx:2739
 TSpectrumFit.cxx:2740
 TSpectrumFit.cxx:2741
 TSpectrumFit.cxx:2742
 TSpectrumFit.cxx:2743
 TSpectrumFit.cxx:2744
 TSpectrumFit.cxx:2745
 TSpectrumFit.cxx:2746
 TSpectrumFit.cxx:2747
 TSpectrumFit.cxx:2748
 TSpectrumFit.cxx:2749
 TSpectrumFit.cxx:2750
 TSpectrumFit.cxx:2751
 TSpectrumFit.cxx:2752
 TSpectrumFit.cxx:2753
 TSpectrumFit.cxx:2754
 TSpectrumFit.cxx:2755
 TSpectrumFit.cxx:2756
 TSpectrumFit.cxx:2757
 TSpectrumFit.cxx:2758
 TSpectrumFit.cxx:2759
 TSpectrumFit.cxx:2760
 TSpectrumFit.cxx:2761
 TSpectrumFit.cxx:2762
 TSpectrumFit.cxx:2763
 TSpectrumFit.cxx:2764
 TSpectrumFit.cxx:2765
 TSpectrumFit.cxx:2766
 TSpectrumFit.cxx:2767
 TSpectrumFit.cxx:2768
 TSpectrumFit.cxx:2769
 TSpectrumFit.cxx:2770
 TSpectrumFit.cxx:2771
 TSpectrumFit.cxx:2772
 TSpectrumFit.cxx:2773
 TSpectrumFit.cxx:2774
 TSpectrumFit.cxx:2775
 TSpectrumFit.cxx:2776
 TSpectrumFit.cxx:2777
 TSpectrumFit.cxx:2778
 TSpectrumFit.cxx:2779
 TSpectrumFit.cxx:2780
 TSpectrumFit.cxx:2781
 TSpectrumFit.cxx:2782
 TSpectrumFit.cxx:2783
 TSpectrumFit.cxx:2784
 TSpectrumFit.cxx:2785
 TSpectrumFit.cxx:2786
 TSpectrumFit.cxx:2787
 TSpectrumFit.cxx:2788
 TSpectrumFit.cxx:2789
 TSpectrumFit.cxx:2790
 TSpectrumFit.cxx:2791
 TSpectrumFit.cxx:2792
 TSpectrumFit.cxx:2793
 TSpectrumFit.cxx:2794
 TSpectrumFit.cxx:2795
 TSpectrumFit.cxx:2796
 TSpectrumFit.cxx:2797
 TSpectrumFit.cxx:2798
 TSpectrumFit.cxx:2799
 TSpectrumFit.cxx:2800
 TSpectrumFit.cxx:2801
 TSpectrumFit.cxx:2802
 TSpectrumFit.cxx:2803
 TSpectrumFit.cxx:2804
 TSpectrumFit.cxx:2805
 TSpectrumFit.cxx:2806
 TSpectrumFit.cxx:2807
 TSpectrumFit.cxx:2808
 TSpectrumFit.cxx:2809
 TSpectrumFit.cxx:2810
 TSpectrumFit.cxx:2811
 TSpectrumFit.cxx:2812
 TSpectrumFit.cxx:2813
 TSpectrumFit.cxx:2814
 TSpectrumFit.cxx:2815
 TSpectrumFit.cxx:2816
 TSpectrumFit.cxx:2817
 TSpectrumFit.cxx:2818
 TSpectrumFit.cxx:2819
 TSpectrumFit.cxx:2820
 TSpectrumFit.cxx:2821
 TSpectrumFit.cxx:2822
 TSpectrumFit.cxx:2823
 TSpectrumFit.cxx:2824
 TSpectrumFit.cxx:2825
 TSpectrumFit.cxx:2826
 TSpectrumFit.cxx:2827
 TSpectrumFit.cxx:2828
 TSpectrumFit.cxx:2829
 TSpectrumFit.cxx:2830
 TSpectrumFit.cxx:2831
 TSpectrumFit.cxx:2832
 TSpectrumFit.cxx:2833
 TSpectrumFit.cxx:2834
 TSpectrumFit.cxx:2835
 TSpectrumFit.cxx:2836
 TSpectrumFit.cxx:2837
 TSpectrumFit.cxx:2838
 TSpectrumFit.cxx:2839
 TSpectrumFit.cxx:2840
 TSpectrumFit.cxx:2841
 TSpectrumFit.cxx:2842
 TSpectrumFit.cxx:2843
 TSpectrumFit.cxx:2844
 TSpectrumFit.cxx:2845
 TSpectrumFit.cxx:2846
 TSpectrumFit.cxx:2847
 TSpectrumFit.cxx:2848
 TSpectrumFit.cxx:2849
 TSpectrumFit.cxx:2850
 TSpectrumFit.cxx:2851
 TSpectrumFit.cxx:2852
 TSpectrumFit.cxx:2853
 TSpectrumFit.cxx:2854
 TSpectrumFit.cxx:2855
 TSpectrumFit.cxx:2856
 TSpectrumFit.cxx:2857
 TSpectrumFit.cxx:2858
 TSpectrumFit.cxx:2859
 TSpectrumFit.cxx:2860
 TSpectrumFit.cxx:2861
 TSpectrumFit.cxx:2862
 TSpectrumFit.cxx:2863
 TSpectrumFit.cxx:2864
 TSpectrumFit.cxx:2865
 TSpectrumFit.cxx:2866
 TSpectrumFit.cxx:2867
 TSpectrumFit.cxx:2868
 TSpectrumFit.cxx:2869
 TSpectrumFit.cxx:2870
 TSpectrumFit.cxx:2871
 TSpectrumFit.cxx:2872
 TSpectrumFit.cxx:2873
 TSpectrumFit.cxx:2874
 TSpectrumFit.cxx:2875
 TSpectrumFit.cxx:2876
 TSpectrumFit.cxx:2877
 TSpectrumFit.cxx:2878
 TSpectrumFit.cxx:2879
 TSpectrumFit.cxx:2880
 TSpectrumFit.cxx:2881
 TSpectrumFit.cxx:2882
 TSpectrumFit.cxx:2883
 TSpectrumFit.cxx:2884
 TSpectrumFit.cxx:2885
 TSpectrumFit.cxx:2886
 TSpectrumFit.cxx:2887
 TSpectrumFit.cxx:2888
 TSpectrumFit.cxx:2889
 TSpectrumFit.cxx:2890
 TSpectrumFit.cxx:2891
 TSpectrumFit.cxx:2892
 TSpectrumFit.cxx:2893
 TSpectrumFit.cxx:2894
 TSpectrumFit.cxx:2895
 TSpectrumFit.cxx:2896
 TSpectrumFit.cxx:2897
 TSpectrumFit.cxx:2898
 TSpectrumFit.cxx:2899
 TSpectrumFit.cxx:2900
 TSpectrumFit.cxx:2901
 TSpectrumFit.cxx:2902
 TSpectrumFit.cxx:2903
 TSpectrumFit.cxx:2904
 TSpectrumFit.cxx:2905
 TSpectrumFit.cxx:2906
 TSpectrumFit.cxx:2907
 TSpectrumFit.cxx:2908
 TSpectrumFit.cxx:2909
 TSpectrumFit.cxx:2910
 TSpectrumFit.cxx:2911
 TSpectrumFit.cxx:2912
 TSpectrumFit.cxx:2913
 TSpectrumFit.cxx:2914
 TSpectrumFit.cxx:2915
 TSpectrumFit.cxx:2916
 TSpectrumFit.cxx:2917
 TSpectrumFit.cxx:2918
 TSpectrumFit.cxx:2919
 TSpectrumFit.cxx:2920
 TSpectrumFit.cxx:2921
 TSpectrumFit.cxx:2922
 TSpectrumFit.cxx:2923
 TSpectrumFit.cxx:2924
 TSpectrumFit.cxx:2925
 TSpectrumFit.cxx:2926
 TSpectrumFit.cxx:2927
 TSpectrumFit.cxx:2928
 TSpectrumFit.cxx:2929
 TSpectrumFit.cxx:2930
 TSpectrumFit.cxx:2931
 TSpectrumFit.cxx:2932
 TSpectrumFit.cxx:2933
 TSpectrumFit.cxx:2934
 TSpectrumFit.cxx:2935
 TSpectrumFit.cxx:2936
 TSpectrumFit.cxx:2937
 TSpectrumFit.cxx:2938
 TSpectrumFit.cxx:2939
 TSpectrumFit.cxx:2940
 TSpectrumFit.cxx:2941
 TSpectrumFit.cxx:2942
 TSpectrumFit.cxx:2943
 TSpectrumFit.cxx:2944
 TSpectrumFit.cxx:2945
 TSpectrumFit.cxx:2946
 TSpectrumFit.cxx:2947
 TSpectrumFit.cxx:2948
 TSpectrumFit.cxx:2949
 TSpectrumFit.cxx:2950
 TSpectrumFit.cxx:2951
 TSpectrumFit.cxx:2952
 TSpectrumFit.cxx:2953
 TSpectrumFit.cxx:2954
 TSpectrumFit.cxx:2955
 TSpectrumFit.cxx:2956
 TSpectrumFit.cxx:2957
 TSpectrumFit.cxx:2958
 TSpectrumFit.cxx:2959
 TSpectrumFit.cxx:2960
 TSpectrumFit.cxx:2961
 TSpectrumFit.cxx:2962
 TSpectrumFit.cxx:2963
 TSpectrumFit.cxx:2964
 TSpectrumFit.cxx:2965
 TSpectrumFit.cxx:2966
 TSpectrumFit.cxx:2967
 TSpectrumFit.cxx:2968
 TSpectrumFit.cxx:2969
 TSpectrumFit.cxx:2970
 TSpectrumFit.cxx:2971
 TSpectrumFit.cxx:2972
 TSpectrumFit.cxx:2973
 TSpectrumFit.cxx:2974
 TSpectrumFit.cxx:2975
 TSpectrumFit.cxx:2976
 TSpectrumFit.cxx:2977
 TSpectrumFit.cxx:2978
 TSpectrumFit.cxx:2979
 TSpectrumFit.cxx:2980
 TSpectrumFit.cxx:2981
 TSpectrumFit.cxx:2982
 TSpectrumFit.cxx:2983
 TSpectrumFit.cxx:2984
 TSpectrumFit.cxx:2985
 TSpectrumFit.cxx:2986
 TSpectrumFit.cxx:2987
 TSpectrumFit.cxx:2988
 TSpectrumFit.cxx:2989
 TSpectrumFit.cxx:2990
 TSpectrumFit.cxx:2991
 TSpectrumFit.cxx:2992
 TSpectrumFit.cxx:2993
 TSpectrumFit.cxx:2994
 TSpectrumFit.cxx:2995
 TSpectrumFit.cxx:2996
 TSpectrumFit.cxx:2997
 TSpectrumFit.cxx:2998
 TSpectrumFit.cxx:2999
 TSpectrumFit.cxx:3000
 TSpectrumFit.cxx:3001
 TSpectrumFit.cxx:3002
 TSpectrumFit.cxx:3003
 TSpectrumFit.cxx:3004
 TSpectrumFit.cxx:3005
 TSpectrumFit.cxx:3006
 TSpectrumFit.cxx:3007
 TSpectrumFit.cxx:3008
 TSpectrumFit.cxx:3009
 TSpectrumFit.cxx:3010
 TSpectrumFit.cxx:3011
 TSpectrumFit.cxx:3012
 TSpectrumFit.cxx:3013
 TSpectrumFit.cxx:3014
 TSpectrumFit.cxx:3015
 TSpectrumFit.cxx:3016
 TSpectrumFit.cxx:3017
 TSpectrumFit.cxx:3018
 TSpectrumFit.cxx:3019
 TSpectrumFit.cxx:3020
 TSpectrumFit.cxx:3021
 TSpectrumFit.cxx:3022
 TSpectrumFit.cxx:3023
 TSpectrumFit.cxx:3024
 TSpectrumFit.cxx:3025
 TSpectrumFit.cxx:3026
 TSpectrumFit.cxx:3027
 TSpectrumFit.cxx:3028
 TSpectrumFit.cxx:3029
 TSpectrumFit.cxx:3030
 TSpectrumFit.cxx:3031
 TSpectrumFit.cxx:3032
 TSpectrumFit.cxx:3033
 TSpectrumFit.cxx:3034
 TSpectrumFit.cxx:3035
 TSpectrumFit.cxx:3036
 TSpectrumFit.cxx:3037
 TSpectrumFit.cxx:3038
 TSpectrumFit.cxx:3039
 TSpectrumFit.cxx:3040
 TSpectrumFit.cxx:3041
 TSpectrumFit.cxx:3042
 TSpectrumFit.cxx:3043
 TSpectrumFit.cxx:3044
 TSpectrumFit.cxx:3045
 TSpectrumFit.cxx:3046
 TSpectrumFit.cxx:3047
 TSpectrumFit.cxx:3048
 TSpectrumFit.cxx:3049
 TSpectrumFit.cxx:3050
 TSpectrumFit.cxx:3051
 TSpectrumFit.cxx:3052
 TSpectrumFit.cxx:3053
 TSpectrumFit.cxx:3054
 TSpectrumFit.cxx:3055
 TSpectrumFit.cxx:3056
 TSpectrumFit.cxx:3057
 TSpectrumFit.cxx:3058
 TSpectrumFit.cxx:3059
 TSpectrumFit.cxx:3060
 TSpectrumFit.cxx:3061
 TSpectrumFit.cxx:3062
 TSpectrumFit.cxx:3063
 TSpectrumFit.cxx:3064
 TSpectrumFit.cxx:3065
 TSpectrumFit.cxx:3066
 TSpectrumFit.cxx:3067
 TSpectrumFit.cxx:3068
 TSpectrumFit.cxx:3069
 TSpectrumFit.cxx:3070
 TSpectrumFit.cxx:3071
 TSpectrumFit.cxx:3072
 TSpectrumFit.cxx:3073
 TSpectrumFit.cxx:3074
 TSpectrumFit.cxx:3075
 TSpectrumFit.cxx:3076
 TSpectrumFit.cxx:3077
 TSpectrumFit.cxx:3078
 TSpectrumFit.cxx:3079
 TSpectrumFit.cxx:3080
 TSpectrumFit.cxx:3081
 TSpectrumFit.cxx:3082
 TSpectrumFit.cxx:3083
 TSpectrumFit.cxx:3084
 TSpectrumFit.cxx:3085
 TSpectrumFit.cxx:3086
 TSpectrumFit.cxx:3087
 TSpectrumFit.cxx:3088
 TSpectrumFit.cxx:3089
 TSpectrumFit.cxx:3090
 TSpectrumFit.cxx:3091
 TSpectrumFit.cxx:3092
 TSpectrumFit.cxx:3093
 TSpectrumFit.cxx:3094
 TSpectrumFit.cxx:3095
 TSpectrumFit.cxx:3096
 TSpectrumFit.cxx:3097
 TSpectrumFit.cxx:3098
 TSpectrumFit.cxx:3099
 TSpectrumFit.cxx:3100
 TSpectrumFit.cxx:3101
 TSpectrumFit.cxx:3102
 TSpectrumFit.cxx:3103
 TSpectrumFit.cxx:3104
 TSpectrumFit.cxx:3105
 TSpectrumFit.cxx:3106
 TSpectrumFit.cxx:3107
 TSpectrumFit.cxx:3108
 TSpectrumFit.cxx:3109
 TSpectrumFit.cxx:3110
 TSpectrumFit.cxx:3111
 TSpectrumFit.cxx:3112
 TSpectrumFit.cxx:3113
 TSpectrumFit.cxx:3114
 TSpectrumFit.cxx:3115
 TSpectrumFit.cxx:3116
 TSpectrumFit.cxx:3117
 TSpectrumFit.cxx:3118
 TSpectrumFit.cxx:3119
 TSpectrumFit.cxx:3120
 TSpectrumFit.cxx:3121
 TSpectrumFit.cxx:3122
 TSpectrumFit.cxx:3123
 TSpectrumFit.cxx:3124
 TSpectrumFit.cxx:3125
 TSpectrumFit.cxx:3126
 TSpectrumFit.cxx:3127
 TSpectrumFit.cxx:3128
 TSpectrumFit.cxx:3129
 TSpectrumFit.cxx:3130
 TSpectrumFit.cxx:3131
 TSpectrumFit.cxx:3132
 TSpectrumFit.cxx:3133
 TSpectrumFit.cxx:3134
 TSpectrumFit.cxx:3135
 TSpectrumFit.cxx:3136
 TSpectrumFit.cxx:3137
 TSpectrumFit.cxx:3138
 TSpectrumFit.cxx:3139
 TSpectrumFit.cxx:3140
 TSpectrumFit.cxx:3141
 TSpectrumFit.cxx:3142
 TSpectrumFit.cxx:3143
 TSpectrumFit.cxx:3144
 TSpectrumFit.cxx:3145
 TSpectrumFit.cxx:3146
 TSpectrumFit.cxx:3147
 TSpectrumFit.cxx:3148
 TSpectrumFit.cxx:3149
 TSpectrumFit.cxx:3150
 TSpectrumFit.cxx:3151
 TSpectrumFit.cxx:3152
 TSpectrumFit.cxx:3153
 TSpectrumFit.cxx:3154
 TSpectrumFit.cxx:3155
 TSpectrumFit.cxx:3156
 TSpectrumFit.cxx:3157
 TSpectrumFit.cxx:3158
 TSpectrumFit.cxx:3159
 TSpectrumFit.cxx:3160
 TSpectrumFit.cxx:3161
 TSpectrumFit.cxx:3162
 TSpectrumFit.cxx:3163
 TSpectrumFit.cxx:3164
 TSpectrumFit.cxx:3165
 TSpectrumFit.cxx:3166
 TSpectrumFit.cxx:3167
 TSpectrumFit.cxx:3168
 TSpectrumFit.cxx:3169
 TSpectrumFit.cxx:3170
 TSpectrumFit.cxx:3171
 TSpectrumFit.cxx:3172
 TSpectrumFit.cxx:3173
 TSpectrumFit.cxx:3174
 TSpectrumFit.cxx:3175
 TSpectrumFit.cxx:3176
 TSpectrumFit.cxx:3177
 TSpectrumFit.cxx:3178
 TSpectrumFit.cxx:3179
 TSpectrumFit.cxx:3180
 TSpectrumFit.cxx:3181
 TSpectrumFit.cxx:3182
 TSpectrumFit.cxx:3183
 TSpectrumFit.cxx:3184
 TSpectrumFit.cxx:3185
 TSpectrumFit.cxx:3186
 TSpectrumFit.cxx:3187
 TSpectrumFit.cxx:3188
 TSpectrumFit.cxx:3189
 TSpectrumFit.cxx:3190
 TSpectrumFit.cxx:3191
 TSpectrumFit.cxx:3192
 TSpectrumFit.cxx:3193
 TSpectrumFit.cxx:3194
 TSpectrumFit.cxx:3195
 TSpectrumFit.cxx:3196
 TSpectrumFit.cxx:3197
 TSpectrumFit.cxx:3198
 TSpectrumFit.cxx:3199
 TSpectrumFit.cxx:3200
 TSpectrumFit.cxx:3201
 TSpectrumFit.cxx:3202
 TSpectrumFit.cxx:3203
 TSpectrumFit.cxx:3204
 TSpectrumFit.cxx:3205
 TSpectrumFit.cxx:3206
 TSpectrumFit.cxx:3207
 TSpectrumFit.cxx:3208
 TSpectrumFit.cxx:3209
 TSpectrumFit.cxx:3210
 TSpectrumFit.cxx:3211
 TSpectrumFit.cxx:3212
 TSpectrumFit.cxx:3213
 TSpectrumFit.cxx:3214
 TSpectrumFit.cxx:3215
 TSpectrumFit.cxx:3216
 TSpectrumFit.cxx:3217
 TSpectrumFit.cxx:3218
 TSpectrumFit.cxx:3219
 TSpectrumFit.cxx:3220
 TSpectrumFit.cxx:3221
 TSpectrumFit.cxx:3222
 TSpectrumFit.cxx:3223
 TSpectrumFit.cxx:3224
 TSpectrumFit.cxx:3225
 TSpectrumFit.cxx:3226
 TSpectrumFit.cxx:3227
 TSpectrumFit.cxx:3228
 TSpectrumFit.cxx:3229
 TSpectrumFit.cxx:3230
 TSpectrumFit.cxx:3231
 TSpectrumFit.cxx:3232
 TSpectrumFit.cxx:3233
 TSpectrumFit.cxx:3234
 TSpectrumFit.cxx:3235
 TSpectrumFit.cxx:3236
 TSpectrumFit.cxx:3237
 TSpectrumFit.cxx:3238
 TSpectrumFit.cxx:3239
 TSpectrumFit.cxx:3240
 TSpectrumFit.cxx:3241
 TSpectrumFit.cxx:3242
 TSpectrumFit.cxx:3243
 TSpectrumFit.cxx:3244
 TSpectrumFit.cxx:3245
 TSpectrumFit.cxx:3246
 TSpectrumFit.cxx:3247
 TSpectrumFit.cxx:3248
 TSpectrumFit.cxx:3249
 TSpectrumFit.cxx:3250
 TSpectrumFit.cxx:3251
 TSpectrumFit.cxx:3252
 TSpectrumFit.cxx:3253
 TSpectrumFit.cxx:3254
 TSpectrumFit.cxx:3255
 TSpectrumFit.cxx:3256
 TSpectrumFit.cxx:3257
 TSpectrumFit.cxx:3258
 TSpectrumFit.cxx:3259
 TSpectrumFit.cxx:3260
 TSpectrumFit.cxx:3261
 TSpectrumFit.cxx:3262
 TSpectrumFit.cxx:3263
 TSpectrumFit.cxx:3264
 TSpectrumFit.cxx:3265
 TSpectrumFit.cxx:3266
 TSpectrumFit.cxx:3267
 TSpectrumFit.cxx:3268
 TSpectrumFit.cxx:3269
 TSpectrumFit.cxx:3270
 TSpectrumFit.cxx:3271
 TSpectrumFit.cxx:3272
 TSpectrumFit.cxx:3273
 TSpectrumFit.cxx:3274
 TSpectrumFit.cxx:3275
 TSpectrumFit.cxx:3276
 TSpectrumFit.cxx:3277
 TSpectrumFit.cxx:3278
 TSpectrumFit.cxx:3279
 TSpectrumFit.cxx:3280
 TSpectrumFit.cxx:3281
 TSpectrumFit.cxx:3282
 TSpectrumFit.cxx:3283
 TSpectrumFit.cxx:3284
 TSpectrumFit.cxx:3285
 TSpectrumFit.cxx:3286
 TSpectrumFit.cxx:3287
 TSpectrumFit.cxx:3288
 TSpectrumFit.cxx:3289
 TSpectrumFit.cxx:3290
 TSpectrumFit.cxx:3291
 TSpectrumFit.cxx:3292
 TSpectrumFit.cxx:3293
 TSpectrumFit.cxx:3294
 TSpectrumFit.cxx:3295
 TSpectrumFit.cxx:3296
 TSpectrumFit.cxx:3297
 TSpectrumFit.cxx:3298
 TSpectrumFit.cxx:3299
 TSpectrumFit.cxx:3300
 TSpectrumFit.cxx:3301
 TSpectrumFit.cxx:3302
 TSpectrumFit.cxx:3303
 TSpectrumFit.cxx:3304
 TSpectrumFit.cxx:3305
 TSpectrumFit.cxx:3306
 TSpectrumFit.cxx:3307
 TSpectrumFit.cxx:3308
 TSpectrumFit.cxx:3309
 TSpectrumFit.cxx:3310
 TSpectrumFit.cxx:3311
 TSpectrumFit.cxx:3312
 TSpectrumFit.cxx:3313
 TSpectrumFit.cxx:3314
 TSpectrumFit.cxx:3315
 TSpectrumFit.cxx:3316
 TSpectrumFit.cxx:3317
 TSpectrumFit.cxx:3318
 TSpectrumFit.cxx:3319
 TSpectrumFit.cxx:3320
 TSpectrumFit.cxx:3321
 TSpectrumFit.cxx:3322
 TSpectrumFit.cxx:3323
 TSpectrumFit.cxx:3324
 TSpectrumFit.cxx:3325
 TSpectrumFit.cxx:3326
 TSpectrumFit.cxx:3327
 TSpectrumFit.cxx:3328
 TSpectrumFit.cxx:3329
 TSpectrumFit.cxx:3330
 TSpectrumFit.cxx:3331
 TSpectrumFit.cxx:3332
 TSpectrumFit.cxx:3333
 TSpectrumFit.cxx:3334
 TSpectrumFit.cxx:3335
 TSpectrumFit.cxx:3336
 TSpectrumFit.cxx:3337
 TSpectrumFit.cxx:3338
 TSpectrumFit.cxx:3339
 TSpectrumFit.cxx:3340
 TSpectrumFit.cxx:3341
 TSpectrumFit.cxx:3342
 TSpectrumFit.cxx:3343
 TSpectrumFit.cxx:3344
 TSpectrumFit.cxx:3345
 TSpectrumFit.cxx:3346
 TSpectrumFit.cxx:3347
 TSpectrumFit.cxx:3348
 TSpectrumFit.cxx:3349
 TSpectrumFit.cxx:3350
 TSpectrumFit.cxx:3351
 TSpectrumFit.cxx:3352
 TSpectrumFit.cxx:3353
 TSpectrumFit.cxx:3354
 TSpectrumFit.cxx:3355
 TSpectrumFit.cxx:3356
 TSpectrumFit.cxx:3357
 TSpectrumFit.cxx:3358
 TSpectrumFit.cxx:3359
 TSpectrumFit.cxx:3360
 TSpectrumFit.cxx:3361
 TSpectrumFit.cxx:3362
 TSpectrumFit.cxx:3363
 TSpectrumFit.cxx:3364
 TSpectrumFit.cxx:3365
 TSpectrumFit.cxx:3366
 TSpectrumFit.cxx:3367
 TSpectrumFit.cxx:3368
 TSpectrumFit.cxx:3369
 TSpectrumFit.cxx:3370
 TSpectrumFit.cxx:3371
 TSpectrumFit.cxx:3372
 TSpectrumFit.cxx:3373
 TSpectrumFit.cxx:3374
 TSpectrumFit.cxx:3375
 TSpectrumFit.cxx:3376
 TSpectrumFit.cxx:3377
 TSpectrumFit.cxx:3378
 TSpectrumFit.cxx:3379
 TSpectrumFit.cxx:3380
 TSpectrumFit.cxx:3381
 TSpectrumFit.cxx:3382
 TSpectrumFit.cxx:3383
 TSpectrumFit.cxx:3384
 TSpectrumFit.cxx:3385
 TSpectrumFit.cxx:3386
 TSpectrumFit.cxx:3387
 TSpectrumFit.cxx:3388
 TSpectrumFit.cxx:3389
 TSpectrumFit.cxx:3390
 TSpectrumFit.cxx:3391
 TSpectrumFit.cxx:3392
 TSpectrumFit.cxx:3393
 TSpectrumFit.cxx:3394
 TSpectrumFit.cxx:3395
 TSpectrumFit.cxx:3396
 TSpectrumFit.cxx:3397
 TSpectrumFit.cxx:3398
 TSpectrumFit.cxx:3399
 TSpectrumFit.cxx:3400
 TSpectrumFit.cxx:3401
 TSpectrumFit.cxx:3402
 TSpectrumFit.cxx:3403
 TSpectrumFit.cxx:3404
 TSpectrumFit.cxx:3405
 TSpectrumFit.cxx:3406
 TSpectrumFit.cxx:3407
 TSpectrumFit.cxx:3408
 TSpectrumFit.cxx:3409
 TSpectrumFit.cxx:3410
 TSpectrumFit.cxx:3411
 TSpectrumFit.cxx:3412
 TSpectrumFit.cxx:3413
 TSpectrumFit.cxx:3414
 TSpectrumFit.cxx:3415
 TSpectrumFit.cxx:3416
 TSpectrumFit.cxx:3417
 TSpectrumFit.cxx:3418
 TSpectrumFit.cxx:3419
 TSpectrumFit.cxx:3420
 TSpectrumFit.cxx:3421
 TSpectrumFit.cxx:3422
 TSpectrumFit.cxx:3423
 TSpectrumFit.cxx:3424
 TSpectrumFit.cxx:3425
 TSpectrumFit.cxx:3426
 TSpectrumFit.cxx:3427
 TSpectrumFit.cxx:3428
 TSpectrumFit.cxx:3429
 TSpectrumFit.cxx:3430
 TSpectrumFit.cxx:3431
 TSpectrumFit.cxx:3432
 TSpectrumFit.cxx:3433
 TSpectrumFit.cxx:3434
 TSpectrumFit.cxx:3435
 TSpectrumFit.cxx:3436
 TSpectrumFit.cxx:3437
 TSpectrumFit.cxx:3438
 TSpectrumFit.cxx:3439
 TSpectrumFit.cxx:3440
 TSpectrumFit.cxx:3441
 TSpectrumFit.cxx:3442