nll=fr.minNll()
print '***** nll = ',nll,' ***** \n'
print 'total yield: {0:0.0f} +/- {1:0.0f}'.format(totalYield, sqrt(sig2))

# assert(False)

cWpJ = TCanvas('cWpJ', 'W+jets shape')
pars4 = config.the4BodyConfig(fitterPars, opts.mH, opts.syst, opts.alpha)
pars4.mHiggs = opts.mH
pars4.wHiggs = HWWSignalShapes.HiggsWidth[opts.mH]
pars4.initParamsFile = sigYieldFilename
fitter4 = RooWjjMjjFitter(pars4)

fitter4.makeFitter((opts.ParamWpJ>=0))
fitter4.loadData()
fitter4.make4BodyPdf(theFitter)
fitter4.loadParameters(sigYieldFilename)

## assert(False)

mf4 = fitter4.stackedPlot(False, RooWjjMjjFitter.mlnujj)
mf4.SetName("Mlvjj_Stacked")
## sf4 = fitter4.residualPlot(mf4, "h_background", "dibosonPdf", False)
# pf4 = fitter4.residualPlot(mf4, "h_total", "", True)
pf4 = pulls.createPull(mf4.getHist('theData'), mf4.getCurve('h_total'))
pf4.SetName("Mlvjj_Pull")
lf4 = fitter4.stackedPlot(True, RooWjjMjjFitter.mlnujj)
lf4.SetName("Mlvjj_log")

fitUtils = RooWjjFitterUtils(pars4)
iwt = 0
nll=fr.minNll()
print '***** nll = ',nll,' ***** \n'
print 'total yield: {0:0.0f} +/- {1:0.0f}'.format(totalYield, sqrt(sig2))

# assert(False)

cWpJ = TCanvas('cWpJ', 'W+jets shape')
pars4 = config.the4BodyConfig(fitterPars, opts.mH, opts.syst, opts.alpha)
pars4.mHiggs = opts.mH
pars4.wHiggs = HWWSignalShapes.HiggsWidth[opts.mH]
pars4.initParamsFile = sigYieldFilename
fitter4 = RooWjjMjjFitter(pars4)

fitter4.makeFitter((opts.ParamWpJ>=0))
fitter4.loadData()
fitter4.make4BodyPdf(theFitter)
fitter4.loadParameters(sigYieldFilename)

## assert(False)

mf4 = fitter4.stackedPlot(False, RooWjjMjjFitter.mlnujj)
mf4.SetName("Mlvjj_Stacked")
## sf4 = fitter4.residualPlot(mf4, "h_background", "dibosonPdf", False)
# pf4 = fitter4.residualPlot(mf4, "h_total", "", True)
pf4 = pulls.createPull(mf4.getHist('theData'), mf4.getCurve('h_total'))
pf4.SetName("Mlvjj_Pull")
rf4 = pulls.createResid(mf4.getHist('theData'), mf4.getCurve('h_total'))
rf4.SetName("Mlvjj_Residuals")

(chi2_4, ndf_4) = pulls.computeChi2(mf4.getHist('theData'), mf4.getCurve('h_total'))
lf4 = fitter4.stackedPlot(True, RooWjjMjjFitter.mlnujj)