def fill_validation_candidates(df_reco, tag=""): """ Create histograms for the validation on the event level as a function of the multiplicity """ _ = len(df_reco) # Binning definition binning_nsigma = buildbinning(1, -1000, -998) binning_nsigma += buildbinning(2000, -100, 100) binning_pt = buildbinning(100, 0, 100) binning_eta = buildbinning(100, -1, 1) binning_phi = buildbinning(100, 0, 7) # Make and fill histograms val = ValidationCollection(df_reco, tag=tag) for i in ["TPC", "TOF"]: for j in ["Pi", "K", "Pr"]: for k in ["0", "1"]: yaxis = [binning_nsigma, f"nsig{i}_{j}_{k}"] val.make_and_fill(binning_pt, "p_prong0", *yaxis) val.make_and_fill(binning_pt, "p_prong1", *yaxis) val.make_and_fill(binning_pt, "pt_prong0", *yaxis) val.make_and_fill(binning_pt, "pt_prong1", *yaxis) val.make_and_fill(binning_pt, "pt_cand", *yaxis) val.make_and_fill(binning_eta, "eta_cand", *yaxis) val.make_and_fill(binning_phi, "phi_cand", *yaxis) return val
def fill_validation_candidates(df_reco, tag=""): """ Create histograms for the validation on the event level as a function of the multiplicity """ _ = len(df_reco) # Binning definition binning_nsigma = buildbinning(1, -1000, -998) binning_nsigma += buildbinning(2000, -100, 100) binning_pt = buildbinning(400, 0, 100) binning_pt = buildarray([1, 2, 4, 6, 8, 12, 24]) binning_eta = buildbinning(100, -1, 1) binning_phi = buildbinning(100, 0, 7) binning_inv_mass = buildbinning(100, 2, 2.5) binning_v0m_perc = buildbinning(100, 0, 1) binning_v0m_perc += buildbinning(89, 1.1, 10) binning_v0m_perc += buildbinning(89, 11, 100) binning_ntrklt = buildbinning(200, -0.5, 199.5) # Make and fill histograms val = ValidationCollection(df_reco, tag=tag) # PID information for i in ["TPC", "TOF"]: for j in ["Pi", "K", "Pr"]: for k in ["0", "1"]: yaxis = [binning_nsigma, f"nsig{i}_{j}_{k}"] val.make_and_fill(binning_pt, "p_prong0", *yaxis) val.make_and_fill(binning_pt, "p_prong1", *yaxis) val.make_and_fill(binning_pt, "pt_prong0", *yaxis) val.make_and_fill(binning_pt, "pt_prong1", *yaxis) val.make_and_fill(binning_pt, "pt_cand", *yaxis) val.make_and_fill(binning_eta, "eta_cand", *yaxis) val.make_and_fill(binning_phi, "phi_cand", *yaxis) # Invariant mass val.make_and_fill(binning_inv_mass, "inv_mass", binning_v0m_perc, "perc_v0m") val.make_and_fill(binning_inv_mass, "inv_mass", binning_ntrklt, "n_tracklets_corr") for i, j in enumerate(binning_pt[0:-1]): # Defining pT interval lower_pt = j upper_pt = binning_pt[i + 1] pt_interval = "_pt_cand_{:.1f}-{:.1f}".format(lower_pt, upper_pt) # Cutting the DF in the pT interval df_ptcut = df_reco[df_reco.pt_cand > lower_pt] df_ptcut = df_ptcut[df_ptcut.pt_cand < upper_pt] # Resetting validation collection to use the pT cut DF val.reset_input(df_ptcut, tag=tag + pt_interval) # Filling histograms with inv mass and multiplicity val.make_and_fill(binning_inv_mass, "inv_mass", binning_v0m_perc, "perc_v0m") val.make_and_fill(binning_inv_mass, "inv_mass", binning_ntrklt, "n_tracklets_corr") return val
def fill_validation_candidates(df_reco, tag=""): """ Create histograms for the validation on the event level as a function of the multiplicity """ _ = len(df_reco) # Binning definition binning_nsigma = buildbinning(1, -1000, -998) binning_nsigma += buildbinning(2000, -100, 100) binning_pt = buildbinning(400, 0, 100) binning_eta = buildbinning(100, -1, 1) binning_phi = buildbinning(100, 0, 7) binning_inv_mass = buildbinning(100, 2, 2.5) binning_v0m_perc = buildbinning(100, 0, 1) binning_v0m_perc += buildbinning(89, 1.1, 10) binning_v0m_perc += buildbinning(89, 11, 100) binning_ntrklt = buildbinning(200, -0.5, 199.5) # Make and fill histograms val = ValidationCollection(df_reco, tag=tag) # PID information for i in ["TPC", "TOF"]: for j in ["Pi", "K", "Pr"]: for k in ["0", "1"]: yaxis = [binning_nsigma, f"nsig{i}_{j}_{k}"] val.make_and_fill(binning_pt, "p_prong0", *yaxis) val.make_and_fill(binning_pt, "p_prong1", *yaxis) val.make_and_fill(binning_pt, "pt_prong0", *yaxis) val.make_and_fill(binning_pt, "pt_prong1", *yaxis) val.make_and_fill(binning_pt, "pt_cand", *yaxis) val.make_and_fill(binning_eta, "eta_cand", *yaxis) val.make_and_fill(binning_phi, "phi_cand", *yaxis) # Invariant mass val.make_and_fill(binning_inv_mass, "inv_mass", binning_v0m_perc, "perc_v0m") val.make_and_fill(binning_inv_mass, "inv_mass", binning_ntrklt, "n_tracklets_corr") return val
def fill_validation_vertex(dfevt, dfevtevtsel, df_reco): """ Create histograms for the validation on the event level as a function of the multiplicity """ _ = len(df_reco) __ = len(dfevtevtsel) # Binning definition # binning_xyvtx = buildbinning(100, -1.0, 1) binning_zvtx = buildbinning(100, -15.0, 15) # Make and fill histograms val = ValidationCollection(dfevt[dfevt.is_ev_rej_INT7 == 0]) # val.make_and_fill(binning_xyvtx, "x_vtx_reco") # val.make_and_fill(binning_xyvtx, "y_vtx_reco") val.make_and_fill(binning_zvtx, "z_vtx_reco") return val
def fill_validation_multiplicity(dfevt, dfevtevtsel, df_reco): """ Create histograms for the validation on the event level as a function of the multiplicity """ _ = len(df_reco) # Binning definition binning_ntrklt = buildbinning(200, -0.5, 199.5) binning_ntrklt_diff = buildbinning(10, -0.5, 9.5) binning_v0m = buildbinning(1500, -0.5, 1499.5) binning_zvtx = buildbinning(100, -15.0, 15) binning_v0m_perc = buildbinning(100, 0, 1) binning_v0m_perc += buildbinning(89, 1.1, 10) binning_v0m_perc += buildbinning(89, 11, 100) # Make and fill histograms val = ValidationCollection(dfevt[dfevt.is_ev_rej_INT7 == 0]) # val = ValidationCollection(dfevt[dfevtevtsel]) # val = ValidationCollection(dfevt[dfevt]) for i in ["v0m", "v0m_eq", "v0m_corr", "v0m_eq_corr"]: val.make_and_fill(binning_ntrklt, "n_tracklets", binning_v0m, i) val.make_and_fill(binning_v0m, i, binning_v0m_perc, "perc_v0m") for i in ["n_tracklets", "n_tracklets_corr", "n_tracklets_corr_shm"]: val.make_and_fill(binning_ntrklt, i, binning_v0m_perc, "perc_v0m") val.make_and_fill(binning_v0m_perc, "perc_v0m", binning_ntrklt, i) val.reset_input(dfevtevtsel, "") val.make_and_fill(binning_ntrklt, "n_tracklets", binning_ntrklt, "n_tracklets_corr") val.make_and_fill(binning_zvtx, "z_vtx_reco", binning_ntrklt, "n_tracklets_corr") val.make_and_fill(binning_zvtx, "z_vtx_reco", binning_ntrklt, "n_tracklets") val.make_and_fill(binning_ntrklt, "n_tracklets_corr") val.make_and_fill(binning_ntrklt, "n_tracklets_corr_shm") val.reset_input(filter_bit_df(dfevt, "is_ev_rej", [[4], []]), "pileup") val.make_and_fill(binning_ntrklt, "n_tracklets_corr") # val.reset_input(dfevtevtsel.query("is_ev_sel_shm == 1"), "spd") # val.make_and_fill(binning_ntrklt, "n_tracklets_corr") df_reco["n_tracklets_corr-n_tracklets_corr_sub"] = ( df_reco["n_tracklets_corr"] - df_reco["n_tracklets_corr_sub"] ) for i in [[df_reco, ""], [df_reco[df_reco.is_ev_rej_INT7 == 0], "MB"], [df_reco.query("is_ev_sel_shm == 1"), "HMSPD"], ]: val.reset_input(*i) val.make_and_fill( binning_ntrklt, "n_tracklets_corr", binning_ntrklt_diff, "n_tracklets_corr-n_tracklets_corr_sub", ) val.make_and_fill( binning_ntrklt, "n_tracklets_corr_sub", binning_ntrklt, "n_tracklets_corr" ) val.make_and_fill( binning_ntrklt, "n_tracklets_corr", binning_ntrklt, "n_tracklets_corr_sub" ) return val