fitter = Fitter(['M', 'mjj']) 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("mjj").setVal((options.maxy - options.miny) / 2.0) fitter.w.var("mjj").setMax(options.maxy) fitter.w.var("mjj").setMin(options.miny) #The MJ first that is trivial jsonFile = open(options.json) data = json.load(jsonFile) jsonFile.close() if data['type'] == 'erfexp': fitter.erfexp('modelJ', 'mjj') fitter.w.var("c_0").setVal(data['c_0']) fitter.w.var("c_0").setConstant(1) fitter.w.var("c_1").setVal(data['c_1']) fitter.w.var("c_1").setConstant(1) fitter.w.var("c_2").setVal(data['c_2']) fitter.w.var("c_2").setConstant(1) if data['type'] == 'expo': fitter.expo('modelJ', 'mjj') fitter.w.var("c_0").setVal(data['c_0']) fitter.w.var("c_0").setConstant(1)
f = ROOT.TFile(args[0]) histo = f.Get(options.histo) fitter = Fitter(['x']) fitter.importBinnedData(histo, ['x'], 'data') if options.function == 'expo': fitter.expo('model', 'x') parameterization['type'] = 'expo' if options.function == 'erfpow': fitter.erfpow('model', 'x') parameterization['type'] = 'erfpow' if options.function == 'erfexp': fitter.erfexp('model', 'x') parameterization['type'] = 'erfexp' if options.function == 'erfexpCB': fitter.erfexpCB('model', 'x') parameterization['type'] = 'erfexpCB' if options.function == 'erfexpTimesCB': fitter.erfexpTimesCB('model', 'x') parameterization['type'] = 'erfexpTimesCB' if options.function.find('bernstein') != -1: order = int(options.function.split('_')[1]) fitter.bernstein('model', 'x', order) parameterization['type'] = 'bernstein' parameterization['order'] = order