options.maxx, options.binsy, options.miny, options.maxy) histo = copy.deepcopy(histo) fitter = Fitter(['M', 'm']) fitter.w.var("M").setVal((options.maxx - options.minx) / 2.0) fitter.w.var("M").setMax(options.maxx) fitter.w.var("M").setMin(options.minx) fitter.w.var("m").setVal((options.maxy - options.miny) / 2.0) fitter.w.var("m").setMax(options.maxy) fitter.w.var("m").setMin(options.miny) fitter.erfpowParam('model', ['M', 'm']) fitter.importBinnedData(histo, ['M', 'm'], 'data') fitter.fit('model', 'data', [ ROOT.RooFit.SumW2Error(0), ROOT.RooFit.ConditionalObservables(ROOT.RooArgSet(fitter.w.var('m'))) ]) fitter.fit('model', 'data', [ ROOT.RooFit.SumW2Error(0), ROOT.RooFit.ConditionalObservables(ROOT.RooArgSet(fitter.w.var('m'))) ]) fitter.projectionCond("model", "data", "M", "m", 'debug' + options.output + ".png") data = {} data['p0'] = returnString('c0', fitter.w) data['p1'] = returnString('c1', fitter.w) data['p2'] = returnString('c2', fitter.w) f = open(options.output + ".json", "w") json.dump(data, f) f.close()
f = ROOT.TFile(args[0]) histo = f.Get(options.histo) fitter = Fitter(['x', 'y']) fitter.importBinnedData(histo, ['x', 'y'], 'data') if options.function == 'erfexpW2D': fitter.mjjParamErfExp('model', options.json) fitter.fit('model', 'data', [ ROOT.RooFit.SumW2Error(1), ROOT.RooFit.ConditionalObservables(ROOT.RooArgSet(fitter.w.var("x"))) ]) fitter.fit('model', 'data', [ ROOT.RooFit.SumW2Error(1), ROOT.RooFit.ConditionalObservables(ROOT.RooArgSet(fitter.w.var("x"))) ]) fitter.projectionCond("model", "data", "y", "x", "debug" + options.output + ".png") for i in range(0, 4): var = 'c_' + str(i) val, err = fitter.fetch(var) parameterization[var] = val parameterization[var + 'Err'] = err f = open(options.output + ".json", "w") json.dump(parameterization, f) f.close()