import gzip import pickle #from coffea import hist import coffea import hist import argparse import numpy as np from topcoffea.modules.histEFT import HistEFT parser = argparse.ArgumentParser(description="specify pkl file") parser.add_argument("pkl_file_path", help="Path to the pkl file") # Parse the command-line arguments args = parser.parse_args() pkl_file = args.pkl_file_path hists={} with gzip.open(pkl_file) as f: hin = pickle.load(f) #print(hin) #hist = 'photon_pt_eta' hist = 'photon_pt2_sumw2' hist = 'photon_pt_eta' #hist='photon_pt2' #hist_pt = hin['photon_pt2'] #hist_pt_eta = hin['photon_pt_eta_sumw2'] #print(hist_pt_eta.view(flow=True)) #hist_ph_pt = hin['photon_pt2'] #print(hist_ph_pt.eval({})) #hist_lj0pt = hin['lj0pt'] #print(hist_lj0pt.eval({})) #print(hist_lj0pt.axes['process']) hist_pt = hin['eft_weights'] Zg_ch = [] SR_of_ch = [] SR_sf_ch = [] for ch in hist_pt.axes['channel']: if "Zg" in ch: Zg_ch.append(ch) else: if "of" in ch: SR_of_ch.append(ch) else: SR_sf_ch.append(ch) SR_ch = SR_of_ch+SR_sf_ch #print(hist_pt.integrate('process','tttt_privateUL17').eval({})) print(hist_pt.integrate('channel',SR_ch).integrate('systematic','nominal').integrate('appl','isSR_2lOS_ph').integrate('process')[{'channel':sum}].eval({})) print("") #hist_pt_Zg = hist_pt.integrate('channel',Zg_ch).integrate('systematic','nominal').integrate('appl','isSR_2lOS_ph').integrate('process')[{'channel':sum}] #hist_pt_SR_of = hist_pt.integrate('channel',SR_of_ch).integrate('systematic','nominal').integrate('appl','isSR_2lOS_ph').integrate('process')[{'channel':sum}] #hist_pt_SR_sf = hist_pt.integrate('channel',SR_sf_ch).integrate('systematic','nominal').integrate('appl','isSR_2lOS_ph').integrate('process')[{'channel':sum}] #base_hist_pt_sum = np.sum(hist_pt.eval({})[()]) #print(np.sum(hist_pt_Zg.eval({})[()])) #print("") #print(np.sum(hist_pt_SR_of.eval({})[()])) #print("") #print(np.sum(hist_pt_SR_sf.eval({})[()])) #for wcs in ['cQq11', 'ctq8', 'ctG', 'ctW', 'cpt', 'ctq1', 'cpQM', 'cQq83', 'cQq81', 'cQq13', 'ctZ']: # print(f"\nWC: {wcs}") # if wcs not in ['cpt','cpQM']: continue # for val in list(range(-60, 60)): # print(f"\tSetting wc_val of {wcs} to {val}. All other 0.") # wc_val = np.sum(hist_pt.eval({wcs: val})[()]) # print(f"\t\t{wc_val}, {(wc_val - base_hist_pt_sum)/base_hist_pt_sum}") # print("") # #print(hist_pt.axes['process']) #print(hist_pt.integrate('channel').integrate('systematic','nominal').integrate('appl','isAR_B_ABCD').view(flow=True)) #print("") #print(hist_pt.integrate('channel').integrate('systematic','nonpromptPhUp').integrate('appl','isAR_B_ABCD').view(flow=True)) #print("") #print(hist_pt.integrate('channel').integrate('systematic','nonpromptPhDown').integrate('appl','isAR_B_ABCD').view(flow=True)) #print(h.dense_axes) #h2d = hist_pt_eta.integrate('channel').integrate('systematic','nominal')#.integrate('appl','isAR_B_ABCD') #h1d = hist_pt.integrate('channel').integrate('systematic','nominal')#.integrate('appl','isAR_B_ABCD') #print(h.axes) #print(h2d) #print(h1d.view(flow=True)) #print(h2d.view(flow=True)) #print(hin['photon_pt2'].axes['process']) #print(hin['photon_pt2'].integrate('channel').integrate('systematic','nominal').integrate('appl','isSR_A_ABCD').view(flow=True)) #h = hin['photon_pt2'].integrate('channel').integrate('systematic','nominal').integrate('appl','isSR_A_ABCD') #print(np.sum(h.integrate('process').values(flow=True)[()])) #print(hin['photon_pt2'].axes['eft_coeff']) #print(h.integrate('process')) #print(h.view(flow=True)) #print(*h.values(flow=True)) #print(h.axes["process"]) #hist_pt_SR = hist_pt.integrate('systematic','nominal').integrate('channel',['2los_sf_ph_1j', '2los_of_ph_1j']).integrate('appl','isSR_A_ABCD') #hist_pt_SR = hist_pt_SR[{'channel':['2los_sf_ph_1j', '2los_of_ph_1j']}][{'channel':sum}] #allttg = [] #hh = hist_pt_SR[{'process':['TTGamma_centralUL17','TTGamma_centralUL16APV','TTGamma_centralUL16','TTGamma_centralUL18']}][{'process':sum}] #print(np.sum(hh.values(flow=True))) #hist_pt_Zg_CR = hist_pt.integrate('systematic','nominal').integrate('channel','2los_ph_CR_sf_Zg_1j').integrate('appl','isSR_A_ABCD') #print(np.sum(hist_pt_Zg_CR[{'process':['dataUL16APV']}][{'process':sum}].values(flow=True))) #print(np.sum(hist_pt_Zg_CR[{'process':['dataUL16','dataUL16APV','dataUL17','dataUL18']}][{'process':sum}].values(flow=True))) #hist_pt_Zg_CR = hist_pt.integrate('systematic','nominal').integrate('process','dataUL16') #print(hist_pt_Zg_CR.view(flow=True)) #for ax in hist_pt_Zg_CR.axes['channel']: # if "0j" in ax: # print("Deadling with >0j category") # desired_hist_noappl = hist_pt_Zg_CR.integrate('channel',ax).integrate('appl','isSR_allTrue') # print(f"\nchannel name: {ax}, yield: {np.sum(desired_hist_noappl.values(flow=True))}") # if "_2" in ax: # desired_hist_withappl = hist_pt_Zg_CR.integrate('channel',ax).integrate('appl','isSR_A_ABCD') # print(f"\nchannel name: {ax}, yield: {np.sum(desired_hist_withappl.values(flow=True))}") # # else: # print("Dealing with >1j cats") # desired_hist = hist_pt_Zg_CR.integrate('channel',ax).integrate('appl','isSR_A_ABCD') # print(f"\nchannel name: {ax}, yield: {np.sum(desired_hist.values(flow=True))}") #hh_1 = hist_pt_Zg_CR[{'process':['dataUL16']}][{'process':sum}] #hh_1 = hist_pt_Zg_CR[{'process':['TTGamma_centralUL17','TTGamma_centralUL16APV','TTGamma_centralUL16','TTGamma_centralUL18']}][{'process':sum}] #print(np.sum(hh_1.values(flow=True)))