paths["iso"]["Nominal"] = base_path + "/iso/Nominal/" paths["antiiso"]["Nominal"] = base_path + "/antiiso/Nominal/" #Then open files print "opening data and MC files" openedFiles = open_all_data_files(dataGroup, MCGroups, QCDGroup, paths) cutconfs = select_cuts() canvases = [] for cuts in cutconfs: #cuts.setTrigger("1") cuts.calcCuts() print cuts ((y, error), fit) = get_qcd_yield_with_fit(var, cuts, cutMT, mtMinValue, dataGroup, lumis, MCGroups, systematics, openedFiles, cuts.isMC, QCDGroup) #print cuts print "Selection: %s" % cuts.name print "QCD yield in selected region: ", y, "+-", error print "Total: QCD: %.2f +- %.2f" % (fit.qcd, fit.qcd_uncert) print "W+Jets: %.2f +- %.2f, ratio to template: %.2f" % ( fit.wjets, fit.wjets_uncert, fit.wjets / fit.wjets_orig) print "Other MC: %.2f +- %.2f, ratio to template: %.2f" % ( fit.nonqcd, fit.nonqcd_uncert, fit.nonqcd / fit.nonqcd_orig) print fit #clear_histos(data_group, mc_groups) dataHisto = dataGroup.getHistogram(var, "Nominal", "iso", cuts.name) canvases.append(plot_fit(var, cuts, dataHisto, fit)) clear_histos(dataGroup, MCgroups)
base_path = "/home/andres/single_top/stpol/out_step3_06_01" paths = generate_paths(systematics, base_path) #For example: paths["iso"]["Nominal"] = base_path+"/iso/Nominal/" paths["antiiso"]["Nominal"] = base_path+"/antiiso/Nominal/" #Then open files print "opening data and MC files" openedFiles = open_all_data_files(dataGroup, MCGroups, QCDGroup, paths) cutconfs = select_cuts() canvases = [] for cuts in cutconfs: #cuts.setTrigger("1") cuts.calcCuts() print cuts ((y, error), fit) = get_qcd_yield_with_fit(var, cuts, cutMT, mtMinValue, dataGroup, lumis, MCGroups, systematics, openedFiles, cuts.isMC, QCDGroup) #print cuts print "Selection: %s" % cuts.name print "QCD yield in selected region: ", y, "+-", error print "Total: QCD: %.2f +- %.2f" % (fit.qcd, fit.qcd_uncert) print "W+Jets: %.2f +- %.2f, ratio to template: %.2f" % (fit.wjets, fit.wjets_uncert, fit.wjets/fit.wjets_orig) print "Other MC: %.2f +- %.2f, ratio to template: %.2f" % (fit.nonqcd, fit.nonqcd_uncert, fit.nonqcd/fit.nonqcd_orig) print fit #clear_histos(data_group, mc_groups) dataHisto = dataGroup.getHistogram(var, "Nominal", "iso", cuts.name) canvases.append(plot_fit(var, cuts, dataHisto, fit)) clear_histos(dataGroup, MCgroups)
#Code written by Farbod Kamiab #The code plots distance versus travel time for 10000 points in the data import numpy as np import pandas as pd import matplotlib.pyplot as pl import statsmodels.api as sm import plot_fit as pfit import pygmaps number_rows=10000 df=pd.read_csv('~/Downloads/data/trip_data_1_2010.csv', nrows=number_rows) df_time_distance= df[[' trip_time_in_secs', ' trip_distance']] time_sorted_df_time_distance= df_time_distance.sort_values(' trip_time_in_secs') nbegin=int(number_rows/5.3) time=time_sorted_df_time_distance[' trip_time_in_secs'][nbegin:] distance= time_sorted_df_time_distance[' trip_distance'][nbegin:] result = sm.OLS( distance, time ).fit() fig, ax = pl.subplots() fig = pfit.plot_fit(result, 0, ax=ax) ax.set_ylabel("Distance (miles)") ax.set_xlabel("Time (min)") pl.savefig('Correlation.png', bbox_inches='tight')
X_poly_val, dummy_mu, dummy_sigma = feature_normalize(X_poly_val, mu, sigma) X_poly_val = np.hstack((np.ones((m_val, 1)), X_poly_val)) print 'Normalized Training Example 1:' print X_poly[0, :] # =========== Part 7: Learning Curve for Polynomial Regression ============= print '\nPart 7: Learning Curve for Polynomial Regression' l = 0.0 theta = train_linear_reg(X_poly, y, l, iteration=500) plt.figure() plt.plot(X, y, linestyle='', marker='x', color='r') plot_fit(np.min(X), np.max(X), mu, sigma, theta, p) plt.xlabel('Change in water level (x)') plt.ylabel('Water flowing out of the dam (y)') plt.title('Polynomial Regression Fit (lambda = {})'.format(l)) plt.show() error_train, error_val = learning_curve(X_poly, y, X_poly_val, y_val, l) plt.figure() plt.plot(range(1, m + 1), error_train, color='b', marker='v', label='Train') plt.plot(range(1, m + 1), error_val, color='r', label='Cross Validation') plt.legend(loc='upper right') plt.title('Polynomial Regression Learning Curve (lambda = {})'.format(l)) plt.xlabel('Number of training examples') plt.ylabel('Error') plt.show()
cuts_final_without_eta = FitConfig("final_selection_without_eta_cut") cuts_final_without_eta.setFinalCuts("top_mass < 220 && top_mass > 130") # cuts = cuts_final cuts = cuts_final_without_eta # cuts = cuts_2j0t ((y, error), fit) = get_qcd_yield_with_selection(cuts, lepton) # print cuts print "Selection: %s" % cuts.name print "QCD yield in selected region: %.2f +- %.2f, ratio to template from ONLY data %.3f" % ( y, error, y / fit.orig["qcd_no_mc_sub"], ) print "Total: QCD: %.2f +- %.2f, ratio to template from data %.3f" % ( fit.qcd, fit.qcd_uncert, fit.qcd / fit.orig["qcd"], ) print "W+Jets: %.2f +- %.2f, ratio to template: %.2f" % (fit.wjets, fit.wjets_uncert, fit.wjets / fit.wjets_orig) print "Other MC: %.2f +- %.2f, ratio to template: %.2f" % ( fit.nonqcd, fit.nonqcd_uncert, fit.nonqcd / fit.nonqcd_orig, ) print "Fit info:" print fit # make plot plot_fit(fit.var, cuts, fit.dataHisto, fit)
#Run as /scratch/mario/theta/utils2/theta-auto.py get_qcd_yield.py - only works in phys! if __name__ == "__main__": lepton = "mu" #lepton = "ele" cuts_final = FitConfig("final_selection") cuts_2j0t = FitConfig("2j0t_selection") cuts_2j0t.setBaseCuts("n_jets == 2 && n_tags == 0") cuts_final_without_eta = FitConfig("final_selection_without_eta_cut") cuts_final_without_eta.setFinalCuts("top_mass < 220 && top_mass > 130") #cuts = cuts_final cuts = cuts_final_without_eta #cuts = cuts_2j0t ((y, error), fit) = get_qcd_yield_with_selection(cuts, lepton) #print cuts print "Selection: %s" % cuts.name print "QCD yield in selected region: %.2f +- %.2f, ratio to template from ONLY data %.3f" % ( y, error, y / fit.orig["qcd_no_mc_sub"]) print "Total: QCD: %.2f +- %.2f, ratio to template from data %.3f" % ( fit.qcd, fit.qcd_uncert, fit.qcd / fit.orig["qcd"]) print "W+Jets: %.2f +- %.2f, ratio to template: %.2f" % ( fit.wjets, fit.wjets_uncert, fit.wjets / fit.wjets_orig) print "Other MC: %.2f +- %.2f, ratio to template: %.2f" % ( fit.nonqcd, fit.nonqcd_uncert, fit.nonqcd / fit.nonqcd_orig) print "Fit info:" print fit #make plot plot_fit(fit.var, cuts, fit.dataHisto, fit)
time = data.datasets[i][0] signal = data.datasets[i][1] fit_datasets.append([time[n_min:n_max], signal[n_min:n_max]]) plot_datasets.append([time, signal]) #-------------------------------------------------------------------------------------------------- # Fit the data to model #-------------------------------------------------------------------------------------------------- fit_result = do_fit(fit_datasets, parms, averaging_type, fit_function, data.mass_molecules, glbl, data) print(lmfit.fit_report(fit_result)) result_filename = \ write_output.write_fit_out(glbl, data, path_to_fits, cmd_file, new_fit_number, fit_result, plot_datasets) #============================================================================== # uncomment when done with testing #============================================================================== if not debug2: write_output.write_results_excel_file(glbl, data, path_to_fits, new_fit_number, fit_result) plot_fit(path_to_fits + result_filename) # if not calibration run #============================================================================== # if not glbl.functions[i].lower().startswith('cal'): # WriteProbOutput(time, Signal, State, Label, NDataSet, fitResult.params, # averaging_type, angles_list, fit_function) #==============================================================================