11 #ifndef ROOT_TSpectrumFit 
   12 #define ROOT_TSpectrumFit 
   18 class TSpectrumFit : 
public TNamed {
 
   21    Int_t     fNumberIterations;          
 
   30    Double_t *fPositionInit;              
 
   31    Double_t *fPositionCalc;              
 
   32    Double_t *fPositionErr;               
 
   71        kFitOptimChiCounts =0,
 
   72        kFitOptimChiFuncValues =1,
 
   73        kFitOptimMaxLikelihood =2,
 
   82        kFitTaylorOrderFirst =0,
 
   83        kFitTaylorOrderSecond =1,
 
   84        kFitNumRegulCycles =100
 
   87    TSpectrumFit(Int_t numberPeaks);
 
   88    virtual ~TSpectrumFit();
 
   92    Double_t            Area(Double_t a,Double_t sigma,Double_t t,Double_t b);
 
   93    Double_t            Dera1(Double_t i);
 
   94    Double_t            Dera2(Double_t i);
 
   95    Double_t            Deramp(Double_t i,Double_t i0,Double_t sigma,Double_t t,Double_t s,Double_t b);
 
   96    Double_t            Derb(Int_t num_of_fitted_peaks,Double_t i,
const Double_t* parameter,Double_t sigma,Double_t t,Double_t b);
 
   97    Double_t            Derderi0(Double_t i,Double_t amp,Double_t i0,Double_t sigma);
 
   98    Double_t            Derdersigma(Int_t num_of_fitted_peaks,Double_t i,
const Double_t* parameter,Double_t sigma);
 
   99    Double_t            Derfc(Double_t x);
 
  100    Double_t            Deri0(Double_t i,Double_t amp,Double_t i0,Double_t sigma,Double_t t,Double_t s,Double_t b);
 
  101    Double_t            Derpa(Double_t sigma,Double_t t,Double_t b);
 
  102    Double_t            Derpb(Double_t a,Double_t sigma,Double_t t,Double_t b);
 
  103    Double_t            Derpsigma(Double_t a,Double_t t,Double_t b);
 
  104    Double_t            Derpt(Double_t a,Double_t sigma,Double_t b);
 
  105    Double_t            Ders(Int_t num_of_fitted_peaks,Double_t i,
const Double_t* parameter,Double_t sigma);
 
  106    Double_t            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);
 
  107    Double_t            Dert(Int_t num_of_fitted_peaks,Double_t i,
const Double_t* parameter,Double_t sigma,Double_t b);
 
  108    Double_t            Erfc(Double_t x);
 
  109    Double_t            Ourpowl(Double_t a,Int_t pw);
 
  110    Double_t            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);
 
  111    void                StiefelInversion(Double_t **a,Int_t rozmer);
 
  114    void                FitAwmi(Double_t *source);
 
  115    void                FitStiefel(Double_t *source);
 
  116    Double_t           *GetAmplitudes()
 const {
return fAmpCalc;}
 
  117    Double_t           *GetAmplitudesErrors()
 const {
return fAmpErr;}
 
  118    Double_t           *GetAreas()
 const {
return fArea;}
 
  119    Double_t           *GetAreasErrors()
 const {
return fAreaErr;}
 
  120    void                GetBackgroundParameters(Double_t &a0, Double_t &a0Err, Double_t &a1, Double_t &a1Err, Double_t &a2, Double_t &a2Err);
 
  121    Double_t            GetChi()
 const {
return fChi;}
 
  122    Double_t           *GetPositions()
 const {
return fPositionCalc;}
 
  123    Double_t           *GetPositionsErrors()
 const {
return fPositionErr;}
 
  124    void                GetSigma(Double_t &sigma, Double_t &sigmaErr);
 
  125    void                GetTailParameters(Double_t &t, Double_t &tErr, Double_t &b, Double_t &bErr, Double_t &s, Double_t &sErr);
 
  126    void                SetBackgroundParameters(Double_t a0Init, Bool_t fixA0, Double_t a1Init, Bool_t fixA1, Double_t a2Init, Bool_t fixA2);
 
  127    void                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);
 
  128    void                SetPeakParameters(Double_t sigma, Bool_t fixSigma, 
const Double_t *positionInit, 
const Bool_t *fixPosition, 
const Double_t *ampInit, 
const Bool_t *fixAmp);
 
  129    void                SetTailParameters(Double_t tInit, Bool_t fixT, Double_t bInit, Bool_t fixB, Double_t sInit, Bool_t fixS);
 
  131    ClassDef(TSpectrumFit,1)