// Author : Gero Flucke // created : 2002-2004 // last change: $Date: 2005/11/26 20:04:56 $ // by : $author$ #ifndef DstarDmFitter_h #define DstarDmFitter_h #include "TObject.h" #include "DstarDmFitterUnsmart.h" class TH1; class TH1F; class TH1D; class DstarDmFitter : public TObject { public: // con- and destructor: // ==================== explicit DstarDmFitter(TH1* histo = NULL, TH1* hWc = NULL); explicit DstarDmFitter(const DstarDmFitter& source); virtual ~DstarDmFitter(); DstarDmFitter& operator=(const DstarDmFitter& rhs); // setters: // ======== virtual void SetHist(TH1* hist) {SetHist(hist, NULL, kFALSE);} virtual void SetHist(TH1* hist, TH1* hWc) {SetHist(hist, hWc, kFALSE);} virtual void SetHist(TH1* hist, Bool_t defaultSigmaMeanBgrExpSqr) {SetHist(hist, NULL, defaultSigmaMeanBgrExpSqr);} // for backw. comp. virtual void SetHist(TH1* hist, TH1* hWc, Bool_t defaultSigMeanBgrExpSqr); virtual void SetSigma() // -->default! {SetSigma(DstarDmFitterSpecial_I::GetSigmaDefault());} virtual void SetSigma(Double_t s); virtual void SetMean() // -->default! {SetMean(DstarDmFitterSpecial_I::GetMeanDefault());} virtual void SetMean(Double_t m); virtual void SetBackgrExp() // -->default! {SetBackgrExp(DstarDmFitterSpecial_I::GetBackgrExpDefault());} virtual void SetBackgrExp(Double_t e); virtual void SetBackgrSqr() // -->default! {SetBackgrSqr(DstarDmFitterSpecial_I::GetBackgrSqrDefault());} virtual void SetBackgrSqr(Double_t s); virtual void SetWcScale(Double_t s) {fFitter->SetWcScale(s);} virtual void SetLimitBackground(Bool_t l) {fFitter->SetLimitBackground(l);} virtual void SetLimitBackgrSqrt(Bool_t l) {fFitter->SetLimitBackgrSqrt(l);} virtual void SetLimitBackgrExp (Bool_t l) {fFitter->SetLimitBackgrExp (l);} virtual void SetUpperBackgrSqrt(Double_t s); virtual void SetUpperBackgrSqrt() // -->default! {SetUpperBackgrSqrt(DstarDmFitterSpecial_I::GetUpperBackgrSqrDefault());} virtual void SetLowerBackgrSqrt(Double_t s); virtual void SetLowerBackgrSqrt() // -->default! {SetLowerBackgrSqrt(DstarDmFitterSpecial_I::GetLowerBackgrSqrDefault());} virtual void SetUpperBackgrExp (Double_t e); virtual void SetUpperBackgrExp() // -->default! {SetUpperBackgrExp (DstarDmFitterSpecial_I::GetUpperBackgrExpDefault());} virtual void SetLowerBackgrExp (Double_t e); virtual void SetLowerBackgrExp() // -->default! {SetLowerBackgrExp (DstarDmFitterSpecial_I::GetLowerBackgrExpDefault());} virtual void SetUpFitLimit() // -->default! {SetUpFitLimit(DstarDmFitterSpecial_I::GetUpFitLimitDefault());} virtual void SetUpFitLimit(Double_t u); virtual void SetFitOption(const char* option); virtual void AddFitOption(const char* option); virtual void AddFitOption(char option); virtual void ResetFitParameters(); virtual Bool_t SetSmartMode(Bool_t mode = kTRUE) {const Bool_t old = fSmart; fSmart = mode; return old;} // getters: // ========= virtual Double_t GetNDstar() const {return fFitter->GetNDstar();} virtual Double_t GetNDstarErr() const {return fFitter->GetNDstarErr();} virtual Double_t GetSigma() const {return fFitter->GetSigma();} virtual Double_t GetMean() const {return fFitter->GetMean();} virtual Double_t GetBackgrNorm() const {return fFitter->GetBackgrNorm();} virtual Double_t GetBackgrNormErr()const{return fFitter->GetBackgrNormErr();} virtual Double_t GetBackgrExp() const {return fFitter->GetBackgrExp();} virtual Double_t GetBackgrSqr() const {return fFitter->GetBackgrSqr();} virtual Bool_t GetLimitBackgrExp() const {return fFitter->GetLimitBackgrExp();} virtual Double_t GetUpperBackgrExp() const {return fFitter->GetUpperBackgrExp();} virtual Double_t GetLowerBackgrExp() const {return fFitter->GetLowerBackgrExp();} virtual Bool_t GetLimitBackgrSqr() const {return fFitter->GetLimitBackgrSqr();} virtual Double_t GetUpperBackgrSqr() const {return fFitter->GetUpperBackgrSqr();} virtual Double_t GetLowerBackgrSqr() const {return fFitter->GetLowerBackgrSqr();} virtual Double_t GetWcScale() const {return fFitter->GetWcScale();} virtual Double_t GetSignalBack() const {return fFitter->GetSignalBack();} virtual Double_t GetHistBinSize() const {return fFitter->GetHistBinSize();} virtual const char* GetHistName() const {return fFitter->GetHistName();} virtual Double_t GetUpFitLimit() const {return fFitter->GetUpFitLimit();} virtual const char* GetFitOption() const {return fFitter->GetFitOption();} virtual TF1* GetFittedFunc() const {return fFitter->GetFittedFunc();} virtual TF1* GetFittedBackgrFunc() const; virtual Bool_t IsSmartMode() const {return fSmart;} virtual void SetDetectIsMC(Bool_t set = kTRUE) {fFitter->SetDetectIsMC(set);} // fits: // ===== virtual Bool_t Fit(Int_t mode); virtual Bool_t Fit(Int_t mode, TH1* hist, TH1* hWc = NULL); virtual Bool_t FitAll(); virtual Bool_t FitAll(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixMean(); virtual Bool_t FitFixMean(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixMeanSigma(); virtual Bool_t FitFixMeanSigma(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixMeanSigmaExp(); virtual Bool_t FitFixMeanSigmaExp(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixMeanSigmaExpSqr(); virtual Bool_t FitFixMeanSigmaExpSqr(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixMeanSigmaSqr(); virtual Bool_t FitFixMeanSigmaSqr(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixAll() {return this->FitFixMeanSigmaExpSqr();} virtual Bool_t FitFixAll(TH1* hist, TH1* hWc=NULL){ return this->FitFixMeanSigmaExpSqr(hist, hWc);} virtual Bool_t FitFixMeanExp(); virtual Bool_t FitFixMeanExp(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixMeanExpSqr(); virtual Bool_t FitFixMeanExpSqr(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixMeanSqr(); virtual Bool_t FitFixMeanSqr(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixSigma(); virtual Bool_t FitFixSigma(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixSigmaExp(); virtual Bool_t FitFixSigmaExp(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixSigmaExpSqr(); virtual Bool_t FitFixSigmaExpSqr(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixSigmaSqr(); virtual Bool_t FitFixSigmaSqr(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixExp(); virtual Bool_t FitFixExp(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixExpSqr(); virtual Bool_t FitFixExpSqr(TH1* hist, TH1* hWc = NULL); virtual Bool_t FitFixSqr(); virtual Bool_t FitFixSqr(TH1* hist, TH1* hWc = NULL); private: DstarDmFitterUnsmart* fFitter; //! stores fitvalues and fits in unsmart mode Bool_t fSmart; // smart mode on/off ClassDef(DstarDmFitter,0) // fitting class for D* Delta-m histograms }; #endif