for completeness here’s the code fragment I am using:
RooRealVar Dmass(“Dmass”,“Dmass”,DsDataFitRangeLow,DsDataFitRangeHigh);
RooDataSet RooDS(“RooDS”,“RooDS”,RooArgSet(Dmass),Import(*t_Data));
RooRealVar DsMassMean(“DsMassMean”,“DsMassMean”,DsMassMeanV,1.965,1.971);
RooRealVar DsWidth1(“DsWidth1”,“DsWidth1”,DsWidth1V,0.000001,0.1);
RooRealVar DsWidth2(“DsWidth2”,“DsWidth2”,DsWidth2V,0.000001,0.1);
RooRealVar DsGaus1Fr(“DsGaus1Fr”,“DsGaus1Fr”,DsGaus1FrV,0.0,1);
RooRealVar DsFloatWidth(“DsFloatWidth”,“DsFloatWidth”,DsFloatWidthV,-1,1);
DsWidth1.setConstant(kTRUE);
DsWidth2.setConstant(kTRUE);
DsGaus1Fr.setConstant(kTRUE);
RooRealVar Cheb1(“Cheb1”,“Cheb1”,0,-1,1);
RooRealVar Cheb2(“Cheb2”,“Cheb2”,0,-1,1);
RooFormulaVar scale_width1(“scale width1”,“scaled width1”,“DsWidth1*(1+DsFloatWidth)”,RooArgSet(DsWidth1,DsFloatWidth));
RooFormulaVar scale_width2(“scale width2”,“scaled width2”,“DsWidth2*(1+DsFloatWidth)”,RooArgSet(DsWidth2,DsFloatWidth));
RooGaussian Gaus1(“Gaus1”,“gauss(Dmass,DsMassMean,scale_width1)”,Dmass,DsMassMean,scale_width1);
RooGaussian Gaus2(“Gaus2”,“gauss(Dmass,DsMassMean,scale_width2)”,Dmass,DsMassMean,scale_width2);
RooAddPdf SigPdf(“SigPdf”,“SigPdf”,RooArgList(Gaus1,Gaus2),DsGaus1Fr);
RooChebychev BkgPdf(“BkgPdf”,“BkgPdf”,Dmass,RooArgList(Cheb1,Cheb2));
RooRealVar NumSig(“NumSig”,“Number of Signal”,N_sigV,-1e4,1e4);
RooRealVar NumBkg(“NumBkg”,“Number of Background”,N_bkgV,0,1e6);
RooAddPdf RooDsMixPdf(“RooDsMixPdf”,“RooDsMixPdf”,RooArgList(SigPdf,BkgPdf),RooArgList(NumSig,NumBkg));
RooFitResult *fitresult = RooDsMixPdf.fitTo(RooDS,Extended(kTRUE),Save());
and what I want to do is like :
RooFitresult fitresult=(RooFitresult)file->Get(“fitresult”);
RooPlot* massframe = Dmass.frame(Title(“Dmass”));
RooDS.plotOn(massframe);
fitresult->.plotOn(massframe,LineColor(2));
fitresult->plotOn(massframe,Components(SigPdf),LineColor(3));
fitresult->plotOn(massframe,Components(BkgPdf),LineColor(4));
massframe->Draw();
but the plotOn does not work in these way,
also the createHessePdf() does not work,:
RooAbsPdf *paraPdf fitresult->createHessePdf(RooArgSet(NumSig,NumBkg,scale_width1,scale_width2,Cheb1,Cheb2,DsMassMean,SigPdf,BkgPdf));
another question is how to access value of parameter from Roofitresult , from ROOT: RooFitResult Class Reference , there is no getV, but we can only print the value on screen, which is not efficient since we need to write code to print out and another code to read the print out.