00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef RAR_SPLOT
00012 #define RAR_SPLOT
00013
00014 #define MAXNSPEC 100
00015
00016 class RooAbsReal;
00017
00018 #include "TH1.h"
00019 #include "TMatrixD.h"
00020
00021 #include "RooFitCore/RooFitResult.hh"
00022 #include "RooFitCore/RooRealVar.hh"
00023 #include "RooFitCore/RooDataSet.hh"
00024 #include "RooFitCore/RooHist.hh"
00025 #include "RooFitCore/RooPlot.hh"
00026
00044
00045 class rarSPlot : public TNamed {
00046 public:
00047 rarSPlot();
00048 rarSPlot(const char* name, const char *title, RooAbsReal *obs,
00049 RooDataSet &data, RooFitResult *fitRes,
00050 const RooArgList &pdfs, const RooArgList &yields,
00051 const RooArgList &pdf0s=RooArgList(),
00052 const RooArgList &yield0s=RooArgList(),
00053 const RooArgSet &projDeps=RooArgSet(), const Bool_t verbose=kTRUE);
00054 virtual ~rarSPlot();
00055
00058 virtual void setVerbose(Bool_t verbose=kTRUE) {_verbose=verbose;}
00059
00060 RooDataSet* fill(RooAbsReal &yield, Int_t nbins, Double_t min, Double_t max,
00061 Bool_t doErrors=kTRUE);
00062
00065 virtual TH1F *getSPlotHist() {return _sHist;}
00068 virtual RooDataSet *getSPlotData() {return _sData;}
00069 protected:
00070 virtual void init();
00071 virtual void fillsPn(Int_t compIdx);
00072
00073 RooAbsReal *_obs;
00074 RooDataSet _data;
00075 Int_t _nEvts;
00076 RooFitResult *_fitRes;
00077 RooArgList _fitPars;
00078 RooArgList _pdfs;
00079 RooArgList _yields;
00080 RooArgList _pdf0s;
00081 RooArgList _yield0s;
00082 RooArgSet _projDeps;
00083 RooArgSet _normVars;
00084
00085 Int_t _nComps;
00086 Int_t _nComp0s;
00087 TArrayI _idxMap;
00088 TMatrixD _covM;
00089 TMatrixD _iV;
00090 TMatrixD _V;
00091 TArrayD _dens;
00092 TArrayD _sPns;
00093 TArrayI _sPnb;
00094
00095 TH1F *_sHist;
00096 RooDataSet *_sData;
00097
00098 Bool_t _verbose;
00099
00100 private:
00101 ClassDef(rarSPlot,0)
00102 ;
00103 };
00104
00105 #endif