// Author : Gero Flucke // created : 2002-2004 // last change: $Date: 2005/11/26 20:04:57 $ // by : $author$ #ifndef DstarDmFitterUnsmart_h #define DstarDmFitterUnsmart_h #include "DstarDmFitterSpecial_I.h" class TH1; class TF1; class DstarDmFitterUnsmart : public DstarDmFitterSpecial_I { public: // con- and destructor: // ==================== explicit DstarDmFitterUnsmart(TH1* histo = NULL, TH1* hWc = NULL); explicit DstarDmFitterUnsmart(const DstarDmFitterUnsmart& source); explicit DstarDmFitterUnsmart(const DstarDmFitterSpecial_I& source); virtual ~DstarDmFitterUnsmart(); virtual DstarDmFitterUnsmart& operator=(const DstarDmFitterUnsmart& rhs); virtual DstarDmFitterUnsmart& operator=(const DstarDmFitterSpecial_I&rhs); // setters: // ======== virtual void SetSigma() {SetSigma(fgSigmaDefault);} virtual void SetSigma(Double_t s); virtual void SetMean() {SetMean(fgMeanDefault);}; virtual void SetMean(Double_t m); virtual void SetBackgrExp() {SetBackgrExp(fgBackgrExpDefault);}; virtual void SetBackgrExp(Double_t e); virtual void SetBackgrSqr() {SetBackgrSqr(fgBackgrSqrDefault);}; virtual void SetBackgrSqr(Double_t s); virtual void SetWcScale(Double_t s); virtual void SetLimitBackground(Bool_t l); virtual void SetLimitBackgrSqrt(Bool_t l); virtual void SetUpperBackgrSqrt() {SetUpperBackgrSqrt(fgUpperBackgrSqrDefault);}; virtual void SetUpperBackgrSqrt(Double_t s); virtual void SetLowerBackgrSqrt() {SetLowerBackgrSqrt(fgLowerBackgrSqrDefault);}; virtual void SetLowerBackgrSqrt(Double_t s); virtual void SetLimitBackgrExp (Bool_t l); virtual void SetUpperBackgrExp () {SetUpperBackgrExp (fgUpperBackgrExpDefault);}; virtual void SetUpperBackgrExp (Double_t e); virtual void SetLowerBackgrExp () {SetLowerBackgrExp (fgLowerBackgrExpDefault);}; virtual void SetLowerBackgrExp (Double_t e); // 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; virtual Double_t GetMean() const; virtual Double_t GetBackgrExp() const; virtual Double_t GetBackgrSqr() const; virtual Double_t GetWcScale() const; virtual Double_t GetSignalBack() const; virtual Bool_t GetLimitBackgrSqr() const; virtual Double_t GetUpperBackgrSqr() const; virtual Double_t GetLowerBackgrSqr() const; virtual Bool_t GetLimitBackgrExp() const; virtual Double_t GetUpperBackgrExp() const; virtual Double_t GetLowerBackgrExp() const; virtual TF1* GetFittedFunc() const; virtual TF1* GetFittedBackgrFunc() const; // fits: // ===== // abstractly inherited : virtual Bool_t Fit(Int_t mode); protected: //abstractly inherited virtual void SetHistReal(TH1* histo, TH1* hWc, Bool_t defaultSigmaMeanExpSqr); virtual Double_t DetermNDstarStart(Double_t backgrNormStart); // function: virtual Int_t DoTheFit(Double_t backgrNormStart,Double_t nDstarStart); virtual void AddBackgrToHist(); virtual TH1* MakeFitFunction(Double_t backgr, Double_t nDstar); // very very own code (other classes have no modes!): virtual void DetermFitMode(Int_t mode); public: static Double_t BackgrFct(Double_t *x, Double_t *par); //fncts used... static Double_t FitFct(Double_t* x, Double_t* par); // ... for fits static Double_t FitFctWithWc(Double_t* x, Double_t* par); // ... and fits with WC private: TF1* fDstarFitFormu; // pointer to full fitting fct. object // very own data members (other classes have no mode) Bool_t fFixMean; // to store the result Bool_t fFixSigma; // ... of the interpretation of Bool_t fFixBackgrSqr; // ... the mode for fitting Bool_t fFixBackgrExp; // ... Bool_t fFixWcScale; // ... Bool_t fBackGround; // in case of fitting with N(D*)==0 Double_t fWcScale; // storage of a scale to be applied to WC background hist // set limits for background parametrization Bool_t fLimitBackgrSqr; Double_t fUpperBackgrSqr; Double_t fLowerBackgrSqr; Bool_t fLimitBackgrExp; Double_t fUpperBackgrExp; Double_t fLowerBackgrExp; ClassDef(DstarDmFitterUnsmart,0) // 'helper' of DstarDmFitter }; #endif