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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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