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)