// Author : Gero Flucke // created : 2002-2004 // last change: $Date: 2004/06/29 17:00:38 $ // by : $author$ #ifndef DstarDmFitterMeSiExSq_h #define DstarDmFitterMeSiExSq_h #include "DstarDmFitterSpecial_I.h" class TH1F; class TH1D; class TF1; class DstarDmFitterMeSiExSq : public DstarDmFitterSpecial_I { public: // con- and destructor: // ==================== explicit DstarDmFitterMeSiExSq(TH1* = 0); explicit DstarDmFitterMeSiExSq(const DstarDmFitterSpecial_I&); explicit DstarDmFitterMeSiExSq(const DstarDmFitterMeSiExSq&); virtual ~DstarDmFitterMeSiExSq(); virtual DstarDmFitterMeSiExSq& operator=(const DstarDmFitterMeSiExSq& rhs); virtual DstarDmFitterMeSiExSq& operator=(const DstarDmFitterSpecial_I& rhs); // setters: // ======== virtual void SetSigma() {SetSigma(fgSigmaDefault);} virtual void SetSigma(Double_t s) {fgSigma = s;} virtual void SetMean() {SetMean(fgMeanDefault);} virtual void SetMean(Double_t m) {fgMean = m;} virtual void SetBackgrExp() {SetBackgrExp(fgBackgrExpDefault);} virtual void SetBackgrExp(Double_t e) {fgBackgrExp=e;} virtual void SetBackgrSqr() {SetBackgrSqr(fgBackgrSqrDefault);} virtual void SetBackgrSqr(Double_t s) {fgBackgrSqr=s;} // getters: // ========= virtual Double_t GetNDstar() const; virtual Double_t GetNDstarErr() const; virtual Double_t GetBackgrNorm() const; virtual Double_t GetBackgrNormErr() const; virtual Double_t GetSigma() const {return fgSigma;} virtual Double_t GetMean() const {return fgMean;} virtual Double_t GetBackgrExp() const {return fgBackgrExp;} virtual Double_t GetBackgrSqr() const {return fgBackgrSqr;} virtual Double_t GetSignalBack() const; virtual TF1* GetFittedFunc() const; virtual TF1* GetFittedBackgrFunc() const; // fit: // ========= virtual Bool_t Fit(Int_t mode); protected: //abstractly inherited virtual Int_t DoTheFit(Double_t backgrNormStart, Double_t nDstarStart); virtual void SetHistReal(TH1*, TH1* hDummy, Bool_t defaultFitValues); virtual Double_t DetermNDstarStart(Double_t backgrNormStart); virtual void AddBackgrToHist(); private: TF1* fDstarFitFormu; static Double_t BackgrFct(Double_t *x, Double_t *par); static Double_t FitFct(Double_t *x, Double_t *par); // very own: static Double_t fgSigma; // sigma of last fit, unfortunat. static! static Double_t fgMean; // mean of last fit static Double_t fgBackgrExp; // background exponent static Double_t fgBackgrSqr; // background square factor ClassDef(DstarDmFitterMeSiExSq,0) // 'helper' of DstarDmFitter }; #endif