def test_track_phi_eta_finder(analysis, mod):
    filename_list = []
    for i in range(1, 6):
        filename_list.append(
            "TestData/Mod %d - trackIDseparateParticles%d.txt" % (mod, i))
    expected_list = ["event 1", "event 2", "event 3", "event 4", "event 5"]
    vertex_list = get_true_vertex()
    phis, etas = get_true_phi_eta()
    phi_real = []
    phi_pred = []
    eta_real = []
    eta_pred = []
    reader = FileReader()
    for i in range(5):
        print("Now testing event %d:" % (i + 1))
        tracks = reader.get_all_tracks(filename_list[i])
        for i_track in range(len(tracks)):
            tracks[i_track].set_vertex(vertex_list[i])
            phi, eta = analysis.track_phi_eta_finder.find_phi_eta(
                tracks[i_track])

            print("True phi: %f\tTrue eta: %f" %
                  (phis[i][i_track], etas[i][i_track]))
            print("Your phi: %f\tYour eta: %f" % (phi, eta))
            phi_real.append(phis[i][i_track])
            eta_real.append(etas[i][i_track])
            phi_pred.append(phi)
            eta_pred.append(eta)
            print("")
    phi_L2 = calc_L2(phi_real, phi_pred)
    eta_L2 = calc_L2(eta_real, eta_pred)
    print("Phi L2 Loss is {}, Eta L2 Loss is {}".format(phi_L2, eta_L2))
def test_vertex_finder(analysis, mod):
    filename_list = []
    for i in range(1, 6):
        filename_list.append(
            "TestData/Mod %d - trackIDseparateParticles%d.txt" % (mod, i))
    expected_list = [
        "vertex z = 0", "vertex z = .3", "vertex z = -.2", "vertex z = .4",
        "vertex z = -.3"
    ]
    reader = FileReader()
    extract_function = lambda filename: reader.get_all_tracks(filename)
    run_function = lambda data: analysis.vertex_finder.find_vertex(data)
    process_function = lambda vertex: "z = %d" % vertex.z
    test_component(filename_list, expected_list, extract_function,
                   run_function, process_function)
def get_true_tracks_for_muon_stub_matching(mod):
    filename_list = []
    for i in range(1, 6):
        filename_list.append(
            "TestData/Mod %d - muonIDseparateParticles%d.txt" % (mod, i))
    vertex_list = get_true_vertex()
    phis, etas = get_true_phi_eta()
    pTs = get_true_pT()

    reader = FileReader()
    true_tracks = []
    for i in range(5):
        tracks = reader.get_all_tracks(filename_list[i])
        for i_track in range(len(tracks)):
            tracks[i_track].set_vertex(vertex_list[i])
            tracks[i_track].set_phi(phis[i][i_track])
            tracks[i_track].set_eta(etas[i][i_track])
            tracks[i_track].set_pT(pTs[i][i_track])
        true_tracks.append(tracks)

    return true_tracks
def get_true_tracks_for_cluster_matching(mod):
    filename_list = [
        "Mod %d - trackIDseparateParticles1.txt" % mod,
        "Mod %d - trackIDseparateParticles2.txt" % mod,
        "Mod %d - clusterIDseparateParticles3.txt" % mod,
        "Mod %d - clusterIDseparateParticles5.txt" % mod,
        "Mod %d - trackIDseparateParticles5.txt" % mod
    ]
    vertex_list = get_true_vertex()
    phis, etas = get_true_phi_eta()
    pTs = get_true_pT()

    final_tracks = []
    reader = FileReader()
    for i in range(5):
        tracks = reader.get_all_tracks("TestData/" + filename_list[i])
        if (i == 2 or i == 3):
            if (i == 2):
                true_tracks = read_track_values(
                    "TestData/Mod %d - clusterIDTrueValues3.txt" % mod)
            else:
                true_tracks = read_track_values(
                    "TestData/Mod %d - clusterIDTrueValues5.txt" % mod)

            for i_track in range(len(tracks)):
                tracks[i_track].set_vertex(vertex_list[i])
                phi, eta, pT = get_values_from_vector(true_tracks[i_track])
                tracks[i_track].set_phi(phi)
                tracks[i_track].set_eta(eta)
                tracks[i_track].set_pT(pT)
            final_tracks.append(tracks)
        else:
            for i_track in range(len(tracks)):
                tracks[i_track].set_vertex(vertex_list[i])
                tracks[i_track].set_phi(phis[i][i_track])
                tracks[i_track].set_eta(etas[i][i_track])
                tracks[i_track].set_pT(pTs[i][i_track])
            final_tracks.append(tracks)
    return final_tracks
def test_track_pT_finder(analysis, mod):
    filename_list = []
    for i in range(1, 6):
        filename_list.append(
            "TestData/Mod %d - trackIDseparateParticles%d.txt" % (mod, i))
    expected_list = ["event 1", "event 2", "event 3", "event 4", "event 5"]
    vertex_list = get_true_vertex()
    phis, etas = get_true_phi_eta()
    pTs = get_true_pT()

    reader = FileReader()
    for i in range(5):
        print("Now testing event %d:" % (i + 1))
        tracks = reader.get_all_tracks(filename_list[i])
        for i_track in range(len(tracks)):
            tracks[i_track].set_vertex(vertex_list[i])
            tracks[i_track].set_phi(phis[i][i_track])
            tracks[i_track].set_eta(etas[i][i_track])
            pT = analysis.track_pT_finder.find_pT(tracks[i_track])

            print("True pT: %f GeV" % pTs[i][i_track])
            print("Your pT: %f GeV" % pT)
            print("")