From f12f768325a6c465bc85c84bd16242fd534abf3e Mon Sep 17 00:00:00 2001 From: Adrian Casais Vidal Date: Tue, 27 Sep 2022 11:18:46 +0200 Subject: [PATCH 01/17] Added StandaloneMuon, VelMuon and FitMuon (to be removed) with their validators. (Help from @dcampora through extreme programming) Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Allen/-/jobs/24817858 --- CMakeLists.txt | 4 + checker/CMakeLists.txt | 1 + .../plotting/muon/muon_id_efficiency_plots.py | 28 +- .../plotting/tracking/momentum_resolution.py | 7 +- checker/tracking/include/TrackChecker.h | 3 + checker/tracking/src/PrepareTracks.cpp | 47 +- configuration/python/AllenConf/HLT1.py | 14 +- .../python/AllenConf/hlt1_muon_lines.py | 54 ++- .../python/AllenConf/hlt1_reconstruction.py | 19 +- .../python/AllenConf/muon_reconstruction.py | 138 +++++- configuration/python/AllenConf/validators.py | 30 +- .../AllenSequences/hlt1_complex_validation.py | 8 +- .../trackmatching_veloscifi_validation.py | 4 +- .../common/include/CopyTrackParameters.cuh | 55 +++ .../muon/include/MuonDefinitions.cuh | 203 ++++++++ device/muon/CMakeLists.txt | 10 +- .../include/ConsolidateMuon.cuh | 58 +++ .../include/ConsolidateVeloMuon.cuh | 58 +++ .../match_velo_muon/include/FindMuonHits.cuh | 71 +++ .../muon/match_velo_muon/include/FitMuon.cuh | 57 +++ .../match_velo_muon/include/MatchVeloMuon.cuh | 70 +++ .../match_velo_muon/src/ConsolidateMuon.cu | 52 ++ .../src/ConsolidateVeloMuon.cu | 69 +++ .../muon/match_velo_muon/src/FindMuonHits.cu | 456 ++++++++++++++++++ device/muon/match_velo_muon/src/FitMuon.cu | 178 +++++++ .../muon/match_velo_muon/src/MatchVeloMuon.cu | 287 +++++++++++ .../lines/muon/include/OneMuonTrackLine.cuh | 85 ++++ .../muon/include/OneVeloMuonTrackLine.cuh | 87 ++++ .../lines/muon/src/OneMuonTrackLine.cu | 25 + .../lines/muon/src/OneVeloMuonTrackLine.cu | 30 ++ .../validators/include/LongTrackValidator.cuh | 9 + device/validators/include/MuonValidator.cuh | 5 + device/validators/src/LongTrackValidator.cu | 37 +- device/validators/src/MuonValidator.cu | 25 +- host/validators/include/HostVeloValidator.h | 1 + host/validators/src/HostVeloValidator.cpp | 1 + stream/sequence/include/Constants.cuh | 6 +- stream/sequence/src/Constants.cpp | 13 + 38 files changed, 2263 insertions(+), 42 deletions(-) create mode 100644 device/muon/match_velo_muon/include/ConsolidateMuon.cuh create mode 100644 device/muon/match_velo_muon/include/ConsolidateVeloMuon.cuh create mode 100644 device/muon/match_velo_muon/include/FindMuonHits.cuh create mode 100644 device/muon/match_velo_muon/include/FitMuon.cuh create mode 100644 device/muon/match_velo_muon/include/MatchVeloMuon.cuh create mode 100644 device/muon/match_velo_muon/src/ConsolidateMuon.cu create mode 100644 device/muon/match_velo_muon/src/ConsolidateVeloMuon.cu create mode 100644 device/muon/match_velo_muon/src/FindMuonHits.cu create mode 100644 device/muon/match_velo_muon/src/FitMuon.cu create mode 100644 device/muon/match_velo_muon/src/MatchVeloMuon.cu create mode 100644 device/selections/lines/muon/include/OneMuonTrackLine.cuh create mode 100644 device/selections/lines/muon/include/OneVeloMuonTrackLine.cuh create mode 100644 device/selections/lines/muon/src/OneMuonTrackLine.cu create mode 100644 device/selections/lines/muon/src/OneVeloMuonTrackLine.cu diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ff7bd1dea7..3c4b9ebead1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -726,6 +726,7 @@ if (NOT STANDALONE) lhcb_finalize_configuration() endif() + # Download external files if in STANDALONE if (STANDALONE) file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/external") @@ -748,3 +749,6 @@ if (STANDALONE) message(STATUS "PARAMFILESROOT set to ${PARAMFILESROOT}") endif() endif() + +file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/plotsfornote) +file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/plotsfornote_root) \ No newline at end of file diff --git a/checker/CMakeLists.txt b/checker/CMakeLists.txt index e945a4b5634..301949babbf 100644 --- a/checker/CMakeLists.txt +++ b/checker/CMakeLists.txt @@ -5,3 +5,4 @@ add_subdirectory(clustering) add_subdirectory(tracking) add_subdirectory(pv) add_subdirectory(selections) +file(COPY plotting DESTINATION ./) \ No newline at end of file diff --git a/checker/plotting/muon/muon_id_efficiency_plots.py b/checker/plotting/muon/muon_id_efficiency_plots.py index 0c3623090c1..5a0e4f0451b 100644 --- a/checker/plotting/muon/muon_id_efficiency_plots.py +++ b/checker/plotting/muon/muon_id_efficiency_plots.py @@ -28,6 +28,14 @@ from common.LHCbStyle import * from common.Legend import * from common.ConfigHistos import * +PLACES = [ + (start, stop - y_width, start + x_width, stop), # top left opt + (start, start, start + x_width, start + y_width), # bottom left opt + (stop - x_width, stop - y_width, stop, stop), # top right opt + (stop - x_width, start, stop, start + y_width), # bottom right opt + (stop - x_width, 0.6 - y_width / 2, stop, 0.6 + y_width / 2), # right + (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2) +] # left def getEfficiencyHistoNames(): @@ -65,7 +73,6 @@ def muonCategoryDict(): # ROOT.TFile.Open("../../../output/Z2MuMu/PrCheckerPLots-Z2MuMu.root", "read"), # ] - f = [ROOT.TFile.Open("../../../output/PrCheckerPlots.root", "read")] outputfile = ROOT.TFile( "../../../plotsfornote_root/muon_id_efficiency_plots.root", "recreate") @@ -87,14 +94,14 @@ for category in muonCategories: title = muonCatDict[category]["title"] + " vs. " + histo canvas = ROOT.TCanvas(title, title) ROOT.gPad.SetTicks() - numeratorName = "Forward/" + muonCatDict[category][ + numeratorName = "velo_tracks muon/" + muonCatDict[category][ "numerator"] + efficiencyHistoDict[histo][ "variable"] + "_reconstructed" print("Opening " + numeratorName) numerator = f[0].Get(numeratorName) for infile in f[1:]: numerator.Add(infile.Get(numeratorName)) - denominatorName = "Forward/" + muonCatDict[category][ + denominatorName = "velo_tracks muon/" + muonCatDict[category][ "denominator"] + efficiencyHistoDict[histo][ "variable"] + "_reconstructible" denominator = f[0].Get(denominatorName) @@ -127,7 +134,7 @@ for category in muonCategories: numerator.Draw("hist bar same") if (category == "matched_isMuon"): - place = find_place(canvas, 3) + place = PLACES[0] else: place = PLACES[0] #place = find_place(canvas, 0) @@ -143,14 +150,15 @@ for category in muonCategories: # Draw second y axis low = 0 high = 1.05 - axis = ROOT.TGaxis(gPad.GetUxmax(), gPad.GetUymin(),gPad.GetUxmax(),gPad.GetUymax(),low,high,510,"+L") + axis = ROOT.TGaxis(gPad.GetUxmax(), gPad.GetUymin(), gPad.GetUxmax(), + gPad.GetUymax(), low, high, 510, "+L") axis.SetTitleFont(132) axis.SetTitleSize(0.06) axis.SetTitleOffset(0.55) axis.SetTitle("Number of events [a.u.]") axis.SetLabelSize(0) axis.Draw() - + canvas.Write() cleantitle = muonCatDict[category]["title"].replace(" ", "").replace( ",", "_").replace("<", "_") @@ -162,9 +170,9 @@ for histo in ghostHistos: title = "muon ID in ghost tracks vs. " + histo canvas = ROOT.TCanvas(title, title) ROOT.gPad.SetTicks() - numeratorName = "Forward/ghost_isMuon_" + efficiencyHistoDict[histo][ - "variable"] + "_reconstructed" - denominatorName = "Forward/" + histo + "_Ghosts" + numeratorName = "velo_tracks muon/ghost_isMuon_" + efficiencyHistoDict[ + histo]["variable"] + "_reconstructed" + denominatorName = "velo_tracks muon/" + histo + "_Ghosts" print("Opening " + numeratorName) print("Opening " + denominatorName) @@ -194,7 +202,7 @@ for histo in ghostHistos: numerator.SetLineColor(ROOT.kWhite) numerator.Draw("hist bar same") - place = find_place(canvas, 0) + place = PLACES[0] legend = TLegend(place[0], place[1], place[2], place[3]) legend.AddEntry(g_efficiency, "muon ID in ghost tracks", "ep") legend.AddEntry(numerator, diff --git a/checker/plotting/tracking/momentum_resolution.py b/checker/plotting/tracking/momentum_resolution.py index 7e91547c9d6..24866e349f4 100644 --- a/checker/plotting/tracking/momentum_resolution.py +++ b/checker/plotting/tracking/momentum_resolution.py @@ -53,7 +53,7 @@ def getHistos(): def getTrackers(): - return ["Upstream", "Forward"] + return ["veloUT_validator", "forward_validator", "velo_muon_tracks"] def getResolutionInSlices(histo2D, var, var_dict): @@ -68,9 +68,10 @@ def getResolutionInSlices(histo2D, var, var_dict): histo1D = histo2D.ProjectionY("_py", i, i, "") if histo1D.GetEntries() >= 100: # fit Gaussian - if tracker == "Forward": + g1 = ROOT.TF1("g1", "gaus", -0.5, 0.5) + if tracker == "forward_validator": g1 = ROOT.TF1("g1", "gaus", -0.05, 0.05) - elif tracker == "Upstream": + elif tracker == "veloUT_validator": g1 = ROOT.TF1("g1", "gaus", -0.5, 0.5) #histo1D.GetYaxis().SetTitle("Entries") #histo1D.GetXaxis().SetTitle("Resolution (%/100)") diff --git a/checker/tracking/include/TrackChecker.h b/checker/tracking/include/TrackChecker.h index 105ac5b8a29..9e049f4020f 100644 --- a/checker/tracking/include/TrackChecker.h +++ b/checker/tracking/include/TrackChecker.h @@ -418,6 +418,9 @@ public: if (std::is_same_v && mcp.hasVelo && mcp.hasUT) { m_histos->fillMomentumResolutionHisto(mcp, track.p, track.qop); } + if (std::is_same_v && mcp.hasVelo && track.p > 0) { + m_histos->fillMomentumResolutionHisto(mcp, track.p, track.qop); + } } for (auto& category : m_categories) { diff --git a/checker/tracking/src/PrepareTracks.cpp b/checker/tracking/src/PrepareTracks.cpp index 5452c26b24c..befff05b539 100644 --- a/checker/tracking/src/PrepareTracks.cpp +++ b/checker/tracking/src/PrepareTracks.cpp @@ -16,6 +16,7 @@ #include "CopyTrackParameters.cuh" #include "ROOTHeaders.h" #include +#include "MuonDefinitions.cuh" std::vector prepareVeloTracks( const unsigned number_of_events, @@ -28,10 +29,8 @@ std::vector prepareVeloTracks( std::vector checker_tracks(event_list.size()); for (unsigned i = 0; i < event_list.size(); i++) { const auto event_number = event_list[i]; - // Tracks of this event auto& tracks = checker_tracks[i]; - Velo::Consolidated::ConstTracks velo_tracks { track_atomics.data(), track_hit_number.data(), event_number, number_of_events}; const unsigned number_of_tracks_event = velo_tracks.number_of_tracks(event_number); @@ -40,7 +39,6 @@ std::vector prepareVeloTracks( for (unsigned i_track = 0; i_track < number_of_tracks_event; i_track++) { auto& t = tracks[i_track]; t.p = 0.f; - const auto velo_lhcb_ids = velo_tracks.get_lhcbids_for_track(track_hits.data(), i_track); for (const auto id : velo_lhcb_ids) { t.addId(id); @@ -51,6 +49,49 @@ std::vector prepareVeloTracks( return checker_tracks; } +std::vector prepareVeloMuonTracks( + const unsigned number_of_events, + gsl::span track_atomics, + gsl::span track_hit_number, + gsl::span track_hits, + gsl::span velomuon_atomics, + // gsl::span velomuon_offsets, + gsl::span velomuon_qop, + gsl::span velomuon_velo_indices, + gsl::span>, // velomuon_muon_id, + gsl::span event_list) +{ + /* Tracks to be checked, save in format for checker */ + std::vector checker_tracks(event_list.size()); + for (unsigned i = 0; i < event_list.size(); i++) { + const auto event_number = event_list[i]; + + // VeloMuon Tracks + const auto event_velomuon_offset = event_number * Muon::Constants::max_number_of_tracks; + const auto event_number_of_velomuon_tracks = velomuon_atomics[event_number]; + // Tracks of this event + auto& tracks = checker_tracks[i]; + Velo::Consolidated::ConstTracks velo_tracks { + track_atomics.data(), track_hit_number.data(), event_number, number_of_events}; + tracks.resize(event_number_of_velomuon_tracks); + for (unsigned i_track = 0; i_track < event_number_of_velomuon_tracks; i_track++) { + auto& t = tracks[i_track]; + const auto i_velo_track = velomuon_velo_indices[event_velomuon_offset + i_track]; + const auto velo_lhcb_ids = velo_tracks.get_lhcbids_for_track(track_hits.data(), i_velo_track); + for (const auto id : velo_lhcb_ids) { + t.addId(id); + } + // momentum + const float qop = velomuon_qop[event_velomuon_offset + i_track]; + + t.p = 1.f / std::abs(qop); + t.qop = qop; + } // tracks + } + + return checker_tracks; +}; + std::vector prepareUTTracks( const unsigned number_of_events, gsl::span velo_track_atomics, diff --git a/configuration/python/AllenConf/HLT1.py b/configuration/python/AllenConf/HLT1.py index 6b736e2ea47..d77eaa80758 100644 --- a/configuration/python/AllenConf/HLT1.py +++ b/configuration/python/AllenConf/HLT1.py @@ -7,7 +7,7 @@ from AllenConf.hlt1_reconstruction import hlt1_reconstruction, validator_node from AllenConf.hlt1_inclusive_hadron_lines import make_track_mva_line, make_two_track_mva_line, make_kstopipi_line, make_two_track_line_ks from AllenConf.hlt1_charm_lines import make_d2kk_line, make_d2pipi_line, make_two_track_mva_charm_xsec_line, make_two_ks_line from AllenConf.hlt1_calibration_lines import make_d2kpi_line, make_passthrough_line, make_rich_1_line, make_rich_2_line, make_displaced_dimuon_mass_line, make_di_muon_mass_align_line -from AllenConf.hlt1_muon_lines import make_single_high_pt_muon_line, make_single_high_pt_muon_no_muid_line, make_low_pt_muon_line, make_di_muon_mass_line, make_di_muon_soft_line, make_low_pt_di_muon_line, make_track_muon_mva_line, make_di_muon_no_ip_line +from AllenConf.hlt1_muon_lines import make_one_velomuon_track_line, make_one_muon_track_line, make_single_high_pt_muon_line, make_single_high_pt_muon_no_muid_line, make_low_pt_muon_line, make_di_muon_mass_line, make_di_muon_soft_line, make_low_pt_di_muon_line, make_track_muon_mva_line, make_di_muon_no_ip_line from AllenConf.hlt1_electron_lines import make_track_electron_mva_line, make_single_high_pt_electron_line, make_lowmass_noip_dielectron_line, make_displaced_dielectron_line, make_displaced_leptons_line, make_single_high_et_line from AllenConf.hlt1_monitoring_lines import make_beam_line, make_velo_micro_bias_line, make_odin_event_type_line, make_beam_gas_line from AllenConf.hlt1_smog2_lines import ( @@ -19,7 +19,6 @@ from AllenConf.validators import rate_validation, routingbits_validation from PyConf.control_flow import NodeLogic, CompositeNode from PyConf.tonic import configurable from AllenConf.lumi_reconstruction import lumi_reconstruction -from AllenCore.generator import is_allen_standalone def default_physics_lines(reconstructed_objects, with_calo, with_muon): @@ -28,6 +27,7 @@ def default_physics_lines(reconstructed_objects, with_calo, with_muon): long_tracks = reconstructed_objects["long_tracks"] long_track_particles = reconstructed_objects["long_track_particles"] secondary_vertices = reconstructed_objects["secondary_vertices"] + velo_muon_objects = reconstructed_objects['velo_muon'] lines = [ make_two_track_mva_charm_xsec_line( @@ -48,6 +48,16 @@ def default_physics_lines(reconstructed_objects, with_calo, with_muon): if with_muon: lines += [ + make_one_velomuon_track_line( + velo_muon_objects['match_velo_muon'], + velo_muon_objects['consolidate_velo_muon'], + velo_muon_objects['prefix_sum_velomuon_tracks'], + name="Hlt1OneVeloMuonTrackLine"), + make_one_muon_track_line( + velo_muon_objects['find_muon_hits'], + velo_muon_objects['consolidate_muon'], + velo_muon_objects['prefix_sum_muon_tracks'], + name="Hlt1OneMuonTrackLine"), make_single_high_pt_muon_line( long_tracks, long_track_particles, name="Hlt1SingleHighPtMuon"), diff --git a/configuration/python/AllenConf/hlt1_muon_lines.py b/configuration/python/AllenConf/hlt1_muon_lines.py index 576e6d98fcf..12790a1ee11 100644 --- a/configuration/python/AllenConf/hlt1_muon_lines.py +++ b/configuration/python/AllenConf/hlt1_muon_lines.py @@ -4,11 +4,63 @@ from AllenAlgorithms.algorithms import ( single_high_pt_muon_line_t, single_high_pt_muon_no_muid_line_t, low_pt_muon_line_t, di_muon_mass_line_t, di_muon_soft_line_t, - low_pt_di_muon_line_t, track_muon_mva_line_t, di_muon_no_ip_line_t) + low_pt_di_muon_line_t, track_muon_mva_line_t, di_muon_no_ip_line_t, + one_muon_track_line_t, one_velomuon_track_line_t) from AllenConf.utils import initialize_number_of_events, mep_layout from AllenCore.generator import make_algorithm +def make_one_velomuon_track_line(velomuon_tracks_algo, + consolidate_tracks_algo, + velomuon_prefix_sum, + name="Hlt1OneVeloMuonTrack", + pre_scaler_hash_string=None, + post_scaler_hash_string=None): + number_of_events = initialize_number_of_events() + velomuon_qop = consolidate_tracks_algo.dev_velomuon_tracks_qop_output_t + dev_number_of_velomuon_tracks = velomuon_tracks_algo.dev_velomuon_number_of_tracks_t + dev_velomuon_tracks_offsets = velomuon_prefix_sum.dev_output_buffer_t + dev_velomuon_tracks = consolidate_tracks_algo.dev_velomuon_tracks_output_t + host_velomuon_total_number_of_tracks = velomuon_prefix_sum.host_total_sum_holder_t + return make_algorithm( + one_velomuon_track_line_t, + name=name, + host_number_of_events_t=number_of_events["host_number_of_events"], + dev_number_of_events_t=number_of_events["dev_number_of_events"], + pre_scaler_hash_string=pre_scaler_hash_string or name + "_pre", + post_scaler_hash_string=post_scaler_hash_string or name + "_post", + dev_velomuon_tracks_t=dev_velomuon_tracks, + dev_velomuon_tracks_qop_t=velomuon_qop, + dev_velomuon_number_of_tracks_t=dev_number_of_velomuon_tracks, + host_velomuon_total_number_of_tracks_t= + host_velomuon_total_number_of_tracks, + dev_velomuon_tracks_offsets_t=dev_velomuon_tracks_offsets) + + +def make_one_muon_track_line(standalone_muon_tracks_algo, + consolidate_tracks_algo, + standalone_muon_prefix_sum, + name="Hlt1OneMuonTrack", + pre_scaler_hash_string=None, + post_scaler_hash_string=None): + number_of_events = initialize_number_of_events() + muon_tracks = consolidate_tracks_algo.dev_muon_tracks_output_t + dev_number_of_muon_tracks = standalone_muon_tracks_algo.dev_muon_number_of_tracks_t + dev_muon_tracks_offsets = standalone_muon_prefix_sum.dev_output_buffer_t + host_muon_total_number_of_tracks = standalone_muon_prefix_sum.host_total_sum_holder_t + return make_algorithm( + one_muon_track_line_t, + name=name, + host_number_of_events_t=number_of_events["host_number_of_events"], + dev_number_of_events_t=number_of_events["dev_number_of_events"], + pre_scaler_hash_string=pre_scaler_hash_string or name + "_pre", + post_scaler_hash_string=post_scaler_hash_string or name + "_post", + dev_muon_tracks_t=muon_tracks, + dev_muon_number_of_tracks_t=dev_number_of_muon_tracks, + host_muon_total_number_of_tracks_t=host_muon_total_number_of_tracks, + dev_muon_tracks_offsets_t=dev_muon_tracks_offsets) + + def make_single_high_pt_muon_line(long_tracks, long_track_particles, name="Hlt1SingleHighPtMuon", diff --git a/configuration/python/AllenConf/hlt1_reconstruction.py b/configuration/python/AllenConf/hlt1_reconstruction.py index b733bc575df..526aa50845b 100755 --- a/configuration/python/AllenConf/hlt1_reconstruction.py +++ b/configuration/python/AllenConf/hlt1_reconstruction.py @@ -5,7 +5,7 @@ from AllenConf.velo_reconstruction import decode_velo, make_velo_tracks, run_vel from AllenConf.ut_reconstruction import decode_ut, make_ut_tracks from AllenConf.scifi_reconstruction import decode_scifi, make_forward_tracks, make_seeding_XZ_tracks, make_seeding_tracks from AllenConf.matching_reconstruction import make_velo_scifi_matches -from AllenConf.muon_reconstruction import decode_muon, is_muon, fake_muon_id +from AllenConf.muon_reconstruction import decode_muon, is_muon, fake_muon_id, make_velo_muon from AllenConf.calo_reconstruction import decode_calo, make_track_matching, make_ecal_clusters from AllenConf.primary_vertex_reconstruction import make_pvs from AllenConf.secondary_vertex_reconstruction import make_kalman_velo_only, make_basic_particles, fit_secondary_vertices @@ -27,11 +27,13 @@ def hlt1_reconstruction(matching=False, velo_tracks = make_velo_tracks(decoded_velo) velo_states = run_velo_kalman_filter(velo_tracks) pvs = make_pvs(velo_tracks) + velo_muon = make_velo_muon() output = { "velo_tracks": velo_tracks, "velo_states": velo_states, - "pvs": pvs + "pvs": pvs, + 'velo_muon': velo_muon } if matching: @@ -86,10 +88,11 @@ def hlt1_reconstruction(matching=False, secondary_vertices = fit_secondary_vertices( long_tracks, pvs, kalman_velo_only, long_track_particles) - + velo_muon = make_velo_muon() output.update({ "long_track_particles": long_track_particles, - "secondary_vertices": secondary_vertices + "secondary_vertices": secondary_vertices, + "velo_muon": velo_muon }) return output @@ -137,18 +140,20 @@ def validator_node(reconstructed_objects, line_algorithms, matching, with_ut, validators += [ make_composite_node_with_gec( "long_validation", - long_validation(reconstructed_objects["long_tracks"]), + long_validation(reconstructed_objects["long_tracks"], + reconstructed_objects["velo_muon"]), with_scifi=True, with_ut=with_ut) ] if with_muon: + validators += make_composite_node_with_gec( "muon_validation", - muon_validation(reconstructed_objects["muonID"]), + muon_validation(reconstructed_objects["muonID"], + reconstructed_objects['velo_muon']), with_scifi=True, with_ut=with_ut), - validators += [ make_composite_node_with_gec( "pv_validation", diff --git a/configuration/python/AllenConf/muon_reconstruction.py b/configuration/python/AllenConf/muon_reconstruction.py index 1ed0b169d30..903c658e4d1 100644 --- a/configuration/python/AllenConf/muon_reconstruction.py +++ b/configuration/python/AllenConf/muon_reconstruction.py @@ -4,7 +4,9 @@ from AllenAlgorithms.algorithms import ( data_provider_t, muon_calculate_srq_size_t, host_prefix_sum_t, muon_populate_tile_and_tdc_t, muon_add_coords_crossing_maps_t, - muon_populate_hits_t, is_muon_t, empty_lepton_id_t) + muon_populate_hits_t, is_muon_t, empty_lepton_id_t, find_muon_hits_t, + fit_muon_t, ut_select_velo_tracks_t, match_velo_muon_t, consolidate_muon_t, + consolidate_velo_muon_t) from AllenConf.utils import initialize_number_of_events from AllenCore.generator import make_algorithm @@ -165,3 +167,137 @@ def muon_id(): muonID = is_muon(decoded_muon, long_tracks) alg = muonID["dev_is_muon"].producer return alg + + +def make_velo_muon(): + from AllenConf.velo_reconstruction import decode_velo, make_velo_tracks + from AllenConf.ut_reconstruction import decode_ut, make_ut_tracks + from AllenConf.velo_reconstruction import run_velo_kalman_filter + + number_of_events = initialize_number_of_events() + host_number_of_events = number_of_events["host_number_of_events"] + dev_number_of_events = number_of_events["dev_number_of_events"] + decoded_velo = decode_velo() + velo_tracks = make_velo_tracks(decoded_velo) + decoded_ut = decode_ut() + decoded_muon = decode_muon() + ut_tracks = make_ut_tracks(decoded_ut, velo_tracks) + velo_tracks = ut_tracks["velo_tracks"] + velo_states = ut_tracks["velo_states"] + + velo_kalman_filter = run_velo_kalman_filter(velo_tracks) + + ut_select_velo_tracks = make_algorithm( + ut_select_velo_tracks_t, + name="ut_select_velo_tracks", + host_number_of_events_t=number_of_events["host_number_of_events"], + host_number_of_reconstructed_velo_tracks_t=velo_tracks[ + "host_number_of_reconstructed_velo_tracks"], + dev_velo_tracks_view_t=velo_tracks["dev_velo_tracks_view"], + dev_velo_states_view_t=velo_states[ + "dev_velo_kalman_beamline_states_view"], + dev_accepted_velo_tracks_t=velo_tracks["dev_accepted_velo_tracks"]) + + find_muon_hits = make_algorithm( + find_muon_hits_t, + name='find_muon_hits', + host_number_of_events_t=number_of_events["host_number_of_events"], + dev_number_of_events_t=number_of_events["dev_number_of_events"], + host_number_of_reconstructed_ut_tracks_t=ut_tracks[ + "host_number_of_reconstructed_ut_tracks"], + dev_offsets_ut_tracks_t=ut_tracks["dev_offsets_ut_tracks"], + dev_offsets_ut_track_hit_number_t=ut_tracks[ + "dev_offsets_ut_track_hit_number"], + dev_ut_qop_t=ut_tracks["dev_ut_qop"], + dev_ut_track_velo_indices_t=ut_tracks["dev_ut_track_velo_indices"], + dev_offsets_all_velo_tracks_t=velo_tracks[ + "dev_offsets_all_velo_tracks"], + dev_offsets_velo_track_hit_number_t=velo_tracks[ + "dev_offsets_velo_track_hit_number"], + dev_velo_kalman_beamline_states_t=velo_kalman_filter[ + "dev_velo_kalman_beamline_states"], + dev_station_ocurrences_offset_t=decoded_muon[ + "dev_station_ocurrences_offset"], + dev_muon_hits_t=decoded_muon["dev_muon_hits"], + ) + prefix_sum_muon_tracks = make_algorithm( + host_prefix_sum_t, + name="prefix_sum_muon_tracks_find_hits", + dev_input_buffer_t=find_muon_hits.dev_muon_number_of_tracks_t) + + consolidate_muon = make_algorithm( + consolidate_muon_t, + name='consolidate_muon_t', + host_number_of_events_t=number_of_events["host_number_of_events"], + dev_number_of_events_t=number_of_events["dev_number_of_events"], + dev_muon_tracks_input_t=find_muon_hits.dev_muon_tracks_t, + # dev_muon_tracks_tx_input_t=find_muon_hits.dev_muon_tracks_tx_t, + # dev_muon_tracks_ty_input_t=find_muon_hits.dev_muon_tracks_ty_t, + # dev_muon_tracks_state_muon_index_input_t=find_muon_hits. + # dev_muon_tracks_states_t, + dev_muon_number_of_tracks_t=find_muon_hits.dev_muon_number_of_tracks_t, + dev_muon_tracks_offsets_t=prefix_sum_muon_tracks.dev_output_buffer_t, + host_muon_total_number_of_tracks_t=prefix_sum_muon_tracks. + host_total_sum_holder_t, + ) + + match_velo_muon = make_algorithm( + match_velo_muon_t, + name='match_velo_muon', + host_number_of_events_t=number_of_events["host_number_of_events"], + dev_number_of_events_t=number_of_events["dev_number_of_events"], + dev_muon_tracks_t=consolidate_muon.dev_muon_tracks_output_t, + dev_muon_number_of_tracks_t=find_muon_hits.dev_muon_number_of_tracks_t, + host_muon_total_number_of_tracks_t=prefix_sum_muon_tracks. + host_total_sum_holder_t, + host_number_of_reconstructed_velo_tracks_t=velo_tracks[ + "host_number_of_reconstructed_velo_tracks"], + dev_muon_tracks_offsets_t=prefix_sum_muon_tracks.dev_output_buffer_t, + dev_station_ocurrences_offset_t=decoded_muon[ + "dev_station_ocurrences_offset"], + dev_muon_hits_t=decoded_muon["dev_muon_hits"], + dev_ut_number_of_selected_velo_tracks_t=ut_select_velo_tracks. + dev_ut_number_of_selected_velo_tracks_t, + dev_ut_selected_velo_tracks_t=ut_select_velo_tracks. + dev_ut_selected_velo_tracks_t, + dev_velo_tracks_view_t=velo_tracks["dev_velo_tracks_view"], + dev_velo_states_view_t=velo_states[ + "dev_velo_kalman_endvelo_states_view"], + # dev_muon_tracks_tx_t=consolidate_muon.dev_muon_tracks_tx_output_t, + # dev_muon_tracks_ty_t=consolidate_muon.dev_muon_tracks_ty_output_t, + # dev_muon_tracks_state_muon_index_t=consolidate_muon. + # dev_muon_tracks_state_muon_index_output_t) + ) + + prefix_sum_velomuon_tracks = make_algorithm( + host_prefix_sum_t, + name="prefix_sum_muon_tracks", + dev_input_buffer_t=match_velo_muon.dev_velomuon_number_of_tracks_t) + + consolidate_velo_muon = make_algorithm( + consolidate_velo_muon_t, + name="consolidate_velo_muon_t", + host_number_of_events_t=number_of_events["host_number_of_events"], + dev_number_of_events_t=number_of_events["dev_number_of_events"], + dev_velomuon_number_of_tracks_t=match_velo_muon. + dev_velomuon_number_of_tracks_t, + dev_velomuon_tracks_offsets_t=prefix_sum_velomuon_tracks. + dev_output_buffer_t, + host_velomuon_total_number_of_tracks_t=prefix_sum_velomuon_tracks. + host_total_sum_holder_t, + dev_velomuon_tracks_velo_indices_input_t=match_velo_muon. + dev_velomuon_tracks_velo_indices_t, + dev_velomuon_tracks_muon_indices_input_t=match_velo_muon. + dev_velomuon_tracks_muon_indices_t, + dev_velomuon_tracks_qop_input_t=match_velo_muon. + dev_velomuon_tracks_qop_t, + dev_velomuon_tracks_input_t=match_velo_muon.dev_velomuon_tracks_t) + + return { + 'find_muon_hits': find_muon_hits, + 'consolidate_muon': consolidate_muon, + 'match_velo_muon': match_velo_muon, + 'prefix_sum_muon_tracks': prefix_sum_muon_tracks, + 'prefix_sum_velomuon_tracks': prefix_sum_velomuon_tracks, + 'consolidate_velo_muon': consolidate_velo_muon + } diff --git a/configuration/python/AllenConf/validators.py b/configuration/python/AllenConf/validators.py index 82fedde9d1e..63b4fcf5172 100644 --- a/configuration/python/AllenConf/validators.py +++ b/configuration/python/AllenConf/validators.py @@ -14,6 +14,8 @@ from AllenAlgorithms.algorithms import (host_prefix_sum_t, seeding_copy_trackXZ_hit_number_t) from AllenConf.scifi_reconstruction import decode_scifi, make_seeding_XZ_tracks +from AllenConf.velo_reconstruction import decode_velo, make_velo_tracks, run_velo_kalman_filter + def mc_data_provider(): host_mc_particle_banks = make_algorithm( @@ -78,10 +80,11 @@ def veloUT_validation(veloUT_tracks, name="veloUT_validator"): dev_ut_qop_t=veloUT_tracks["dev_ut_qop"]) -def long_validation(long_tracks, name="long_validator"): +def long_validation(long_tracks, velo_muon, name="long_validator"): mc_events = mc_data_provider() number_of_events = initialize_number_of_events() - + decoded_velo = decode_velo() + velo_tracks = make_velo_tracks(decoded_velo) velo_kalman_filter = long_tracks["velo_kalman_filter"] return make_algorithm( @@ -91,11 +94,20 @@ def long_validation(long_tracks, name="long_validator"): host_mc_events_t=mc_events.host_mc_events_t, host_number_of_reconstructed_long_tracks_t=long_tracks[ "host_number_of_reconstructed_scifi_tracks"], + host_number_of_reconstructed_velomuon_tracks_t=velo_muon[ + 'prefix_sum_velomuon_tracks'].host_total_sum_holder_t, dev_velo_states_view_t=velo_kalman_filter[ "dev_velo_kalman_endvelo_states_view"], + dev_velo_tracks_view_t=velo_tracks['dev_velo_tracks_view'], dev_multi_event_long_tracks_view_t=long_tracks[ "dev_multi_event_long_tracks_view"], - dev_offsets_long_tracks_t=long_tracks["dev_offsets_long_tracks"]) + dev_offsets_long_tracks_t=long_tracks["dev_offsets_long_tracks"], + dev_offsets_velomuon_tracks_t=velo_muon["prefix_sum_velomuon_tracks"]. + dev_output_buffer_t, + dev_velomuon_tracks_qop_t=velo_muon['consolidate_velo_muon']. + dev_velomuon_tracks_qop_output_t, + dev_velomuon_tracks_velo_indices_t=velo_muon['consolidate_velo_muon']. + dev_velomuon_tracks_velo_indices_output_t) def seeding_xz_validation(name="seed_xz_validator"): @@ -191,11 +203,13 @@ def velo_scifi_dump(matched_tracks, name="veloscifi_dump"): dev_seeding_states_t=seeding_tracks["dev_seeding_states"]) -def muon_validation(muonID, name="muon_validator"): +def muon_validation(muonID, velo_muon, name="muon_validator"): mc_events = mc_data_provider() number_of_events = initialize_number_of_events() long_tracks = muonID["long_tracks"] + decoded_velo = decode_velo() + velo_tracks = make_velo_tracks(decoded_velo) velo_kalman_filter = long_tracks["velo_kalman_filter"] return make_algorithm( @@ -205,12 +219,18 @@ def muon_validation(muonID, name="muon_validator"): host_mc_events_t=mc_events.host_mc_events_t, host_number_of_reconstructed_long_tracks_t=long_tracks[ "host_number_of_reconstructed_scifi_tracks"], + host_number_of_reconstructed_velo_tracks_t=velo_tracks[ + "host_number_of_reconstructed_velo_tracks"], dev_velo_states_view_t=velo_kalman_filter[ "dev_velo_kalman_endvelo_states_view"], dev_multi_event_long_tracks_view_t=long_tracks[ "dev_multi_event_long_tracks_view"], + dev_velo_tracks_view_t=velo_tracks['dev_velo_tracks_view'], dev_offsets_long_tracks_t=long_tracks["dev_offsets_long_tracks"], - dev_is_muon_t=muonID["dev_is_muon"]) + dev_offsets_velo_tracks_t=velo_tracks["dev_offsets_all_velo_tracks"], + dev_is_muon_t=muonID["dev_is_muon"], + dev_match_velo_muon_t=velo_muon['match_velo_muon']. + dev_velomuon_muon_id_t) def pv_validation(pvs, name="pv_validator"): diff --git a/configuration/python/AllenSequences/hlt1_complex_validation.py b/configuration/python/AllenSequences/hlt1_complex_validation.py index 45cf3371156..70c8ff26b5f 100644 --- a/configuration/python/AllenSequences/hlt1_complex_validation.py +++ b/configuration/python/AllenSequences/hlt1_complex_validation.py @@ -12,6 +12,7 @@ from AllenConf.validators import ( from PyConf.control_flow import NodeLogic, CompositeNode from AllenCore.generator import generate +from AllenConf.muon_reconstruction import make_velo_muon # Reconstructed objects with make_ut_tracks.bind(restricted=False): @@ -19,6 +20,7 @@ with make_ut_tracks.bind(restricted=False): restricted_hlt1_reconstruction = hlt1_reconstruction() gec = make_gec(count_scifi=True, count_ut=True) +velo_muon = make_velo_muon() lines = [] with line_maker.bind(prefilter=gec): @@ -87,25 +89,27 @@ validators_leaf = CompositeNode( make_composite_node_with_gec( "restricted_long_validator", long_validation(restricted_hlt1_reconstruction["long_tracks"], + restricted_hlt1_reconstruction['velo_muon'], "restricted_long_validator"), with_scifi=True, with_ut=True), make_composite_node_with_gec( "non-restricted_long_validator", long_validation(non_restricted_hlt1_reconstruction["long_tracks"], + non_restricted_hlt1_reconstruction['velo_muon'], "non-restricted_long_validator"), with_scifi=True, with_ut=True), make_composite_node_with_gec( "restricted_muon_validation", muon_validation(restricted_hlt1_reconstruction["muonID"], - "restricted_muon_validation"), + velo_muon, "restricted_muon_validation"), with_scifi=True, with_ut=True), make_composite_node_with_gec( "non-restricted_muon_validation", muon_validation(non_restricted_hlt1_reconstruction["muonID"], - "non-restricted_muon_validation"), + velo_muon, "non-restricted_muon_validation"), with_scifi=True, with_ut=True), make_composite_node_with_gec( diff --git a/configuration/python/AllenSequences/trackmatching_veloscifi_validation.py b/configuration/python/AllenSequences/trackmatching_veloscifi_validation.py index b7d6110afbc..b2786206cae 100644 --- a/configuration/python/AllenSequences/trackmatching_veloscifi_validation.py +++ b/configuration/python/AllenSequences/trackmatching_veloscifi_validation.py @@ -3,6 +3,7 @@ ############################################################################### from AllenConf.scifi_reconstruction import decode_scifi, seeding_xz, make_seeding_XZ_tracks, make_seeding_tracks from AllenConf.matching_reconstruction import make_velo_scifi_matches +from AllenConf.muon_reconstruction import make_velo_muon from AllenConf.hlt1_reconstruction import make_composite_node_with_gec from AllenConf.validators import velo_validation, seeding_validation, seeding_xz_validation, long_validation, velo_scifi_dump from AllenConf.velo_reconstruction import decode_velo, make_velo_tracks, run_velo_kalman_filter @@ -20,7 +21,8 @@ seed = seeding_validation(seeding_tracks) seed_xz = seeding_xz_validation() matched_tracks = make_velo_scifi_matches(velo_tracks, velo_states, seeding_tracks) -velo_scifi = long_validation(matched_tracks) +velo_muon = make_velo_muon() +velo_scifi = long_validation(matched_tracks, velo_muon) velo_scifi_matching_sequence = CompositeNode( "Validators", [ make_composite_node_with_gec( diff --git a/device/event_model/common/include/CopyTrackParameters.cuh b/device/event_model/common/include/CopyTrackParameters.cuh index 94c4071c014..dafdce9bbbf 100644 --- a/device/event_model/common/include/CopyTrackParameters.cuh +++ b/device/event_model/common/include/CopyTrackParameters.cuh @@ -7,6 +7,61 @@ #include "PV_Definitions.cuh" #include "patPV_Definitions.cuh" +__device__ inline void prepare_velo_tracks( + const Allen::Views::Velo::Consolidated::Tracks event_velo_tracks, + Checker::Track* velo_checker_tracks) +{ + const unsigned number_of_tracks_event = event_velo_tracks.size(); + for (unsigned i_track = 0; i_track < number_of_tracks_event; i_track++) { + Checker::Track t; + const auto velo_track = event_velo_tracks.track(i_track); + + const auto total_number_of_hits = velo_track.number_of_hits(); + for (unsigned ihit = 0; ihit < total_number_of_hits; ihit++) { + const auto hit = velo_track.hit(ihit); + t.addId(hit.id()); + } + velo_checker_tracks[i_track] = t; + } +} + +__device__ inline void prepare_velomuon_tracks( + const unsigned number_of_tracks_event, + const Allen::Views::Velo::Consolidated::Tracks event_velo_tracks, + const Allen::Views::Physics::KalmanStates endvelo_states, + const float* velomuon_qop, + const unsigned* velomuon_velo_indices, + Checker::Track* velomuon_checker_tracks) +{ + for (unsigned i_track = 0; i_track < number_of_tracks_event; i_track++) { + Checker::Track t; + const auto velo_track = event_velo_tracks.track(velomuon_velo_indices[i_track]); + const auto velo_track_index = velo_track.track_index(); + const auto velo_state = endvelo_states.state(velo_track_index); + t.velo_track_index = velo_track_index; + // momentum + const auto qop = velomuon_qop[i_track]; + t.p = 1.f / std::abs(qop); + t.qop = qop; + // direction at first state -> velo state of track + const float tx = velo_state.tx(); + const float ty = velo_state.ty(); + const float slope2 = tx * tx + ty * ty; + t.pt = std::sqrt(slope2 / (1.0f + slope2)) / std::fabs(qop); + // pseudorapidity + const float rho = std::sqrt(slope2); + t.rho = rho; + + // add all hits + const auto total_number_of_hits = velo_track.number_of_hits(); + for (unsigned ihit = 0; ihit < total_number_of_hits; ihit++) { + const auto hit = velo_track.hit(ihit); + t.addId(hit.id()); + } + velomuon_checker_tracks[i_track] = t; + } +} + __device__ inline void prepare_long_tracks( const Allen::Views::Physics::LongTracks event_long_tracks, const Allen::Views::Physics::KalmanStates endvelo_states, diff --git a/device/event_model/muon/include/MuonDefinitions.cuh b/device/event_model/muon/include/MuonDefinitions.cuh index 4a0c40116e2..84a81082d11 100644 --- a/device/event_model/muon/include/MuonDefinitions.cuh +++ b/device/event_model/muon/include/MuonDefinitions.cuh @@ -95,9 +95,212 @@ namespace Muon { __host__ __device__ const float* params_begin_const() const { return reinterpret_cast(m_params); } }; + struct MatchVeloWindows { + float Xmax[16] = { + // R1 R2 R3 R4 + 100., + 200., + 300., + 400., // M2 + 100., + 200., + 300., + 400., // M3 + 400., + 400., + 400., + 400., // M4 + 400., + 400., + 400., + 400.}; // M5 + + float Ymax[16] = { + // R1 R2 R3 R4 + 60., + 120., + 180., + 240., // M2 + 60., + 120., + 240., + 240., // M3 + 60., + 120., + 240., + 480., // M4 + // 60., + // 120., + // 240., + // 480., // M5 + 60., + 120., + 240., + 480., // M5 + + }; + + float tolForRegion[4] = {2.0, 4.0, 8.0, 10.0}; + float z[4] {15205.f, 16400.f, 17550.f, 18850.f}; + float xcale[4] {0.06f, 0.1f, 0.15f, 0.15f}; + float distance_cut[5] {30 * 30, 60 * 60, 110 * 110, 200 * 200}; + }; + static constexpr unsigned max_number_of_tracks = 120; + struct MomParam { + float C0[10] = { + 113.21271, + -115.8049, + -657.5307, + 60.049296, + -491.3313, + 2381.3909, + 2684.9605, + 12571.073, + 45041.933, + -85422.44, + }; + float C1[14] = { + -0.154380, + -119.347058, + -841.363037, + 16543.416488, + -170652.099599, + 28.940644, + -2313.431503, + 45068.764734, + 3439.026842, + -143227.239737, + 1796054.751602, + 596.408641, + -226695.997197, + 471660.297116, + }; + float C2[10] = {-48.940097, + -213.741769, + -3006.193908, + 135.633447, + -822.544939, + 12407.568991, + 18899.246135, + 40529.981272, + 184896.154097, + -376756.125511}; + float C3[14] = { + 0.215404, + -122.816177, + -902.317011, + 25227.824861, + -206136.914140, + -134.229687, + 12320.745080, + -247916.687297, + 6915.080393, + -232643.972656, + 2009303.058464, + -46719.185323, + 2276730.013659, + 177694.558072, + }; + float C4[10] = { + -23.473752, + -10.128032, + -889.713080, + 468.227962, + -11156.964015, + -2248.650393, + 11765.688620, + 59454.044613, + 10303.576287, + 137177.920462, + }; + }; } // namespace Constants + namespace TrackMatchingConsts { + constexpr float z_match = 5240.0f; // FIXME_GEOMETRY_HARDCODING + constexpr float zMatchY = 10000.f; // in mm + + constexpr float dxTol = 8.f; // in mm // to scan + constexpr float dxTolSlope = 80.f; // in mm // to scan + + constexpr float dyTol = 6.f; // in mm // to scan + constexpr float dyTolSlope = 300.f; // in mm // to scan + constexpr float fastYTol = 250.f; // to scan + // The main cut values + // constexpr float maxChi2 = 15.f; // to scan + constexpr float maxChi2 = 2.5f; // to scan + constexpr float minNN = 0.25f; // not used so far + + // Magnetic parametrization from Velo + SciFi tracks + struct MagnetParametrization { + float zMagnetParamsMatch[5] {5287.6f, -7.98878f, 317.683f, 0.0119379f, -1418.42f}; + float bendYParams[2] {-347.801f, -42663.6f}; + }; + } // namespace TrackMatchingConsts + + struct MatchingResult { + float dSlopeX; + float dSlopeY; + float distX; + float distY; + float zForX; + float chi2; + }; } // namespace Muon +struct MuonTrack { + int m_hits[4] {-1, -1, -1, -1}; + int m_velo_index = -1; + uint8_t m_number_of_hits = 0; + float m_tx; + float m_ty; + float m_ax; + float m_ay; + float m_chi2x; + float m_chi2y; + float m_p; + float m_chi2match; + float m_state_muon_index; + + __host__ __device__ MuonTrack() {} + + __host__ __device__ void add_hit_to_station(const unsigned hit_index, const int station_index) + { + ++m_number_of_hits; + m_hits[station_index] = hit_index; + } + + __host__ __device__ int hit(const int station_index) const { return m_hits[station_index]; } + + __host__ __device__ uint8_t number_of_hits() const { return m_number_of_hits; } + + // __host__ __device__ void set_velo_index(int velo_index){ m_velo_index = velo_index;} + + __host__ __device__ void set_tx(float tx) { m_tx = tx; } + __host__ __device__ void set_ty(float ty) { m_ty = ty; } + __host__ __device__ void set_ax(float ax) { m_ax = ax; } + __host__ __device__ void set_ay(float ay) { m_ay = ay; } + __host__ __device__ void set_chi2x(float chi2x) { m_chi2x = chi2x; } + __host__ __device__ void set_chi2y(float chi2y) { m_chi2y = chi2y; } + __host__ __device__ void set_p(float p) { m_p = p; } + __host__ __device__ void set_chi2match(float chi2) { m_chi2match = chi2; } + __host__ __device__ void set_state(int state) { m_state_muon_index = state; } + __host__ __device__ void set_velo_index(int idx) { m_velo_index = idx; } + + __host__ __device__ float get_tx() const { return m_tx; } + __host__ __device__ float get_ty() const { return m_ty; } + __host__ __device__ float get_ax() const { return m_ax; } + __host__ __device__ float get_ay() const { return m_ay; } + __host__ __device__ float get_chi2x() const { return m_chi2x; } + __host__ __device__ float get_chi2y() const { return m_chi2y; } + __host__ __device__ float get_p() const { return m_p; } + __host__ __device__ float get_chi2match() const { return m_chi2match; } + __host__ __device__ int get_state() const { return m_state_muon_index; } + __host__ __device__ int get_velo_index() const { return m_velo_index; } + __host__ __device__ float state_x() const { return m_tx * 15205.f + m_ax; } + __host__ __device__ float state_y() const { return m_ty * 15205.f + m_ay; } + __host__ __device__ float state_z() const { return 15205.f; } +}; + namespace MatchUpstreamMuon { static constexpr float kickOffset = 338.92f * Gaudi::Units::MeV; // KickOffset static constexpr float kickScale = 1218.62f * Gaudi::Units::MeV; // KickScale diff --git a/device/muon/CMakeLists.txt b/device/muon/CMakeLists.txt index 80373cd7b22..a6f216f3720 100644 --- a/device/muon/CMakeLists.txt +++ b/device/muon/CMakeLists.txt @@ -6,7 +6,11 @@ file(GLOB muon_classification "classification/src/*cu") file(GLOB muon_filtering "is_muon/src/*cu") file(GLOB muon_decoding "decoding/src/*cu") file(GLOB muon_upstream_filtering "match_upstream_muon/src/*cu") +file(GLOB muon_velo_filtering "match_velo_muon/src/*cu") file(GLOB muon_filter "muon_filter/src/*cu") +file(GLOB consolidate_muon "consolidate_muon/src/*cu") + + allen_add_device_library(Muon STATIC ${muon_filtering} @@ -14,7 +18,9 @@ allen_add_device_library(Muon STATIC ${muon_classification} ${muon_decoding} ${muon_upstream_filtering} + ${muon_velo_filtering} ${muon_filter} + ${consolidate_muon} ) add_library(MuonCommon INTERFACE) @@ -32,4 +38,6 @@ target_include_directories(Muon PUBLIC $ $ $ - $) + $ + $ + ) diff --git a/device/muon/match_velo_muon/include/ConsolidateMuon.cuh b/device/muon/match_velo_muon/include/ConsolidateMuon.cuh new file mode 100644 index 00000000000..7af0e366dfa --- /dev/null +++ b/device/muon/match_velo_muon/include/ConsolidateMuon.cuh @@ -0,0 +1,58 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#pragma once + +#include "AlgorithmTypes.cuh" +#include "MuonDefinitions.cuh" +#include "UTConsolidated.cuh" +#include "VeloConsolidated.cuh" +#include "States.cuh" + +static constexpr int M2 {0}, M3 {1}, M4 {2}, M5 {3}; + +namespace consolidate_muon { + struct Parameters { + HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; + MASK_INPUT(dev_event_list_t) dev_event_list; + DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; + // DEVICE_INPUT(dev_station_ocurrences_offset_t, unsigned) dev_station_ocurrences_offset; + // DEVICE_INPUT(dev_muon_hits_t, char) dev_muon_hits; + DEVICE_INPUT(dev_muon_tracks_input_t, MuonTrack) dev_muon_tracks_input; + // DEVICE_INPUT(dev_muon_tracks_tx_input_t, float) dev_muon_tracks_tx_input; + // DEVICE_INPUT(dev_muon_tracks_ty_input_t, float) dev_muon_tracks_ty_input; + // DEVICE_INPUT(dev_muon_tracks_state_muon_index_input_t, int) dev_muon_tracks_state_muon_index_input; + DEVICE_INPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; + + DEVICE_INPUT(dev_muon_tracks_offsets_t, unsigned) dev_muon_tracks_offsets; + HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; + + DEVICE_OUTPUT(dev_muon_tracks_output_t, MuonTrack) dev_muon_tracks_output; + // DEVICE_OUTPUT(dev_muon_tracks_tx_output_t, float) dev_muon_tracks_tx_output; + // DEVICE_OUTPUT(dev_muon_tracks_ty_output_t, float) dev_muon_tracks_ty_output; + // DEVICE_OUTPUT(dev_muon_tracks_state_muon_index_output_t, int) dev_muon_tracks_state_muon_index_output; + + PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; + }; + + __global__ void consolidate_muon(Parameters); + + struct consolidate_muon_t : public DeviceAlgorithm, Parameters { + void set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions&, + const Constants&, + const HostBuffers&) const; + + void operator()( + const ArgumentReferences& arguments, + const RuntimeOptions& runtime_options, + const Constants& constants, + HostBuffers& host_buffers, + const Allen::Context& context) const; + + private: + Property m_block_dim {this, {{64, 1, 1}}}; + }; + +} // namespace consolidate_muon \ No newline at end of file diff --git a/device/muon/match_velo_muon/include/ConsolidateVeloMuon.cuh b/device/muon/match_velo_muon/include/ConsolidateVeloMuon.cuh new file mode 100644 index 00000000000..ed325c8154e --- /dev/null +++ b/device/muon/match_velo_muon/include/ConsolidateVeloMuon.cuh @@ -0,0 +1,58 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#pragma once + +#include "AlgorithmTypes.cuh" +#include "MuonDefinitions.cuh" +#include "UTConsolidated.cuh" +#include "VeloConsolidated.cuh" +#include "States.cuh" + +static constexpr int M2 {0}, M3 {1}, M4 {2}, M5 {3}; + +namespace consolidate_velo_muon { + struct Parameters { + HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; + MASK_INPUT(dev_event_list_t) dev_event_list; + DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; + + DEVICE_INPUT(dev_velomuon_number_of_tracks_t, unsigned) dev_velomuon_number_of_tracks; + + DEVICE_INPUT(dev_velomuon_tracks_offsets_t, unsigned) dev_velomuon_tracks_offsets; + HOST_INPUT(host_velomuon_total_number_of_tracks_t, unsigned) host_velomuon_total_number_of_tracks; + + DEVICE_INPUT(dev_velomuon_tracks_input_t, MuonTrack) dev_velomuon_tracks_input; + DEVICE_INPUT(dev_velomuon_tracks_velo_indices_input_t, unsigned) dev_velomuon_tracks_velo_indices_input; + DEVICE_INPUT(dev_velomuon_tracks_muon_indices_input_t, unsigned) dev_velomuon_tracks_muon_indices_input; + DEVICE_INPUT(dev_velomuon_tracks_qop_input_t, float) dev_velomuon_tracks_qop_input; + + DEVICE_OUTPUT(dev_velomuon_tracks_output_t, MuonTrack) dev_velomuon_tracks_output; + DEVICE_OUTPUT(dev_velomuon_tracks_velo_indices_output_t, unsigned) dev_velomuon_tracks_velo_indices_output; + DEVICE_OUTPUT(dev_velomuon_tracks_muon_indices_output_t, unsigned) dev_velomuon_tracks_muon_indices_output; + DEVICE_OUTPUT(dev_velomuon_tracks_qop_output_t, float) dev_velomuon_tracks_qop_output; + + PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; + }; + + __global__ void consolidate_velo_muon(Parameters); + + struct consolidate_velo_muon_t : public DeviceAlgorithm, Parameters { + void set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions&, + const Constants&, + const HostBuffers&) const; + + void operator()( + const ArgumentReferences& arguments, + const RuntimeOptions& runtime_options, + const Constants& constants, + HostBuffers& host_buffers, + const Allen::Context& context) const; + + private: + Property m_block_dim {this, {{64, 1, 1}}}; + }; + +} // namespace consolidate_velo_muon \ No newline at end of file diff --git a/device/muon/match_velo_muon/include/FindMuonHits.cuh b/device/muon/match_velo_muon/include/FindMuonHits.cuh new file mode 100644 index 00000000000..854aea20efd --- /dev/null +++ b/device/muon/match_velo_muon/include/FindMuonHits.cuh @@ -0,0 +1,71 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#pragma once + +#include "AlgorithmTypes.cuh" +#include "MuonDefinitions.cuh" +#include "UTConsolidated.cuh" +#include "VeloConsolidated.cuh" +#include "States.cuh" +#include "ROOTService.h" + +static constexpr int M2 {0}, M3 {1}, M4 {2}, M5 {3}; + +namespace find_muon_hits { + struct Parameters { + HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; + HOST_INPUT(host_number_of_reconstructed_ut_tracks_t, unsigned) host_number_of_reconstructed_ut_tracks; + MASK_INPUT(dev_event_list_t) dev_event_list; + DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; + DEVICE_INPUT(dev_offsets_all_velo_tracks_t, unsigned) dev_atomics_velo; + DEVICE_INPUT(dev_offsets_velo_track_hit_number_t, unsigned) dev_velo_track_hit_number; + DEVICE_INPUT(dev_velo_kalman_beamline_states_t, char) dev_kalmanvelo_states; + DEVICE_INPUT(dev_offsets_ut_tracks_t, unsigned) dev_atomics_ut; + DEVICE_INPUT(dev_offsets_ut_track_hit_number_t, unsigned) dev_ut_track_hit_number; + DEVICE_INPUT(dev_ut_qop_t, float) dev_ut_qop; + DEVICE_INPUT(dev_ut_track_velo_indices_t, unsigned) dev_ut_track_velo_indices; + DEVICE_INPUT(dev_station_ocurrences_offset_t, unsigned) dev_station_ocurrences_offset; + HOST_OUTPUT(host_station_ocurrences_offset_t, unsigned) host_station_ocurrences_offset; + DEVICE_INPUT(dev_muon_hits_t, char) dev_muon_hits; + HOST_OUTPUT(host_muon_hits_t, char) host_muon_hits; + + DEVICE_OUTPUT(dev_muon_tracks_t, MuonTrack) dev_muon_tracks; + HOST_OUTPUT(host_muon_tracks_t, MuonTrack) host_velomuon_tracks; + + DEVICE_OUTPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; + HOST_OUTPUT(host_muon_number_of_tracks_t, unsigned) host_muon_number_of_tracks; + // DEVICE_OUTPUT(dev_muon_tracks_tx_t, float) dev_muon_tracks_tx; + // DEVICE_OUTPUT(dev_muon_tracks_ty_t, float) dev_muon_tracks_ty; + // DEVICE_OUTPUT(dev_muon_tracks_chi2x_t, float) dev_muon_tracks_chi2x; + // DEVICE_OUTPUT(dev_muon_tracks_chi2y_t, float) dev_muon_tracks_chi2y; + // DEVICE_OUTPUT(dev_muon_tracks_states_t, int) dev_muon_tracks_states; + PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; + }; + + __global__ void find_muon_hits(Parameters, const Muon::Constants::MatchVeloWindows* dev_match_velo_windows); + + struct find_muon_hits_t : public DeviceAlgorithm, Parameters { + void set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions&, + const Constants&, + const HostBuffers&) const; + + void operator()( + const ArgumentReferences& arguments, + const RuntimeOptions& runtime_options, + const Constants& constants, + HostBuffers& host_buffers, + const Allen::Context& context) const; + + void output_monitor( + const ArgumentReferences& arguments, + const RuntimeOptions& runtime_options, + const Allen::Context& context) const; + + private: + Property m_block_dim {this, {{64, 1, 1}}}; + }; + +} // namespace find_muon_hits \ No newline at end of file diff --git a/device/muon/match_velo_muon/include/FitMuon.cuh b/device/muon/match_velo_muon/include/FitMuon.cuh new file mode 100644 index 00000000000..76d393e0bc3 --- /dev/null +++ b/device/muon/match_velo_muon/include/FitMuon.cuh @@ -0,0 +1,57 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#pragma once + +#include "AlgorithmTypes.cuh" +#include "MuonDefinitions.cuh" +#include "UTConsolidated.cuh" +#include "VeloConsolidated.cuh" +#include "States.cuh" + +static constexpr int M2 {0}, M3 {1}, M4 {2}, M5 {3}; + +namespace fit_muon { + struct Parameters { + HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; + DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; + MASK_INPUT(dev_event_list_t) dev_event_list; + DEVICE_INPUT(dev_muon_tracks_t, MuonTrack) dev_muon_tracks; + DEVICE_INPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; + DEVICE_INPUT(dev_station_ocurrences_offset_t, unsigned) dev_station_ocurrences_offset; + DEVICE_INPUT(dev_muon_hits_t, char) dev_muon_hits; + + DEVICE_INPUT(dev_muon_tracks_offsets_t, unsigned) dev_muon_tracks_offsets; + HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; + + DEVICE_OUTPUT(dev_muon_tracks_tx_t, float) dev_muon_tracks_tx; + DEVICE_OUTPUT(dev_muon_tracks_ty_t, float) dev_muon_tracks_ty; + DEVICE_OUTPUT(dev_muon_tracks_state_muon_index_t, unsigned) dev_muon_tracks_state_muon_index; + DEVICE_OUTPUT(dev_muon_tracks_chi2x_t, float) dev_muon_tracks_chi2x; + DEVICE_OUTPUT(dev_muon_tracks_chi2y_t, float) dev_muon_tracks_chi2y; + DEVICE_OUTPUT(dev_muon_number_of_fitted_tracks_t, unsigned) dev_muon_number_of_fitted_tracks; + // DEVICE_OUTPUT(dev_output_muon_tracks); + PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; + }; + + __global__ void fit_muon(Parameters); + + struct fit_muon_t : public DeviceAlgorithm, Parameters { + void set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions&, + const Constants&, + const HostBuffers&) const; + + void operator()( + const ArgumentReferences& arguments, + const RuntimeOptions& runtime_options, + const Constants& constants, + HostBuffers& host_buffers, + const Allen::Context& context) const; + + private: + Property m_block_dim {this, {{64, 1, 1}}}; + }; + +} // namespace fit_muon \ No newline at end of file diff --git a/device/muon/match_velo_muon/include/MatchVeloMuon.cuh b/device/muon/match_velo_muon/include/MatchVeloMuon.cuh new file mode 100644 index 00000000000..add81726d80 --- /dev/null +++ b/device/muon/match_velo_muon/include/MatchVeloMuon.cuh @@ -0,0 +1,70 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#pragma once + +#include "AlgorithmTypes.cuh" +#include "MuonDefinitions.cuh" +#include "UTConsolidated.cuh" +#include "VeloConsolidated.cuh" +#include "States.cuh" + +static constexpr int M2 {0}, M3 {1}, M4 {2}, M5 {3}; + +namespace match_velo_muon { + struct Parameters { + HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; + MASK_INPUT(dev_event_list_t) dev_event_list; + DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; + DEVICE_INPUT(dev_station_ocurrences_offset_t, unsigned) dev_station_ocurrences_offset; + DEVICE_INPUT(dev_muon_hits_t, char) dev_muon_hits; + HOST_INPUT(host_number_of_reconstructed_velo_tracks_t, unsigned) host_number_of_reconstructed_velo_tracks; + DEVICE_INPUT(dev_muon_tracks_t, MuonTrack) dev_muon_tracks; + DEVICE_INPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; + // DEVICE_INPUT(dev_muon_tracks_tx_t, float) dev_muon_tracks_tx; + // DEVICE_INPUT(dev_muon_tracks_ty_t, float) dev_muon_tracks_ty; + // DEVICE_INPUT(dev_muon_tracks_state_muon_index_t, unsigned) dev_muon_tracks_state_muon_index; + + DEVICE_INPUT(dev_velo_tracks_view_t, Allen::Views::Velo::Consolidated::Tracks) dev_velo_tracks_view; + DEVICE_INPUT(dev_velo_states_view_t, Allen::Views::Physics::KalmanStates) dev_velo_states_view; + + DEVICE_INPUT(dev_ut_number_of_selected_velo_tracks_t, unsigned) dev_ut_number_of_selected_velo_tracks; + DEVICE_INPUT(dev_ut_selected_velo_tracks_t, unsigned) dev_ut_selected_velo_tracks; + + DEVICE_INPUT(dev_muon_tracks_offsets_t, unsigned) dev_muon_tracks_offsets; + HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; + + DEVICE_OUTPUT(dev_velomuon_tracks_t, MuonTrack) dev_velomuon_tracks; + + DEVICE_OUTPUT(dev_velomuon_tracks_velo_indices_t, unsigned) dev_velomuon_tracks_velo_indices; + DEVICE_OUTPUT(dev_velomuon_tracks_muon_indices_t, unsigned) dev_velomuon_tracks_muon_indices; + DEVICE_OUTPUT(dev_velomuon_tracks_qop_t, float) dev_velomuon_tracks_qop; + DEVICE_OUTPUT(dev_velomuon_number_of_tracks_t, unsigned) dev_velomuon_number_of_tracks; + DEVICE_OUTPUT(dev_velomuon_muon_id_t, bool) dev_velomuon_muon_id; + + PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; + }; + + __global__ void + match_velo_muon(Parameters, const float* magnet_polarity, const Muon::Constants::MomParam* muon_mom_param); + + struct match_velo_muon_t : public DeviceAlgorithm, Parameters { + void set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions&, + const Constants&, + const HostBuffers&) const; + + void operator()( + const ArgumentReferences& arguments, + const RuntimeOptions& runtime_options, + const Constants& constants, + HostBuffers& host_buffers, + const Allen::Context& context) const; + + private: + Property m_block_dim {this, {{64, 1, 1}}}; + }; + float xcale[4] {0.06f, 0.1f, 0.15f, 0.15f}; + float distance_cut[5] {30 * 30, 60 * 60, 110 * 110, 200 * 200}; +} // namespace match_velo_muon \ No newline at end of file diff --git a/device/muon/match_velo_muon/src/ConsolidateMuon.cu b/device/muon/match_velo_muon/src/ConsolidateMuon.cu new file mode 100644 index 00000000000..c8c099eafac --- /dev/null +++ b/device/muon/match_velo_muon/src/ConsolidateMuon.cu @@ -0,0 +1,52 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#include "ConsolidateMuon.cuh" + +#include "Common.h" +#include "VeloDefinitions.cuh" +#include "VeloEventModel.cuh" +#include + +INSTANTIATE_ALGORITHM(consolidate_muon::consolidate_muon_t) + +void consolidate_muon::consolidate_muon_t::set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions&, + const Constants&, + const HostBuffers&) const +{ + set_size(arguments, first(arguments)); + // set_size(arguments, first(arguments)); + // set_size(arguments, first(arguments)); + // set_size(arguments, + // first(arguments)) +} + +void consolidate_muon::consolidate_muon_t::operator()( + const ArgumentReferences& arguments, + const RuntimeOptions&, + const Constants&, + HostBuffers&, + const Allen::Context& context) const +{ + global_function(consolidate_muon)(dim3(size(arguments)), property(), context)( + arguments); +} + +__global__ void consolidate_muon::consolidate_muon(consolidate_muon::Parameters parameters) +{ + const unsigned event_number = parameters.dev_event_list[blockIdx.x]; + + // Input + auto event_muon_tracks_input = + parameters.dev_muon_tracks_input + event_number * Muon::Constants::max_number_of_tracks; + + // Output + auto event_muon_tracks_output = parameters.dev_muon_tracks_output + parameters.dev_muon_tracks_offsets[event_number]; + + for (unsigned i_muon_track = threadIdx.x; i_muon_track < parameters.dev_muon_number_of_tracks[event_number]; + i_muon_track += blockDim.x) { + event_muon_tracks_output[i_muon_track] = event_muon_tracks_input[i_muon_track]; + } +} diff --git a/device/muon/match_velo_muon/src/ConsolidateVeloMuon.cu b/device/muon/match_velo_muon/src/ConsolidateVeloMuon.cu new file mode 100644 index 00000000000..6225b6d0317 --- /dev/null +++ b/device/muon/match_velo_muon/src/ConsolidateVeloMuon.cu @@ -0,0 +1,69 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#include "ConsolidateVeloMuon.cuh" + +#include "Common.h" +#include "VeloDefinitions.cuh" +#include "VeloEventModel.cuh" +#include + +INSTANTIATE_ALGORITHM(consolidate_velo_muon::consolidate_velo_muon_t) + +void consolidate_velo_muon::consolidate_velo_muon_t::set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions&, + const Constants&, + const HostBuffers&) const +{ + set_size(arguments, first(arguments)); + set_size( + arguments, first(arguments)); + set_size( + arguments, first(arguments)); + set_size(arguments, first(arguments)); +} + +void consolidate_velo_muon::consolidate_velo_muon_t::operator()( + const ArgumentReferences& arguments, + const RuntimeOptions&, + const Constants& constants, + HostBuffers&, + const Allen::Context& context) const +{ + global_function(consolidate_velo_muon)(dim3(size(arguments)), property(), context)( + arguments); +} + +__global__ void consolidate_velo_muon::consolidate_velo_muon(consolidate_velo_muon::Parameters parameters) +{ + const unsigned event_number = parameters.dev_event_list[blockIdx.x]; + + // Input + auto event_velomuon_tracks_velo_indices_input = + parameters.dev_velomuon_tracks_velo_indices_input + event_number * Muon::Constants::max_number_of_tracks; + auto event_velomuon_tracks_muon_indices_input = + parameters.dev_velomuon_tracks_muon_indices_input + event_number * Muon::Constants::max_number_of_tracks; + auto event_velomuon_tracks_qop_input = + parameters.dev_velomuon_tracks_qop_input + event_number * Muon::Constants::max_number_of_tracks; + auto event_velomuon_tracks_input = + parameters.dev_velomuon_tracks_input + event_number * Muon::Constants::max_number_of_tracks; + + // Output + auto event_velomuon_tracks_velo_indices_output = + parameters.dev_velomuon_tracks_velo_indices_output + parameters.dev_velomuon_tracks_offsets[event_number]; + auto event_velomuon_tracks_muon_indices_output = + parameters.dev_velomuon_tracks_muon_indices_output + parameters.dev_velomuon_tracks_offsets[event_number]; + auto event_velomuon_tracks_qop_output = + parameters.dev_velomuon_tracks_qop_output + parameters.dev_velomuon_tracks_offsets[event_number]; + auto event_velomuon_tracks_output = + parameters.dev_velomuon_tracks_output + parameters.dev_velomuon_tracks_offsets[event_number]; + + for (unsigned i_muon_track = threadIdx.x; i_muon_track < parameters.dev_velomuon_number_of_tracks[event_number]; + i_muon_track += blockDim.x) { + event_velomuon_tracks_velo_indices_output[i_muon_track] = event_velomuon_tracks_velo_indices_input[i_muon_track]; + event_velomuon_tracks_muon_indices_output[i_muon_track] = event_velomuon_tracks_muon_indices_input[i_muon_track]; + event_velomuon_tracks_qop_output[i_muon_track] = event_velomuon_tracks_qop_input[i_muon_track]; + event_velomuon_tracks_output[i_muon_track] = event_velomuon_tracks_input[i_muon_track]; + } +} diff --git a/device/muon/match_velo_muon/src/FindMuonHits.cu b/device/muon/match_velo_muon/src/FindMuonHits.cu new file mode 100644 index 00000000000..a0e13e8e685 --- /dev/null +++ b/device/muon/match_velo_muon/src/FindMuonHits.cu @@ -0,0 +1,456 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#include "FindMuonHits.cuh" + +#include "Common.h" +#include "VeloDefinitions.cuh" +#include "VeloEventModel.cuh" +#include + +INSTANTIATE_ALGORITHM(find_muon_hits::find_muon_hits_t) + +void find_muon_hits::find_muon_hits_t::set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions&, + const Constants&, + const HostBuffers&) const +{ + set_size(arguments, 4 * first(arguments) + 1); + set_size(arguments, first(arguments) * 500 * Muon::Hits::element_size); + set_size( + arguments, Muon::Constants::max_number_of_tracks * first(arguments)); + set_size( + arguments, Muon::Constants::max_number_of_tracks * first(arguments)); + set_size(arguments, first(arguments)); + set_size(arguments, first(arguments)); +} + +void find_muon_hits::find_muon_hits_t::output_monitor( + const ArgumentReferences& arguments, + const RuntimeOptions& runtime_options, + const Allen::Context& context) const +{ +#ifdef WITH_ROOT + auto handler = runtime_options.root_service->handle(name()); + auto tree = handler.tree("monitor_tree"); + + float chi2x, chi2y, tx, ty, ax, ay, x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3; + handler.branch(tree, "chi2y", chi2y); + handler.branch(tree, "chi2x", chi2x); + handler.branch(tree, "ty", ty); + handler.branch(tree, "tx", tx); + handler.branch(tree, "ay", ay); + handler.branch(tree, "ax", ax); + handler.branch(tree, "x0", x0); + handler.branch(tree, "x1", x1); + handler.branch(tree, "x2", x2); + handler.branch(tree, "x3", x3); + handler.branch(tree, "y0", y0); + handler.branch(tree, "y1", y1); + handler.branch(tree, "y2", y2); + handler.branch(tree, "y3", y3); + handler.branch(tree, "z0", z0); + handler.branch(tree, "z1", z1); + handler.branch(tree, "z2", z2); + handler.branch(tree, "z3", z3); + + Allen::copy(arguments, context); + Allen::copy(arguments, context); + + Allen::copy(arguments, context); + Allen::copy(arguments, context); + Allen::synchronize(context); + const auto n_tracks = data(arguments); + const auto tracks = data(arguments); + const auto n_events = first(arguments); + const auto muon_hits = data(arguments); + const auto muon_offsets = data(arguments); + + const auto muon_total_number_of_hits = muon_offsets[n_events * Muon::Constants::n_stations]; + const auto event_muon_hits = Muon::ConstHits {muon_hits, muon_total_number_of_hits}; + for (unsigned event_number = 0; event_number < n_events; event_number++) { + for (unsigned i_track = 0; i_track < n_tracks[event_number]; i_track++) { + const MuonTrack track = tracks[event_number * Muon::Constants::max_number_of_tracks + i_track]; + std::array x {-99999.f, -99999.f, -99999.f, -99999.f}; + std::array y {-99999.f, -99999.f, -99999.f, -99999.f}; + std::array z {-99999.f, -99999.f, -99999.f, -99999.f}; + + for (unsigned muon_st = 0; muon_st < 4; muon_st++) { + const int muon_idx = track.hit(muon_st); + if (muon_idx != -1) { + x[muon_st] = event_muon_hits.x(muon_idx); + y[muon_st] = event_muon_hits.y(muon_idx); + z[muon_st] = event_muon_hits.z(muon_idx); + } + } + + std::tie(x0, x1, x2, x3) = std::make_tuple(x[0], x[1], x[2], x[3]); + std::tie(y0, y1, y2, y3) = std::make_tuple(y[0], y[1], y[2], y[3]); + std::tie(z0, z1, z2, z3) = std::make_tuple(z[0], z[1], z[2], z[3]); + std::tie(chi2x, chi2y, tx, ty, ax, ay) = std::make_tuple( + track.get_chi2x(), track.get_chi2y(), track.get_tx(), track.get_ty(), track.get_ax(), track.get_ay()); + tree->Fill(); + } + } +#endif +} + +void find_muon_hits::find_muon_hits_t::operator()( + const ArgumentReferences& arguments, + const RuntimeOptions& runtime_options, + const Constants& constants, + HostBuffers&, + const Allen::Context& context) const +{ + Allen::memset_async(arguments, 0, context); + + global_function(find_muon_hits)(dim3(size(arguments)), property(), context)( + arguments, constants.dev_match_velo_windows); + Allen::synchronize(context); + output_monitor(arguments, runtime_options, context); + Allen::synchronize(context); +} +__device__ void applyWeightedFit(MuonTrack& muon_track, Muon::ConstHits& muon_hits) +{ + const auto n_hits_track = muon_track.number_of_hits(); + float szx2, szy2, sz_x, sz_y, sx0, sxz, sx, sx2; + szx2 = sz_x = szy2 = sz_y = sx0 = sxz = sx = sx2 = 0.f; + float sy0, syz, sy, sy2; + sy0 = syz = sy = sy2 = 0.f; + for (unsigned i_hit = 0; i_hit < 4; i_hit++) { + if (muon_track.hit(i_hit) == -1) continue; + float x = muon_hits.x(muon_track.hit(i_hit)); + float y = muon_hits.y(muon_track.hit(i_hit)); + float z = muon_hits.z(muon_track.hit(i_hit)); + + float xerr = muon_hits.dx(muon_track.hit(i_hit)); + float yerr = muon_hits.dy(muon_track.hit(i_hit)); + + szx2 += z * z / xerr / xerr; + sz_x += z / xerr / xerr; + sx0 += 1.f / xerr / xerr; + sxz += z * x / xerr / xerr; + sx += x / xerr / xerr; + sx2 += x * x / xerr / xerr; + + szy2 += z * z / yerr / yerr; + sz_y += z / yerr / yerr; + sy0 += 1.f / yerr / yerr; + syz += z * y / yerr / yerr; + sy += y / yerr / yerr; + sy2 += y * y / yerr / yerr; + } + float xdet = szx2 * sx0 - sz_x * sz_x; + float ydet = szy2 * sy0 - sz_y * sz_y; + float tx, ty, ax, ay; + tx = ty = ax = ay = 9999.f; + float chi2xndof = 99999.f; + float chi2yndof = 99999.f; + + if (xdet != 0 && ydet != 0) { + tx = (sxz * sx0 - sx * sz_x) / xdet; + ax = (sx * szx2 - sxz * sz_x) / xdet; + + chi2xndof = (sx2 + tx * tx * szx2 + ax * ax * sx0 - 2.f * tx * sxz - 2.f * ax * sx + 2.f * tx * ax * sz_x) / + (n_hits_track - 2); + + ty = (syz * sy0 - sy * sz_y) / ydet; + ay = (sy * szy2 - syz * sz_y) / ydet; + + chi2yndof = (sy2 + ty * ty * szy2 + ay * ay * sy0 - 2.f * ty * syz - 2.f * ay * sy + 2.f * ty * ay * sz_y) / + (n_hits_track - 2); + } + muon_track.set_tx(tx); + muon_track.set_ty(ty); + muon_track.set_ax(ax); + muon_track.set_ay(ay); + muon_track.set_chi2x(chi2xndof); + muon_track.set_chi2y(chi2yndof); + muon_track.set_state(muon_track.hit(M2)); +} + +__device__ void applyFit(MuonTrack& muon_track, Muon::ConstHits& muon_hits) +{ + const auto n_hits_track = muon_track.number_of_hits(); + float xz = 0; + float yz = 0; + float x = 0; + float y = 0; + float z = 0; + float x2 = 0; + float y2 = 0; + float z2 = 0; + float chi2x = 0; + float chi2y = 0; + for (unsigned i_hit = 0; i_hit < 4; i_hit++) { + if (muon_track.hit(i_hit) == -1) continue; + + xz += muon_hits.x(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; + yz += muon_hits.y(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; + x += muon_hits.x(muon_track.hit(i_hit)) / n_hits_track; + y += muon_hits.y(muon_track.hit(i_hit)) / n_hits_track; + z += muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; + x2 += muon_hits.x(muon_track.hit(i_hit)) * muon_hits.x(muon_track.hit(i_hit)) / n_hits_track; + y2 += muon_hits.y(muon_track.hit(i_hit)) * muon_hits.y(muon_track.hit(i_hit)) / n_hits_track; + z2 += muon_hits.z(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; + } + float tx = (xz - x * z) / (z2 - z * z); + float ax = (x - tx * z); + float ty = (yz - y * z) / (z2 - z * z); + float ay = (y - ty * z); + + for (unsigned i_hit = 0; i_hit < 4; i_hit++) { + if (muon_track.hit(i_hit) == -1) continue; + chi2x += (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))) * + (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))) / 1.f; + chi2y += (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))) * + (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))) / 1.f; + } + muon_track.set_tx(tx); + muon_track.set_ty(ty); + muon_track.set_ax(ax); + muon_track.set_ay(ay); + auto chi2xndof = chi2x / (n_hits_track - 2); + auto chi2yndof = chi2y / (n_hits_track - 2); + muon_track.set_chi2x(chi2xndof); + muon_track.set_chi2y(chi2yndof); + muon_track.set_state(muon_track.hit(M2)); +} + +__device__ int find_compatible_hit_in_station( + float x, + float y, + unsigned region_seed, + unsigned i_station, + const unsigned* station_ocurrences_offset, + const Muon::ConstHits muon_hits, + const float* Xmax, + const float* Ymax, + const float* tolForRegion) +{ + const auto station_offset = station_ocurrences_offset[i_station]; + const auto nhits_i_station = station_ocurrences_offset[i_station + 1] - station_offset; + + // TODO: Understand logic here... + // https://gitlab.cern.ch/lhcb/Rec/-/blob/master/Tr/TrackTools/src/StandaloneMuonRec.cpp#L200 + const auto xmax = Xmax[i_station * 4 + region_seed]; + const auto ymax = Ymax[i_station * 4 + region_seed]; + + const auto tol = tolForRegion[region_seed]; + + int track_index = -1; + float deltaXmin, deltaYmin; + + for (unsigned i_hit = 0; i_hit < nhits_i_station; i_hit++) { + const auto idx = station_offset + i_hit; + const auto deltaX = fabsf(x - muon_hits.x(idx)); + const auto deltaY = fabsf(y - muon_hits.y(idx)); + + // NOTE: This (previous) implementation depends on the order in which hits were decoded! + // if ( + // deltaX < xmax && deltaY < ymax && + // (track_index == -1 || + // (deltaY < deltaYmin - tol || + // (deltaY < deltaYmin + tol && (deltaX < deltaXmin - tol || fabsf(deltaXmin - deltaX) < 0.1f))))) { + + if (deltaX < xmax && deltaY < ymax && (track_index == -1 || deltaY < deltaYmin && deltaX < deltaXmin)) { + deltaXmin = deltaX; + deltaYmin = deltaY; + track_index = static_cast(i_hit); + } + } + + return track_index; +} + +__device__ std::pair extrapolate( + const Muon::ConstHits muon_hits, + const float* z, + const MuonTrack& muon_track, + const unsigned& previous_index, + const unsigned& current_index, + const unsigned& following_index) +{ + const auto x_current_station = muon_hits.x(muon_track.hit(current_index)); + const auto x_previous_station = muon_hits.x(muon_track.hit(previous_index)); + const auto y_current_station = muon_hits.y(muon_track.hit(current_index)); + const auto y_previous_station = muon_hits.y(muon_track.hit(previous_index)); + const auto z_previous_station = muon_hits.z(muon_track.hit(previous_index)); + const auto z_following_station = z[following_index]; + const auto z_current_station = muon_hits.z(muon_track.hit(current_index)); + auto x = x_current_station + (x_current_station - x_previous_station) / (z_current_station - z_previous_station) * + (z_following_station - z_current_station); + auto y = y_current_station + (y_current_station - y_previous_station) / (z_current_station - z_previous_station) * + (z_following_station - z_current_station); + return std::pair {x, y}; +} + +__device__ void seedAndFind( + Muon::ConstHits muon_hits, + const unsigned* station_ocurrences_offset, + const int* st_order, + unsigned n_stations, + Muon::Constants::MatchVeloWindows match_velo_windows, + int required_station, + unsigned* number_of_muon_tracks_atomic, + MuonTrack* muon_tracks) +{ + + const auto first_st_ocurrences_offset = station_ocurrences_offset[st_order[0]]; + const auto number_of_hits_first_st = station_ocurrences_offset[st_order[0] + 1] - first_st_ocurrences_offset; + for (unsigned seed = threadIdx.x; seed < number_of_hits_first_st; seed += blockDim.x) { + const unsigned first_st_abs_idx = first_st_ocurrences_offset + seed; + const auto xseed = muon_hits.x(first_st_abs_idx); + const auto yseed = muon_hits.y(first_st_abs_idx); + const auto zseed_inverse = 1.f / muon_hits.z(first_st_abs_idx); + auto region_seed = muon_hits.region(first_st_abs_idx); + + MuonTrack muon_track; + muon_track.add_hit_to_station(first_st_abs_idx, st_order[0]); + + float x, y; + std::array last_two_stations_found {st_order[0], -1}; + + for (unsigned i_station = 1; i_station < n_stations; i_station++) { + const auto station = st_order[i_station]; + if (station == st_order[3] && muon_track.number_of_hits() < 2) { + // If we are on the last station and we have less than 2 hits, early exit + break; + } + else if (muon_track.number_of_hits() >= 2) { + // Update x, y parameters by extrapolating the building track + const auto xy = extrapolate( + muon_hits, match_velo_windows.z, muon_track, last_two_stations_found[0], last_two_stations_found[1], station); + x = xy.first; + y = xy.second; + } + else { + // Create x, y parameters by linear extrapolation from origin + const auto slope = match_velo_windows.z[station] * zseed_inverse; + x = xseed * slope; + y = yseed * slope; + } + + const auto hit_index = find_compatible_hit_in_station( + x, + y, + region_seed, + station, + station_ocurrences_offset, + muon_hits, + match_velo_windows.Xmax, + match_velo_windows.Ymax, + match_velo_windows.tolForRegion); + + if (hit_index != -1) { + muon_track.add_hit_to_station(station_ocurrences_offset[station] + hit_index, station); + last_two_stations_found[1] = last_two_stations_found[0]; + last_two_stations_found[0] = station; + region_seed = muon_hits.region(station_ocurrences_offset[station] + hit_index); + } + } + + if (muon_track.number_of_hits() > 3 && muon_track.hit(required_station) != -1) { + applyWeightedFit(muon_track, muon_hits); + const auto insert_index = atomicAdd(number_of_muon_tracks_atomic, 1); + muon_tracks[insert_index] = muon_track; + } + } +} + +__global__ void find_muon_hits::find_muon_hits( + find_muon_hits::Parameters parameters, + const Muon::Constants::MatchVeloWindows* dev_match_velo_windows) +{ + const unsigned event_number = parameters.dev_event_list[blockIdx.x]; + const unsigned number_of_events = parameters.dev_number_of_events[0]; + + const auto muon_total_number_of_hits = + parameters.dev_station_ocurrences_offset[number_of_events * Muon::Constants::n_stations]; + const auto station_ocurrences_offset = + parameters.dev_station_ocurrences_offset + event_number * Muon::Constants::n_stations; + const auto muon_hits = Muon::ConstHits {parameters.dev_muon_hits, muon_total_number_of_hits}; + + // TODO: Change into container taking into consideration actual sizes of M4 and M5 (use prefix sum) + + // Output + auto tracks_offset = event_number * Muon::Constants::max_number_of_tracks; + auto event_muon_tracks = parameters.dev_muon_tracks + tracks_offset; + + auto event_number_of_tracks = parameters.dev_muon_number_of_tracks + event_number; + + // Station processing order + constexpr std::array st_order {M5, M4, M3, M2}; + constexpr std::array st_order2 {M4, M3, M2}; + + const auto match_velo_windows = dev_match_velo_windows[0]; + + // TODO: Test speed removing + __shared__ float muon_tracks_shared_container[Muon::Constants::max_number_of_tracks * sizeof(MuonTrack)]; + MuonTrack* muon_tracks = reinterpret_cast(muon_tracks_shared_container); + __shared__ unsigned number_of_muon_tracks_atomic[1]; + if (threadIdx.x == 0) number_of_muon_tracks_atomic[0] = 0; + + __syncthreads(); + seedAndFind( + muon_hits, + station_ocurrences_offset, + st_order.data(), + 4, + match_velo_windows, + M2, + number_of_muon_tracks_atomic, + muon_tracks); + __syncthreads(); + + // need to tune track making in order to make available second loop: take care of not repeating tracks! + + // seedAndFind( + // muon_hits, + // station_ocurrences_offset, + // st_order2.data(), + // 3, + // match_velo_windows, + // M2, + // number_of_muon_tracks_atomic, + // muon_tracks); + + // Clone killing + const auto is_clone_of = [&](const MuonTrack& track_a, const MuonTrack& track_b) { + if ( + track_a.hit(M2) == track_b.hit(M2) || track_a.hit(M3) == track_b.hit(M3) || + ((track_a.hit(M4) != -1 && track_a.hit(M4) == track_b.hit(M4)) || + (track_a.hit(M5) != -1 && track_a.hit(M5) == track_b.hit(M5)))) { + + auto chi2_ax = track_a.m_chi2x; + auto chi2_ay = track_a.m_chi2y; + + auto chi2_bx = track_b.m_chi2x; + auto chi2_by = track_b.m_chi2y; + + return (((chi2_ax + chi2_ay) > (chi2_bx + chi2_by)) - ((chi2_ax + chi2_ay) < (chi2_bx + chi2_by))); + } + return -1; + }; + + for (unsigned track = threadIdx.x; track < *number_of_muon_tracks_atomic; track += blockDim.x) { + const auto muon_track = muon_tracks[track]; + bool is_clone = false; + + for (unsigned other_track = 0; other_track < number_of_muon_tracks_atomic[0]; ++other_track) { + if (track != other_track) { + const int is_clone_of_value = is_clone_of(muon_track, muon_tracks[other_track]); + if (is_clone_of_value == 1 || (is_clone_of_value == 0 && track > other_track)) { + is_clone = true; + break; + } + } + } + float threshold = 0.25; + if (!is_clone && muon_track.get_chi2x() < 2.f * threshold && muon_track.get_chi2y() < threshold) { + const auto insert_index = atomicAdd(event_number_of_tracks, 1); + event_muon_tracks[insert_index] = muon_track; + } + } +} \ No newline at end of file diff --git a/device/muon/match_velo_muon/src/FitMuon.cu b/device/muon/match_velo_muon/src/FitMuon.cu new file mode 100644 index 00000000000..28595ca7183 --- /dev/null +++ b/device/muon/match_velo_muon/src/FitMuon.cu @@ -0,0 +1,178 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#include "FitMuon.cuh" + +#include "Common.h" +#include "VeloDefinitions.cuh" +#include "VeloEventModel.cuh" +#include + +INSTANTIATE_ALGORITHM(fit_muon::fit_muon_t) + +void fit_muon::fit_muon_t::set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions&, + const Constants&, + const HostBuffers&) const +{ + set_size(arguments, first(arguments)); + set_size(arguments, first(arguments)); + + set_size(arguments, first(arguments)); + + set_size(arguments, first(arguments)); + set_size(arguments, first(arguments)); + + set_size(arguments, first(arguments)); +} + +void fit_muon::fit_muon_t::operator()( + const ArgumentReferences& arguments, + const RuntimeOptions&, + const Constants&, + HostBuffers&, + const Allen::Context& context) const +{ + // initialize(arguments, 0, context); + // initialize(arguments, 0, context); + // print(arguments); + Allen::memset_async(arguments, 0, context); + global_function(fit_muon)(dim3(size(arguments)), property(), context)(arguments); +} + +__global__ void fit_muon::fit_muon(fit_muon::Parameters parameters) +{ + const unsigned event_number = parameters.dev_event_list[blockIdx.x]; + const unsigned number_of_events = parameters.dev_number_of_events[0]; + + const auto muon_total_number_of_hits = + parameters.dev_station_ocurrences_offset[number_of_events * Muon::Constants::n_stations]; + // const auto station_ocurrences_offset = + // parameters.dev_station_ocurrences_offset + event_number * Muon::Constants::n_stations; + const auto muon_hits = Muon::ConstHits {parameters.dev_muon_hits, muon_total_number_of_hits}; + + // TODO: Change into container taking into consideration actual sizes of M4 and M5 (use prefix sum) + const auto event_muon_tracks = parameters.dev_muon_tracks + event_number * Muon::Constants::max_number_of_tracks; + const auto event_number_of_tracks = parameters.dev_muon_number_of_tracks[event_number]; + const auto event_muon_tracks_offset = parameters.dev_muon_tracks_offsets[event_number]; + + auto event_muon_tx = parameters.dev_muon_tracks_tx + event_muon_tracks_offset; + auto event_muon_ty = parameters.dev_muon_tracks_ty + event_muon_tracks_offset; + auto event_muon_states = parameters.dev_muon_tracks_state_muon_index + event_muon_tracks_offset; + + const auto event_muon_chi2x = parameters.dev_muon_tracks_chi2x + event_muon_tracks_offset; + const auto event_muon_chi2y = parameters.dev_muon_tracks_chi2y + event_muon_tracks_offset; + + auto event_number_of_fitted_tracks = parameters.dev_muon_number_of_fitted_tracks + event_number; + bool normal_fit = true; + for (unsigned idx = threadIdx.x; idx < event_number_of_tracks; idx += blockDim.x) { + const auto muon_track = event_muon_tracks[idx]; + const auto n_hits_track = muon_track.number_of_hits(); + const auto ndof = n_hits_track - 2; + if (normal_fit) { + // printf("Entering normal fit\n"); + float x_mean = 0; + float y_mean = 0; + float z_mean = 0; + float chi2x = 0; + float chi2y = 0; + + for (unsigned i_hit = 0; i_hit < 4; i_hit++) { + if (muon_track.hit(i_hit) == -1) continue; + x_mean += muon_hits.x(muon_track.hit(i_hit)); + y_mean += muon_hits.y(muon_track.hit(i_hit)); + z_mean += muon_hits.z(muon_track.hit(i_hit)); + } + + x_mean = x_mean / n_hits_track; + y_mean = y_mean / n_hits_track; + z_mean = z_mean / n_hits_track; + + float szx = 0; + float szy = 0; + float sz2 = 0; + for (unsigned i_hit = 0; i_hit < 4; i_hit++) { + if (muon_track.hit(i_hit) == -1) continue; + szx += (muon_hits.z(muon_track.hit(i_hit)) - z_mean) * (muon_hits.x(muon_track.hit(i_hit)) - x_mean); + szy += (muon_hits.z(muon_track.hit(i_hit)) - z_mean) * (muon_hits.y(muon_track.hit(i_hit)) - y_mean); + sz2 += (muon_hits.z(muon_track.hit(i_hit)) - z_mean) * (muon_hits.z(muon_track.hit(i_hit)) - z_mean); + } + float tx = szx / sz2; + float ax = x_mean - tx * z_mean; + float ty = szy / sz2; + float ay = y_mean - ty * z_mean; + event_muon_tx[idx] = tx; + event_muon_ty[idx] = ty; + // muon_track.set_tx(tx); + // muon_track.set_ty(ty); + for (unsigned i_hit = 0; i_hit < 4; i_hit++) { + if (muon_track.hit(i_hit) == -1) continue; + chi2x += (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))) * + (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))) / + muon_hits.x(muon_track.hit(i_hit)); + chi2y += (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))) * + (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))) / + muon_hits.y(muon_track.hit(i_hit)); + } + + if (chi2x / ndof < 100.f && chi2y / ndof < 100.f) { + // if (true) { + int state_idx = muon_track.hit(M5) != -1.f ? M5 : M4; + state_idx = M2; + const auto insert_idx = atomicAdd(event_number_of_fitted_tracks, 1); + event_muon_chi2x[insert_idx] = chi2x; + event_muon_chi2y[insert_idx] = chi2y; + event_muon_tx[insert_idx] = tx; + event_muon_ty[insert_idx] = ty; + event_muon_states[insert_idx] = muon_track.hit(state_idx); + // __syncthreads(); + } + } + else { + // printf("Entering alternate fit\n"); + float xz = 0; + float yz = 0; + float x = 0; + float y = 0; + float z = 0; + float x2 = 0; + float y2 = 0; + float z2 = 0; + float chi2x = 0; + float chi2y = 0; + // printf("n_hits_track=%i\n",n_hits_track); + for (unsigned i_hit = 0; i_hit < 4; i_hit++) { + if (muon_track.hit(i_hit) == -1) continue; + // printf("summing variables\n"); + xz += muon_hits.x(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; + yz += muon_hits.y(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; + x += muon_hits.x(muon_track.hit(i_hit)) / n_hits_track; + y += muon_hits.y(muon_track.hit(i_hit)) / n_hits_track; + z += muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; + x2 += muon_hits.x(muon_track.hit(i_hit)) * muon_hits.x(muon_track.hit(i_hit)) / n_hits_track; + y2 += muon_hits.y(muon_track.hit(i_hit)) * muon_hits.y(muon_track.hit(i_hit)) / n_hits_track; + z2 += muon_hits.z(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; + } + float tx = (xz - x * z) / (z2 - z * z); + float ax = (x - tx * z); + float ty = (yz - y * z) / (z2 - z * z); + float ay = (y - ty * z); + event_muon_tx[idx] = tx; + event_muon_ty[idx] = ty; + + for (unsigned i_hit = 0; i_hit < 4; i_hit++) { + if (muon_track.hit(i_hit) == -1) continue; + chi2x += (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))) * + (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))); + chi2y += (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))) * + (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))); + } + // printf("offset=%i\n",event_muon_tracks_offset); + event_muon_chi2x[idx] = chi2x; + event_muon_chi2y[idx] = chi2y; + } + // printf("tx = %f, ty = %f, chi2x/nodf = %f, chi2y/ndof = + // %f\n",event_muon_tx[idx],event_muon_ty[idx],event_muon_chi2x[idx]/2.f,event_muon_chi2y[idx]/2.f); + } +} diff --git a/device/muon/match_velo_muon/src/MatchVeloMuon.cu b/device/muon/match_velo_muon/src/MatchVeloMuon.cu new file mode 100644 index 00000000000..5914254e7cb --- /dev/null +++ b/device/muon/match_velo_muon/src/MatchVeloMuon.cu @@ -0,0 +1,287 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#include "MatchVeloMuon.cuh" + +#include "Common.h" +#include "VeloDefinitions.cuh" +#include "VeloEventModel.cuh" +#include + +INSTANTIATE_ALGORITHM(match_velo_muon::match_velo_muon_t) + +void match_velo_muon::match_velo_muon_t::set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions&, + const Constants&, + const HostBuffers&) const +{ + set_size( + arguments, Muon::Constants::max_number_of_tracks * first(arguments)); + set_size( + arguments, Muon::Constants::max_number_of_tracks * first(arguments)); + set_size( + arguments, Muon::Constants::max_number_of_tracks * first(arguments)); + set_size( + arguments, Muon::Constants::max_number_of_tracks * first(arguments)); + set_size(arguments, first(arguments)); + set_size(arguments, first(arguments)); +} + +void match_velo_muon::match_velo_muon_t::operator()( + const ArgumentReferences& arguments, + const RuntimeOptions&, + const Constants& constants, + HostBuffers&, + const Allen::Context& context) const +{ + Allen::memset_async(arguments, 0, context); + Allen::memset_async(arguments, 0, context); + global_function(match_velo_muon)(dim3(size(arguments)), property(), context)( + arguments, constants.dev_magnet_polarity.data(), constants.dev_muon_mom_param); +} + +__device__ float qop_calculation( + Muon::Constants::MomParam const* muon_mom_param, + float const magSign, + float const z0SciFi, + float const x0SciFi, + float const y0SciFi, + float const xVelo, + float const yVelo, + float const zVelo, + float const txO, + float const tyO, + float const txSciFi, + float const tySciFi) +{ + const auto zMatch = (x0SciFi - xVelo + txO * zVelo - txSciFi * z0SciFi) / (txO - txSciFi); + const auto xMatch = xVelo + txO * (zMatch - zVelo); + const auto yMatch = yVelo + tyO * (zMatch - zVelo); + + const auto xVelo_at0 = xVelo - txO * zVelo; + const auto yVelo_at0 = yVelo - tyO * zVelo; + const auto FLIGHTPATH_MAGNET_SCI_SQ = (x0SciFi - xMatch) * (x0SciFi - xMatch) + + (y0SciFi - yMatch) * (y0SciFi - yMatch) + + (z0SciFi - zMatch) * (z0SciFi - zMatch); + const auto FLIGHTPATH_VELO_MAGNET_SQ = + (xVelo_at0 - xMatch) * (xVelo_at0 - xMatch) + (yVelo_at0 - yMatch) * (yVelo_at0 - yMatch) + zMatch * zMatch; + const auto FLIGHTPATH = 0.001f * sqrtf(FLIGHTPATH_MAGNET_SCI_SQ + FLIGHTPATH_VELO_MAGNET_SQ); + const auto MAGFIELD = FLIGHTPATH * cosf(asinf(tyO)); + const auto DSLOPE = + txSciFi / (sqrtf(1.f + txSciFi * txSciFi + tySciFi * tySciFi)) - txO / (sqrtf(1.f + txO * txO + tyO * tyO)); + + const auto txO2 = txO * txO; + const auto txO3 = txO * txO * txO; + const auto txO4 = txO * txO * txO * txO; + const auto txO5 = txO * txO * txO * txO * txO; + const auto txO6 = txO * txO * txO * txO * txO * txO; + const auto txO7 = txO * txO * txO * txO * txO * txO * txO; + const auto tyO2 = tyO * tyO; + const auto tyO4 = tyO * tyO * tyO * tyO; + const auto tyO5 = tyO * tyO * tyO * tyO * tyO; + const auto tyO6 = tyO * tyO * tyO * tyO * tyO * tyO; + + const auto C0 = muon_mom_param->C0[0] + muon_mom_param->C0[1] * txO2 + muon_mom_param->C0[2] * txO4 + + muon_mom_param->C0[3] * tyO2 + muon_mom_param->C0[4] * tyO4 + muon_mom_param->C0[5] * txO2 * tyO2 + + muon_mom_param->C0[6] * txO6 + muon_mom_param->C0[7] * tyO6 + muon_mom_param->C0[8] * txO4 * tyO2 + + muon_mom_param->C0[9] * txO2 * tyO4; + const auto C1 = muon_mom_param->C1[0] + muon_mom_param->C1[1] * txO + muon_mom_param->C1[2] * txO3 + + muon_mom_param->C1[3] * txO5 + muon_mom_param->C1[4] * txO7 + muon_mom_param->C1[5] * tyO2 + + muon_mom_param->C1[6] * tyO4 + muon_mom_param->C1[7] * tyO6 + muon_mom_param->C1[8] * txO * tyO2 + + muon_mom_param->C1[9] * txO * tyO4 + muon_mom_param->C1[10] * txO * tyO6 + + muon_mom_param->C1[11] * txO3 * tyO2 + muon_mom_param->C1[12] * txO3 * tyO4 + + muon_mom_param->C1[13] * txO5 * tyO2; + const auto C2 = muon_mom_param->C2[0] + muon_mom_param->C2[1] * txO2 + muon_mom_param->C2[2] * txO4 + + muon_mom_param->C2[3] * tyO2 + muon_mom_param->C2[4] * tyO4 + muon_mom_param->C2[5] * txO2 * tyO2 + + muon_mom_param->C2[6] * txO6 + muon_mom_param->C2[7] * tyO6 + muon_mom_param->C2[8] * txO4 * tyO2 + + muon_mom_param->C2[9] * txO2 * tyO4; + const auto C3 = muon_mom_param->C3[0] + muon_mom_param->C3[1] * txO + muon_mom_param->C3[2] * txO3 + + muon_mom_param->C3[3] * txO5 + muon_mom_param->C3[4] * txO7 + muon_mom_param->C3[5] * tyO2 + + muon_mom_param->C3[6] * tyO4 + muon_mom_param->C3[7] * tyO6 + muon_mom_param->C3[8] * txO * tyO2 + + muon_mom_param->C3[9] * txO * tyO4 + muon_mom_param->C3[10] * txO * tyO6 + + muon_mom_param->C3[11] * txO3 * tyO2 + muon_mom_param->C3[12] * txO3 * tyO4 + + muon_mom_param->C3[13] * txO5 * tyO2; + const auto C4 = muon_mom_param->C4[0] + muon_mom_param->C4[1] * txO2 + muon_mom_param->C4[2] * txO4 + + muon_mom_param->C4[3] * tyO2 + muon_mom_param->C4[4] * tyO4 + muon_mom_param->C4[5] * txO2 * tyO2 + + muon_mom_param->C4[6] * txO6 + muon_mom_param->C4[7] * tyO6 + muon_mom_param->C4[8] * txO4 * tyO2 + + muon_mom_param->C4[9] * txO2 * tyO4; + + const auto MAGFIELD_updated = + MAGFIELD * magSign * + (C0 + C1 * DSLOPE + C2 * DSLOPE * DSLOPE + C3 * DSLOPE * DSLOPE * DSLOPE + C4 * DSLOPE * DSLOPE * DSLOPE * DSLOPE); + const auto qop = DSLOPE / MAGFIELD_updated; + return qop; +} +__device__ Muon::MatchingResult getChi2Match( + const MiniState velo_state, + float tx_muon, + float ty_muon, + float xpos_muon, + float ypos_muon, + float zpos_muon, + int region) +{ + const float xpos_velo = velo_state.x, ypos_velo = velo_state.y, zpos_velo = velo_state.z, tx_velo = velo_state.tx, + ty_velo = velo_state.ty; + + if (fabsf(tx_velo) > 0.4f || fabsf(ty_velo) > 0.3f) return {-1.f, -1.f, -1.f, -1.f, -1.f, 99999.f}; + const float dSlopeX = tx_velo - tx_muon; + // if (std::abs(dSlopeX) > 0.6f) + // return {-1.f, -1.f, -1.f, -1.f, -1.f, 99999.f}; // matching the UT/muon slopes in X (bending -> large tolerance) + + const float dSlopeY = ty_velo - ty_muon; + if (std::abs(dSlopeY) > 0.05f) + return {-1.f, -1.f, -1.f, -1.f, -1.f, 99999.f}; // matching the UT/muon slopes in Y (no bending) + + const float zForX = 1.f * (MatchUpstreamMuon::za + MatchUpstreamMuon::zb * velo_state.tx * velo_state.tx); + const float zForY = 17500.f; + const float xV = xpos_velo + (zForX - zpos_velo) * tx_velo; + // -- This is the function that calculates the 'bending' in y-direction + // -- The parametrisation can be derived with the MatchFitParams package + const float yV = (ypos_velo + (zForY - zpos_velo) * ty_velo); + + const float xS = xpos_muon + (zForX - zpos_muon) * tx_muon; + const float yS = ypos_muon + (zForY - zpos_muon) * ty_muon; + const float distX = xS - xV; + if (std::abs(distX) > 100.f) return {-1.f, -1.f, -1.f, -1.f, -1.f, 99999.f}; // to scan + const float distY = yS - yV; + // if (std::abs(distY) > 150.f) return {-1.f, -1.f, -1.f, -1.f, -1.f, 99999.f}; // to scan + float fracDistSlope = 0.5; + float fracChi2xy = 0.2f; + float fracChi2xyslope = 0.8f; + + float chi2 = 0.f; + chi2 += fracDistSlope * (fracChi2xy) *distY * distY; + chi2 += fracDistSlope * (1 - fracChi2xy) * distX * distX; + chi2 += (1 - fracDistSlope) * (fracChi2xyslope) *dSlopeY * dSlopeY; + chi2 += (1 - fracDistSlope) * (1 - fracChi2xyslope) * dSlopeX * dSlopeX; + + return {dSlopeX, dSlopeY, distX, distY, zForX, chi2}; +} + +__global__ void match_velo_muon::match_velo_muon( + match_velo_muon::Parameters parameters, + const float* magnet_polarity, + const Muon::Constants::MomParam* muon_mom_param) +{ + const unsigned event_number = parameters.dev_event_list[blockIdx.x]; + const unsigned number_of_events = parameters.dev_number_of_events[0]; + + // Velo views + const auto velo_tracks = parameters.dev_velo_tracks_view[event_number]; + const auto velo_states = parameters.dev_velo_states_view[event_number]; + + const unsigned event_velo_seeds_offset = velo_tracks.offset(); + + // filtered velo tracks + const auto ut_number_of_selected_tracks = parameters.dev_ut_number_of_selected_velo_tracks[event_number]; + const auto ut_selected_velo_tracks = parameters.dev_ut_selected_velo_tracks + event_velo_seeds_offset; + + const auto muon_total_number_of_hits = + parameters.dev_station_ocurrences_offset[number_of_events * Muon::Constants::n_stations]; + const auto muon_hits = Muon::ConstHits {parameters.dev_muon_hits, muon_total_number_of_hits}; + + // TODO: Change into container taking into consideration actual sizes of M4 and M5 (use prefix sum) + const auto event_velomuon_tracks_offset = event_number * Muon::Constants::max_number_of_tracks; + const auto event_muon_tracks_offset = parameters.dev_muon_tracks_offsets[event_number]; + const auto event_number_of_tracks = parameters.dev_muon_number_of_tracks[event_number]; + + const auto event_muon_tracks = parameters.dev_muon_tracks + event_muon_tracks_offset; + + // Output + auto event_velomuon_tracks = parameters.dev_velomuon_tracks + event_velomuon_tracks_offset; + auto event_velomuon_velo_indices = parameters.dev_velomuon_tracks_velo_indices + event_velomuon_tracks_offset; + auto event_velomuon_muon_indices = parameters.dev_velomuon_tracks_muon_indices + event_velomuon_tracks_offset; + auto event_velomuon_qop = parameters.dev_velomuon_tracks_qop + event_velomuon_tracks_offset; + auto event_velomuon_number_of_tracks = parameters.dev_velomuon_number_of_tracks + event_number; + auto event_velomuon_muon_id = parameters.dev_velomuon_muon_id + event_velo_seeds_offset; + + __shared__ unsigned number_of_matched_velo[1]; + const auto number = Muon::Constants::max_number_of_tracks; + + __shared__ unsigned event_matched_muon_indices_with_clones[number]; + __shared__ unsigned event_muon_velo_indices_with_clones[number]; + __shared__ float event_match_chi2[number]; + __shared__ float event_qop_with_clones[number]; + + if (threadIdx.x == 0) number_of_matched_velo[0] = 0; + __syncthreads(); + for (unsigned i_muon_track = threadIdx.x; i_muon_track < event_number_of_tracks; i_muon_track += blockDim.x) { + auto muon_track = event_muon_tracks[i_muon_track]; + auto tx_muon = muon_track.get_tx(); + auto ty_muon = muon_track.get_ty(); + + auto muon_idx = muon_track.get_state(); + auto xpos_muon = muon_track.state_x(); + auto ypos_muon = muon_track.state_y(); + auto zpos_muon = muon_track.state_z(); + auto region = muon_hits.region(muon_idx); + + int matched_velo_idx = -1; + float min_chi2 = 99999.f; + + for (unsigned ivelo = 0; ivelo < ut_number_of_selected_tracks; ivelo++) { + const auto velo_track_index = ut_selected_velo_tracks[ivelo]; + const auto endvelo_state = velo_states.state(velo_track_index); + + auto matching_result = getChi2Match(endvelo_state, tx_muon, ty_muon, xpos_muon, ypos_muon, zpos_muon, region); + auto chi2 = matching_result.chi2; + if (chi2 < min_chi2 || matched_velo_idx == -1) { + matched_velo_idx = velo_track_index; + min_chi2 = chi2; + } + } + if (min_chi2 >= 99999.f) continue; + const auto insert_index = atomicAdd(number_of_matched_velo, 1); + event_matched_muon_indices_with_clones[insert_index] = i_muon_track; + event_muon_velo_indices_with_clones[insert_index] = matched_velo_idx; + const auto velo_state = velo_states.state(matched_velo_idx); + event_match_chi2[insert_index] = min_chi2; + float poq = MatchUpstreamMuon::kickScale / fabsf(tx_muon - velo_states.state(matched_velo_idx).tx()) + + MatchUpstreamMuon::kickOffset; + float qop = qop_calculation( + muon_mom_param, + magnet_polarity[0], + zpos_muon, + xpos_muon, + ypos_muon, + velo_state.x(), + velo_state.y(), + velo_state.z(), + velo_state.tx(), + velo_state.ty(), + tx_muon, + ty_muon); + event_qop_with_clones[insert_index] = qop; + } + __syncthreads(); + + for (unsigned n_track_1 = threadIdx.x; n_track_1 < number_of_matched_velo[0]; n_track_1 += blockDim.x) { + int velo_index_1 = static_cast(event_muon_velo_indices_with_clones[n_track_1]); + int velo_index_2 = 0; + bool shared_seeds = false; + float minimum_weight = 99999.f; + unsigned track_2_id = 0; + for (unsigned n_track_2 = 0; n_track_2 < number_of_matched_velo[0]; n_track_2++) { + if (n_track_1 == n_track_2) continue; + velo_index_2 = static_cast(event_muon_velo_indices_with_clones[n_track_2]); + if (velo_index_1 == velo_index_2 && minimum_weight > event_match_chi2[n_track_2]) { + shared_seeds = true; + track_2_id = n_track_2; + minimum_weight = event_match_chi2[n_track_2]; + } + } + if (!(shared_seeds && (event_match_chi2[track_2_id] <= event_match_chi2[n_track_1]))) { + const auto insert_index = atomicAdd(event_velomuon_number_of_tracks, 1); + auto velomuon_track = MuonTrack(event_muon_tracks[event_matched_muon_indices_with_clones[n_track_1]]); + velomuon_track.set_p(1 / event_qop_with_clones[n_track_1]); + velomuon_track.set_velo_index(velo_index_1); + event_velomuon_tracks[insert_index] = velomuon_track; + event_velomuon_velo_indices[insert_index] = velo_index_1; + event_velomuon_muon_indices[insert_index] = event_matched_muon_indices_with_clones[n_track_1]; + event_velomuon_qop[insert_index] = event_qop_with_clones[n_track_1]; + event_velomuon_muon_id[velo_index_1] = true; + } + } +} diff --git a/device/selections/lines/muon/include/OneMuonTrackLine.cuh b/device/selections/lines/muon/include/OneMuonTrackLine.cuh new file mode 100644 index 00000000000..faf3fc26111 --- /dev/null +++ b/device/selections/lines/muon/include/OneMuonTrackLine.cuh @@ -0,0 +1,85 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#pragma once + +#include "AlgorithmTypes.cuh" +#include "Line.cuh" +#include "MuonDefinitions.cuh" + +namespace one_muon_track_line { + struct Parameters { + // Commonly required inputs, outputs and properties + HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; + DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; + MASK_INPUT(dev_event_list_t) dev_event_list; + HOST_OUTPUT(host_decisions_size_t, unsigned) host_decisions_size; + HOST_OUTPUT(host_post_scaler_t, float) host_post_scaler; + HOST_OUTPUT(host_post_scaler_hash_t, uint32_t) host_post_scaler_hash; + HOST_OUTPUT(host_fn_parameters_t, char) host_fn_parameters; + // Line-specific inputs and properties + DEVICE_INPUT(dev_muon_tracks_t, MuonTrack) dev_muon_tracks; + DEVICE_INPUT(dev_muon_tracks_offsets_t, unsigned) dev_muon_tracks_offsets; + DEVICE_INPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; + HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; + + // PROPERTY(pre_scaler_t, "pre_scaler", "Pre-scaling factor", float) pre_scaler; + PROPERTY(pre_scaler_t, "pre_scaler", "Pre-scaling factor", float) pre_scaler; + PROPERTY(post_scaler_t, "post_scaler", "Post-scaling factor", float) post_scaler; + PROPERTY(pre_scaler_hash_string_t, "pre_scaler_hash_string", "Pre-scaling hash string", std::string); + PROPERTY(post_scaler_hash_string_t, "post_scaler_hash_string", "Post-scaling hash string", std::string); + }; + + // SelectionAlgorithm definition + struct one_muon_track_line_t : public SelectionAlgorithm, Parameters, Line { + + void set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions& runtime_options, + const Constants& constants, + const HostBuffers& host_buffers) const; + + // Offset function + __device__ static unsigned offset(const Parameters& parameters, const unsigned event_number) + { + return parameters.dev_muon_tracks_offsets[event_number]; + } + + // Get decision size function + static unsigned get_decisions_size(const ArgumentReferences& arguments) + { + return first(arguments); + } + + // Get input function + __device__ static std::tuple + get_input(const Parameters& parameters, const unsigned event_number, const unsigned i) + { + // Get the number of events + // const unsigned number_of_events = parameters.dev_number_of_events[0]; + const auto muon_tracks_offsets = parameters.dev_muon_tracks_offsets; + const auto muon_tracks = parameters.dev_muon_tracks; + + // Get the ith velo track + const unsigned track_index = i + muon_tracks_offsets[event_number]; + + return std::forward_as_tuple(muon_tracks[track_index]); + } + + __device__ static unsigned input_size(const Parameters& parameters, const unsigned event_number) + { + return parameters.dev_muon_number_of_tracks[event_number]; + } + + // Selection function + __device__ static bool select(const Parameters& parameters, std::tuple input); + + private: + // Commonly required properties + Property m_pre_scaler {this, 1.f}; + Property m_post_scaler {this, 1.f}; + Property m_pre_scaler_hash_string {this, ""}; + Property m_post_scaler_hash_string {this, ""}; + // Line-specific properties + }; +} // namespace one_muon_track_line \ No newline at end of file diff --git a/device/selections/lines/muon/include/OneVeloMuonTrackLine.cuh b/device/selections/lines/muon/include/OneVeloMuonTrackLine.cuh new file mode 100644 index 00000000000..e7a8ad8bd08 --- /dev/null +++ b/device/selections/lines/muon/include/OneVeloMuonTrackLine.cuh @@ -0,0 +1,87 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#pragma once + +#include "AlgorithmTypes.cuh" +#include "Line.cuh" +#include "MuonDefinitions.cuh" + +namespace one_velomuon_track_line { + struct Parameters { + // Commonly required inputs, outputs and properties + HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; + DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; + MASK_INPUT(dev_event_list_t) dev_event_list; + HOST_OUTPUT(host_decisions_size_t, unsigned) host_decisions_size; + HOST_OUTPUT(host_post_scaler_t, float) host_post_scaler; + HOST_OUTPUT(host_post_scaler_hash_t, uint32_t) host_post_scaler_hash; + HOST_OUTPUT(host_fn_parameters_t, char) host_fn_parameters; + // Line-specific inputs and properties + DEVICE_INPUT(dev_velomuon_tracks_t, MuonTrack) dev_velomuon_tracks; + DEVICE_INPUT(dev_velomuon_tracks_qop_t, float) dev_velomuon_tracks_qop; + DEVICE_INPUT(dev_velomuon_tracks_offsets_t, unsigned) dev_velomuon_tracks_offsets; + DEVICE_INPUT(dev_velomuon_number_of_tracks_t, unsigned) dev_velomuon_number_of_tracks; + HOST_INPUT(host_velomuon_total_number_of_tracks_t, unsigned) host_velomuon_total_number_of_tracks; + + PROPERTY(pre_scaler_t, "pre_scaler", "Pre-scaling factor", float) pre_scaler; + PROPERTY(post_scaler_t, "post_scaler", "Post-scaling factor", float) post_scaler; + PROPERTY(pre_scaler_hash_string_t, "pre_scaler_hash_string", "Pre-scaling hash string", std::string); + PROPERTY(post_scaler_hash_string_t, "post_scaler_hash_string", "Post-scaling hash string", std::string); + }; + + // SelectionAlgorithm definition + struct one_velomuon_track_line_t : public SelectionAlgorithm, + Parameters, + Line { + + void set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions& runtime_options, + const Constants& constants, + const HostBuffers& host_buffers) const; + + // Offset function + __device__ static unsigned offset(const Parameters& parameters, const unsigned event_number) + { + return parameters.dev_velomuon_tracks_offsets[event_number]; + } + + // Get decision size function + static unsigned get_decisions_size(const ArgumentReferences& arguments) + { + return first(arguments); + } + + // Get input function + __device__ static std::tuple + get_input(const Parameters& parameters, const unsigned event_number, const unsigned i) + { + // Get the number of events + // const unsigned number_of_events = parameters.dev_number_of_events[0]; + const auto velomuon_tracks_offsets = parameters.dev_velomuon_tracks_offsets; + const auto velomuon_track = parameters.dev_velomuon_tracks; + + // Get the ith velo track + const unsigned track_index = i + velomuon_tracks_offsets[event_number]; + + return std::forward_as_tuple(velomuon_track[track_index]); + } + + __device__ static unsigned input_size(const Parameters& parameters, const unsigned event_number) + { + return parameters.dev_velomuon_number_of_tracks[event_number]; + } + + // Selection function + __device__ static bool select(const Parameters& parameters, std::tuple input); + + private: + // Commonly required properties + Property m_pre_scaler {this, 1.f}; + Property m_post_scaler {this, 1.f}; + Property m_pre_scaler_hash_string {this, ""}; + Property m_post_scaler_hash_string {this, ""}; + // Line-specific properties + }; +} // namespace one_velomuon_track_line \ No newline at end of file diff --git a/device/selections/lines/muon/src/OneMuonTrackLine.cu b/device/selections/lines/muon/src/OneMuonTrackLine.cu new file mode 100644 index 00000000000..7df2ab7cee0 --- /dev/null +++ b/device/selections/lines/muon/src/OneMuonTrackLine.cu @@ -0,0 +1,25 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#include "OneMuonTrackLine.cuh" + +// Explicit instantiation of the line +INSTANTIATE_LINE(one_muon_track_line::one_muon_track_line_t, one_muon_track_line::Parameters) + +void one_muon_track_line::one_muon_track_line_t::set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions& runtime_options, + const Constants& constants, + const HostBuffers& host_buffers) const +{ + static_cast(this)->set_arguments_size(arguments, runtime_options, constants, host_buffers); +} +// Selection function +__device__ bool one_muon_track_line::one_muon_track_line_t::select(const Parameters&, std::tuple input) +{ + const auto& muon_track = std::get<0>(input); + const bool decision = + (fabsf(muon_track.get_tx()) > 0.2f && muon_track.get_chi2x() < 0.1f && muon_track.get_chi2y() < 0.1f); + + return decision; +} \ No newline at end of file diff --git a/device/selections/lines/muon/src/OneVeloMuonTrackLine.cu b/device/selections/lines/muon/src/OneVeloMuonTrackLine.cu new file mode 100644 index 00000000000..1a96ff7c7c7 --- /dev/null +++ b/device/selections/lines/muon/src/OneVeloMuonTrackLine.cu @@ -0,0 +1,30 @@ +/*****************************************************************************\ +* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +\*****************************************************************************/ +#include "OneVeloMuonTrackLine.cuh" + +// Explicit instantiation of the line +INSTANTIATE_LINE(one_velomuon_track_line::one_velomuon_track_line_t, one_velomuon_track_line::Parameters) + +void one_velomuon_track_line::one_velomuon_track_line_t::set_arguments_size( + ArgumentReferences arguments, + const RuntimeOptions& runtime_options, + const Constants& constants, + const HostBuffers& host_buffers) const +{ + static_cast(this)->set_arguments_size(arguments, runtime_options, constants, host_buffers); +} +// Selection function +__device__ bool one_velomuon_track_line::one_velomuon_track_line_t::select( + const Parameters&, + std::tuple input) +{ + const auto& velomuon_track = std::get<0>(input); + const auto tx = velomuon_track.get_tx(); + const auto ty = velomuon_track.get_ty(); + const auto p = velomuon_track.get_p(); + const auto pt = sqrtf((tx * tx + ty * ty) / (1 + tx * tx + ty * ty)) * p; + const bool decision = (p > 5000 && pt > 500); + + return decision; +} \ No newline at end of file diff --git a/device/validators/include/LongTrackValidator.cuh b/device/validators/include/LongTrackValidator.cuh index d2ea081d800..685e41982cb 100644 --- a/device/validators/include/LongTrackValidator.cuh +++ b/device/validators/include/LongTrackValidator.cuh @@ -16,13 +16,22 @@ namespace long_track_validator { struct Parameters { HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; HOST_INPUT(host_number_of_reconstructed_long_tracks_t, unsigned) host_number_of_reconstructed_long_tracks; + HOST_INPUT(host_number_of_reconstructed_velomuon_tracks_t, unsigned) host_number_of_reconstructed_velomuon_tracks; HOST_INPUT(host_mc_events_t, const MCEvents*) host_mc_events; DEVICE_INPUT(dev_velo_states_view_t, Allen::Views::Physics::KalmanStates) dev_velo_states_view; + DEVICE_INPUT(dev_velo_tracks_view_t, Allen::Views::Velo::Consolidated::Tracks) dev_velo_tracks_view; MASK_INPUT(dev_event_list_t) dev_event_list; DEVICE_INPUT(dev_multi_event_long_tracks_view_t, Allen::Views::Physics::MultiEventLongTracks) dev_multi_event_long_tracks_view; DEVICE_INPUT(dev_offsets_long_tracks_t, unsigned) dev_offsets_long_tracks; + DEVICE_OUTPUT(dev_long_checker_tracks_t, Checker::Track) dev_long_checker_tracks; + DEVICE_OUTPUT(dev_velomuon_checker_tracks_t, Checker::Track) dev_velomuon_checker_tracks; + + DEVICE_INPUT(dev_velomuon_tracks_velo_indices_t, unsigned) dev_velomuon_tracks_velo_indices; + DEVICE_INPUT(dev_velomuon_tracks_qop_t, float) dev_velomuon_tracks_qop; + DEVICE_INPUT(dev_offsets_velomuon_tracks_t, unsigned) dev_offsets_velomuon_tracks; + PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; PROPERTY(root_output_filename_t, "root_output_filename", "root output filename", std::string); }; diff --git a/device/validators/include/MuonValidator.cuh b/device/validators/include/MuonValidator.cuh index 7487ea80eee..bd49e7ef9ad 100644 --- a/device/validators/include/MuonValidator.cuh +++ b/device/validators/include/MuonValidator.cuh @@ -16,14 +16,19 @@ namespace muon_validator { struct Parameters { HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; HOST_INPUT(host_number_of_reconstructed_long_tracks_t, unsigned) host_number_of_reconstructed_long_tracks; + HOST_INPUT(host_number_of_reconstructed_velo_tracks_t, unsigned) host_number_of_reconstructed_velo_tracks; HOST_INPUT(host_mc_events_t, const MCEvents*) host_mc_events; DEVICE_INPUT(dev_velo_states_view_t, Allen::Views::Physics::KalmanStates) dev_velo_states_view; MASK_INPUT(dev_event_list_t) dev_event_list; DEVICE_INPUT(dev_multi_event_long_tracks_view_t, Allen::Views::Physics::MultiEventLongTracks) dev_multi_event_long_tracks_view; + DEVICE_INPUT(dev_velo_tracks_view_t, Allen::Views::Velo::Consolidated::Tracks) dev_velo_tracks_view; + DEVICE_INPUT(dev_offsets_velo_tracks_t, unsigned) dev_offsets_velo_tracks; DEVICE_INPUT(dev_offsets_long_tracks_t, unsigned) dev_offsets_long_tracks; DEVICE_INPUT(dev_is_muon_t, bool) dev_is_muon; + DEVICE_INPUT(dev_match_velo_muon_t, bool) dev_match_velo_muon; DEVICE_OUTPUT(dev_muon_checker_tracks_t, Checker::Track) dev_muon_checker_tracks; + DEVICE_OUTPUT(dev_muon_checker_velotracks_t, Checker::Track) dev_muon_checker_velotracks; PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; PROPERTY(root_output_filename_t, "root_output_filename", "root output filename", std::string); }; diff --git a/device/validators/src/LongTrackValidator.cu b/device/validators/src/LongTrackValidator.cu index 369b93260c0..a3fc7177e0e 100644 --- a/device/validators/src/LongTrackValidator.cu +++ b/device/validators/src/LongTrackValidator.cu @@ -10,11 +10,25 @@ __global__ void long_track_validator::long_track_validator(long_track_validator: { const unsigned event_number = blockIdx.x; const auto event_long_tracks = parameters.dev_multi_event_long_tracks_view->container(event_number); + const auto event_velo_tracks = parameters.dev_velo_tracks_view[event_number]; const auto endvelo_states = parameters.dev_velo_states_view[event_number]; const unsigned offset_long_tracks = event_long_tracks.offset(); - Checker::Track* long_checker_tracks_event = parameters.dev_long_checker_tracks + offset_long_tracks; + const unsigned offset_velomuon_tracks = parameters.dev_offsets_velomuon_tracks[event_number]; + const unsigned number_of_velomuon_tracks = + parameters.dev_offsets_velomuon_tracks[event_number + 1] - parameters.dev_offsets_velomuon_tracks[event_number]; + const float* event_velomuon_qop = parameters.dev_velomuon_tracks_qop + offset_velomuon_tracks; + const unsigned* event_velomuon_velo_indices = parameters.dev_velomuon_tracks_velo_indices + offset_velomuon_tracks; + Checker::Track* long_checker_tracks_event = parameters.dev_long_checker_tracks + offset_long_tracks; + Checker::Track* velomuon_checker_tracks_event = parameters.dev_velomuon_checker_tracks + offset_velomuon_tracks; prepare_long_tracks(event_long_tracks, endvelo_states, long_checker_tracks_event); + prepare_velomuon_tracks( + number_of_velomuon_tracks, + event_velo_tracks, + endvelo_states, + event_velomuon_qop, + event_velomuon_velo_indices, + velomuon_checker_tracks_event); } void long_track_validator::long_track_validator_t::set_arguments_size( @@ -24,6 +38,7 @@ void long_track_validator::long_track_validator_t::set_arguments_size( const HostBuffers&) const { set_size(arguments, first(arguments)); + set_size(arguments, first(arguments)); } void long_track_validator::long_track_validator_t::operator()( @@ -38,18 +53,34 @@ void long_track_validator::long_track_validator_t::operator()( const auto event_list = make_host_buffer(arguments, context); const auto long_tracks_for_checker = make_host_buffer(arguments, context); const auto event_tracks_offsets = make_host_buffer(arguments, context); + + const auto velomuon_tracks_for_checker = make_host_buffer(arguments, context); + const auto event_velomuon_offsets = make_host_buffer(arguments, context); std::vector tracks; + std::vector velomuon_tracks; + tracks.resize(event_list.size()); + velomuon_tracks.resize(event_list.size()); for (size_t i = 0; i < event_list.size(); ++i) { const auto evnum = event_list[i]; const auto event_offset = event_tracks_offsets[evnum]; + const auto event_velomuon_offset = event_velomuon_offsets[evnum]; const auto n_tracks = event_tracks_offsets[evnum + 1] - event_offset; - std::vector event_trakcs = {long_tracks_for_checker.begin() + event_offset, + const auto n_velomuon_tracks = event_velomuon_offsets[evnum + 1] - event_velomuon_offset; + std::vector event_tracks = {long_tracks_for_checker.begin() + event_offset, long_tracks_for_checker.begin() + event_offset + n_tracks}; - tracks[i] = event_trakcs; + + std::vector event_velomuon_tracks = {velomuon_tracks_for_checker.begin() + event_velomuon_offset, + velomuon_tracks_for_checker.begin() + event_velomuon_offset + + n_velomuon_tracks}; + tracks[i] = event_tracks; + velomuon_tracks[i] = event_velomuon_tracks; } auto& checker = runtime_options.checker_invoker->checker(name(), property()); checker.accumulate(*first(arguments), tracks, event_list); + auto& velomuon_checker = + runtime_options.checker_invoker->checker("velomuon tracks", property()); + velomuon_checker.accumulate(*first(arguments), velomuon_tracks, event_list); } \ No newline at end of file diff --git a/device/validators/src/MuonValidator.cu b/device/validators/src/MuonValidator.cu index 769842037d0..c886a867a97 100644 --- a/device/validators/src/MuonValidator.cu +++ b/device/validators/src/MuonValidator.cu @@ -10,14 +10,19 @@ __global__ void muon_validator::muon_validator(muon_validator::Parameters parame { const unsigned event_number = blockIdx.x; const auto event_long_tracks = parameters.dev_multi_event_long_tracks_view->container(event_number); + const auto event_velo_tracks = parameters.dev_velo_tracks_view[event_number]; const auto endvelo_states = parameters.dev_velo_states_view[event_number]; const unsigned offset_long_tracks = event_long_tracks.offset(); const bool* is_muon = parameters.dev_is_muon + offset_long_tracks; + const bool* match_velo_muon = parameters.dev_match_velo_muon + event_velo_tracks.offset(); Checker::Track* muon_checker_tracks_event = parameters.dev_muon_checker_tracks + offset_long_tracks; + Checker::Track* muon_checker_velotracks_event = parameters.dev_muon_checker_velotracks + event_velo_tracks.offset(); prepare_long_tracks(event_long_tracks, endvelo_states, muon_checker_tracks_event); + prepare_velo_tracks(event_velo_tracks, muon_checker_velotracks_event); prepare_muons(event_long_tracks.size(), muon_checker_tracks_event, is_muon); + prepare_muons(event_velo_tracks.size(), muon_checker_velotracks_event, match_velo_muon); } void muon_validator::muon_validator_t::set_arguments_size( @@ -27,6 +32,7 @@ void muon_validator::muon_validator_t::set_arguments_size( const HostBuffers&) const { set_size(arguments, first(arguments)); + set_size(arguments, first(arguments)); } void muon_validator::muon_validator_t::operator()( @@ -41,18 +47,33 @@ void muon_validator::muon_validator_t::operator()( const auto event_list = make_host_buffer(arguments, context); const auto muon_tracks_for_checker = make_host_buffer(arguments, context); const auto event_tracks_offsets = make_host_buffer(arguments, context); + + const auto muon_velotracks_for_checker = make_host_buffer(arguments, context); + const auto event_velotracks_offsets = make_host_buffer(arguments, context); std::vector tracks; + std::vector velotracks; tracks.resize(event_list.size()); + velotracks.resize(event_list.size()); for (size_t i = 0; i < event_list.size(); ++i) { const auto evnum = event_list[i]; const auto event_offset = event_tracks_offsets[evnum]; + const auto event_velooffset = event_velotracks_offsets[evnum]; const auto n_tracks = event_tracks_offsets[evnum + 1] - event_offset; - std::vector event_trakcs = {muon_tracks_for_checker.begin() + event_offset, + const auto n_velotracks = event_velotracks_offsets[evnum + 1] - event_velooffset; + std::vector event_tracks = {muon_tracks_for_checker.begin() + event_offset, muon_tracks_for_checker.begin() + event_offset + n_tracks}; - tracks[i] = event_trakcs; + + std::vector event_velotracks = {muon_velotracks_for_checker.begin() + event_velooffset, + muon_velotracks_for_checker.begin() + event_velooffset + + n_velotracks}; + tracks[i] = event_tracks; + velotracks[i] = event_velotracks; } auto& checker = runtime_options.checker_invoker->checker(name(), property()); checker.accumulate(*first(arguments), tracks, event_list); + auto& checker_velo = + runtime_options.checker_invoker->checker("velo muon checker", property()); + checker_velo.accumulate(*first(arguments), velotracks, event_list); } \ No newline at end of file diff --git a/host/validators/include/HostVeloValidator.h b/host/validators/include/HostVeloValidator.h index 45347566b58..347080db0cd 100644 --- a/host/validators/include/HostVeloValidator.h +++ b/host/validators/include/HostVeloValidator.h @@ -12,6 +12,7 @@ namespace host_velo_validator { DEVICE_INPUT(dev_offsets_all_velo_tracks_t, unsigned) dev_offsets_all_velo_tracks; DEVICE_INPUT(dev_offsets_velo_track_hit_number_t, unsigned) dev_offsets_velo_track_hit_number; DEVICE_INPUT(dev_velo_track_hits_t, char) dev_velo_track_hits; + // DEVICE_INPUT(dev_velomuon_muon_id_t, bool) dev_velomuon_muon_id; MASK_INPUT(dev_event_list_t) dev_event_list; HOST_INPUT(host_mc_events_t, const MCEvents*) host_mc_events; PROPERTY(root_output_filename_t, "root_output_filename", "root output filename", std::string); diff --git a/host/validators/src/HostVeloValidator.cpp b/host/validators/src/HostVeloValidator.cpp index 11ffccb59b3..4c4084c7a81 100644 --- a/host/validators/src/HostVeloValidator.cpp +++ b/host/validators/src/HostVeloValidator.cpp @@ -23,6 +23,7 @@ void host_velo_validator::host_velo_validator_t::operator()( offsets_all_velo_tracks, offsets_velo_track_hit_number, velo_track_hits, + // velomuon_id, event_list); auto& checker = diff --git a/stream/sequence/include/Constants.cuh b/stream/sequence/include/Constants.cuh index 78f05ab8334..7de5fa927d0 100644 --- a/stream/sequence/include/Constants.cuh +++ b/stream/sequence/include/Constants.cuh @@ -20,7 +20,9 @@ namespace Muon { class MuonTables; namespace Constants { struct FieldOfInterest; - } + struct MatchVeloWindows; + struct MomParam; + } // namespace Constants } // namespace Muon namespace LookingForward { struct Constants; @@ -100,6 +102,8 @@ struct Constants { std::vector host_muon_lookup_tables_raw; Muon::MuonGeometry* dev_muon_geometry = nullptr; Muon::MuonTables* dev_muon_tables = nullptr; + Muon::Constants::MatchVeloWindows* dev_match_velo_windows = nullptr; + Muon::Constants::MomParam* dev_muon_mom_param = nullptr; // Velo-UT-muon MatchUpstreamMuon::MuonChambers* dev_muonmatch_search_muon_chambers = nullptr; diff --git a/stream/sequence/src/Constants.cpp b/stream/sequence/src/Constants.cpp index d752d9e9d2d..9e78154cb00 100644 --- a/stream/sequence/src/Constants.cpp +++ b/stream/sequence/src/Constants.cpp @@ -22,6 +22,8 @@ void Constants::reserve_constants() Allen::malloc((void**) &dev_muon_momentum_cuts, 3 * sizeof(float)); Allen::malloc((void**) &dev_muonmatch_search_muon_chambers, sizeof(MatchUpstreamMuon::MuonChambers)); Allen::malloc((void**) &dev_muonmatch_search_windows, sizeof(MatchUpstreamMuon::SearchWindows)); + Allen::malloc((void**) &dev_match_velo_windows, sizeof(Muon::Constants::MatchVeloWindows)); + Allen::malloc((void**) &dev_muon_mom_param, sizeof(Muon::Constants::MomParam)); host_ut_region_offsets.resize(UT::Constants::n_layers * UT::Constants::n_regions_in_layer + 1); host_ut_dxDy.resize(UT::Constants::n_layers); @@ -70,6 +72,17 @@ void Constants::initialize_constants( Allen::memcpy(dev_muon_momentum_cuts, &Muon::Constants::momentum_cuts, 3 * sizeof(float), Allen::memcpyHostToDevice); Allen::memcpy(dev_muon_foi, &host_muon_foi, sizeof(Muon::Constants::FieldOfInterest), Allen::memcpyHostToDevice); + // VeloMuon + Muon::Constants::MatchVeloWindows host_match_velo_windows; + Allen::memcpy( + dev_match_velo_windows, + &host_match_velo_windows, + sizeof(Muon::Constants::MatchVeloWindows), + Allen::memcpyHostToDevice); + + Muon::Constants::MomParam host_muon_mom_param; + Allen::memcpy(dev_muon_mom_param, &host_muon_mom_param, sizeof(Muon::Constants::MomParam), Allen::memcpyHostToDevice); + // Velo-UT-muon MatchUpstreamMuon::MuonChambers host_muonmatch_search_muon_chambers; MatchUpstreamMuon::SearchWindows host_muonmatch_search_windows; -- GitLab From 69157883a23c1717197dd45212841fc36b7e0ee7 Mon Sep 17 00:00:00 2001 From: Adrian Casais Vidal Date: Tue, 27 Sep 2022 23:42:39 +0200 Subject: [PATCH 02/17] Removed comments --- .../python/AllenConf/muon_reconstruction.py | 9 --------- .../event_model/muon/include/MuonDefinitions.cuh | 2 -- .../match_velo_muon/include/ConsolidateMuon.cuh | 11 ----------- .../muon/match_velo_muon/include/FindMuonHits.cuh | 7 ------- device/muon/match_velo_muon/include/FitMuon.cuh | 3 --- .../muon/match_velo_muon/src/ConsolidateMuon.cu | 4 ---- device/muon/match_velo_muon/src/FitMuon.cu | 15 --------------- .../lines/muon/include/OneMuonTrackLine.cuh | 1 - host/validators/include/HostVeloValidator.h | 1 - host/validators/src/HostVeloValidator.cpp | 1 - 10 files changed, 54 deletions(-) diff --git a/configuration/python/AllenConf/muon_reconstruction.py b/configuration/python/AllenConf/muon_reconstruction.py index 903c658e4d1..b03d94f8414 100644 --- a/configuration/python/AllenConf/muon_reconstruction.py +++ b/configuration/python/AllenConf/muon_reconstruction.py @@ -231,10 +231,6 @@ def make_velo_muon(): host_number_of_events_t=number_of_events["host_number_of_events"], dev_number_of_events_t=number_of_events["dev_number_of_events"], dev_muon_tracks_input_t=find_muon_hits.dev_muon_tracks_t, - # dev_muon_tracks_tx_input_t=find_muon_hits.dev_muon_tracks_tx_t, - # dev_muon_tracks_ty_input_t=find_muon_hits.dev_muon_tracks_ty_t, - # dev_muon_tracks_state_muon_index_input_t=find_muon_hits. - # dev_muon_tracks_states_t, dev_muon_number_of_tracks_t=find_muon_hits.dev_muon_number_of_tracks_t, dev_muon_tracks_offsets_t=prefix_sum_muon_tracks.dev_output_buffer_t, host_muon_total_number_of_tracks_t=prefix_sum_muon_tracks. @@ -263,11 +259,6 @@ def make_velo_muon(): dev_velo_tracks_view_t=velo_tracks["dev_velo_tracks_view"], dev_velo_states_view_t=velo_states[ "dev_velo_kalman_endvelo_states_view"], - # dev_muon_tracks_tx_t=consolidate_muon.dev_muon_tracks_tx_output_t, - # dev_muon_tracks_ty_t=consolidate_muon.dev_muon_tracks_ty_output_t, - # dev_muon_tracks_state_muon_index_t=consolidate_muon. - # dev_muon_tracks_state_muon_index_output_t) - ) prefix_sum_velomuon_tracks = make_algorithm( host_prefix_sum_t, diff --git a/device/event_model/muon/include/MuonDefinitions.cuh b/device/event_model/muon/include/MuonDefinitions.cuh index 84a81082d11..69103f3f929 100644 --- a/device/event_model/muon/include/MuonDefinitions.cuh +++ b/device/event_model/muon/include/MuonDefinitions.cuh @@ -273,8 +273,6 @@ struct MuonTrack { __host__ __device__ uint8_t number_of_hits() const { return m_number_of_hits; } - // __host__ __device__ void set_velo_index(int velo_index){ m_velo_index = velo_index;} - __host__ __device__ void set_tx(float tx) { m_tx = tx; } __host__ __device__ void set_ty(float ty) { m_ty = ty; } __host__ __device__ void set_ax(float ax) { m_ax = ax; } diff --git a/device/muon/match_velo_muon/include/ConsolidateMuon.cuh b/device/muon/match_velo_muon/include/ConsolidateMuon.cuh index 7af0e366dfa..8be36b4f6fa 100644 --- a/device/muon/match_velo_muon/include/ConsolidateMuon.cuh +++ b/device/muon/match_velo_muon/include/ConsolidateMuon.cuh @@ -16,22 +16,11 @@ namespace consolidate_muon { HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; MASK_INPUT(dev_event_list_t) dev_event_list; DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; - // DEVICE_INPUT(dev_station_ocurrences_offset_t, unsigned) dev_station_ocurrences_offset; - // DEVICE_INPUT(dev_muon_hits_t, char) dev_muon_hits; DEVICE_INPUT(dev_muon_tracks_input_t, MuonTrack) dev_muon_tracks_input; - // DEVICE_INPUT(dev_muon_tracks_tx_input_t, float) dev_muon_tracks_tx_input; - // DEVICE_INPUT(dev_muon_tracks_ty_input_t, float) dev_muon_tracks_ty_input; - // DEVICE_INPUT(dev_muon_tracks_state_muon_index_input_t, int) dev_muon_tracks_state_muon_index_input; DEVICE_INPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; - DEVICE_INPUT(dev_muon_tracks_offsets_t, unsigned) dev_muon_tracks_offsets; HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; - DEVICE_OUTPUT(dev_muon_tracks_output_t, MuonTrack) dev_muon_tracks_output; - // DEVICE_OUTPUT(dev_muon_tracks_tx_output_t, float) dev_muon_tracks_tx_output; - // DEVICE_OUTPUT(dev_muon_tracks_ty_output_t, float) dev_muon_tracks_ty_output; - // DEVICE_OUTPUT(dev_muon_tracks_state_muon_index_output_t, int) dev_muon_tracks_state_muon_index_output; - PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; }; diff --git a/device/muon/match_velo_muon/include/FindMuonHits.cuh b/device/muon/match_velo_muon/include/FindMuonHits.cuh index 854aea20efd..3a186226745 100644 --- a/device/muon/match_velo_muon/include/FindMuonHits.cuh +++ b/device/muon/match_velo_muon/include/FindMuonHits.cuh @@ -29,17 +29,10 @@ namespace find_muon_hits { HOST_OUTPUT(host_station_ocurrences_offset_t, unsigned) host_station_ocurrences_offset; DEVICE_INPUT(dev_muon_hits_t, char) dev_muon_hits; HOST_OUTPUT(host_muon_hits_t, char) host_muon_hits; - DEVICE_OUTPUT(dev_muon_tracks_t, MuonTrack) dev_muon_tracks; HOST_OUTPUT(host_muon_tracks_t, MuonTrack) host_velomuon_tracks; - DEVICE_OUTPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; HOST_OUTPUT(host_muon_number_of_tracks_t, unsigned) host_muon_number_of_tracks; - // DEVICE_OUTPUT(dev_muon_tracks_tx_t, float) dev_muon_tracks_tx; - // DEVICE_OUTPUT(dev_muon_tracks_ty_t, float) dev_muon_tracks_ty; - // DEVICE_OUTPUT(dev_muon_tracks_chi2x_t, float) dev_muon_tracks_chi2x; - // DEVICE_OUTPUT(dev_muon_tracks_chi2y_t, float) dev_muon_tracks_chi2y; - // DEVICE_OUTPUT(dev_muon_tracks_states_t, int) dev_muon_tracks_states; PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; }; diff --git a/device/muon/match_velo_muon/include/FitMuon.cuh b/device/muon/match_velo_muon/include/FitMuon.cuh index 76d393e0bc3..3bb41225dcf 100644 --- a/device/muon/match_velo_muon/include/FitMuon.cuh +++ b/device/muon/match_velo_muon/include/FitMuon.cuh @@ -20,17 +20,14 @@ namespace fit_muon { DEVICE_INPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; DEVICE_INPUT(dev_station_ocurrences_offset_t, unsigned) dev_station_ocurrences_offset; DEVICE_INPUT(dev_muon_hits_t, char) dev_muon_hits; - DEVICE_INPUT(dev_muon_tracks_offsets_t, unsigned) dev_muon_tracks_offsets; HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; - DEVICE_OUTPUT(dev_muon_tracks_tx_t, float) dev_muon_tracks_tx; DEVICE_OUTPUT(dev_muon_tracks_ty_t, float) dev_muon_tracks_ty; DEVICE_OUTPUT(dev_muon_tracks_state_muon_index_t, unsigned) dev_muon_tracks_state_muon_index; DEVICE_OUTPUT(dev_muon_tracks_chi2x_t, float) dev_muon_tracks_chi2x; DEVICE_OUTPUT(dev_muon_tracks_chi2y_t, float) dev_muon_tracks_chi2y; DEVICE_OUTPUT(dev_muon_number_of_fitted_tracks_t, unsigned) dev_muon_number_of_fitted_tracks; - // DEVICE_OUTPUT(dev_output_muon_tracks); PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; }; diff --git a/device/muon/match_velo_muon/src/ConsolidateMuon.cu b/device/muon/match_velo_muon/src/ConsolidateMuon.cu index c8c099eafac..a22e534c3f0 100644 --- a/device/muon/match_velo_muon/src/ConsolidateMuon.cu +++ b/device/muon/match_velo_muon/src/ConsolidateMuon.cu @@ -17,10 +17,6 @@ void consolidate_muon::consolidate_muon_t::set_arguments_size( const HostBuffers&) const { set_size(arguments, first(arguments)); - // set_size(arguments, first(arguments)); - // set_size(arguments, first(arguments)); - // set_size(arguments, - // first(arguments)) } void consolidate_muon::consolidate_muon_t::operator()( diff --git a/device/muon/match_velo_muon/src/FitMuon.cu b/device/muon/match_velo_muon/src/FitMuon.cu index 28595ca7183..cd4c83c742a 100644 --- a/device/muon/match_velo_muon/src/FitMuon.cu +++ b/device/muon/match_velo_muon/src/FitMuon.cu @@ -34,9 +34,6 @@ void fit_muon::fit_muon_t::operator()( HostBuffers&, const Allen::Context& context) const { - // initialize(arguments, 0, context); - // initialize(arguments, 0, context); - // print(arguments); Allen::memset_async(arguments, 0, context); global_function(fit_muon)(dim3(size(arguments)), property(), context)(arguments); } @@ -48,8 +45,6 @@ __global__ void fit_muon::fit_muon(fit_muon::Parameters parameters) const auto muon_total_number_of_hits = parameters.dev_station_ocurrences_offset[number_of_events * Muon::Constants::n_stations]; - // const auto station_ocurrences_offset = - // parameters.dev_station_ocurrences_offset + event_number * Muon::Constants::n_stations; const auto muon_hits = Muon::ConstHits {parameters.dev_muon_hits, muon_total_number_of_hits}; // TODO: Change into container taking into consideration actual sizes of M4 and M5 (use prefix sum) @@ -71,7 +66,6 @@ __global__ void fit_muon::fit_muon(fit_muon::Parameters parameters) const auto n_hits_track = muon_track.number_of_hits(); const auto ndof = n_hits_track - 2; if (normal_fit) { - // printf("Entering normal fit\n"); float x_mean = 0; float y_mean = 0; float z_mean = 0; @@ -104,8 +98,6 @@ __global__ void fit_muon::fit_muon(fit_muon::Parameters parameters) float ay = y_mean - ty * z_mean; event_muon_tx[idx] = tx; event_muon_ty[idx] = ty; - // muon_track.set_tx(tx); - // muon_track.set_ty(ty); for (unsigned i_hit = 0; i_hit < 4; i_hit++) { if (muon_track.hit(i_hit) == -1) continue; chi2x += (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))) * @@ -126,11 +118,9 @@ __global__ void fit_muon::fit_muon(fit_muon::Parameters parameters) event_muon_tx[insert_idx] = tx; event_muon_ty[insert_idx] = ty; event_muon_states[insert_idx] = muon_track.hit(state_idx); - // __syncthreads(); } } else { - // printf("Entering alternate fit\n"); float xz = 0; float yz = 0; float x = 0; @@ -141,10 +131,8 @@ __global__ void fit_muon::fit_muon(fit_muon::Parameters parameters) float z2 = 0; float chi2x = 0; float chi2y = 0; - // printf("n_hits_track=%i\n",n_hits_track); for (unsigned i_hit = 0; i_hit < 4; i_hit++) { if (muon_track.hit(i_hit) == -1) continue; - // printf("summing variables\n"); xz += muon_hits.x(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; yz += muon_hits.y(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; x += muon_hits.x(muon_track.hit(i_hit)) / n_hits_track; @@ -168,11 +156,8 @@ __global__ void fit_muon::fit_muon(fit_muon::Parameters parameters) chi2y += (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))) * (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))); } - // printf("offset=%i\n",event_muon_tracks_offset); event_muon_chi2x[idx] = chi2x; event_muon_chi2y[idx] = chi2y; } - // printf("tx = %f, ty = %f, chi2x/nodf = %f, chi2y/ndof = - // %f\n",event_muon_tx[idx],event_muon_ty[idx],event_muon_chi2x[idx]/2.f,event_muon_chi2y[idx]/2.f); } } diff --git a/device/selections/lines/muon/include/OneMuonTrackLine.cuh b/device/selections/lines/muon/include/OneMuonTrackLine.cuh index faf3fc26111..135d8538a47 100644 --- a/device/selections/lines/muon/include/OneMuonTrackLine.cuh +++ b/device/selections/lines/muon/include/OneMuonTrackLine.cuh @@ -23,7 +23,6 @@ namespace one_muon_track_line { DEVICE_INPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; - // PROPERTY(pre_scaler_t, "pre_scaler", "Pre-scaling factor", float) pre_scaler; PROPERTY(pre_scaler_t, "pre_scaler", "Pre-scaling factor", float) pre_scaler; PROPERTY(post_scaler_t, "post_scaler", "Post-scaling factor", float) post_scaler; PROPERTY(pre_scaler_hash_string_t, "pre_scaler_hash_string", "Pre-scaling hash string", std::string); diff --git a/host/validators/include/HostVeloValidator.h b/host/validators/include/HostVeloValidator.h index 347080db0cd..45347566b58 100644 --- a/host/validators/include/HostVeloValidator.h +++ b/host/validators/include/HostVeloValidator.h @@ -12,7 +12,6 @@ namespace host_velo_validator { DEVICE_INPUT(dev_offsets_all_velo_tracks_t, unsigned) dev_offsets_all_velo_tracks; DEVICE_INPUT(dev_offsets_velo_track_hit_number_t, unsigned) dev_offsets_velo_track_hit_number; DEVICE_INPUT(dev_velo_track_hits_t, char) dev_velo_track_hits; - // DEVICE_INPUT(dev_velomuon_muon_id_t, bool) dev_velomuon_muon_id; MASK_INPUT(dev_event_list_t) dev_event_list; HOST_INPUT(host_mc_events_t, const MCEvents*) host_mc_events; PROPERTY(root_output_filename_t, "root_output_filename", "root output filename", std::string); diff --git a/host/validators/src/HostVeloValidator.cpp b/host/validators/src/HostVeloValidator.cpp index 4c4084c7a81..11ffccb59b3 100644 --- a/host/validators/src/HostVeloValidator.cpp +++ b/host/validators/src/HostVeloValidator.cpp @@ -23,7 +23,6 @@ void host_velo_validator::host_velo_validator_t::operator()( offsets_all_velo_tracks, offsets_velo_track_hit_number, velo_track_hits, - // velomuon_id, event_list); auto& checker = -- GitLab From 4744e0ad16326ff807c5d5ccc284dba38480702c Mon Sep 17 00:00:00 2001 From: Adrian Casais Vidal Date: Wed, 28 Sep 2022 12:30:00 +0200 Subject: [PATCH 03/17] Resolving threads Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Allen/-/jobs/24834060 --- CMakeLists.txt | 5 +---- configuration/python/AllenConf/muon_reconstruction.py | 1 + device/muon/match_velo_muon/include/MatchVeloMuon.cuh | 2 ++ device/muon/match_velo_muon/src/MatchVeloMuon.cu | 7 +++++++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c4b9ebead1..b7f59a24057 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -748,7 +748,4 @@ if (STANDALONE) add_compile_definitions(PARAMFILESROOTPATH=${PARAMFILESROOT}) message(STATUS "PARAMFILESROOT set to ${PARAMFILESROOT}") endif() -endif() - -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/plotsfornote) -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/plotsfornote_root) \ No newline at end of file +endif() \ No newline at end of file diff --git a/configuration/python/AllenConf/muon_reconstruction.py b/configuration/python/AllenConf/muon_reconstruction.py index b03d94f8414..e5d7dc84f70 100644 --- a/configuration/python/AllenConf/muon_reconstruction.py +++ b/configuration/python/AllenConf/muon_reconstruction.py @@ -259,6 +259,7 @@ def make_velo_muon(): dev_velo_tracks_view_t=velo_tracks["dev_velo_tracks_view"], dev_velo_states_view_t=velo_states[ "dev_velo_kalman_endvelo_states_view"], + create_plot_dirs=True) prefix_sum_velomuon_tracks = make_algorithm( host_prefix_sum_t, diff --git a/device/muon/match_velo_muon/include/MatchVeloMuon.cuh b/device/muon/match_velo_muon/include/MatchVeloMuon.cuh index add81726d80..4c8fe7d9213 100644 --- a/device/muon/match_velo_muon/include/MatchVeloMuon.cuh +++ b/device/muon/match_velo_muon/include/MatchVeloMuon.cuh @@ -42,6 +42,7 @@ namespace match_velo_muon { DEVICE_OUTPUT(dev_velomuon_number_of_tracks_t, unsigned) dev_velomuon_number_of_tracks; DEVICE_OUTPUT(dev_velomuon_muon_id_t, bool) dev_velomuon_muon_id; + PROPERTY(create_plot_dirs_t, "create_plot_dirs", "create plot dirs", bool) create_plot_dirs; PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; }; @@ -64,6 +65,7 @@ namespace match_velo_muon { private: Property m_block_dim {this, {{64, 1, 1}}}; + Property m_create_plot_dir {this, false}; }; float xcale[4] {0.06f, 0.1f, 0.15f, 0.15f}; float distance_cut[5] {30 * 30, 60 * 60, 110 * 110, 200 * 200}; diff --git a/device/muon/match_velo_muon/src/MatchVeloMuon.cu b/device/muon/match_velo_muon/src/MatchVeloMuon.cu index 5914254e7cb..bc0f246a4b1 100644 --- a/device/muon/match_velo_muon/src/MatchVeloMuon.cu +++ b/device/muon/match_velo_muon/src/MatchVeloMuon.cu @@ -8,6 +8,9 @@ #include "VeloEventModel.cuh" #include +#include +namespace fs = std::filesystem; + INSTANTIATE_ALGORITHM(match_velo_muon::match_velo_muon_t) void match_velo_muon::match_velo_muon_t::set_arguments_size( @@ -35,6 +38,10 @@ void match_velo_muon::match_velo_muon_t::operator()( HostBuffers&, const Allen::Context& context) const { + if (property()) { + fs::create_directory("plotsfornote"); + fs::create_directory("plotsfornote_root"); + } Allen::memset_async(arguments, 0, context); Allen::memset_async(arguments, 0, context); global_function(match_velo_muon)(dim3(size(arguments)), property(), context)( -- GitLab From b259b656c052b7fb4bd241ec12582a8c228425e6 Mon Sep 17 00:00:00 2001 From: Adrian Casais Vidal Date: Wed, 28 Sep 2022 15:53:13 +0200 Subject: [PATCH 04/17] remove fitmuon --- .../python/AllenConf/muon_reconstruction.py | 2 +- .../muon/match_velo_muon/include/FitMuon.cuh | 54 ------ device/muon/match_velo_muon/src/FitMuon.cu | 163 ------------------ 3 files changed, 1 insertion(+), 218 deletions(-) delete mode 100644 device/muon/match_velo_muon/include/FitMuon.cuh delete mode 100644 device/muon/match_velo_muon/src/FitMuon.cu diff --git a/configuration/python/AllenConf/muon_reconstruction.py b/configuration/python/AllenConf/muon_reconstruction.py index e5d7dc84f70..79a26caf504 100644 --- a/configuration/python/AllenConf/muon_reconstruction.py +++ b/configuration/python/AllenConf/muon_reconstruction.py @@ -5,7 +5,7 @@ from AllenAlgorithms.algorithms import ( data_provider_t, muon_calculate_srq_size_t, host_prefix_sum_t, muon_populate_tile_and_tdc_t, muon_add_coords_crossing_maps_t, muon_populate_hits_t, is_muon_t, empty_lepton_id_t, find_muon_hits_t, - fit_muon_t, ut_select_velo_tracks_t, match_velo_muon_t, consolidate_muon_t, + ut_select_velo_tracks_t, match_velo_muon_t, consolidate_muon_t, consolidate_velo_muon_t) from AllenConf.utils import initialize_number_of_events from AllenCore.generator import make_algorithm diff --git a/device/muon/match_velo_muon/include/FitMuon.cuh b/device/muon/match_velo_muon/include/FitMuon.cuh deleted file mode 100644 index 3bb41225dcf..00000000000 --- a/device/muon/match_velo_muon/include/FitMuon.cuh +++ /dev/null @@ -1,54 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * -\*****************************************************************************/ -#pragma once - -#include "AlgorithmTypes.cuh" -#include "MuonDefinitions.cuh" -#include "UTConsolidated.cuh" -#include "VeloConsolidated.cuh" -#include "States.cuh" - -static constexpr int M2 {0}, M3 {1}, M4 {2}, M5 {3}; - -namespace fit_muon { - struct Parameters { - HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; - DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; - MASK_INPUT(dev_event_list_t) dev_event_list; - DEVICE_INPUT(dev_muon_tracks_t, MuonTrack) dev_muon_tracks; - DEVICE_INPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; - DEVICE_INPUT(dev_station_ocurrences_offset_t, unsigned) dev_station_ocurrences_offset; - DEVICE_INPUT(dev_muon_hits_t, char) dev_muon_hits; - DEVICE_INPUT(dev_muon_tracks_offsets_t, unsigned) dev_muon_tracks_offsets; - HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; - DEVICE_OUTPUT(dev_muon_tracks_tx_t, float) dev_muon_tracks_tx; - DEVICE_OUTPUT(dev_muon_tracks_ty_t, float) dev_muon_tracks_ty; - DEVICE_OUTPUT(dev_muon_tracks_state_muon_index_t, unsigned) dev_muon_tracks_state_muon_index; - DEVICE_OUTPUT(dev_muon_tracks_chi2x_t, float) dev_muon_tracks_chi2x; - DEVICE_OUTPUT(dev_muon_tracks_chi2y_t, float) dev_muon_tracks_chi2y; - DEVICE_OUTPUT(dev_muon_number_of_fitted_tracks_t, unsigned) dev_muon_number_of_fitted_tracks; - PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; - }; - - __global__ void fit_muon(Parameters); - - struct fit_muon_t : public DeviceAlgorithm, Parameters { - void set_arguments_size( - ArgumentReferences arguments, - const RuntimeOptions&, - const Constants&, - const HostBuffers&) const; - - void operator()( - const ArgumentReferences& arguments, - const RuntimeOptions& runtime_options, - const Constants& constants, - HostBuffers& host_buffers, - const Allen::Context& context) const; - - private: - Property m_block_dim {this, {{64, 1, 1}}}; - }; - -} // namespace fit_muon \ No newline at end of file diff --git a/device/muon/match_velo_muon/src/FitMuon.cu b/device/muon/match_velo_muon/src/FitMuon.cu deleted file mode 100644 index cd4c83c742a..00000000000 --- a/device/muon/match_velo_muon/src/FitMuon.cu +++ /dev/null @@ -1,163 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * -\*****************************************************************************/ -#include "FitMuon.cuh" - -#include "Common.h" -#include "VeloDefinitions.cuh" -#include "VeloEventModel.cuh" -#include - -INSTANTIATE_ALGORITHM(fit_muon::fit_muon_t) - -void fit_muon::fit_muon_t::set_arguments_size( - ArgumentReferences arguments, - const RuntimeOptions&, - const Constants&, - const HostBuffers&) const -{ - set_size(arguments, first(arguments)); - set_size(arguments, first(arguments)); - - set_size(arguments, first(arguments)); - - set_size(arguments, first(arguments)); - set_size(arguments, first(arguments)); - - set_size(arguments, first(arguments)); -} - -void fit_muon::fit_muon_t::operator()( - const ArgumentReferences& arguments, - const RuntimeOptions&, - const Constants&, - HostBuffers&, - const Allen::Context& context) const -{ - Allen::memset_async(arguments, 0, context); - global_function(fit_muon)(dim3(size(arguments)), property(), context)(arguments); -} - -__global__ void fit_muon::fit_muon(fit_muon::Parameters parameters) -{ - const unsigned event_number = parameters.dev_event_list[blockIdx.x]; - const unsigned number_of_events = parameters.dev_number_of_events[0]; - - const auto muon_total_number_of_hits = - parameters.dev_station_ocurrences_offset[number_of_events * Muon::Constants::n_stations]; - const auto muon_hits = Muon::ConstHits {parameters.dev_muon_hits, muon_total_number_of_hits}; - - // TODO: Change into container taking into consideration actual sizes of M4 and M5 (use prefix sum) - const auto event_muon_tracks = parameters.dev_muon_tracks + event_number * Muon::Constants::max_number_of_tracks; - const auto event_number_of_tracks = parameters.dev_muon_number_of_tracks[event_number]; - const auto event_muon_tracks_offset = parameters.dev_muon_tracks_offsets[event_number]; - - auto event_muon_tx = parameters.dev_muon_tracks_tx + event_muon_tracks_offset; - auto event_muon_ty = parameters.dev_muon_tracks_ty + event_muon_tracks_offset; - auto event_muon_states = parameters.dev_muon_tracks_state_muon_index + event_muon_tracks_offset; - - const auto event_muon_chi2x = parameters.dev_muon_tracks_chi2x + event_muon_tracks_offset; - const auto event_muon_chi2y = parameters.dev_muon_tracks_chi2y + event_muon_tracks_offset; - - auto event_number_of_fitted_tracks = parameters.dev_muon_number_of_fitted_tracks + event_number; - bool normal_fit = true; - for (unsigned idx = threadIdx.x; idx < event_number_of_tracks; idx += blockDim.x) { - const auto muon_track = event_muon_tracks[idx]; - const auto n_hits_track = muon_track.number_of_hits(); - const auto ndof = n_hits_track - 2; - if (normal_fit) { - float x_mean = 0; - float y_mean = 0; - float z_mean = 0; - float chi2x = 0; - float chi2y = 0; - - for (unsigned i_hit = 0; i_hit < 4; i_hit++) { - if (muon_track.hit(i_hit) == -1) continue; - x_mean += muon_hits.x(muon_track.hit(i_hit)); - y_mean += muon_hits.y(muon_track.hit(i_hit)); - z_mean += muon_hits.z(muon_track.hit(i_hit)); - } - - x_mean = x_mean / n_hits_track; - y_mean = y_mean / n_hits_track; - z_mean = z_mean / n_hits_track; - - float szx = 0; - float szy = 0; - float sz2 = 0; - for (unsigned i_hit = 0; i_hit < 4; i_hit++) { - if (muon_track.hit(i_hit) == -1) continue; - szx += (muon_hits.z(muon_track.hit(i_hit)) - z_mean) * (muon_hits.x(muon_track.hit(i_hit)) - x_mean); - szy += (muon_hits.z(muon_track.hit(i_hit)) - z_mean) * (muon_hits.y(muon_track.hit(i_hit)) - y_mean); - sz2 += (muon_hits.z(muon_track.hit(i_hit)) - z_mean) * (muon_hits.z(muon_track.hit(i_hit)) - z_mean); - } - float tx = szx / sz2; - float ax = x_mean - tx * z_mean; - float ty = szy / sz2; - float ay = y_mean - ty * z_mean; - event_muon_tx[idx] = tx; - event_muon_ty[idx] = ty; - for (unsigned i_hit = 0; i_hit < 4; i_hit++) { - if (muon_track.hit(i_hit) == -1) continue; - chi2x += (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))) * - (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))) / - muon_hits.x(muon_track.hit(i_hit)); - chi2y += (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))) * - (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))) / - muon_hits.y(muon_track.hit(i_hit)); - } - - if (chi2x / ndof < 100.f && chi2y / ndof < 100.f) { - // if (true) { - int state_idx = muon_track.hit(M5) != -1.f ? M5 : M4; - state_idx = M2; - const auto insert_idx = atomicAdd(event_number_of_fitted_tracks, 1); - event_muon_chi2x[insert_idx] = chi2x; - event_muon_chi2y[insert_idx] = chi2y; - event_muon_tx[insert_idx] = tx; - event_muon_ty[insert_idx] = ty; - event_muon_states[insert_idx] = muon_track.hit(state_idx); - } - } - else { - float xz = 0; - float yz = 0; - float x = 0; - float y = 0; - float z = 0; - float x2 = 0; - float y2 = 0; - float z2 = 0; - float chi2x = 0; - float chi2y = 0; - for (unsigned i_hit = 0; i_hit < 4; i_hit++) { - if (muon_track.hit(i_hit) == -1) continue; - xz += muon_hits.x(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; - yz += muon_hits.y(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; - x += muon_hits.x(muon_track.hit(i_hit)) / n_hits_track; - y += muon_hits.y(muon_track.hit(i_hit)) / n_hits_track; - z += muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; - x2 += muon_hits.x(muon_track.hit(i_hit)) * muon_hits.x(muon_track.hit(i_hit)) / n_hits_track; - y2 += muon_hits.y(muon_track.hit(i_hit)) * muon_hits.y(muon_track.hit(i_hit)) / n_hits_track; - z2 += muon_hits.z(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; - } - float tx = (xz - x * z) / (z2 - z * z); - float ax = (x - tx * z); - float ty = (yz - y * z) / (z2 - z * z); - float ay = (y - ty * z); - event_muon_tx[idx] = tx; - event_muon_ty[idx] = ty; - - for (unsigned i_hit = 0; i_hit < 4; i_hit++) { - if (muon_track.hit(i_hit) == -1) continue; - chi2x += (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))) * - (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))); - chi2y += (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))) * - (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))); - } - event_muon_chi2x[idx] = chi2x; - event_muon_chi2y[idx] = chi2y; - } - } -} -- GitLab From 7ad46f31d57339dda29a35c47d7153766b5ed9ad Mon Sep 17 00:00:00 2001 From: Saverio Mariani Date: Wed, 28 Sep 2022 19:17:22 +0200 Subject: [PATCH 05/17] Changes to configuration to easily implement a standalone muon trigger line --- configuration/python/AllenConf/HLT1.py | 18 ++-- .../python/AllenConf/hlt1_muon_lines.py | 19 ++-- .../python/AllenConf/hlt1_reconstruction.py | 6 +- .../python/AllenConf/muon_reconstruction.py | 87 +++++++++---------- .../python/AllenSequences/standalone_muon.py | 44 ++++++++++ .../match_velo_muon/include/FindMuonHits.cuh | 10 +-- .../src/ConsolidateVeloMuon.cu | 2 +- .../muon/match_velo_muon/src/FindMuonHits.cu | 25 ++---- .../muon/match_velo_muon/src/MatchVeloMuon.cu | 15 +--- 9 files changed, 120 insertions(+), 106 deletions(-) create mode 100644 configuration/python/AllenSequences/standalone_muon.py diff --git a/configuration/python/AllenConf/HLT1.py b/configuration/python/AllenConf/HLT1.py index d77eaa80758..14f44d41f7d 100644 --- a/configuration/python/AllenConf/HLT1.py +++ b/configuration/python/AllenConf/HLT1.py @@ -27,7 +27,8 @@ def default_physics_lines(reconstructed_objects, with_calo, with_muon): long_tracks = reconstructed_objects["long_tracks"] long_track_particles = reconstructed_objects["long_track_particles"] secondary_vertices = reconstructed_objects["secondary_vertices"] - velo_muon_objects = reconstructed_objects['velo_muon'] + muon_stubs = reconstructed_objects["muon_stubs"] + velo_muon = reconstructed_objects["velo_muon"] lines = [ make_two_track_mva_charm_xsec_line( @@ -49,14 +50,15 @@ def default_physics_lines(reconstructed_objects, with_calo, with_muon): if with_muon: lines += [ make_one_velomuon_track_line( - velo_muon_objects['match_velo_muon'], - velo_muon_objects['consolidate_velo_muon'], - velo_muon_objects['prefix_sum_velomuon_tracks'], + velo_muon['match_velo_muon'], + velo_muon['consolidate_velo_muon'], + velo_muon['prefix_sum_velomuon_tracks'], name="Hlt1OneVeloMuonTrackLine"), make_one_muon_track_line( - velo_muon_objects['find_muon_hits'], - velo_muon_objects['consolidate_muon'], - velo_muon_objects['prefix_sum_muon_tracks'], + muon_stubs["dev_muon_number_of_tracks"], + muon_stubs["consolidated_muon_tracks"], + muon_stubs["dev_output_buffer"], + muon_stubs["host_total_sum_holder"], name="Hlt1OneMuonTrackLine"), make_single_high_pt_muon_line( long_tracks, long_track_particles, @@ -404,7 +406,7 @@ def setup_hlt1_node(withMCChecking=False, ], NodeLogic.NONLAZY_AND, force_order=True) - + if with_lumi: lumi_with_prefilter = CompositeNode( "LumiWithPrefilter", diff --git a/configuration/python/AllenConf/hlt1_muon_lines.py b/configuration/python/AllenConf/hlt1_muon_lines.py index 12790a1ee11..d688bc55e25 100644 --- a/configuration/python/AllenConf/hlt1_muon_lines.py +++ b/configuration/python/AllenConf/hlt1_muon_lines.py @@ -22,6 +22,7 @@ def make_one_velomuon_track_line(velomuon_tracks_algo, dev_velomuon_tracks_offsets = velomuon_prefix_sum.dev_output_buffer_t dev_velomuon_tracks = consolidate_tracks_algo.dev_velomuon_tracks_output_t host_velomuon_total_number_of_tracks = velomuon_prefix_sum.host_total_sum_holder_t + return make_algorithm( one_velomuon_track_line_t, name=name, @@ -37,17 +38,15 @@ def make_one_velomuon_track_line(velomuon_tracks_algo, dev_velomuon_tracks_offsets_t=dev_velomuon_tracks_offsets) -def make_one_muon_track_line(standalone_muon_tracks_algo, - consolidate_tracks_algo, - standalone_muon_prefix_sum, +def make_one_muon_track_line(number_of_muon_tracks, + muon_tracks, + dev_output_buffer, + host_total_sum_holder, name="Hlt1OneMuonTrack", pre_scaler_hash_string=None, post_scaler_hash_string=None): number_of_events = initialize_number_of_events() - muon_tracks = consolidate_tracks_algo.dev_muon_tracks_output_t - dev_number_of_muon_tracks = standalone_muon_tracks_algo.dev_muon_number_of_tracks_t - dev_muon_tracks_offsets = standalone_muon_prefix_sum.dev_output_buffer_t - host_muon_total_number_of_tracks = standalone_muon_prefix_sum.host_total_sum_holder_t + return make_algorithm( one_muon_track_line_t, name=name, @@ -55,10 +54,10 @@ def make_one_muon_track_line(standalone_muon_tracks_algo, dev_number_of_events_t=number_of_events["dev_number_of_events"], pre_scaler_hash_string=pre_scaler_hash_string or name + "_pre", post_scaler_hash_string=post_scaler_hash_string or name + "_post", + dev_muon_number_of_tracks_t=number_of_muon_tracks, dev_muon_tracks_t=muon_tracks, - dev_muon_number_of_tracks_t=dev_number_of_muon_tracks, - host_muon_total_number_of_tracks_t=host_muon_total_number_of_tracks, - dev_muon_tracks_offsets_t=dev_muon_tracks_offsets) + host_muon_total_number_of_tracks_t=host_total_sum_holder, + dev_muon_tracks_offsets_t= dev_output_buffer) def make_single_high_pt_muon_line(long_tracks, diff --git a/configuration/python/AllenConf/hlt1_reconstruction.py b/configuration/python/AllenConf/hlt1_reconstruction.py index 526aa50845b..cbb10259ca0 100755 --- a/configuration/python/AllenConf/hlt1_reconstruction.py +++ b/configuration/python/AllenConf/hlt1_reconstruction.py @@ -5,7 +5,7 @@ from AllenConf.velo_reconstruction import decode_velo, make_velo_tracks, run_vel from AllenConf.ut_reconstruction import decode_ut, make_ut_tracks from AllenConf.scifi_reconstruction import decode_scifi, make_forward_tracks, make_seeding_XZ_tracks, make_seeding_tracks from AllenConf.matching_reconstruction import make_velo_scifi_matches -from AllenConf.muon_reconstruction import decode_muon, is_muon, fake_muon_id, make_velo_muon +from AllenConf.muon_reconstruction import decode_muon, is_muon, fake_muon_id, make_muon_stubs, make_velo_muon from AllenConf.calo_reconstruction import decode_calo, make_track_matching, make_ecal_clusters from AllenConf.primary_vertex_reconstruction import make_pvs from AllenConf.secondary_vertex_reconstruction import make_kalman_velo_only, make_basic_particles, fit_secondary_vertices @@ -27,13 +27,15 @@ def hlt1_reconstruction(matching=False, velo_tracks = make_velo_tracks(decoded_velo) velo_states = run_velo_kalman_filter(velo_tracks) pvs = make_pvs(velo_tracks) + muon_stubs = make_muon_stubs() velo_muon = make_velo_muon() output = { "velo_tracks": velo_tracks, "velo_states": velo_states, "pvs": pvs, - 'velo_muon': velo_muon + "muon_stubs" : muon_stubs, + "velo_muon": velo_muon } if matching: diff --git a/configuration/python/AllenConf/muon_reconstruction.py b/configuration/python/AllenConf/muon_reconstruction.py index 79a26caf504..32ea266fc72 100644 --- a/configuration/python/AllenConf/muon_reconstruction.py +++ b/configuration/python/AllenConf/muon_reconstruction.py @@ -169,53 +169,15 @@ def muon_id(): return alg -def make_velo_muon(): - from AllenConf.velo_reconstruction import decode_velo, make_velo_tracks - from AllenConf.ut_reconstruction import decode_ut, make_ut_tracks - from AllenConf.velo_reconstruction import run_velo_kalman_filter - +def make_muon_stubs(): number_of_events = initialize_number_of_events() - host_number_of_events = number_of_events["host_number_of_events"] - dev_number_of_events = number_of_events["dev_number_of_events"] - decoded_velo = decode_velo() - velo_tracks = make_velo_tracks(decoded_velo) - decoded_ut = decode_ut() decoded_muon = decode_muon() - ut_tracks = make_ut_tracks(decoded_ut, velo_tracks) - velo_tracks = ut_tracks["velo_tracks"] - velo_states = ut_tracks["velo_states"] - - velo_kalman_filter = run_velo_kalman_filter(velo_tracks) - - ut_select_velo_tracks = make_algorithm( - ut_select_velo_tracks_t, - name="ut_select_velo_tracks", - host_number_of_events_t=number_of_events["host_number_of_events"], - host_number_of_reconstructed_velo_tracks_t=velo_tracks[ - "host_number_of_reconstructed_velo_tracks"], - dev_velo_tracks_view_t=velo_tracks["dev_velo_tracks_view"], - dev_velo_states_view_t=velo_states[ - "dev_velo_kalman_beamline_states_view"], - dev_accepted_velo_tracks_t=velo_tracks["dev_accepted_velo_tracks"]) find_muon_hits = make_algorithm( find_muon_hits_t, name='find_muon_hits', host_number_of_events_t=number_of_events["host_number_of_events"], dev_number_of_events_t=number_of_events["dev_number_of_events"], - host_number_of_reconstructed_ut_tracks_t=ut_tracks[ - "host_number_of_reconstructed_ut_tracks"], - dev_offsets_ut_tracks_t=ut_tracks["dev_offsets_ut_tracks"], - dev_offsets_ut_track_hit_number_t=ut_tracks[ - "dev_offsets_ut_track_hit_number"], - dev_ut_qop_t=ut_tracks["dev_ut_qop"], - dev_ut_track_velo_indices_t=ut_tracks["dev_ut_track_velo_indices"], - dev_offsets_all_velo_tracks_t=velo_tracks[ - "dev_offsets_all_velo_tracks"], - dev_offsets_velo_track_hit_number_t=velo_tracks[ - "dev_offsets_velo_track_hit_number"], - dev_velo_kalman_beamline_states_t=velo_kalman_filter[ - "dev_velo_kalman_beamline_states"], dev_station_ocurrences_offset_t=decoded_muon[ "dev_station_ocurrences_offset"], dev_muon_hits_t=decoded_muon["dev_muon_hits"], @@ -237,18 +199,52 @@ def make_velo_muon(): host_total_sum_holder_t, ) + return { "dev_muon_tracks_output" : consolidate_muon.dev_muon_tracks_output_t, + "dev_muon_number_of_tracks" : find_muon_hits.dev_muon_number_of_tracks_t, + "consolidated_muon_tracks" : consolidate_muon.dev_muon_tracks_output_t, + "host_total_sum_holder" : prefix_sum_muon_tracks.host_total_sum_holder_t, + "dev_output_buffer" : prefix_sum_muon_tracks.dev_output_buffer_t} + +def make_velo_muon(): + from AllenConf.velo_reconstruction import decode_velo, make_velo_tracks + from AllenConf.ut_reconstruction import decode_ut, make_ut_tracks + from AllenConf.velo_reconstruction import run_velo_kalman_filter + + number_of_events = initialize_number_of_events() + decoded_velo = decode_velo() + decoded_muon = decode_muon() + decoded_ut = decode_ut() + velo_tracks = make_velo_tracks(decoded_velo) + ut_tracks = make_ut_tracks(decoded_ut, velo_tracks) + velo_tracks = ut_tracks["velo_tracks"] + velo_states = ut_tracks["velo_states"] + + velo_kalman_filter = run_velo_kalman_filter(velo_tracks) + + ut_select_velo_tracks = make_algorithm( + ut_select_velo_tracks_t, + name="ut_select_velo_tracks", + host_number_of_events_t=number_of_events["host_number_of_events"], + host_number_of_reconstructed_velo_tracks_t=velo_tracks[ + "host_number_of_reconstructed_velo_tracks"], + dev_velo_tracks_view_t=velo_tracks["dev_velo_tracks_view"], + dev_velo_states_view_t=velo_states[ + "dev_velo_kalman_beamline_states_view"], + dev_accepted_velo_tracks_t=velo_tracks["dev_accepted_velo_tracks"]) + + standalone_muon = make_muon_stubs() + match_velo_muon = make_algorithm( match_velo_muon_t, name='match_velo_muon', host_number_of_events_t=number_of_events["host_number_of_events"], dev_number_of_events_t=number_of_events["dev_number_of_events"], - dev_muon_tracks_t=consolidate_muon.dev_muon_tracks_output_t, - dev_muon_number_of_tracks_t=find_muon_hits.dev_muon_number_of_tracks_t, - host_muon_total_number_of_tracks_t=prefix_sum_muon_tracks. - host_total_sum_holder_t, + dev_muon_tracks_t=standalone_muon["dev_muon_tracks_output"], + dev_muon_number_of_tracks_t=standalone_muon["dev_muon_number_of_tracks"], + host_muon_total_number_of_tracks_t=standalone_muon["host_total_sum_holder"], host_number_of_reconstructed_velo_tracks_t=velo_tracks[ "host_number_of_reconstructed_velo_tracks"], - dev_muon_tracks_offsets_t=prefix_sum_muon_tracks.dev_output_buffer_t, + dev_muon_tracks_offsets_t=standalone_muon["dev_output_buffer"], dev_station_ocurrences_offset_t=decoded_muon[ "dev_station_ocurrences_offset"], dev_muon_hits_t=decoded_muon["dev_muon_hits"], @@ -286,10 +282,7 @@ def make_velo_muon(): dev_velomuon_tracks_input_t=match_velo_muon.dev_velomuon_tracks_t) return { - 'find_muon_hits': find_muon_hits, - 'consolidate_muon': consolidate_muon, 'match_velo_muon': match_velo_muon, - 'prefix_sum_muon_tracks': prefix_sum_muon_tracks, 'prefix_sum_velomuon_tracks': prefix_sum_velomuon_tracks, 'consolidate_velo_muon': consolidate_velo_muon } diff --git a/configuration/python/AllenSequences/standalone_muon.py b/configuration/python/AllenSequences/standalone_muon.py new file mode 100644 index 00000000000..6b05db76244 --- /dev/null +++ b/configuration/python/AllenSequences/standalone_muon.py @@ -0,0 +1,44 @@ +############################################################################### +# (c) Copyright 2021 CERN for the benefit of the LHCb Collaboration # +############################################################################### +from AllenConf.muon_reconstruction import make_muon_stubs +from AllenCore.generator import generate +from AllenConf.persistency import make_gather_selections, make_sel_report_writer, make_global_decision, make_routingbits_writer, make_dec_reporter +from AllenConf.hlt1_muon_lines import make_one_muon_track_line +from AllenConf.utils import line_maker +from PyConf.control_flow import NodeLogic, CompositeNode +from AllenConf.hlt1_reconstruction import validator_node +from AllenConf.validators import rate_validation + + +muon_stubs = make_muon_stubs() +lines = [ line_maker ( make_one_muon_track_line( muon_stubs["dev_muon_number_of_tracks"], + muon_stubs["consolidated_muon_tracks"], + muon_stubs["dev_output_buffer"], + muon_stubs["host_total_sum_holder"], + name="Hlt1OneMuonStub") ) ] + +line_algorithms = [tup[0] for tup in lines] +line_nodes = [tup[1] for tup in lines] + +lines = CompositeNode( + "SetupAllLines", line_nodes, NodeLogic.NONLAZY_OR, force_order=False) + +gather_selections = make_gather_selections(lines=line_algorithms) +hlt1_node = CompositeNode( + "StandaloneMuon", [ + lines, + make_global_decision(lines=line_algorithms), + ], + NodeLogic.NONLAZY_AND, + force_order=True) + +hlt1_node = CompositeNode( + "StandaloneMuonWithValidation", [ + hlt1_node, + rate_validation(lines=line_algorithms), + ], + NodeLogic.NONLAZY_AND, + force_order=True) + +generate( hlt1_node ) diff --git a/device/muon/match_velo_muon/include/FindMuonHits.cuh b/device/muon/match_velo_muon/include/FindMuonHits.cuh index 3a186226745..9ea1a19e311 100644 --- a/device/muon/match_velo_muon/include/FindMuonHits.cuh +++ b/device/muon/match_velo_muon/include/FindMuonHits.cuh @@ -15,16 +15,8 @@ static constexpr int M2 {0}, M3 {1}, M4 {2}, M5 {3}; namespace find_muon_hits { struct Parameters { HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; - HOST_INPUT(host_number_of_reconstructed_ut_tracks_t, unsigned) host_number_of_reconstructed_ut_tracks; MASK_INPUT(dev_event_list_t) dev_event_list; DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; - DEVICE_INPUT(dev_offsets_all_velo_tracks_t, unsigned) dev_atomics_velo; - DEVICE_INPUT(dev_offsets_velo_track_hit_number_t, unsigned) dev_velo_track_hit_number; - DEVICE_INPUT(dev_velo_kalman_beamline_states_t, char) dev_kalmanvelo_states; - DEVICE_INPUT(dev_offsets_ut_tracks_t, unsigned) dev_atomics_ut; - DEVICE_INPUT(dev_offsets_ut_track_hit_number_t, unsigned) dev_ut_track_hit_number; - DEVICE_INPUT(dev_ut_qop_t, float) dev_ut_qop; - DEVICE_INPUT(dev_ut_track_velo_indices_t, unsigned) dev_ut_track_velo_indices; DEVICE_INPUT(dev_station_ocurrences_offset_t, unsigned) dev_station_ocurrences_offset; HOST_OUTPUT(host_station_ocurrences_offset_t, unsigned) host_station_ocurrences_offset; DEVICE_INPUT(dev_muon_hits_t, char) dev_muon_hits; @@ -61,4 +53,4 @@ namespace find_muon_hits { Property m_block_dim {this, {{64, 1, 1}}}; }; -} // namespace find_muon_hits \ No newline at end of file +} // namespace find_muon_hits diff --git a/device/muon/match_velo_muon/src/ConsolidateVeloMuon.cu b/device/muon/match_velo_muon/src/ConsolidateVeloMuon.cu index 6225b6d0317..b513cc1ccb9 100644 --- a/device/muon/match_velo_muon/src/ConsolidateVeloMuon.cu +++ b/device/muon/match_velo_muon/src/ConsolidateVeloMuon.cu @@ -27,7 +27,7 @@ void consolidate_velo_muon::consolidate_velo_muon_t::set_arguments_size( void consolidate_velo_muon::consolidate_velo_muon_t::operator()( const ArgumentReferences& arguments, const RuntimeOptions&, - const Constants& constants, + const Constants&, HostBuffers&, const Allen::Context& context) const { diff --git a/device/muon/match_velo_muon/src/FindMuonHits.cu b/device/muon/match_velo_muon/src/FindMuonHits.cu index a0e13e8e685..7d672bb2b19 100644 --- a/device/muon/match_velo_muon/src/FindMuonHits.cu +++ b/device/muon/match_velo_muon/src/FindMuonHits.cu @@ -107,6 +107,7 @@ void find_muon_hits::find_muon_hits_t::operator()( global_function(find_muon_hits)(dim3(size(arguments)), property(), context)( arguments, constants.dev_match_velo_windows); + Allen::synchronize(context); output_monitor(arguments, runtime_options, context); Allen::synchronize(context); @@ -226,8 +227,7 @@ __device__ int find_compatible_hit_in_station( const unsigned* station_ocurrences_offset, const Muon::ConstHits muon_hits, const float* Xmax, - const float* Ymax, - const float* tolForRegion) + const float* Ymax) { const auto station_offset = station_ocurrences_offset[i_station]; const auto nhits_i_station = station_ocurrences_offset[i_station + 1] - station_offset; @@ -237,8 +237,6 @@ __device__ int find_compatible_hit_in_station( const auto xmax = Xmax[i_station * 4 + region_seed]; const auto ymax = Ymax[i_station * 4 + region_seed]; - const auto tol = tolForRegion[region_seed]; - int track_index = -1; float deltaXmin, deltaYmin; @@ -247,14 +245,7 @@ __device__ int find_compatible_hit_in_station( const auto deltaX = fabsf(x - muon_hits.x(idx)); const auto deltaY = fabsf(y - muon_hits.y(idx)); - // NOTE: This (previous) implementation depends on the order in which hits were decoded! - // if ( - // deltaX < xmax && deltaY < ymax && - // (track_index == -1 || - // (deltaY < deltaYmin - tol || - // (deltaY < deltaYmin + tol && (deltaX < deltaXmin - tol || fabsf(deltaXmin - deltaX) < 0.1f))))) { - - if (deltaX < xmax && deltaY < ymax && (track_index == -1 || deltaY < deltaYmin && deltaX < deltaXmin)) { + if (deltaX < xmax && deltaY < ymax && (track_index == -1 || (deltaY < deltaYmin && deltaX < deltaXmin))) { deltaXmin = deltaX; deltaYmin = deltaY; track_index = static_cast(i_hit); @@ -299,6 +290,7 @@ __device__ void seedAndFind( const auto first_st_ocurrences_offset = station_ocurrences_offset[st_order[0]]; const auto number_of_hits_first_st = station_ocurrences_offset[st_order[0] + 1] - first_st_ocurrences_offset; + //printf("Number of hits first_station: %u\n", number_of_hits_first_st); for (unsigned seed = threadIdx.x; seed < number_of_hits_first_st; seed += blockDim.x) { const unsigned first_st_abs_idx = first_st_ocurrences_offset + seed; const auto xseed = muon_hits.x(first_st_abs_idx); @@ -316,6 +308,7 @@ __device__ void seedAndFind( const auto station = st_order[i_station]; if (station == st_order[3] && muon_track.number_of_hits() < 2) { // If we are on the last station and we have less than 2 hits, early exit + //printf("Breaking: hits are not enough\n"); break; } else if (muon_track.number_of_hits() >= 2) { @@ -340,8 +333,7 @@ __device__ void seedAndFind( station_ocurrences_offset, muon_hits, match_velo_windows.Xmax, - match_velo_windows.Ymax, - match_velo_windows.tolForRegion); + match_velo_windows.Ymax); if (hit_index != -1) { muon_track.add_hit_to_station(station_ocurrences_offset[station] + hit_index, station); @@ -382,7 +374,7 @@ __global__ void find_muon_hits::find_muon_hits( // Station processing order constexpr std::array st_order {M5, M4, M3, M2}; - constexpr std::array st_order2 {M4, M3, M2}; + //constexpr std::array st_order2 {M4, M3, M2}; const auto match_velo_windows = dev_match_velo_windows[0]; @@ -434,6 +426,7 @@ __global__ void find_muon_hits::find_muon_hits( return -1; }; + //printf("Number of muon tracks: %u \n", *number_of_muon_tracks_atomic); for (unsigned track = threadIdx.x; track < *number_of_muon_tracks_atomic; track += blockDim.x) { const auto muon_track = muon_tracks[track]; bool is_clone = false; @@ -453,4 +446,4 @@ __global__ void find_muon_hits::find_muon_hits( event_muon_tracks[insert_index] = muon_track; } } -} \ No newline at end of file +} diff --git a/device/muon/match_velo_muon/src/MatchVeloMuon.cu b/device/muon/match_velo_muon/src/MatchVeloMuon.cu index bc0f246a4b1..d491dcf1188 100644 --- a/device/muon/match_velo_muon/src/MatchVeloMuon.cu +++ b/device/muon/match_velo_muon/src/MatchVeloMuon.cu @@ -86,7 +86,6 @@ __device__ float qop_calculation( const auto txO7 = txO * txO * txO * txO * txO * txO * txO; const auto tyO2 = tyO * tyO; const auto tyO4 = tyO * tyO * tyO * tyO; - const auto tyO5 = tyO * tyO * tyO * tyO * tyO; const auto tyO6 = tyO * tyO * tyO * tyO * tyO * tyO; const auto C0 = muon_mom_param->C0[0] + muon_mom_param->C0[1] * txO2 + muon_mom_param->C0[2] * txO4 + @@ -126,8 +125,7 @@ __device__ Muon::MatchingResult getChi2Match( float ty_muon, float xpos_muon, float ypos_muon, - float zpos_muon, - int region) + float zpos_muon) { const float xpos_velo = velo_state.x, ypos_velo = velo_state.y, zpos_velo = velo_state.z, tx_velo = velo_state.tx, ty_velo = velo_state.ty; @@ -173,7 +171,6 @@ __global__ void match_velo_muon::match_velo_muon( const Muon::Constants::MomParam* muon_mom_param) { const unsigned event_number = parameters.dev_event_list[blockIdx.x]; - const unsigned number_of_events = parameters.dev_number_of_events[0]; // Velo views const auto velo_tracks = parameters.dev_velo_tracks_view[event_number]; @@ -185,10 +182,6 @@ __global__ void match_velo_muon::match_velo_muon( const auto ut_number_of_selected_tracks = parameters.dev_ut_number_of_selected_velo_tracks[event_number]; const auto ut_selected_velo_tracks = parameters.dev_ut_selected_velo_tracks + event_velo_seeds_offset; - const auto muon_total_number_of_hits = - parameters.dev_station_ocurrences_offset[number_of_events * Muon::Constants::n_stations]; - const auto muon_hits = Muon::ConstHits {parameters.dev_muon_hits, muon_total_number_of_hits}; - // TODO: Change into container taking into consideration actual sizes of M4 and M5 (use prefix sum) const auto event_velomuon_tracks_offset = event_number * Muon::Constants::max_number_of_tracks; const auto event_muon_tracks_offset = parameters.dev_muon_tracks_offsets[event_number]; @@ -219,11 +212,9 @@ __global__ void match_velo_muon::match_velo_muon( auto tx_muon = muon_track.get_tx(); auto ty_muon = muon_track.get_ty(); - auto muon_idx = muon_track.get_state(); auto xpos_muon = muon_track.state_x(); auto ypos_muon = muon_track.state_y(); auto zpos_muon = muon_track.state_z(); - auto region = muon_hits.region(muon_idx); int matched_velo_idx = -1; float min_chi2 = 99999.f; @@ -232,7 +223,7 @@ __global__ void match_velo_muon::match_velo_muon( const auto velo_track_index = ut_selected_velo_tracks[ivelo]; const auto endvelo_state = velo_states.state(velo_track_index); - auto matching_result = getChi2Match(endvelo_state, tx_muon, ty_muon, xpos_muon, ypos_muon, zpos_muon, region); + auto matching_result = getChi2Match(endvelo_state, tx_muon, ty_muon, xpos_muon, ypos_muon, zpos_muon); auto chi2 = matching_result.chi2; if (chi2 < min_chi2 || matched_velo_idx == -1) { matched_velo_idx = velo_track_index; @@ -245,8 +236,6 @@ __global__ void match_velo_muon::match_velo_muon( event_muon_velo_indices_with_clones[insert_index] = matched_velo_idx; const auto velo_state = velo_states.state(matched_velo_idx); event_match_chi2[insert_index] = min_chi2; - float poq = MatchUpstreamMuon::kickScale / fabsf(tx_muon - velo_states.state(matched_velo_idx).tx()) + - MatchUpstreamMuon::kickOffset; float qop = qop_calculation( muon_mom_param, magnet_polarity[0], -- GitLab From 9a466f32bec8484c92418e7fcb5ccccbdf0de10e Mon Sep 17 00:00:00 2001 From: Saverio Mariani Date: Thu, 29 Sep 2022 10:26:17 +0200 Subject: [PATCH 06/17] Also change configuration of velomuon track like --- configuration/python/AllenConf/HLT1.py | 8 +++++--- configuration/python/AllenConf/hlt1_muon_lines.py | 14 ++++++-------- .../python/AllenConf/muon_reconstruction.py | 11 ++++++++--- configuration/python/AllenConf/validators.py | 15 +++++---------- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/configuration/python/AllenConf/HLT1.py b/configuration/python/AllenConf/HLT1.py index 14f44d41f7d..3e66ca13d0e 100644 --- a/configuration/python/AllenConf/HLT1.py +++ b/configuration/python/AllenConf/HLT1.py @@ -50,9 +50,11 @@ def default_physics_lines(reconstructed_objects, with_calo, with_muon): if with_muon: lines += [ make_one_velomuon_track_line( - velo_muon['match_velo_muon'], - velo_muon['consolidate_velo_muon'], - velo_muon['prefix_sum_velomuon_tracks'], + velo_muon["velomuon_qop"], + velo_muon["dev_number_of_velomuon_tracks"], + velo_muon["dev_velomuon_tracks_offsets"], + velo_muon["dev_velomuon_tracks"], + velo_muon["host_velomuon_total_number_of_tracks"], name="Hlt1OneVeloMuonTrackLine"), make_one_muon_track_line( muon_stubs["dev_muon_number_of_tracks"], diff --git a/configuration/python/AllenConf/hlt1_muon_lines.py b/configuration/python/AllenConf/hlt1_muon_lines.py index d688bc55e25..cedb6ccd7a8 100644 --- a/configuration/python/AllenConf/hlt1_muon_lines.py +++ b/configuration/python/AllenConf/hlt1_muon_lines.py @@ -10,18 +10,16 @@ from AllenConf.utils import initialize_number_of_events, mep_layout from AllenCore.generator import make_algorithm -def make_one_velomuon_track_line(velomuon_tracks_algo, - consolidate_tracks_algo, - velomuon_prefix_sum, +def make_one_velomuon_track_line(velomuon_qop, + dev_number_of_velomuon_tracks, + dev_velomuon_tracks_offsets, + dev_velomuon_tracks, + host_velomuon_total_number_of_tracks, name="Hlt1OneVeloMuonTrack", pre_scaler_hash_string=None, post_scaler_hash_string=None): + number_of_events = initialize_number_of_events() - velomuon_qop = consolidate_tracks_algo.dev_velomuon_tracks_qop_output_t - dev_number_of_velomuon_tracks = velomuon_tracks_algo.dev_velomuon_number_of_tracks_t - dev_velomuon_tracks_offsets = velomuon_prefix_sum.dev_output_buffer_t - dev_velomuon_tracks = consolidate_tracks_algo.dev_velomuon_tracks_output_t - host_velomuon_total_number_of_tracks = velomuon_prefix_sum.host_total_sum_holder_t return make_algorithm( one_velomuon_track_line_t, diff --git a/configuration/python/AllenConf/muon_reconstruction.py b/configuration/python/AllenConf/muon_reconstruction.py index 32ea266fc72..4671a50adb3 100644 --- a/configuration/python/AllenConf/muon_reconstruction.py +++ b/configuration/python/AllenConf/muon_reconstruction.py @@ -282,7 +282,12 @@ def make_velo_muon(): dev_velomuon_tracks_input_t=match_velo_muon.dev_velomuon_tracks_t) return { - 'match_velo_muon': match_velo_muon, - 'prefix_sum_velomuon_tracks': prefix_sum_velomuon_tracks, - 'consolidate_velo_muon': consolidate_velo_muon + "dev_velomuon_muon_id" : match_velo_muon.dev_velomuon_muon_id_t, + "velomuon_qop": consolidate_velo_muon.dev_velomuon_tracks_qop_output_t, + "dev_number_of_velomuon_tracks": match_velo_muon.dev_velomuon_number_of_tracks_t, + "dev_velomuon_tracks_offsets": prefix_sum_velomuon_tracks.dev_output_buffer_t, + "dev_velomuon_tracks" : consolidate_velo_muon.dev_velomuon_tracks_output_t, + "host_velomuon_total_number_of_tracks" : prefix_sum_velomuon_tracks.host_total_sum_holder_t, + "dev_output_buffer" : prefix_sum_velomuon_tracks.dev_output_buffer_t, + "dev_velomuon_tracks_velo_indices_output" : consolidate_velo_muon.dev_velomuon_tracks_velo_indices_output_t } diff --git a/configuration/python/AllenConf/validators.py b/configuration/python/AllenConf/validators.py index 63b4fcf5172..a0389ad10e9 100644 --- a/configuration/python/AllenConf/validators.py +++ b/configuration/python/AllenConf/validators.py @@ -94,20 +94,16 @@ def long_validation(long_tracks, velo_muon, name="long_validator"): host_mc_events_t=mc_events.host_mc_events_t, host_number_of_reconstructed_long_tracks_t=long_tracks[ "host_number_of_reconstructed_scifi_tracks"], - host_number_of_reconstructed_velomuon_tracks_t=velo_muon[ - 'prefix_sum_velomuon_tracks'].host_total_sum_holder_t, + host_number_of_reconstructed_velomuon_tracks_t=velo_muon["host_velomuon_total_number_of_tracks"], dev_velo_states_view_t=velo_kalman_filter[ "dev_velo_kalman_endvelo_states_view"], dev_velo_tracks_view_t=velo_tracks['dev_velo_tracks_view'], dev_multi_event_long_tracks_view_t=long_tracks[ "dev_multi_event_long_tracks_view"], dev_offsets_long_tracks_t=long_tracks["dev_offsets_long_tracks"], - dev_offsets_velomuon_tracks_t=velo_muon["prefix_sum_velomuon_tracks"]. - dev_output_buffer_t, - dev_velomuon_tracks_qop_t=velo_muon['consolidate_velo_muon']. - dev_velomuon_tracks_qop_output_t, - dev_velomuon_tracks_velo_indices_t=velo_muon['consolidate_velo_muon']. - dev_velomuon_tracks_velo_indices_output_t) + dev_offsets_velomuon_tracks_t=velo_muon["dev_output_buffer"], + dev_velomuon_tracks_qop_t=velo_muon['velomuon_qop'], + dev_velomuon_tracks_velo_indices_t=velo_muon["dev_velomuon_tracks_velo_indices_output"]) def seeding_xz_validation(name="seed_xz_validator"): @@ -229,8 +225,7 @@ def muon_validation(muonID, velo_muon, name="muon_validator"): dev_offsets_long_tracks_t=long_tracks["dev_offsets_long_tracks"], dev_offsets_velo_tracks_t=velo_tracks["dev_offsets_all_velo_tracks"], dev_is_muon_t=muonID["dev_is_muon"], - dev_match_velo_muon_t=velo_muon['match_velo_muon']. - dev_velomuon_muon_id_t) + dev_match_velo_muon_t=velo_muon["dev_velomuon_muon_id"]) def pv_validation(pvs, name="pv_validator"): -- GitLab From af9064f8edb29b5929ef8ec8ebc52017c595134d Mon Sep 17 00:00:00 2001 From: Saverio Mariani Date: Thu, 29 Sep 2022 11:04:47 +0200 Subject: [PATCH 07/17] Silent remanining warning --- device/muon/match_velo_muon/src/FindMuonHits.cu | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/device/muon/match_velo_muon/src/FindMuonHits.cu b/device/muon/match_velo_muon/src/FindMuonHits.cu index 7d672bb2b19..86869455e7b 100644 --- a/device/muon/match_velo_muon/src/FindMuonHits.cu +++ b/device/muon/match_velo_muon/src/FindMuonHits.cu @@ -27,9 +27,9 @@ void find_muon_hits::find_muon_hits_t::set_arguments_size( } void find_muon_hits::find_muon_hits_t::output_monitor( - const ArgumentReferences& arguments, - const RuntimeOptions& runtime_options, - const Allen::Context& context) const + [[maybe_unused]] const ArgumentReferences& arguments, + [[maybe_unused]] const RuntimeOptions& runtime_options, + [[maybe_unused]] const Allen::Context& context) const { #ifdef WITH_ROOT auto handler = runtime_options.root_service->handle(name()); -- GitLab From 91026aa5f41d1b31f16966495ca003f5b5e37c79 Mon Sep 17 00:00:00 2001 From: Saverio Mariani Date: Thu, 29 Sep 2022 16:33:02 +0200 Subject: [PATCH 08/17] Cleaning and remove chi2 selections in findmuonhits Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Allen/-/jobs/24865415 --- checker/tracking/src/PrepareTracks.cpp | 3 +- configuration/python/AllenConf/HLT1.py | 4 +- .../python/AllenConf/hlt1_muon_lines.py | 16 +- .../python/AllenConf/hlt1_reconstruction.py | 4 +- .../python/AllenConf/muon_reconstruction.py | 47 +++-- configuration/python/AllenConf/validators.py | 6 +- .../python/AllenSequences/standalone_muon.py | 21 +- .../muon/include/MuonDefinitions.cuh | 11 +- .../include/ConsolidateMuon.cuh | 4 +- .../match_velo_muon/include/FindMuonHits.cuh | 2 - .../match_velo_muon/include/MatchVeloMuon.cuh | 10 +- .../muon/match_velo_muon/src/FindMuonHits.cu | 195 +++++++----------- .../muon/match_velo_muon/src/MatchVeloMuon.cu | 2 +- .../lines/muon/include/OneMuonTrackLine.cuh | 7 +- .../muon/include/OneVeloMuonTrackLine.cuh | 7 +- .../lines/muon/src/OneMuonTrackLine.cu | 9 +- .../lines/muon/src/OneVeloMuonTrackLine.cu | 10 +- 17 files changed, 169 insertions(+), 189 deletions(-) diff --git a/checker/tracking/src/PrepareTracks.cpp b/checker/tracking/src/PrepareTracks.cpp index befff05b539..15c939b4c3c 100644 --- a/checker/tracking/src/PrepareTracks.cpp +++ b/checker/tracking/src/PrepareTracks.cpp @@ -29,8 +29,10 @@ std::vector prepareVeloTracks( std::vector checker_tracks(event_list.size()); for (unsigned i = 0; i < event_list.size(); i++) { const auto event_number = event_list[i]; + // Tracks of this event auto& tracks = checker_tracks[i]; + Velo::Consolidated::ConstTracks velo_tracks { track_atomics.data(), track_hit_number.data(), event_number, number_of_events}; const unsigned number_of_tracks_event = velo_tracks.number_of_tracks(event_number); @@ -55,7 +57,6 @@ std::vector prepareVeloMuonTracks( gsl::span track_hit_number, gsl::span track_hits, gsl::span velomuon_atomics, - // gsl::span velomuon_offsets, gsl::span velomuon_qop, gsl::span velomuon_velo_indices, gsl::span>, // velomuon_muon_id, diff --git a/configuration/python/AllenConf/HLT1.py b/configuration/python/AllenConf/HLT1.py index 3e66ca13d0e..592e0a46f23 100644 --- a/configuration/python/AllenConf/HLT1.py +++ b/configuration/python/AllenConf/HLT1.py @@ -60,7 +60,7 @@ def default_physics_lines(reconstructed_objects, with_calo, with_muon): muon_stubs["dev_muon_number_of_tracks"], muon_stubs["consolidated_muon_tracks"], muon_stubs["dev_output_buffer"], - muon_stubs["host_total_sum_holder"], + muon_stubs["host_total_sum_holder"], name="Hlt1OneMuonTrackLine"), make_single_high_pt_muon_line( long_tracks, long_track_particles, @@ -408,7 +408,7 @@ def setup_hlt1_node(withMCChecking=False, ], NodeLogic.NONLAZY_AND, force_order=True) - + if with_lumi: lumi_with_prefilter = CompositeNode( "LumiWithPrefilter", diff --git a/configuration/python/AllenConf/hlt1_muon_lines.py b/configuration/python/AllenConf/hlt1_muon_lines.py index cedb6ccd7a8..48828960d9b 100644 --- a/configuration/python/AllenConf/hlt1_muon_lines.py +++ b/configuration/python/AllenConf/hlt1_muon_lines.py @@ -11,9 +11,9 @@ from AllenCore.generator import make_algorithm def make_one_velomuon_track_line(velomuon_qop, - dev_number_of_velomuon_tracks, - dev_velomuon_tracks_offsets, - dev_velomuon_tracks, + dev_number_of_velomuon_tracks, + dev_velomuon_tracks_offsets, + dev_velomuon_tracks, host_velomuon_total_number_of_tracks, name="Hlt1OneVeloMuonTrack", pre_scaler_hash_string=None, @@ -36,10 +36,10 @@ def make_one_velomuon_track_line(velomuon_qop, dev_velomuon_tracks_offsets_t=dev_velomuon_tracks_offsets) -def make_one_muon_track_line(number_of_muon_tracks, - muon_tracks, - dev_output_buffer, - host_total_sum_holder, +def make_one_muon_track_line(number_of_muon_tracks, + muon_tracks, + dev_output_buffer, + host_total_sum_holder, name="Hlt1OneMuonTrack", pre_scaler_hash_string=None, post_scaler_hash_string=None): @@ -55,7 +55,7 @@ def make_one_muon_track_line(number_of_muon_tracks, dev_muon_number_of_tracks_t=number_of_muon_tracks, dev_muon_tracks_t=muon_tracks, host_muon_total_number_of_tracks_t=host_total_sum_holder, - dev_muon_tracks_offsets_t= dev_output_buffer) + dev_muon_tracks_offsets_t=dev_output_buffer) def make_single_high_pt_muon_line(long_tracks, diff --git a/configuration/python/AllenConf/hlt1_reconstruction.py b/configuration/python/AllenConf/hlt1_reconstruction.py index cbb10259ca0..8231683a38d 100755 --- a/configuration/python/AllenConf/hlt1_reconstruction.py +++ b/configuration/python/AllenConf/hlt1_reconstruction.py @@ -34,7 +34,7 @@ def hlt1_reconstruction(matching=False, "velo_tracks": velo_tracks, "velo_states": velo_states, "pvs": pvs, - "muon_stubs" : muon_stubs, + "muon_stubs": muon_stubs, "velo_muon": velo_muon } @@ -149,13 +149,13 @@ def validator_node(reconstructed_objects, line_algorithms, matching, with_ut, ] if with_muon: - validators += make_composite_node_with_gec( "muon_validation", muon_validation(reconstructed_objects["muonID"], reconstructed_objects['velo_muon']), with_scifi=True, with_ut=with_ut), + validators += [ make_composite_node_with_gec( "pv_validation", diff --git a/configuration/python/AllenConf/muon_reconstruction.py b/configuration/python/AllenConf/muon_reconstruction.py index 4671a50adb3..1d63bbf8250 100644 --- a/configuration/python/AllenConf/muon_reconstruction.py +++ b/configuration/python/AllenConf/muon_reconstruction.py @@ -199,11 +199,16 @@ def make_muon_stubs(): host_total_sum_holder_t, ) - return { "dev_muon_tracks_output" : consolidate_muon.dev_muon_tracks_output_t, - "dev_muon_number_of_tracks" : find_muon_hits.dev_muon_number_of_tracks_t, - "consolidated_muon_tracks" : consolidate_muon.dev_muon_tracks_output_t, - "host_total_sum_holder" : prefix_sum_muon_tracks.host_total_sum_holder_t, - "dev_output_buffer" : prefix_sum_muon_tracks.dev_output_buffer_t} + return { + "dev_muon_tracks_output": consolidate_muon.dev_muon_tracks_output_t, + "dev_muon_number_of_tracks": + find_muon_hits.dev_muon_number_of_tracks_t, + "consolidated_muon_tracks": consolidate_muon.dev_muon_tracks_output_t, + "host_total_sum_holder": + prefix_sum_muon_tracks.host_total_sum_holder_t, + "dev_output_buffer": prefix_sum_muon_tracks.dev_output_buffer_t + } + def make_velo_muon(): from AllenConf.velo_reconstruction import decode_velo, make_velo_tracks @@ -232,7 +237,7 @@ def make_velo_muon(): "dev_velo_kalman_beamline_states_view"], dev_accepted_velo_tracks_t=velo_tracks["dev_accepted_velo_tracks"]) - standalone_muon = make_muon_stubs() + standalone_muon = make_muon_stubs() match_velo_muon = make_algorithm( match_velo_muon_t, @@ -240,8 +245,10 @@ def make_velo_muon(): host_number_of_events_t=number_of_events["host_number_of_events"], dev_number_of_events_t=number_of_events["dev_number_of_events"], dev_muon_tracks_t=standalone_muon["dev_muon_tracks_output"], - dev_muon_number_of_tracks_t=standalone_muon["dev_muon_number_of_tracks"], - host_muon_total_number_of_tracks_t=standalone_muon["host_total_sum_holder"], + dev_muon_number_of_tracks_t=standalone_muon[ + "dev_muon_number_of_tracks"], + host_muon_total_number_of_tracks_t=standalone_muon[ + "host_total_sum_holder"], host_number_of_reconstructed_velo_tracks_t=velo_tracks[ "host_number_of_reconstructed_velo_tracks"], dev_muon_tracks_offsets_t=standalone_muon["dev_output_buffer"], @@ -282,12 +289,20 @@ def make_velo_muon(): dev_velomuon_tracks_input_t=match_velo_muon.dev_velomuon_tracks_t) return { - "dev_velomuon_muon_id" : match_velo_muon.dev_velomuon_muon_id_t, - "velomuon_qop": consolidate_velo_muon.dev_velomuon_tracks_qop_output_t, - "dev_number_of_velomuon_tracks": match_velo_muon.dev_velomuon_number_of_tracks_t, - "dev_velomuon_tracks_offsets": prefix_sum_velomuon_tracks.dev_output_buffer_t, - "dev_velomuon_tracks" : consolidate_velo_muon.dev_velomuon_tracks_output_t, - "host_velomuon_total_number_of_tracks" : prefix_sum_velomuon_tracks.host_total_sum_holder_t, - "dev_output_buffer" : prefix_sum_velomuon_tracks.dev_output_buffer_t, - "dev_velomuon_tracks_velo_indices_output" : consolidate_velo_muon.dev_velomuon_tracks_velo_indices_output_t + "dev_velomuon_muon_id": + match_velo_muon.dev_velomuon_muon_id_t, + "velomuon_qop": + consolidate_velo_muon.dev_velomuon_tracks_qop_output_t, + "dev_number_of_velomuon_tracks": + match_velo_muon.dev_velomuon_number_of_tracks_t, + "dev_velomuon_tracks_offsets": + prefix_sum_velomuon_tracks.dev_output_buffer_t, + "dev_velomuon_tracks": + consolidate_velo_muon.dev_velomuon_tracks_output_t, + "host_velomuon_total_number_of_tracks": + prefix_sum_velomuon_tracks.host_total_sum_holder_t, + "dev_output_buffer": + prefix_sum_velomuon_tracks.dev_output_buffer_t, + "dev_velomuon_tracks_velo_indices_output": + consolidate_velo_muon.dev_velomuon_tracks_velo_indices_output_t } diff --git a/configuration/python/AllenConf/validators.py b/configuration/python/AllenConf/validators.py index a0389ad10e9..1b06bdc594a 100644 --- a/configuration/python/AllenConf/validators.py +++ b/configuration/python/AllenConf/validators.py @@ -94,7 +94,8 @@ def long_validation(long_tracks, velo_muon, name="long_validator"): host_mc_events_t=mc_events.host_mc_events_t, host_number_of_reconstructed_long_tracks_t=long_tracks[ "host_number_of_reconstructed_scifi_tracks"], - host_number_of_reconstructed_velomuon_tracks_t=velo_muon["host_velomuon_total_number_of_tracks"], + host_number_of_reconstructed_velomuon_tracks_t=velo_muon[ + "host_velomuon_total_number_of_tracks"], dev_velo_states_view_t=velo_kalman_filter[ "dev_velo_kalman_endvelo_states_view"], dev_velo_tracks_view_t=velo_tracks['dev_velo_tracks_view'], @@ -103,7 +104,8 @@ def long_validation(long_tracks, velo_muon, name="long_validator"): dev_offsets_long_tracks_t=long_tracks["dev_offsets_long_tracks"], dev_offsets_velomuon_tracks_t=velo_muon["dev_output_buffer"], dev_velomuon_tracks_qop_t=velo_muon['velomuon_qop'], - dev_velomuon_tracks_velo_indices_t=velo_muon["dev_velomuon_tracks_velo_indices_output"]) + dev_velomuon_tracks_velo_indices_t=velo_muon[ + "dev_velomuon_tracks_velo_indices_output"]) def seeding_xz_validation(name="seed_xz_validator"): diff --git a/configuration/python/AllenSequences/standalone_muon.py b/configuration/python/AllenSequences/standalone_muon.py index 6b05db76244..7e24ef5e68c 100644 --- a/configuration/python/AllenSequences/standalone_muon.py +++ b/configuration/python/AllenSequences/standalone_muon.py @@ -10,16 +10,19 @@ from PyConf.control_flow import NodeLogic, CompositeNode from AllenConf.hlt1_reconstruction import validator_node from AllenConf.validators import rate_validation - muon_stubs = make_muon_stubs() -lines = [ line_maker ( make_one_muon_track_line( muon_stubs["dev_muon_number_of_tracks"], - muon_stubs["consolidated_muon_tracks"], - muon_stubs["dev_output_buffer"], - muon_stubs["host_total_sum_holder"], - name="Hlt1OneMuonStub") ) ] +lines = [ + line_maker( + make_one_muon_track_line( + muon_stubs["dev_muon_number_of_tracks"], + muon_stubs["consolidated_muon_tracks"], + muon_stubs["dev_output_buffer"], + muon_stubs["host_total_sum_holder"], + name="Hlt1OneMuonStub")) +] -line_algorithms = [tup[0] for tup in lines] -line_nodes = [tup[1] for tup in lines] +line_algorithms = [tup[0] for tup in lines] +line_nodes = [tup[1] for tup in lines] lines = CompositeNode( "SetupAllLines", line_nodes, NodeLogic.NONLAZY_OR, force_order=False) @@ -41,4 +44,4 @@ hlt1_node = CompositeNode( NodeLogic.NONLAZY_AND, force_order=True) -generate( hlt1_node ) +generate(hlt1_node) diff --git a/device/event_model/muon/include/MuonDefinitions.cuh b/device/event_model/muon/include/MuonDefinitions.cuh index 69103f3f929..a5034d025e2 100644 --- a/device/event_model/muon/include/MuonDefinitions.cuh +++ b/device/event_model/muon/include/MuonDefinitions.cuh @@ -19,6 +19,7 @@ namespace Muon { static constexpr unsigned n_stations = 4; static constexpr unsigned n_regions = 4; static constexpr unsigned n_quarters = 4; + static constexpr int M2 {0}, M3 {1}, M4 {2}, M5 {3}; // v3 geometry static constexpr unsigned maxTell40Number = 22; @@ -140,10 +141,7 @@ namespace Muon { }; - float tolForRegion[4] = {2.0, 4.0, 8.0, 10.0}; - float z[4] {15205.f, 16400.f, 17550.f, 18850.f}; - float xcale[4] {0.06f, 0.1f, 0.15f, 0.15f}; - float distance_cut[5] {30 * 30, 60 * 60, 110 * 110, 200 * 200}; + float z[4] {15205.f, 16400.f, 17700.f, 18850.f}; }; static constexpr unsigned max_number_of_tracks = 120; struct MomParam { @@ -228,7 +226,6 @@ namespace Muon { // The main cut values // constexpr float maxChi2 = 15.f; // to scan constexpr float maxChi2 = 2.5f; // to scan - constexpr float minNN = 0.25f; // not used so far // Magnetic parametrization from Velo + SciFi tracks struct MagnetParametrization { @@ -291,6 +288,10 @@ struct MuonTrack { __host__ __device__ float get_chi2x() const { return m_chi2x; } __host__ __device__ float get_chi2y() const { return m_chi2y; } __host__ __device__ float get_p() const { return m_p; } + __host__ __device__ float get_pt() const + { + return sqrtf((m_tx * m_tx + m_ty * m_ty) / (1 + m_tx * m_tx + m_ty * m_ty)) * m_p; + } __host__ __device__ float get_chi2match() const { return m_chi2match; } __host__ __device__ int get_state() const { return m_state_muon_index; } __host__ __device__ int get_velo_index() const { return m_velo_index; } diff --git a/device/muon/match_velo_muon/include/ConsolidateMuon.cuh b/device/muon/match_velo_muon/include/ConsolidateMuon.cuh index 8be36b4f6fa..1e0bfadee72 100644 --- a/device/muon/match_velo_muon/include/ConsolidateMuon.cuh +++ b/device/muon/match_velo_muon/include/ConsolidateMuon.cuh @@ -9,8 +9,6 @@ #include "VeloConsolidated.cuh" #include "States.cuh" -static constexpr int M2 {0}, M3 {1}, M4 {2}, M5 {3}; - namespace consolidate_muon { struct Parameters { HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; @@ -44,4 +42,4 @@ namespace consolidate_muon { Property m_block_dim {this, {{64, 1, 1}}}; }; -} // namespace consolidate_muon \ No newline at end of file +} // namespace consolidate_muon diff --git a/device/muon/match_velo_muon/include/FindMuonHits.cuh b/device/muon/match_velo_muon/include/FindMuonHits.cuh index 9ea1a19e311..376c204eb68 100644 --- a/device/muon/match_velo_muon/include/FindMuonHits.cuh +++ b/device/muon/match_velo_muon/include/FindMuonHits.cuh @@ -10,8 +10,6 @@ #include "States.cuh" #include "ROOTService.h" -static constexpr int M2 {0}, M3 {1}, M4 {2}, M5 {3}; - namespace find_muon_hits { struct Parameters { HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; diff --git a/device/muon/match_velo_muon/include/MatchVeloMuon.cuh b/device/muon/match_velo_muon/include/MatchVeloMuon.cuh index 4c8fe7d9213..bb5ecd1b806 100644 --- a/device/muon/match_velo_muon/include/MatchVeloMuon.cuh +++ b/device/muon/match_velo_muon/include/MatchVeloMuon.cuh @@ -9,8 +9,6 @@ #include "VeloConsolidated.cuh" #include "States.cuh" -static constexpr int M2 {0}, M3 {1}, M4 {2}, M5 {3}; - namespace match_velo_muon { struct Parameters { HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; @@ -21,10 +19,6 @@ namespace match_velo_muon { HOST_INPUT(host_number_of_reconstructed_velo_tracks_t, unsigned) host_number_of_reconstructed_velo_tracks; DEVICE_INPUT(dev_muon_tracks_t, MuonTrack) dev_muon_tracks; DEVICE_INPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; - // DEVICE_INPUT(dev_muon_tracks_tx_t, float) dev_muon_tracks_tx; - // DEVICE_INPUT(dev_muon_tracks_ty_t, float) dev_muon_tracks_ty; - // DEVICE_INPUT(dev_muon_tracks_state_muon_index_t, unsigned) dev_muon_tracks_state_muon_index; - DEVICE_INPUT(dev_velo_tracks_view_t, Allen::Views::Velo::Consolidated::Tracks) dev_velo_tracks_view; DEVICE_INPUT(dev_velo_states_view_t, Allen::Views::Physics::KalmanStates) dev_velo_states_view; @@ -67,6 +61,4 @@ namespace match_velo_muon { Property m_block_dim {this, {{64, 1, 1}}}; Property m_create_plot_dir {this, false}; }; - float xcale[4] {0.06f, 0.1f, 0.15f, 0.15f}; - float distance_cut[5] {30 * 30, 60 * 60, 110 * 110, 200 * 200}; -} // namespace match_velo_muon \ No newline at end of file +} // namespace match_velo_muon diff --git a/device/muon/match_velo_muon/src/FindMuonHits.cu b/device/muon/match_velo_muon/src/FindMuonHits.cu index 86869455e7b..cbbe7d2b5a9 100644 --- a/device/muon/match_velo_muon/src/FindMuonHits.cu +++ b/device/muon/match_velo_muon/src/FindMuonHits.cu @@ -4,8 +4,6 @@ #include "FindMuonHits.cuh" #include "Common.h" -#include "VeloDefinitions.cuh" -#include "VeloEventModel.cuh" #include INSTANTIATE_ALGORITHM(find_muon_hits::find_muon_hits_t) @@ -27,15 +25,15 @@ void find_muon_hits::find_muon_hits_t::set_arguments_size( } void find_muon_hits::find_muon_hits_t::output_monitor( - [[maybe_unused]] const ArgumentReferences& arguments, - [[maybe_unused]] const RuntimeOptions& runtime_options, - [[maybe_unused]] const Allen::Context& context) const + const ArgumentReferences& arguments, + const RuntimeOptions& runtime_options, + const Allen::Context& context) const { -#ifdef WITH_ROOT auto handler = runtime_options.root_service->handle(name()); auto tree = handler.tree("monitor_tree"); - float chi2x, chi2y, tx, ty, ax, ay, x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3; + float chi2x, chi2y, tx, ty, ax, ay, x0, x1, x2, x3, y0, y1, y2, y3, z0, z1, z2, z3, dx0, dx1, dx2, dx3, dy0, dy1, dy2, + dy3; handler.branch(tree, "chi2y", chi2y); handler.branch(tree, "chi2x", chi2x); handler.branch(tree, "ty", ty); @@ -46,10 +44,18 @@ void find_muon_hits::find_muon_hits_t::output_monitor( handler.branch(tree, "x1", x1); handler.branch(tree, "x2", x2); handler.branch(tree, "x3", x3); + handler.branch(tree, "dx0", dx0); + handler.branch(tree, "dx1", dx1); + handler.branch(tree, "dx2", dx2); + handler.branch(tree, "dx3", dx3); handler.branch(tree, "y0", y0); handler.branch(tree, "y1", y1); handler.branch(tree, "y2", y2); handler.branch(tree, "y3", y3); + handler.branch(tree, "dy0", dy0); + handler.branch(tree, "dy1", dy1); + handler.branch(tree, "dy2", dy2); + handler.branch(tree, "dy3", dy3); handler.branch(tree, "z0", z0); handler.branch(tree, "z1", z1); handler.branch(tree, "z2", z2); @@ -74,6 +80,8 @@ void find_muon_hits::find_muon_hits_t::output_monitor( const MuonTrack track = tracks[event_number * Muon::Constants::max_number_of_tracks + i_track]; std::array x {-99999.f, -99999.f, -99999.f, -99999.f}; std::array y {-99999.f, -99999.f, -99999.f, -99999.f}; + std::array dx {-99999.f, -99999.f, -99999.f, -99999.f}; + std::array dy {-99999.f, -99999.f, -99999.f, -99999.f}; std::array z {-99999.f, -99999.f, -99999.f, -99999.f}; for (unsigned muon_st = 0; muon_st < 4; muon_st++) { @@ -81,6 +89,8 @@ void find_muon_hits::find_muon_hits_t::output_monitor( if (muon_idx != -1) { x[muon_st] = event_muon_hits.x(muon_idx); y[muon_st] = event_muon_hits.y(muon_idx); + dx[muon_st] = event_muon_hits.dx(muon_idx); + dy[muon_st] = event_muon_hits.dy(muon_idx); z[muon_st] = event_muon_hits.z(muon_idx); } } @@ -88,12 +98,13 @@ void find_muon_hits::find_muon_hits_t::output_monitor( std::tie(x0, x1, x2, x3) = std::make_tuple(x[0], x[1], x[2], x[3]); std::tie(y0, y1, y2, y3) = std::make_tuple(y[0], y[1], y[2], y[3]); std::tie(z0, z1, z2, z3) = std::make_tuple(z[0], z[1], z[2], z[3]); + std::tie(dx0, dx1, dx2, dx3) = std::make_tuple(dx[0], dx[1], dx[2], dx[3]); + std::tie(dy0, dy1, dy2, dy3) = std::make_tuple(dy[0], dy[1], dy[2], dy[3]); std::tie(chi2x, chi2y, tx, ty, ax, ay) = std::make_tuple( track.get_chi2x(), track.get_chi2y(), track.get_tx(), track.get_ty(), track.get_ax(), track.get_ay()); tree->Fill(); } } -#endif } void find_muon_hits::find_muon_hits_t::operator()( @@ -112,111 +123,57 @@ void find_muon_hits::find_muon_hits_t::operator()( output_monitor(arguments, runtime_options, context); Allen::synchronize(context); } -__device__ void applyWeightedFit(MuonTrack& muon_track, Muon::ConstHits& muon_hits) +__device__ bool applyWeightedFit(MuonTrack& muon_track, Muon::ConstHits& muon_hits, bool xz) { const auto n_hits_track = muon_track.number_of_hits(); - float szx2, szy2, sz_x, sz_y, sx0, sxz, sx, sx2; - szx2 = sz_x = szy2 = sz_y = sx0 = sxz = sx = sx2 = 0.f; - float sy0, syz, sy, sy2; - sy0 = syz = sy = sy2 = 0.f; + float sz2, sz, s0, sxz, sx, sx2; + sz2 = sz = s0 = sxz = sx = sx2 = 0.f; for (unsigned i_hit = 0; i_hit < 4; i_hit++) { if (muon_track.hit(i_hit) == -1) continue; - float x = muon_hits.x(muon_track.hit(i_hit)); - float y = muon_hits.y(muon_track.hit(i_hit)); float z = muon_hits.z(muon_track.hit(i_hit)); + float coord, coorderr; - float xerr = muon_hits.dx(muon_track.hit(i_hit)); - float yerr = muon_hits.dy(muon_track.hit(i_hit)); - - szx2 += z * z / xerr / xerr; - sz_x += z / xerr / xerr; - sx0 += 1.f / xerr / xerr; - sxz += z * x / xerr / xerr; - sx += x / xerr / xerr; - sx2 += x * x / xerr / xerr; - - szy2 += z * z / yerr / yerr; - sz_y += z / yerr / yerr; - sy0 += 1.f / yerr / yerr; - syz += z * y / yerr / yerr; - sy += y / yerr / yerr; - sy2 += y * y / yerr / yerr; - } - float xdet = szx2 * sx0 - sz_x * sz_x; - float ydet = szy2 * sy0 - sz_y * sz_y; - float tx, ty, ax, ay; - tx = ty = ax = ay = 9999.f; - float chi2xndof = 99999.f; - float chi2yndof = 99999.f; - - if (xdet != 0 && ydet != 0) { - tx = (sxz * sx0 - sx * sz_x) / xdet; - ax = (sx * szx2 - sxz * sz_x) / xdet; - - chi2xndof = (sx2 + tx * tx * szx2 + ax * ax * sx0 - 2.f * tx * sxz - 2.f * ax * sx + 2.f * tx * ax * sz_x) / - (n_hits_track - 2); - - ty = (syz * sy0 - sy * sz_y) / ydet; - ay = (sy * szy2 - syz * sz_y) / ydet; + if (xz) { + coord = muon_hits.x(muon_track.hit(i_hit)); + coorderr = 2.f * muon_hits.dx(muon_track.hit(i_hit)); + } + else { + coord = muon_hits.y(muon_track.hit(i_hit)); + coorderr = 2.f * muon_hits.dy(muon_track.hit(i_hit)); + } - chi2yndof = (sy2 + ty * ty * szy2 + ay * ay * sy0 - 2.f * ty * syz - 2.f * ay * sy + 2.f * ty * ay * sz_y) / - (n_hits_track - 2); + sz2 += z * z / coorderr / coorderr; + sz += z / coorderr / coorderr; + s0 += 1.f / coorderr / coorderr; + sxz += z * coord / coorderr / coorderr; + sx += coord / coorderr / coorderr; + sx2 += coord * coord / coorderr / coorderr; } - muon_track.set_tx(tx); - muon_track.set_ty(ty); - muon_track.set_ax(ax); - muon_track.set_ay(ay); - muon_track.set_chi2x(chi2xndof); - muon_track.set_chi2y(chi2yndof); - muon_track.set_state(muon_track.hit(M2)); -} -__device__ void applyFit(MuonTrack& muon_track, Muon::ConstHits& muon_hits) -{ - const auto n_hits_track = muon_track.number_of_hits(); - float xz = 0; - float yz = 0; - float x = 0; - float y = 0; - float z = 0; - float x2 = 0; - float y2 = 0; - float z2 = 0; - float chi2x = 0; - float chi2y = 0; - for (unsigned i_hit = 0; i_hit < 4; i_hit++) { - if (muon_track.hit(i_hit) == -1) continue; + float slope, a, chi2ndof; + slope = a = chi2ndof = 9999.f; + float det = sz2 * s0 - sz * sz; + if (det != 0) { + slope = (sxz * s0 - sx * sz) / det; + a = (sx * sz2 - sxz * sz) / det; - xz += muon_hits.x(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; - yz += muon_hits.y(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; - x += muon_hits.x(muon_track.hit(i_hit)) / n_hits_track; - y += muon_hits.y(muon_track.hit(i_hit)) / n_hits_track; - z += muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; - x2 += muon_hits.x(muon_track.hit(i_hit)) * muon_hits.x(muon_track.hit(i_hit)) / n_hits_track; - y2 += muon_hits.y(muon_track.hit(i_hit)) * muon_hits.y(muon_track.hit(i_hit)) / n_hits_track; - z2 += muon_hits.z(muon_track.hit(i_hit)) * muon_hits.z(muon_track.hit(i_hit)) / n_hits_track; + chi2ndof = (sx2 + slope * slope * sz2 + a * a * s0 - 2.f * slope * sxz - 2.f * a * sx + 2.f * slope * a * sz) / + (n_hits_track - 2); } - float tx = (xz - x * z) / (z2 - z * z); - float ax = (x - tx * z); - float ty = (yz - y * z) / (z2 - z * z); - float ay = (y - ty * z); - - for (unsigned i_hit = 0; i_hit < 4; i_hit++) { - if (muon_track.hit(i_hit) == -1) continue; - chi2x += (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))) * - (tx * muon_hits.z(muon_track.hit(i_hit)) + ax - muon_hits.x(muon_track.hit(i_hit))) / 1.f; - chi2y += (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))) * - (ty * muon_hits.z(muon_track.hit(i_hit)) + ay - muon_hits.y(muon_track.hit(i_hit))) / 1.f; + else + return false; + if (xz) { + muon_track.set_tx(slope); + muon_track.set_ax(a); + muon_track.set_chi2x(chi2ndof); + muon_track.set_state(muon_track.hit(Muon::Constants::M2)); } - muon_track.set_tx(tx); - muon_track.set_ty(ty); - muon_track.set_ax(ax); - muon_track.set_ay(ay); - auto chi2xndof = chi2x / (n_hits_track - 2); - auto chi2yndof = chi2y / (n_hits_track - 2); - muon_track.set_chi2x(chi2xndof); - muon_track.set_chi2y(chi2yndof); - muon_track.set_state(muon_track.hit(M2)); + else { + muon_track.set_ty(slope); + muon_track.set_ay(a); + muon_track.set_chi2y(chi2ndof); + } + return true; } __device__ int find_compatible_hit_in_station( @@ -290,7 +247,6 @@ __device__ void seedAndFind( const auto first_st_ocurrences_offset = station_ocurrences_offset[st_order[0]]; const auto number_of_hits_first_st = station_ocurrences_offset[st_order[0] + 1] - first_st_ocurrences_offset; - //printf("Number of hits first_station: %u\n", number_of_hits_first_st); for (unsigned seed = threadIdx.x; seed < number_of_hits_first_st; seed += blockDim.x) { const unsigned first_st_abs_idx = first_st_ocurrences_offset + seed; const auto xseed = muon_hits.x(first_st_abs_idx); @@ -308,7 +264,6 @@ __device__ void seedAndFind( const auto station = st_order[i_station]; if (station == st_order[3] && muon_track.number_of_hits() < 2) { // If we are on the last station and we have less than 2 hits, early exit - //printf("Breaking: hits are not enough\n"); break; } else if (muon_track.number_of_hits() >= 2) { @@ -344,9 +299,12 @@ __device__ void seedAndFind( } if (muon_track.number_of_hits() > 3 && muon_track.hit(required_station) != -1) { - applyWeightedFit(muon_track, muon_hits); - const auto insert_index = atomicAdd(number_of_muon_tracks_atomic, 1); - muon_tracks[insert_index] = muon_track; + auto fit_result_xz = applyWeightedFit(muon_track, muon_hits, true); + auto fit_result_yz = applyWeightedFit(muon_track, muon_hits, false); + if (fit_result_xz && fit_result_yz) { + const auto insert_index = atomicAdd(number_of_muon_tracks_atomic, 1); + muon_tracks[insert_index] = muon_track; + } } } } @@ -364,7 +322,8 @@ __global__ void find_muon_hits::find_muon_hits( parameters.dev_station_ocurrences_offset + event_number * Muon::Constants::n_stations; const auto muon_hits = Muon::ConstHits {parameters.dev_muon_hits, muon_total_number_of_hits}; - // TODO: Change into container taking into consideration actual sizes of M4 and M5 (use prefix sum) + // TODO: Change into container taking into consideration actual sizes of Muon::Constants::M4 and Muon::Constants::M5 + // (use prefix sum) // Output auto tracks_offset = event_number * Muon::Constants::max_number_of_tracks; @@ -373,8 +332,9 @@ __global__ void find_muon_hits::find_muon_hits( auto event_number_of_tracks = parameters.dev_muon_number_of_tracks + event_number; // Station processing order - constexpr std::array st_order {M5, M4, M3, M2}; - //constexpr std::array st_order2 {M4, M3, M2}; + constexpr std::array st_order { + Muon::Constants::M5, Muon::Constants::M4, Muon::Constants::M3, Muon::Constants::M2}; + // constexpr std::array st_order2 {Muon::Constants::M4, Muon:constants:M3, Muon::Constants::M2}; const auto match_velo_windows = dev_match_velo_windows[0]; @@ -391,7 +351,7 @@ __global__ void find_muon_hits::find_muon_hits( st_order.data(), 4, match_velo_windows, - M2, + Muon::Constants::M2, number_of_muon_tracks_atomic, muon_tracks); __syncthreads(); @@ -404,16 +364,19 @@ __global__ void find_muon_hits::find_muon_hits( // st_order2.data(), // 3, // match_velo_windows, - // M2, + // Muon::Constants::M2, // number_of_muon_tracks_atomic, // muon_tracks); // Clone killing const auto is_clone_of = [&](const MuonTrack& track_a, const MuonTrack& track_b) { if ( - track_a.hit(M2) == track_b.hit(M2) || track_a.hit(M3) == track_b.hit(M3) || - ((track_a.hit(M4) != -1 && track_a.hit(M4) == track_b.hit(M4)) || - (track_a.hit(M5) != -1 && track_a.hit(M5) == track_b.hit(M5)))) { + track_a.hit(Muon::Constants::M2) == track_b.hit(Muon::Constants::M2) || + track_a.hit(Muon::Constants::M3) == track_b.hit(Muon::Constants::M3) || + ((track_a.hit(Muon::Constants::M4) != -1 && + track_a.hit(Muon::Constants::M4) == track_b.hit(Muon::Constants::M4)) || + (track_a.hit(Muon::Constants::M5) != -1 && + track_a.hit(Muon::Constants::M5) == track_b.hit(Muon::Constants::M5)))) { auto chi2_ax = track_a.m_chi2x; auto chi2_ay = track_a.m_chi2y; @@ -426,7 +389,6 @@ __global__ void find_muon_hits::find_muon_hits( return -1; }; - //printf("Number of muon tracks: %u \n", *number_of_muon_tracks_atomic); for (unsigned track = threadIdx.x; track < *number_of_muon_tracks_atomic; track += blockDim.x) { const auto muon_track = muon_tracks[track]; bool is_clone = false; @@ -440,8 +402,7 @@ __global__ void find_muon_hits::find_muon_hits( } } } - float threshold = 0.25; - if (!is_clone && muon_track.get_chi2x() < 2.f * threshold && muon_track.get_chi2y() < threshold) { + if (!is_clone) { const auto insert_index = atomicAdd(event_number_of_tracks, 1); event_muon_tracks[insert_index] = muon_track; } diff --git a/device/muon/match_velo_muon/src/MatchVeloMuon.cu b/device/muon/match_velo_muon/src/MatchVeloMuon.cu index d491dcf1188..04622b272d2 100644 --- a/device/muon/match_velo_muon/src/MatchVeloMuon.cu +++ b/device/muon/match_velo_muon/src/MatchVeloMuon.cu @@ -271,7 +271,7 @@ __global__ void match_velo_muon::match_velo_muon( if (!(shared_seeds && (event_match_chi2[track_2_id] <= event_match_chi2[n_track_1]))) { const auto insert_index = atomicAdd(event_velomuon_number_of_tracks, 1); auto velomuon_track = MuonTrack(event_muon_tracks[event_matched_muon_indices_with_clones[n_track_1]]); - velomuon_track.set_p(1 / event_qop_with_clones[n_track_1]); + velomuon_track.set_p(fabsf(1 / event_qop_with_clones[n_track_1])); velomuon_track.set_velo_index(velo_index_1); event_velomuon_tracks[insert_index] = velomuon_track; event_velomuon_velo_indices[insert_index] = velo_index_1; diff --git a/device/selections/lines/muon/include/OneMuonTrackLine.cuh b/device/selections/lines/muon/include/OneMuonTrackLine.cuh index 135d8538a47..110eeb067f2 100644 --- a/device/selections/lines/muon/include/OneMuonTrackLine.cuh +++ b/device/selections/lines/muon/include/OneMuonTrackLine.cuh @@ -27,6 +27,8 @@ namespace one_muon_track_line { PROPERTY(post_scaler_t, "post_scaler", "Post-scaling factor", float) post_scaler; PROPERTY(pre_scaler_hash_string_t, "pre_scaler_hash_string", "Pre-scaling hash string", std::string); PROPERTY(post_scaler_hash_string_t, "post_scaler_hash_string", "Post-scaling hash string", std::string); + PROPERTY(max_chi2x_t, "max_chi2x", "Maximum chi2 for the xz plane", float) max_chi2x; + PROPERTY(max_chi2y_t, "max_chi2y", "Maximum chi2 for the yz plane", float) max_chi2y; }; // SelectionAlgorithm definition @@ -79,6 +81,9 @@ namespace one_muon_track_line { Property m_post_scaler {this, 1.f}; Property m_pre_scaler_hash_string {this, ""}; Property m_post_scaler_hash_string {this, ""}; + Property m_max_chi2x {this, 1.f}; + Property m_max_chi2y {this, 0.3f}; + // Line-specific properties }; -} // namespace one_muon_track_line \ No newline at end of file +} // namespace one_muon_track_line diff --git a/device/selections/lines/muon/include/OneVeloMuonTrackLine.cuh b/device/selections/lines/muon/include/OneVeloMuonTrackLine.cuh index e7a8ad8bd08..83913ce9ff7 100644 --- a/device/selections/lines/muon/include/OneVeloMuonTrackLine.cuh +++ b/device/selections/lines/muon/include/OneVeloMuonTrackLine.cuh @@ -28,6 +28,9 @@ namespace one_velomuon_track_line { PROPERTY(post_scaler_t, "post_scaler", "Post-scaling factor", float) post_scaler; PROPERTY(pre_scaler_hash_string_t, "pre_scaler_hash_string", "Pre-scaling hash string", std::string); PROPERTY(post_scaler_hash_string_t, "post_scaler_hash_string", "Post-scaling hash string", std::string); + + PROPERTY(min_p_t, "min_p", "Minimum momentum", float) min_p; + PROPERTY(min_pt_t, "min_pt", "Minimum transverse momentum", float) min_pt; }; // SelectionAlgorithm definition @@ -83,5 +86,7 @@ namespace one_velomuon_track_line { Property m_pre_scaler_hash_string {this, ""}; Property m_post_scaler_hash_string {this, ""}; // Line-specific properties + Property m_min_p {this, 5000.f}; + Property m_min_pt {this, 500.f}; }; -} // namespace one_velomuon_track_line \ No newline at end of file +} // namespace one_velomuon_track_line diff --git a/device/selections/lines/muon/src/OneMuonTrackLine.cu b/device/selections/lines/muon/src/OneMuonTrackLine.cu index 7df2ab7cee0..450d805d249 100644 --- a/device/selections/lines/muon/src/OneMuonTrackLine.cu +++ b/device/selections/lines/muon/src/OneMuonTrackLine.cu @@ -15,11 +15,12 @@ void one_muon_track_line::one_muon_track_line_t::set_arguments_size( static_cast(this)->set_arguments_size(arguments, runtime_options, constants, host_buffers); } // Selection function -__device__ bool one_muon_track_line::one_muon_track_line_t::select(const Parameters&, std::tuple input) +__device__ bool one_muon_track_line::one_muon_track_line_t::select( + const Parameters& parameters, + std::tuple input) { const auto& muon_track = std::get<0>(input); - const bool decision = - (fabsf(muon_track.get_tx()) > 0.2f && muon_track.get_chi2x() < 0.1f && muon_track.get_chi2y() < 0.1f); + const bool decision = muon_track.get_chi2x() < parameters.max_chi2x && muon_track.get_chi2y() < parameters.max_chi2y; return decision; -} \ No newline at end of file +} diff --git a/device/selections/lines/muon/src/OneVeloMuonTrackLine.cu b/device/selections/lines/muon/src/OneVeloMuonTrackLine.cu index 1a96ff7c7c7..ff1ffb184b2 100644 --- a/device/selections/lines/muon/src/OneVeloMuonTrackLine.cu +++ b/device/selections/lines/muon/src/OneVeloMuonTrackLine.cu @@ -16,15 +16,13 @@ void one_velomuon_track_line::one_velomuon_track_line_t::set_arguments_size( } // Selection function __device__ bool one_velomuon_track_line::one_velomuon_track_line_t::select( - const Parameters&, + const Parameters& parameters, std::tuple input) { const auto& velomuon_track = std::get<0>(input); - const auto tx = velomuon_track.get_tx(); - const auto ty = velomuon_track.get_ty(); const auto p = velomuon_track.get_p(); - const auto pt = sqrtf((tx * tx + ty * ty) / (1 + tx * tx + ty * ty)) * p; - const bool decision = (p > 5000 && pt > 500); + const auto pt = velomuon_track.get_pt(); + const bool decision = (p > parameters.min_p && pt > parameters.min_pt); return decision; -} \ No newline at end of file +} -- GitLab From a9f180503775e86123b6cf13d31911cc7d147c9f Mon Sep 17 00:00:00 2001 From: Saverio Mariani Date: Fri, 30 Sep 2022 09:53:07 +0200 Subject: [PATCH 09/17] First attempt removing all velo-muon match code --- CMakeLists.txt | 3 +- .../plotting/muon/muon_id_efficiency_plots.py | 28 +- .../plotting/tracking/momentum_resolution.py | 7 +- checker/tracking/include/TrackChecker.h | 3 - checker/tracking/src/PrepareTracks.cpp | 44 +-- configuration/python/AllenConf/HLT1.py | 9 +- .../python/AllenConf/hlt1_muon_lines.py | 29 +- .../python/AllenConf/hlt1_reconstruction.py | 2 +- .../python/AllenConf/muon_reconstruction.py | 102 +------ configuration/python/AllenConf/validators.py | 27 +- .../AllenSequences/hlt1_complex_validation.py | 8 +- .../trackmatching_veloscifi_validation.py | 4 +- .../common/include/CopyTrackParameters.cuh | 55 ---- .../muon/include/MuonDefinitions.cuh | 105 +------ .../include/ConsolidateVeloMuon.cuh | 58 ---- .../match_velo_muon/include/MatchVeloMuon.cuh | 64 ---- .../src/ConsolidateVeloMuon.cu | 69 ----- .../muon/match_velo_muon/src/MatchVeloMuon.cu | 283 ------------------ .../muon/include/OneVeloMuonTrackLine.cuh | 92 ------ .../lines/muon/src/OneVeloMuonTrackLine.cu | 28 -- .../validators/include/LongTrackValidator.cuh | 9 - device/validators/include/MuonValidator.cuh | 5 - device/validators/src/LongTrackValidator.cu | 37 +-- device/validators/src/MuonValidator.cu | 25 +- stream/sequence/include/Constants.cuh | 2 - stream/sequence/src/Constants.cpp | 4 - 26 files changed, 36 insertions(+), 1066 deletions(-) delete mode 100644 device/muon/match_velo_muon/include/ConsolidateVeloMuon.cuh delete mode 100644 device/muon/match_velo_muon/include/MatchVeloMuon.cuh delete mode 100644 device/muon/match_velo_muon/src/ConsolidateVeloMuon.cu delete mode 100644 device/muon/match_velo_muon/src/MatchVeloMuon.cu delete mode 100644 device/selections/lines/muon/include/OneVeloMuonTrackLine.cuh delete mode 100644 device/selections/lines/muon/src/OneVeloMuonTrackLine.cu diff --git a/CMakeLists.txt b/CMakeLists.txt index b7f59a24057..3ff7bd1dea7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -726,7 +726,6 @@ if (NOT STANDALONE) lhcb_finalize_configuration() endif() - # Download external files if in STANDALONE if (STANDALONE) file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/external") @@ -748,4 +747,4 @@ if (STANDALONE) add_compile_definitions(PARAMFILESROOTPATH=${PARAMFILESROOT}) message(STATUS "PARAMFILESROOT set to ${PARAMFILESROOT}") endif() -endif() \ No newline at end of file +endif() diff --git a/checker/plotting/muon/muon_id_efficiency_plots.py b/checker/plotting/muon/muon_id_efficiency_plots.py index 5a0e4f0451b..0c3623090c1 100644 --- a/checker/plotting/muon/muon_id_efficiency_plots.py +++ b/checker/plotting/muon/muon_id_efficiency_plots.py @@ -28,14 +28,6 @@ from common.LHCbStyle import * from common.Legend import * from common.ConfigHistos import * -PLACES = [ - (start, stop - y_width, start + x_width, stop), # top left opt - (start, start, start + x_width, start + y_width), # bottom left opt - (stop - x_width, stop - y_width, stop, stop), # top right opt - (stop - x_width, start, stop, start + y_width), # bottom right opt - (stop - x_width, 0.6 - y_width / 2, stop, 0.6 + y_width / 2), # right - (start, 0.5 - y_width / 2, start + x_width, 0.5 + y_width / 2) -] # left def getEfficiencyHistoNames(): @@ -73,6 +65,7 @@ def muonCategoryDict(): # ROOT.TFile.Open("../../../output/Z2MuMu/PrCheckerPLots-Z2MuMu.root", "read"), # ] + f = [ROOT.TFile.Open("../../../output/PrCheckerPlots.root", "read")] outputfile = ROOT.TFile( "../../../plotsfornote_root/muon_id_efficiency_plots.root", "recreate") @@ -94,14 +87,14 @@ for category in muonCategories: title = muonCatDict[category]["title"] + " vs. " + histo canvas = ROOT.TCanvas(title, title) ROOT.gPad.SetTicks() - numeratorName = "velo_tracks muon/" + muonCatDict[category][ + numeratorName = "Forward/" + muonCatDict[category][ "numerator"] + efficiencyHistoDict[histo][ "variable"] + "_reconstructed" print("Opening " + numeratorName) numerator = f[0].Get(numeratorName) for infile in f[1:]: numerator.Add(infile.Get(numeratorName)) - denominatorName = "velo_tracks muon/" + muonCatDict[category][ + denominatorName = "Forward/" + muonCatDict[category][ "denominator"] + efficiencyHistoDict[histo][ "variable"] + "_reconstructible" denominator = f[0].Get(denominatorName) @@ -134,7 +127,7 @@ for category in muonCategories: numerator.Draw("hist bar same") if (category == "matched_isMuon"): - place = PLACES[0] + place = find_place(canvas, 3) else: place = PLACES[0] #place = find_place(canvas, 0) @@ -150,15 +143,14 @@ for category in muonCategories: # Draw second y axis low = 0 high = 1.05 - axis = ROOT.TGaxis(gPad.GetUxmax(), gPad.GetUymin(), gPad.GetUxmax(), - gPad.GetUymax(), low, high, 510, "+L") + axis = ROOT.TGaxis(gPad.GetUxmax(), gPad.GetUymin(),gPad.GetUxmax(),gPad.GetUymax(),low,high,510,"+L") axis.SetTitleFont(132) axis.SetTitleSize(0.06) axis.SetTitleOffset(0.55) axis.SetTitle("Number of events [a.u.]") axis.SetLabelSize(0) axis.Draw() - + canvas.Write() cleantitle = muonCatDict[category]["title"].replace(" ", "").replace( ",", "_").replace("<", "_") @@ -170,9 +162,9 @@ for histo in ghostHistos: title = "muon ID in ghost tracks vs. " + histo canvas = ROOT.TCanvas(title, title) ROOT.gPad.SetTicks() - numeratorName = "velo_tracks muon/ghost_isMuon_" + efficiencyHistoDict[ - histo]["variable"] + "_reconstructed" - denominatorName = "velo_tracks muon/" + histo + "_Ghosts" + numeratorName = "Forward/ghost_isMuon_" + efficiencyHistoDict[histo][ + "variable"] + "_reconstructed" + denominatorName = "Forward/" + histo + "_Ghosts" print("Opening " + numeratorName) print("Opening " + denominatorName) @@ -202,7 +194,7 @@ for histo in ghostHistos: numerator.SetLineColor(ROOT.kWhite) numerator.Draw("hist bar same") - place = PLACES[0] + place = find_place(canvas, 0) legend = TLegend(place[0], place[1], place[2], place[3]) legend.AddEntry(g_efficiency, "muon ID in ghost tracks", "ep") legend.AddEntry(numerator, diff --git a/checker/plotting/tracking/momentum_resolution.py b/checker/plotting/tracking/momentum_resolution.py index 24866e349f4..7e91547c9d6 100644 --- a/checker/plotting/tracking/momentum_resolution.py +++ b/checker/plotting/tracking/momentum_resolution.py @@ -53,7 +53,7 @@ def getHistos(): def getTrackers(): - return ["veloUT_validator", "forward_validator", "velo_muon_tracks"] + return ["Upstream", "Forward"] def getResolutionInSlices(histo2D, var, var_dict): @@ -68,10 +68,9 @@ def getResolutionInSlices(histo2D, var, var_dict): histo1D = histo2D.ProjectionY("_py", i, i, "") if histo1D.GetEntries() >= 100: # fit Gaussian - g1 = ROOT.TF1("g1", "gaus", -0.5, 0.5) - if tracker == "forward_validator": + if tracker == "Forward": g1 = ROOT.TF1("g1", "gaus", -0.05, 0.05) - elif tracker == "veloUT_validator": + elif tracker == "Upstream": g1 = ROOT.TF1("g1", "gaus", -0.5, 0.5) #histo1D.GetYaxis().SetTitle("Entries") #histo1D.GetXaxis().SetTitle("Resolution (%/100)") diff --git a/checker/tracking/include/TrackChecker.h b/checker/tracking/include/TrackChecker.h index 9e049f4020f..105ac5b8a29 100644 --- a/checker/tracking/include/TrackChecker.h +++ b/checker/tracking/include/TrackChecker.h @@ -418,9 +418,6 @@ public: if (std::is_same_v && mcp.hasVelo && mcp.hasUT) { m_histos->fillMomentumResolutionHisto(mcp, track.p, track.qop); } - if (std::is_same_v && mcp.hasVelo && track.p > 0) { - m_histos->fillMomentumResolutionHisto(mcp, track.p, track.qop); - } } for (auto& category : m_categories) { diff --git a/checker/tracking/src/PrepareTracks.cpp b/checker/tracking/src/PrepareTracks.cpp index 15c939b4c3c..5452c26b24c 100644 --- a/checker/tracking/src/PrepareTracks.cpp +++ b/checker/tracking/src/PrepareTracks.cpp @@ -16,7 +16,6 @@ #include "CopyTrackParameters.cuh" #include "ROOTHeaders.h" #include -#include "MuonDefinitions.cuh" std::vector prepareVeloTracks( const unsigned number_of_events, @@ -41,6 +40,7 @@ std::vector prepareVeloTracks( for (unsigned i_track = 0; i_track < number_of_tracks_event; i_track++) { auto& t = tracks[i_track]; t.p = 0.f; + const auto velo_lhcb_ids = velo_tracks.get_lhcbids_for_track(track_hits.data(), i_track); for (const auto id : velo_lhcb_ids) { t.addId(id); @@ -51,48 +51,6 @@ std::vector prepareVeloTracks( return checker_tracks; } -std::vector prepareVeloMuonTracks( - const unsigned number_of_events, - gsl::span track_atomics, - gsl::span track_hit_number, - gsl::span track_hits, - gsl::span velomuon_atomics, - gsl::span velomuon_qop, - gsl::span velomuon_velo_indices, - gsl::span>, // velomuon_muon_id, - gsl::span event_list) -{ - /* Tracks to be checked, save in format for checker */ - std::vector checker_tracks(event_list.size()); - for (unsigned i = 0; i < event_list.size(); i++) { - const auto event_number = event_list[i]; - - // VeloMuon Tracks - const auto event_velomuon_offset = event_number * Muon::Constants::max_number_of_tracks; - const auto event_number_of_velomuon_tracks = velomuon_atomics[event_number]; - // Tracks of this event - auto& tracks = checker_tracks[i]; - Velo::Consolidated::ConstTracks velo_tracks { - track_atomics.data(), track_hit_number.data(), event_number, number_of_events}; - tracks.resize(event_number_of_velomuon_tracks); - for (unsigned i_track = 0; i_track < event_number_of_velomuon_tracks; i_track++) { - auto& t = tracks[i_track]; - const auto i_velo_track = velomuon_velo_indices[event_velomuon_offset + i_track]; - const auto velo_lhcb_ids = velo_tracks.get_lhcbids_for_track(track_hits.data(), i_velo_track); - for (const auto id : velo_lhcb_ids) { - t.addId(id); - } - // momentum - const float qop = velomuon_qop[event_velomuon_offset + i_track]; - - t.p = 1.f / std::abs(qop); - t.qop = qop; - } // tracks - } - - return checker_tracks; -}; - std::vector prepareUTTracks( const unsigned number_of_events, gsl::span velo_track_atomics, diff --git a/configuration/python/AllenConf/HLT1.py b/configuration/python/AllenConf/HLT1.py index 592e0a46f23..cbec6c75af4 100644 --- a/configuration/python/AllenConf/HLT1.py +++ b/configuration/python/AllenConf/HLT1.py @@ -7,7 +7,7 @@ from AllenConf.hlt1_reconstruction import hlt1_reconstruction, validator_node from AllenConf.hlt1_inclusive_hadron_lines import make_track_mva_line, make_two_track_mva_line, make_kstopipi_line, make_two_track_line_ks from AllenConf.hlt1_charm_lines import make_d2kk_line, make_d2pipi_line, make_two_track_mva_charm_xsec_line, make_two_ks_line from AllenConf.hlt1_calibration_lines import make_d2kpi_line, make_passthrough_line, make_rich_1_line, make_rich_2_line, make_displaced_dimuon_mass_line, make_di_muon_mass_align_line -from AllenConf.hlt1_muon_lines import make_one_velomuon_track_line, make_one_muon_track_line, make_single_high_pt_muon_line, make_single_high_pt_muon_no_muid_line, make_low_pt_muon_line, make_di_muon_mass_line, make_di_muon_soft_line, make_low_pt_di_muon_line, make_track_muon_mva_line, make_di_muon_no_ip_line +from AllenConf.hlt1_muon_lines import make_one_muon_track_line, make_single_high_pt_muon_line, make_single_high_pt_muon_no_muid_line, make_low_pt_muon_line, make_di_muon_mass_line, make_di_muon_soft_line, make_low_pt_di_muon_line, make_track_muon_mva_line, make_di_muon_no_ip_line from AllenConf.hlt1_electron_lines import make_track_electron_mva_line, make_single_high_pt_electron_line, make_lowmass_noip_dielectron_line, make_displaced_dielectron_line, make_displaced_leptons_line, make_single_high_et_line from AllenConf.hlt1_monitoring_lines import make_beam_line, make_velo_micro_bias_line, make_odin_event_type_line, make_beam_gas_line from AllenConf.hlt1_smog2_lines import ( @@ -49,13 +49,6 @@ def default_physics_lines(reconstructed_objects, with_calo, with_muon): if with_muon: lines += [ - make_one_velomuon_track_line( - velo_muon["velomuon_qop"], - velo_muon["dev_number_of_velomuon_tracks"], - velo_muon["dev_velomuon_tracks_offsets"], - velo_muon["dev_velomuon_tracks"], - velo_muon["host_velomuon_total_number_of_tracks"], - name="Hlt1OneVeloMuonTrackLine"), make_one_muon_track_line( muon_stubs["dev_muon_number_of_tracks"], muon_stubs["consolidated_muon_tracks"], diff --git a/configuration/python/AllenConf/hlt1_muon_lines.py b/configuration/python/AllenConf/hlt1_muon_lines.py index 48828960d9b..d2b8fc4f396 100644 --- a/configuration/python/AllenConf/hlt1_muon_lines.py +++ b/configuration/python/AllenConf/hlt1_muon_lines.py @@ -5,37 +5,10 @@ from AllenAlgorithms.algorithms import ( single_high_pt_muon_line_t, single_high_pt_muon_no_muid_line_t, low_pt_muon_line_t, di_muon_mass_line_t, di_muon_soft_line_t, low_pt_di_muon_line_t, track_muon_mva_line_t, di_muon_no_ip_line_t, - one_muon_track_line_t, one_velomuon_track_line_t) + one_muon_track_line_t) from AllenConf.utils import initialize_number_of_events, mep_layout from AllenCore.generator import make_algorithm - -def make_one_velomuon_track_line(velomuon_qop, - dev_number_of_velomuon_tracks, - dev_velomuon_tracks_offsets, - dev_velomuon_tracks, - host_velomuon_total_number_of_tracks, - name="Hlt1OneVeloMuonTrack", - pre_scaler_hash_string=None, - post_scaler_hash_string=None): - - number_of_events = initialize_number_of_events() - - return make_algorithm( - one_velomuon_track_line_t, - name=name, - host_number_of_events_t=number_of_events["host_number_of_events"], - dev_number_of_events_t=number_of_events["dev_number_of_events"], - pre_scaler_hash_string=pre_scaler_hash_string or name + "_pre", - post_scaler_hash_string=post_scaler_hash_string or name + "_post", - dev_velomuon_tracks_t=dev_velomuon_tracks, - dev_velomuon_tracks_qop_t=velomuon_qop, - dev_velomuon_number_of_tracks_t=dev_number_of_velomuon_tracks, - host_velomuon_total_number_of_tracks_t= - host_velomuon_total_number_of_tracks, - dev_velomuon_tracks_offsets_t=dev_velomuon_tracks_offsets) - - def make_one_muon_track_line(number_of_muon_tracks, muon_tracks, dev_output_buffer, diff --git a/configuration/python/AllenConf/hlt1_reconstruction.py b/configuration/python/AllenConf/hlt1_reconstruction.py index 8231683a38d..ecb24375b5d 100755 --- a/configuration/python/AllenConf/hlt1_reconstruction.py +++ b/configuration/python/AllenConf/hlt1_reconstruction.py @@ -5,7 +5,7 @@ from AllenConf.velo_reconstruction import decode_velo, make_velo_tracks, run_vel from AllenConf.ut_reconstruction import decode_ut, make_ut_tracks from AllenConf.scifi_reconstruction import decode_scifi, make_forward_tracks, make_seeding_XZ_tracks, make_seeding_tracks from AllenConf.matching_reconstruction import make_velo_scifi_matches -from AllenConf.muon_reconstruction import decode_muon, is_muon, fake_muon_id, make_muon_stubs, make_velo_muon +from AllenConf.muon_reconstruction import decode_muon, is_muon, fake_muon_id, make_muon_stubs from AllenConf.calo_reconstruction import decode_calo, make_track_matching, make_ecal_clusters from AllenConf.primary_vertex_reconstruction import make_pvs from AllenConf.secondary_vertex_reconstruction import make_kalman_velo_only, make_basic_particles, fit_secondary_vertices diff --git a/configuration/python/AllenConf/muon_reconstruction.py b/configuration/python/AllenConf/muon_reconstruction.py index 1d63bbf8250..5f0a778b762 100644 --- a/configuration/python/AllenConf/muon_reconstruction.py +++ b/configuration/python/AllenConf/muon_reconstruction.py @@ -4,9 +4,7 @@ from AllenAlgorithms.algorithms import ( data_provider_t, muon_calculate_srq_size_t, host_prefix_sum_t, muon_populate_tile_and_tdc_t, muon_add_coords_crossing_maps_t, - muon_populate_hits_t, is_muon_t, empty_lepton_id_t, find_muon_hits_t, - ut_select_velo_tracks_t, match_velo_muon_t, consolidate_muon_t, - consolidate_velo_muon_t) + muon_populate_hits_t, is_muon_t, empty_lepton_id_t, find_muon_hits_t, consolidate_muon_t) from AllenConf.utils import initialize_number_of_events from AllenCore.generator import make_algorithm @@ -208,101 +206,3 @@ def make_muon_stubs(): prefix_sum_muon_tracks.host_total_sum_holder_t, "dev_output_buffer": prefix_sum_muon_tracks.dev_output_buffer_t } - - -def make_velo_muon(): - from AllenConf.velo_reconstruction import decode_velo, make_velo_tracks - from AllenConf.ut_reconstruction import decode_ut, make_ut_tracks - from AllenConf.velo_reconstruction import run_velo_kalman_filter - - number_of_events = initialize_number_of_events() - decoded_velo = decode_velo() - decoded_muon = decode_muon() - decoded_ut = decode_ut() - velo_tracks = make_velo_tracks(decoded_velo) - ut_tracks = make_ut_tracks(decoded_ut, velo_tracks) - velo_tracks = ut_tracks["velo_tracks"] - velo_states = ut_tracks["velo_states"] - - velo_kalman_filter = run_velo_kalman_filter(velo_tracks) - - ut_select_velo_tracks = make_algorithm( - ut_select_velo_tracks_t, - name="ut_select_velo_tracks", - host_number_of_events_t=number_of_events["host_number_of_events"], - host_number_of_reconstructed_velo_tracks_t=velo_tracks[ - "host_number_of_reconstructed_velo_tracks"], - dev_velo_tracks_view_t=velo_tracks["dev_velo_tracks_view"], - dev_velo_states_view_t=velo_states[ - "dev_velo_kalman_beamline_states_view"], - dev_accepted_velo_tracks_t=velo_tracks["dev_accepted_velo_tracks"]) - - standalone_muon = make_muon_stubs() - - match_velo_muon = make_algorithm( - match_velo_muon_t, - name='match_velo_muon', - host_number_of_events_t=number_of_events["host_number_of_events"], - dev_number_of_events_t=number_of_events["dev_number_of_events"], - dev_muon_tracks_t=standalone_muon["dev_muon_tracks_output"], - dev_muon_number_of_tracks_t=standalone_muon[ - "dev_muon_number_of_tracks"], - host_muon_total_number_of_tracks_t=standalone_muon[ - "host_total_sum_holder"], - host_number_of_reconstructed_velo_tracks_t=velo_tracks[ - "host_number_of_reconstructed_velo_tracks"], - dev_muon_tracks_offsets_t=standalone_muon["dev_output_buffer"], - dev_station_ocurrences_offset_t=decoded_muon[ - "dev_station_ocurrences_offset"], - dev_muon_hits_t=decoded_muon["dev_muon_hits"], - dev_ut_number_of_selected_velo_tracks_t=ut_select_velo_tracks. - dev_ut_number_of_selected_velo_tracks_t, - dev_ut_selected_velo_tracks_t=ut_select_velo_tracks. - dev_ut_selected_velo_tracks_t, - dev_velo_tracks_view_t=velo_tracks["dev_velo_tracks_view"], - dev_velo_states_view_t=velo_states[ - "dev_velo_kalman_endvelo_states_view"], - create_plot_dirs=True) - - prefix_sum_velomuon_tracks = make_algorithm( - host_prefix_sum_t, - name="prefix_sum_muon_tracks", - dev_input_buffer_t=match_velo_muon.dev_velomuon_number_of_tracks_t) - - consolidate_velo_muon = make_algorithm( - consolidate_velo_muon_t, - name="consolidate_velo_muon_t", - host_number_of_events_t=number_of_events["host_number_of_events"], - dev_number_of_events_t=number_of_events["dev_number_of_events"], - dev_velomuon_number_of_tracks_t=match_velo_muon. - dev_velomuon_number_of_tracks_t, - dev_velomuon_tracks_offsets_t=prefix_sum_velomuon_tracks. - dev_output_buffer_t, - host_velomuon_total_number_of_tracks_t=prefix_sum_velomuon_tracks. - host_total_sum_holder_t, - dev_velomuon_tracks_velo_indices_input_t=match_velo_muon. - dev_velomuon_tracks_velo_indices_t, - dev_velomuon_tracks_muon_indices_input_t=match_velo_muon. - dev_velomuon_tracks_muon_indices_t, - dev_velomuon_tracks_qop_input_t=match_velo_muon. - dev_velomuon_tracks_qop_t, - dev_velomuon_tracks_input_t=match_velo_muon.dev_velomuon_tracks_t) - - return { - "dev_velomuon_muon_id": - match_velo_muon.dev_velomuon_muon_id_t, - "velomuon_qop": - consolidate_velo_muon.dev_velomuon_tracks_qop_output_t, - "dev_number_of_velomuon_tracks": - match_velo_muon.dev_velomuon_number_of_tracks_t, - "dev_velomuon_tracks_offsets": - prefix_sum_velomuon_tracks.dev_output_buffer_t, - "dev_velomuon_tracks": - consolidate_velo_muon.dev_velomuon_tracks_output_t, - "host_velomuon_total_number_of_tracks": - prefix_sum_velomuon_tracks.host_total_sum_holder_t, - "dev_output_buffer": - prefix_sum_velomuon_tracks.dev_output_buffer_t, - "dev_velomuon_tracks_velo_indices_output": - consolidate_velo_muon.dev_velomuon_tracks_velo_indices_output_t - } diff --git a/configuration/python/AllenConf/validators.py b/configuration/python/AllenConf/validators.py index 1b06bdc594a..82fedde9d1e 100644 --- a/configuration/python/AllenConf/validators.py +++ b/configuration/python/AllenConf/validators.py @@ -14,8 +14,6 @@ from AllenAlgorithms.algorithms import (host_prefix_sum_t, seeding_copy_trackXZ_hit_number_t) from AllenConf.scifi_reconstruction import decode_scifi, make_seeding_XZ_tracks -from AllenConf.velo_reconstruction import decode_velo, make_velo_tracks, run_velo_kalman_filter - def mc_data_provider(): host_mc_particle_banks = make_algorithm( @@ -80,11 +78,10 @@ def veloUT_validation(veloUT_tracks, name="veloUT_validator"): dev_ut_qop_t=veloUT_tracks["dev_ut_qop"]) -def long_validation(long_tracks, velo_muon, name="long_validator"): +def long_validation(long_tracks, name="long_validator"): mc_events = mc_data_provider() number_of_events = initialize_number_of_events() - decoded_velo = decode_velo() - velo_tracks = make_velo_tracks(decoded_velo) + velo_kalman_filter = long_tracks["velo_kalman_filter"] return make_algorithm( @@ -94,18 +91,11 @@ def long_validation(long_tracks, velo_muon, name="long_validator"): host_mc_events_t=mc_events.host_mc_events_t, host_number_of_reconstructed_long_tracks_t=long_tracks[ "host_number_of_reconstructed_scifi_tracks"], - host_number_of_reconstructed_velomuon_tracks_t=velo_muon[ - "host_velomuon_total_number_of_tracks"], dev_velo_states_view_t=velo_kalman_filter[ "dev_velo_kalman_endvelo_states_view"], - dev_velo_tracks_view_t=velo_tracks['dev_velo_tracks_view'], dev_multi_event_long_tracks_view_t=long_tracks[ "dev_multi_event_long_tracks_view"], - dev_offsets_long_tracks_t=long_tracks["dev_offsets_long_tracks"], - dev_offsets_velomuon_tracks_t=velo_muon["dev_output_buffer"], - dev_velomuon_tracks_qop_t=velo_muon['velomuon_qop'], - dev_velomuon_tracks_velo_indices_t=velo_muon[ - "dev_velomuon_tracks_velo_indices_output"]) + dev_offsets_long_tracks_t=long_tracks["dev_offsets_long_tracks"]) def seeding_xz_validation(name="seed_xz_validator"): @@ -201,13 +191,11 @@ def velo_scifi_dump(matched_tracks, name="veloscifi_dump"): dev_seeding_states_t=seeding_tracks["dev_seeding_states"]) -def muon_validation(muonID, velo_muon, name="muon_validator"): +def muon_validation(muonID, name="muon_validator"): mc_events = mc_data_provider() number_of_events = initialize_number_of_events() long_tracks = muonID["long_tracks"] - decoded_velo = decode_velo() - velo_tracks = make_velo_tracks(decoded_velo) velo_kalman_filter = long_tracks["velo_kalman_filter"] return make_algorithm( @@ -217,17 +205,12 @@ def muon_validation(muonID, velo_muon, name="muon_validator"): host_mc_events_t=mc_events.host_mc_events_t, host_number_of_reconstructed_long_tracks_t=long_tracks[ "host_number_of_reconstructed_scifi_tracks"], - host_number_of_reconstructed_velo_tracks_t=velo_tracks[ - "host_number_of_reconstructed_velo_tracks"], dev_velo_states_view_t=velo_kalman_filter[ "dev_velo_kalman_endvelo_states_view"], dev_multi_event_long_tracks_view_t=long_tracks[ "dev_multi_event_long_tracks_view"], - dev_velo_tracks_view_t=velo_tracks['dev_velo_tracks_view'], dev_offsets_long_tracks_t=long_tracks["dev_offsets_long_tracks"], - dev_offsets_velo_tracks_t=velo_tracks["dev_offsets_all_velo_tracks"], - dev_is_muon_t=muonID["dev_is_muon"], - dev_match_velo_muon_t=velo_muon["dev_velomuon_muon_id"]) + dev_is_muon_t=muonID["dev_is_muon"]) def pv_validation(pvs, name="pv_validator"): diff --git a/configuration/python/AllenSequences/hlt1_complex_validation.py b/configuration/python/AllenSequences/hlt1_complex_validation.py index 70c8ff26b5f..45cf3371156 100644 --- a/configuration/python/AllenSequences/hlt1_complex_validation.py +++ b/configuration/python/AllenSequences/hlt1_complex_validation.py @@ -12,7 +12,6 @@ from AllenConf.validators import ( from PyConf.control_flow import NodeLogic, CompositeNode from AllenCore.generator import generate -from AllenConf.muon_reconstruction import make_velo_muon # Reconstructed objects with make_ut_tracks.bind(restricted=False): @@ -20,7 +19,6 @@ with make_ut_tracks.bind(restricted=False): restricted_hlt1_reconstruction = hlt1_reconstruction() gec = make_gec(count_scifi=True, count_ut=True) -velo_muon = make_velo_muon() lines = [] with line_maker.bind(prefilter=gec): @@ -89,27 +87,25 @@ validators_leaf = CompositeNode( make_composite_node_with_gec( "restricted_long_validator", long_validation(restricted_hlt1_reconstruction["long_tracks"], - restricted_hlt1_reconstruction['velo_muon'], "restricted_long_validator"), with_scifi=True, with_ut=True), make_composite_node_with_gec( "non-restricted_long_validator", long_validation(non_restricted_hlt1_reconstruction["long_tracks"], - non_restricted_hlt1_reconstruction['velo_muon'], "non-restricted_long_validator"), with_scifi=True, with_ut=True), make_composite_node_with_gec( "restricted_muon_validation", muon_validation(restricted_hlt1_reconstruction["muonID"], - velo_muon, "restricted_muon_validation"), + "restricted_muon_validation"), with_scifi=True, with_ut=True), make_composite_node_with_gec( "non-restricted_muon_validation", muon_validation(non_restricted_hlt1_reconstruction["muonID"], - velo_muon, "non-restricted_muon_validation"), + "non-restricted_muon_validation"), with_scifi=True, with_ut=True), make_composite_node_with_gec( diff --git a/configuration/python/AllenSequences/trackmatching_veloscifi_validation.py b/configuration/python/AllenSequences/trackmatching_veloscifi_validation.py index b2786206cae..b7d6110afbc 100644 --- a/configuration/python/AllenSequences/trackmatching_veloscifi_validation.py +++ b/configuration/python/AllenSequences/trackmatching_veloscifi_validation.py @@ -3,7 +3,6 @@ ############################################################################### from AllenConf.scifi_reconstruction import decode_scifi, seeding_xz, make_seeding_XZ_tracks, make_seeding_tracks from AllenConf.matching_reconstruction import make_velo_scifi_matches -from AllenConf.muon_reconstruction import make_velo_muon from AllenConf.hlt1_reconstruction import make_composite_node_with_gec from AllenConf.validators import velo_validation, seeding_validation, seeding_xz_validation, long_validation, velo_scifi_dump from AllenConf.velo_reconstruction import decode_velo, make_velo_tracks, run_velo_kalman_filter @@ -21,8 +20,7 @@ seed = seeding_validation(seeding_tracks) seed_xz = seeding_xz_validation() matched_tracks = make_velo_scifi_matches(velo_tracks, velo_states, seeding_tracks) -velo_muon = make_velo_muon() -velo_scifi = long_validation(matched_tracks, velo_muon) +velo_scifi = long_validation(matched_tracks) velo_scifi_matching_sequence = CompositeNode( "Validators", [ make_composite_node_with_gec( diff --git a/device/event_model/common/include/CopyTrackParameters.cuh b/device/event_model/common/include/CopyTrackParameters.cuh index dafdce9bbbf..94c4071c014 100644 --- a/device/event_model/common/include/CopyTrackParameters.cuh +++ b/device/event_model/common/include/CopyTrackParameters.cuh @@ -7,61 +7,6 @@ #include "PV_Definitions.cuh" #include "patPV_Definitions.cuh" -__device__ inline void prepare_velo_tracks( - const Allen::Views::Velo::Consolidated::Tracks event_velo_tracks, - Checker::Track* velo_checker_tracks) -{ - const unsigned number_of_tracks_event = event_velo_tracks.size(); - for (unsigned i_track = 0; i_track < number_of_tracks_event; i_track++) { - Checker::Track t; - const auto velo_track = event_velo_tracks.track(i_track); - - const auto total_number_of_hits = velo_track.number_of_hits(); - for (unsigned ihit = 0; ihit < total_number_of_hits; ihit++) { - const auto hit = velo_track.hit(ihit); - t.addId(hit.id()); - } - velo_checker_tracks[i_track] = t; - } -} - -__device__ inline void prepare_velomuon_tracks( - const unsigned number_of_tracks_event, - const Allen::Views::Velo::Consolidated::Tracks event_velo_tracks, - const Allen::Views::Physics::KalmanStates endvelo_states, - const float* velomuon_qop, - const unsigned* velomuon_velo_indices, - Checker::Track* velomuon_checker_tracks) -{ - for (unsigned i_track = 0; i_track < number_of_tracks_event; i_track++) { - Checker::Track t; - const auto velo_track = event_velo_tracks.track(velomuon_velo_indices[i_track]); - const auto velo_track_index = velo_track.track_index(); - const auto velo_state = endvelo_states.state(velo_track_index); - t.velo_track_index = velo_track_index; - // momentum - const auto qop = velomuon_qop[i_track]; - t.p = 1.f / std::abs(qop); - t.qop = qop; - // direction at first state -> velo state of track - const float tx = velo_state.tx(); - const float ty = velo_state.ty(); - const float slope2 = tx * tx + ty * ty; - t.pt = std::sqrt(slope2 / (1.0f + slope2)) / std::fabs(qop); - // pseudorapidity - const float rho = std::sqrt(slope2); - t.rho = rho; - - // add all hits - const auto total_number_of_hits = velo_track.number_of_hits(); - for (unsigned ihit = 0; ihit < total_number_of_hits; ihit++) { - const auto hit = velo_track.hit(ihit); - t.addId(hit.id()); - } - velomuon_checker_tracks[i_track] = t; - } -} - __device__ inline void prepare_long_tracks( const Allen::Views::Physics::LongTracks event_long_tracks, const Allen::Views::Physics::KalmanStates endvelo_states, diff --git a/device/event_model/muon/include/MuonDefinitions.cuh b/device/event_model/muon/include/MuonDefinitions.cuh index a5034d025e2..9b387ecbdf2 100644 --- a/device/event_model/muon/include/MuonDefinitions.cuh +++ b/device/event_model/muon/include/MuonDefinitions.cuh @@ -140,109 +140,12 @@ namespace Muon { 480., // M5 }; - + float z[4] {15205.f, 16400.f, 17700.f, 18850.f}; }; - static constexpr unsigned max_number_of_tracks = 120; - struct MomParam { - float C0[10] = { - 113.21271, - -115.8049, - -657.5307, - 60.049296, - -491.3313, - 2381.3909, - 2684.9605, - 12571.073, - 45041.933, - -85422.44, - }; - float C1[14] = { - -0.154380, - -119.347058, - -841.363037, - 16543.416488, - -170652.099599, - 28.940644, - -2313.431503, - 45068.764734, - 3439.026842, - -143227.239737, - 1796054.751602, - 596.408641, - -226695.997197, - 471660.297116, - }; - float C2[10] = {-48.940097, - -213.741769, - -3006.193908, - 135.633447, - -822.544939, - 12407.568991, - 18899.246135, - 40529.981272, - 184896.154097, - -376756.125511}; - float C3[14] = { - 0.215404, - -122.816177, - -902.317011, - 25227.824861, - -206136.914140, - -134.229687, - 12320.745080, - -247916.687297, - 6915.080393, - -232643.972656, - 2009303.058464, - -46719.185323, - 2276730.013659, - 177694.558072, - }; - float C4[10] = { - -23.473752, - -10.128032, - -889.713080, - 468.227962, - -11156.964015, - -2248.650393, - 11765.688620, - 59454.044613, - 10303.576287, - 137177.920462, - }; - }; - } // namespace Constants - namespace TrackMatchingConsts { - constexpr float z_match = 5240.0f; // FIXME_GEOMETRY_HARDCODING - constexpr float zMatchY = 10000.f; // in mm - - constexpr float dxTol = 8.f; // in mm // to scan - constexpr float dxTolSlope = 80.f; // in mm // to scan - - constexpr float dyTol = 6.f; // in mm // to scan - constexpr float dyTolSlope = 300.f; // in mm // to scan - constexpr float fastYTol = 250.f; // to scan - // The main cut values - // constexpr float maxChi2 = 15.f; // to scan - constexpr float maxChi2 = 2.5f; // to scan - - // Magnetic parametrization from Velo + SciFi tracks - struct MagnetParametrization { - float zMagnetParamsMatch[5] {5287.6f, -7.98878f, 317.683f, 0.0119379f, -1418.42f}; - float bendYParams[2] {-347.801f, -42663.6f}; - }; - } // namespace TrackMatchingConsts - - struct MatchingResult { - float dSlopeX; - float dSlopeY; - float distX; - float distY; - float zForX; - float chi2; - }; -} // namespace Muon + static constexpr unsigned max_number_of_tracks = 120; + } +} struct MuonTrack { int m_hits[4] {-1, -1, -1, -1}; diff --git a/device/muon/match_velo_muon/include/ConsolidateVeloMuon.cuh b/device/muon/match_velo_muon/include/ConsolidateVeloMuon.cuh deleted file mode 100644 index ed325c8154e..00000000000 --- a/device/muon/match_velo_muon/include/ConsolidateVeloMuon.cuh +++ /dev/null @@ -1,58 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * -\*****************************************************************************/ -#pragma once - -#include "AlgorithmTypes.cuh" -#include "MuonDefinitions.cuh" -#include "UTConsolidated.cuh" -#include "VeloConsolidated.cuh" -#include "States.cuh" - -static constexpr int M2 {0}, M3 {1}, M4 {2}, M5 {3}; - -namespace consolidate_velo_muon { - struct Parameters { - HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; - MASK_INPUT(dev_event_list_t) dev_event_list; - DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; - - DEVICE_INPUT(dev_velomuon_number_of_tracks_t, unsigned) dev_velomuon_number_of_tracks; - - DEVICE_INPUT(dev_velomuon_tracks_offsets_t, unsigned) dev_velomuon_tracks_offsets; - HOST_INPUT(host_velomuon_total_number_of_tracks_t, unsigned) host_velomuon_total_number_of_tracks; - - DEVICE_INPUT(dev_velomuon_tracks_input_t, MuonTrack) dev_velomuon_tracks_input; - DEVICE_INPUT(dev_velomuon_tracks_velo_indices_input_t, unsigned) dev_velomuon_tracks_velo_indices_input; - DEVICE_INPUT(dev_velomuon_tracks_muon_indices_input_t, unsigned) dev_velomuon_tracks_muon_indices_input; - DEVICE_INPUT(dev_velomuon_tracks_qop_input_t, float) dev_velomuon_tracks_qop_input; - - DEVICE_OUTPUT(dev_velomuon_tracks_output_t, MuonTrack) dev_velomuon_tracks_output; - DEVICE_OUTPUT(dev_velomuon_tracks_velo_indices_output_t, unsigned) dev_velomuon_tracks_velo_indices_output; - DEVICE_OUTPUT(dev_velomuon_tracks_muon_indices_output_t, unsigned) dev_velomuon_tracks_muon_indices_output; - DEVICE_OUTPUT(dev_velomuon_tracks_qop_output_t, float) dev_velomuon_tracks_qop_output; - - PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; - }; - - __global__ void consolidate_velo_muon(Parameters); - - struct consolidate_velo_muon_t : public DeviceAlgorithm, Parameters { - void set_arguments_size( - ArgumentReferences arguments, - const RuntimeOptions&, - const Constants&, - const HostBuffers&) const; - - void operator()( - const ArgumentReferences& arguments, - const RuntimeOptions& runtime_options, - const Constants& constants, - HostBuffers& host_buffers, - const Allen::Context& context) const; - - private: - Property m_block_dim {this, {{64, 1, 1}}}; - }; - -} // namespace consolidate_velo_muon \ No newline at end of file diff --git a/device/muon/match_velo_muon/include/MatchVeloMuon.cuh b/device/muon/match_velo_muon/include/MatchVeloMuon.cuh deleted file mode 100644 index bb5ecd1b806..00000000000 --- a/device/muon/match_velo_muon/include/MatchVeloMuon.cuh +++ /dev/null @@ -1,64 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * -\*****************************************************************************/ -#pragma once - -#include "AlgorithmTypes.cuh" -#include "MuonDefinitions.cuh" -#include "UTConsolidated.cuh" -#include "VeloConsolidated.cuh" -#include "States.cuh" - -namespace match_velo_muon { - struct Parameters { - HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; - MASK_INPUT(dev_event_list_t) dev_event_list; - DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; - DEVICE_INPUT(dev_station_ocurrences_offset_t, unsigned) dev_station_ocurrences_offset; - DEVICE_INPUT(dev_muon_hits_t, char) dev_muon_hits; - HOST_INPUT(host_number_of_reconstructed_velo_tracks_t, unsigned) host_number_of_reconstructed_velo_tracks; - DEVICE_INPUT(dev_muon_tracks_t, MuonTrack) dev_muon_tracks; - DEVICE_INPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; - DEVICE_INPUT(dev_velo_tracks_view_t, Allen::Views::Velo::Consolidated::Tracks) dev_velo_tracks_view; - DEVICE_INPUT(dev_velo_states_view_t, Allen::Views::Physics::KalmanStates) dev_velo_states_view; - - DEVICE_INPUT(dev_ut_number_of_selected_velo_tracks_t, unsigned) dev_ut_number_of_selected_velo_tracks; - DEVICE_INPUT(dev_ut_selected_velo_tracks_t, unsigned) dev_ut_selected_velo_tracks; - - DEVICE_INPUT(dev_muon_tracks_offsets_t, unsigned) dev_muon_tracks_offsets; - HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; - - DEVICE_OUTPUT(dev_velomuon_tracks_t, MuonTrack) dev_velomuon_tracks; - - DEVICE_OUTPUT(dev_velomuon_tracks_velo_indices_t, unsigned) dev_velomuon_tracks_velo_indices; - DEVICE_OUTPUT(dev_velomuon_tracks_muon_indices_t, unsigned) dev_velomuon_tracks_muon_indices; - DEVICE_OUTPUT(dev_velomuon_tracks_qop_t, float) dev_velomuon_tracks_qop; - DEVICE_OUTPUT(dev_velomuon_number_of_tracks_t, unsigned) dev_velomuon_number_of_tracks; - DEVICE_OUTPUT(dev_velomuon_muon_id_t, bool) dev_velomuon_muon_id; - - PROPERTY(create_plot_dirs_t, "create_plot_dirs", "create plot dirs", bool) create_plot_dirs; - PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; - }; - - __global__ void - match_velo_muon(Parameters, const float* magnet_polarity, const Muon::Constants::MomParam* muon_mom_param); - - struct match_velo_muon_t : public DeviceAlgorithm, Parameters { - void set_arguments_size( - ArgumentReferences arguments, - const RuntimeOptions&, - const Constants&, - const HostBuffers&) const; - - void operator()( - const ArgumentReferences& arguments, - const RuntimeOptions& runtime_options, - const Constants& constants, - HostBuffers& host_buffers, - const Allen::Context& context) const; - - private: - Property m_block_dim {this, {{64, 1, 1}}}; - Property m_create_plot_dir {this, false}; - }; -} // namespace match_velo_muon diff --git a/device/muon/match_velo_muon/src/ConsolidateVeloMuon.cu b/device/muon/match_velo_muon/src/ConsolidateVeloMuon.cu deleted file mode 100644 index b513cc1ccb9..00000000000 --- a/device/muon/match_velo_muon/src/ConsolidateVeloMuon.cu +++ /dev/null @@ -1,69 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * -\*****************************************************************************/ -#include "ConsolidateVeloMuon.cuh" - -#include "Common.h" -#include "VeloDefinitions.cuh" -#include "VeloEventModel.cuh" -#include - -INSTANTIATE_ALGORITHM(consolidate_velo_muon::consolidate_velo_muon_t) - -void consolidate_velo_muon::consolidate_velo_muon_t::set_arguments_size( - ArgumentReferences arguments, - const RuntimeOptions&, - const Constants&, - const HostBuffers&) const -{ - set_size(arguments, first(arguments)); - set_size( - arguments, first(arguments)); - set_size( - arguments, first(arguments)); - set_size(arguments, first(arguments)); -} - -void consolidate_velo_muon::consolidate_velo_muon_t::operator()( - const ArgumentReferences& arguments, - const RuntimeOptions&, - const Constants&, - HostBuffers&, - const Allen::Context& context) const -{ - global_function(consolidate_velo_muon)(dim3(size(arguments)), property(), context)( - arguments); -} - -__global__ void consolidate_velo_muon::consolidate_velo_muon(consolidate_velo_muon::Parameters parameters) -{ - const unsigned event_number = parameters.dev_event_list[blockIdx.x]; - - // Input - auto event_velomuon_tracks_velo_indices_input = - parameters.dev_velomuon_tracks_velo_indices_input + event_number * Muon::Constants::max_number_of_tracks; - auto event_velomuon_tracks_muon_indices_input = - parameters.dev_velomuon_tracks_muon_indices_input + event_number * Muon::Constants::max_number_of_tracks; - auto event_velomuon_tracks_qop_input = - parameters.dev_velomuon_tracks_qop_input + event_number * Muon::Constants::max_number_of_tracks; - auto event_velomuon_tracks_input = - parameters.dev_velomuon_tracks_input + event_number * Muon::Constants::max_number_of_tracks; - - // Output - auto event_velomuon_tracks_velo_indices_output = - parameters.dev_velomuon_tracks_velo_indices_output + parameters.dev_velomuon_tracks_offsets[event_number]; - auto event_velomuon_tracks_muon_indices_output = - parameters.dev_velomuon_tracks_muon_indices_output + parameters.dev_velomuon_tracks_offsets[event_number]; - auto event_velomuon_tracks_qop_output = - parameters.dev_velomuon_tracks_qop_output + parameters.dev_velomuon_tracks_offsets[event_number]; - auto event_velomuon_tracks_output = - parameters.dev_velomuon_tracks_output + parameters.dev_velomuon_tracks_offsets[event_number]; - - for (unsigned i_muon_track = threadIdx.x; i_muon_track < parameters.dev_velomuon_number_of_tracks[event_number]; - i_muon_track += blockDim.x) { - event_velomuon_tracks_velo_indices_output[i_muon_track] = event_velomuon_tracks_velo_indices_input[i_muon_track]; - event_velomuon_tracks_muon_indices_output[i_muon_track] = event_velomuon_tracks_muon_indices_input[i_muon_track]; - event_velomuon_tracks_qop_output[i_muon_track] = event_velomuon_tracks_qop_input[i_muon_track]; - event_velomuon_tracks_output[i_muon_track] = event_velomuon_tracks_input[i_muon_track]; - } -} diff --git a/device/muon/match_velo_muon/src/MatchVeloMuon.cu b/device/muon/match_velo_muon/src/MatchVeloMuon.cu deleted file mode 100644 index 04622b272d2..00000000000 --- a/device/muon/match_velo_muon/src/MatchVeloMuon.cu +++ /dev/null @@ -1,283 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * -\*****************************************************************************/ -#include "MatchVeloMuon.cuh" - -#include "Common.h" -#include "VeloDefinitions.cuh" -#include "VeloEventModel.cuh" -#include - -#include -namespace fs = std::filesystem; - -INSTANTIATE_ALGORITHM(match_velo_muon::match_velo_muon_t) - -void match_velo_muon::match_velo_muon_t::set_arguments_size( - ArgumentReferences arguments, - const RuntimeOptions&, - const Constants&, - const HostBuffers&) const -{ - set_size( - arguments, Muon::Constants::max_number_of_tracks * first(arguments)); - set_size( - arguments, Muon::Constants::max_number_of_tracks * first(arguments)); - set_size( - arguments, Muon::Constants::max_number_of_tracks * first(arguments)); - set_size( - arguments, Muon::Constants::max_number_of_tracks * first(arguments)); - set_size(arguments, first(arguments)); - set_size(arguments, first(arguments)); -} - -void match_velo_muon::match_velo_muon_t::operator()( - const ArgumentReferences& arguments, - const RuntimeOptions&, - const Constants& constants, - HostBuffers&, - const Allen::Context& context) const -{ - if (property()) { - fs::create_directory("plotsfornote"); - fs::create_directory("plotsfornote_root"); - } - Allen::memset_async(arguments, 0, context); - Allen::memset_async(arguments, 0, context); - global_function(match_velo_muon)(dim3(size(arguments)), property(), context)( - arguments, constants.dev_magnet_polarity.data(), constants.dev_muon_mom_param); -} - -__device__ float qop_calculation( - Muon::Constants::MomParam const* muon_mom_param, - float const magSign, - float const z0SciFi, - float const x0SciFi, - float const y0SciFi, - float const xVelo, - float const yVelo, - float const zVelo, - float const txO, - float const tyO, - float const txSciFi, - float const tySciFi) -{ - const auto zMatch = (x0SciFi - xVelo + txO * zVelo - txSciFi * z0SciFi) / (txO - txSciFi); - const auto xMatch = xVelo + txO * (zMatch - zVelo); - const auto yMatch = yVelo + tyO * (zMatch - zVelo); - - const auto xVelo_at0 = xVelo - txO * zVelo; - const auto yVelo_at0 = yVelo - tyO * zVelo; - const auto FLIGHTPATH_MAGNET_SCI_SQ = (x0SciFi - xMatch) * (x0SciFi - xMatch) + - (y0SciFi - yMatch) * (y0SciFi - yMatch) + - (z0SciFi - zMatch) * (z0SciFi - zMatch); - const auto FLIGHTPATH_VELO_MAGNET_SQ = - (xVelo_at0 - xMatch) * (xVelo_at0 - xMatch) + (yVelo_at0 - yMatch) * (yVelo_at0 - yMatch) + zMatch * zMatch; - const auto FLIGHTPATH = 0.001f * sqrtf(FLIGHTPATH_MAGNET_SCI_SQ + FLIGHTPATH_VELO_MAGNET_SQ); - const auto MAGFIELD = FLIGHTPATH * cosf(asinf(tyO)); - const auto DSLOPE = - txSciFi / (sqrtf(1.f + txSciFi * txSciFi + tySciFi * tySciFi)) - txO / (sqrtf(1.f + txO * txO + tyO * tyO)); - - const auto txO2 = txO * txO; - const auto txO3 = txO * txO * txO; - const auto txO4 = txO * txO * txO * txO; - const auto txO5 = txO * txO * txO * txO * txO; - const auto txO6 = txO * txO * txO * txO * txO * txO; - const auto txO7 = txO * txO * txO * txO * txO * txO * txO; - const auto tyO2 = tyO * tyO; - const auto tyO4 = tyO * tyO * tyO * tyO; - const auto tyO6 = tyO * tyO * tyO * tyO * tyO * tyO; - - const auto C0 = muon_mom_param->C0[0] + muon_mom_param->C0[1] * txO2 + muon_mom_param->C0[2] * txO4 + - muon_mom_param->C0[3] * tyO2 + muon_mom_param->C0[4] * tyO4 + muon_mom_param->C0[5] * txO2 * tyO2 + - muon_mom_param->C0[6] * txO6 + muon_mom_param->C0[7] * tyO6 + muon_mom_param->C0[8] * txO4 * tyO2 + - muon_mom_param->C0[9] * txO2 * tyO4; - const auto C1 = muon_mom_param->C1[0] + muon_mom_param->C1[1] * txO + muon_mom_param->C1[2] * txO3 + - muon_mom_param->C1[3] * txO5 + muon_mom_param->C1[4] * txO7 + muon_mom_param->C1[5] * tyO2 + - muon_mom_param->C1[6] * tyO4 + muon_mom_param->C1[7] * tyO6 + muon_mom_param->C1[8] * txO * tyO2 + - muon_mom_param->C1[9] * txO * tyO4 + muon_mom_param->C1[10] * txO * tyO6 + - muon_mom_param->C1[11] * txO3 * tyO2 + muon_mom_param->C1[12] * txO3 * tyO4 + - muon_mom_param->C1[13] * txO5 * tyO2; - const auto C2 = muon_mom_param->C2[0] + muon_mom_param->C2[1] * txO2 + muon_mom_param->C2[2] * txO4 + - muon_mom_param->C2[3] * tyO2 + muon_mom_param->C2[4] * tyO4 + muon_mom_param->C2[5] * txO2 * tyO2 + - muon_mom_param->C2[6] * txO6 + muon_mom_param->C2[7] * tyO6 + muon_mom_param->C2[8] * txO4 * tyO2 + - muon_mom_param->C2[9] * txO2 * tyO4; - const auto C3 = muon_mom_param->C3[0] + muon_mom_param->C3[1] * txO + muon_mom_param->C3[2] * txO3 + - muon_mom_param->C3[3] * txO5 + muon_mom_param->C3[4] * txO7 + muon_mom_param->C3[5] * tyO2 + - muon_mom_param->C3[6] * tyO4 + muon_mom_param->C3[7] * tyO6 + muon_mom_param->C3[8] * txO * tyO2 + - muon_mom_param->C3[9] * txO * tyO4 + muon_mom_param->C3[10] * txO * tyO6 + - muon_mom_param->C3[11] * txO3 * tyO2 + muon_mom_param->C3[12] * txO3 * tyO4 + - muon_mom_param->C3[13] * txO5 * tyO2; - const auto C4 = muon_mom_param->C4[0] + muon_mom_param->C4[1] * txO2 + muon_mom_param->C4[2] * txO4 + - muon_mom_param->C4[3] * tyO2 + muon_mom_param->C4[4] * tyO4 + muon_mom_param->C4[5] * txO2 * tyO2 + - muon_mom_param->C4[6] * txO6 + muon_mom_param->C4[7] * tyO6 + muon_mom_param->C4[8] * txO4 * tyO2 + - muon_mom_param->C4[9] * txO2 * tyO4; - - const auto MAGFIELD_updated = - MAGFIELD * magSign * - (C0 + C1 * DSLOPE + C2 * DSLOPE * DSLOPE + C3 * DSLOPE * DSLOPE * DSLOPE + C4 * DSLOPE * DSLOPE * DSLOPE * DSLOPE); - const auto qop = DSLOPE / MAGFIELD_updated; - return qop; -} -__device__ Muon::MatchingResult getChi2Match( - const MiniState velo_state, - float tx_muon, - float ty_muon, - float xpos_muon, - float ypos_muon, - float zpos_muon) -{ - const float xpos_velo = velo_state.x, ypos_velo = velo_state.y, zpos_velo = velo_state.z, tx_velo = velo_state.tx, - ty_velo = velo_state.ty; - - if (fabsf(tx_velo) > 0.4f || fabsf(ty_velo) > 0.3f) return {-1.f, -1.f, -1.f, -1.f, -1.f, 99999.f}; - const float dSlopeX = tx_velo - tx_muon; - // if (std::abs(dSlopeX) > 0.6f) - // return {-1.f, -1.f, -1.f, -1.f, -1.f, 99999.f}; // matching the UT/muon slopes in X (bending -> large tolerance) - - const float dSlopeY = ty_velo - ty_muon; - if (std::abs(dSlopeY) > 0.05f) - return {-1.f, -1.f, -1.f, -1.f, -1.f, 99999.f}; // matching the UT/muon slopes in Y (no bending) - - const float zForX = 1.f * (MatchUpstreamMuon::za + MatchUpstreamMuon::zb * velo_state.tx * velo_state.tx); - const float zForY = 17500.f; - const float xV = xpos_velo + (zForX - zpos_velo) * tx_velo; - // -- This is the function that calculates the 'bending' in y-direction - // -- The parametrisation can be derived with the MatchFitParams package - const float yV = (ypos_velo + (zForY - zpos_velo) * ty_velo); - - const float xS = xpos_muon + (zForX - zpos_muon) * tx_muon; - const float yS = ypos_muon + (zForY - zpos_muon) * ty_muon; - const float distX = xS - xV; - if (std::abs(distX) > 100.f) return {-1.f, -1.f, -1.f, -1.f, -1.f, 99999.f}; // to scan - const float distY = yS - yV; - // if (std::abs(distY) > 150.f) return {-1.f, -1.f, -1.f, -1.f, -1.f, 99999.f}; // to scan - float fracDistSlope = 0.5; - float fracChi2xy = 0.2f; - float fracChi2xyslope = 0.8f; - - float chi2 = 0.f; - chi2 += fracDistSlope * (fracChi2xy) *distY * distY; - chi2 += fracDistSlope * (1 - fracChi2xy) * distX * distX; - chi2 += (1 - fracDistSlope) * (fracChi2xyslope) *dSlopeY * dSlopeY; - chi2 += (1 - fracDistSlope) * (1 - fracChi2xyslope) * dSlopeX * dSlopeX; - - return {dSlopeX, dSlopeY, distX, distY, zForX, chi2}; -} - -__global__ void match_velo_muon::match_velo_muon( - match_velo_muon::Parameters parameters, - const float* magnet_polarity, - const Muon::Constants::MomParam* muon_mom_param) -{ - const unsigned event_number = parameters.dev_event_list[blockIdx.x]; - - // Velo views - const auto velo_tracks = parameters.dev_velo_tracks_view[event_number]; - const auto velo_states = parameters.dev_velo_states_view[event_number]; - - const unsigned event_velo_seeds_offset = velo_tracks.offset(); - - // filtered velo tracks - const auto ut_number_of_selected_tracks = parameters.dev_ut_number_of_selected_velo_tracks[event_number]; - const auto ut_selected_velo_tracks = parameters.dev_ut_selected_velo_tracks + event_velo_seeds_offset; - - // TODO: Change into container taking into consideration actual sizes of M4 and M5 (use prefix sum) - const auto event_velomuon_tracks_offset = event_number * Muon::Constants::max_number_of_tracks; - const auto event_muon_tracks_offset = parameters.dev_muon_tracks_offsets[event_number]; - const auto event_number_of_tracks = parameters.dev_muon_number_of_tracks[event_number]; - - const auto event_muon_tracks = parameters.dev_muon_tracks + event_muon_tracks_offset; - - // Output - auto event_velomuon_tracks = parameters.dev_velomuon_tracks + event_velomuon_tracks_offset; - auto event_velomuon_velo_indices = parameters.dev_velomuon_tracks_velo_indices + event_velomuon_tracks_offset; - auto event_velomuon_muon_indices = parameters.dev_velomuon_tracks_muon_indices + event_velomuon_tracks_offset; - auto event_velomuon_qop = parameters.dev_velomuon_tracks_qop + event_velomuon_tracks_offset; - auto event_velomuon_number_of_tracks = parameters.dev_velomuon_number_of_tracks + event_number; - auto event_velomuon_muon_id = parameters.dev_velomuon_muon_id + event_velo_seeds_offset; - - __shared__ unsigned number_of_matched_velo[1]; - const auto number = Muon::Constants::max_number_of_tracks; - - __shared__ unsigned event_matched_muon_indices_with_clones[number]; - __shared__ unsigned event_muon_velo_indices_with_clones[number]; - __shared__ float event_match_chi2[number]; - __shared__ float event_qop_with_clones[number]; - - if (threadIdx.x == 0) number_of_matched_velo[0] = 0; - __syncthreads(); - for (unsigned i_muon_track = threadIdx.x; i_muon_track < event_number_of_tracks; i_muon_track += blockDim.x) { - auto muon_track = event_muon_tracks[i_muon_track]; - auto tx_muon = muon_track.get_tx(); - auto ty_muon = muon_track.get_ty(); - - auto xpos_muon = muon_track.state_x(); - auto ypos_muon = muon_track.state_y(); - auto zpos_muon = muon_track.state_z(); - - int matched_velo_idx = -1; - float min_chi2 = 99999.f; - - for (unsigned ivelo = 0; ivelo < ut_number_of_selected_tracks; ivelo++) { - const auto velo_track_index = ut_selected_velo_tracks[ivelo]; - const auto endvelo_state = velo_states.state(velo_track_index); - - auto matching_result = getChi2Match(endvelo_state, tx_muon, ty_muon, xpos_muon, ypos_muon, zpos_muon); - auto chi2 = matching_result.chi2; - if (chi2 < min_chi2 || matched_velo_idx == -1) { - matched_velo_idx = velo_track_index; - min_chi2 = chi2; - } - } - if (min_chi2 >= 99999.f) continue; - const auto insert_index = atomicAdd(number_of_matched_velo, 1); - event_matched_muon_indices_with_clones[insert_index] = i_muon_track; - event_muon_velo_indices_with_clones[insert_index] = matched_velo_idx; - const auto velo_state = velo_states.state(matched_velo_idx); - event_match_chi2[insert_index] = min_chi2; - float qop = qop_calculation( - muon_mom_param, - magnet_polarity[0], - zpos_muon, - xpos_muon, - ypos_muon, - velo_state.x(), - velo_state.y(), - velo_state.z(), - velo_state.tx(), - velo_state.ty(), - tx_muon, - ty_muon); - event_qop_with_clones[insert_index] = qop; - } - __syncthreads(); - - for (unsigned n_track_1 = threadIdx.x; n_track_1 < number_of_matched_velo[0]; n_track_1 += blockDim.x) { - int velo_index_1 = static_cast(event_muon_velo_indices_with_clones[n_track_1]); - int velo_index_2 = 0; - bool shared_seeds = false; - float minimum_weight = 99999.f; - unsigned track_2_id = 0; - for (unsigned n_track_2 = 0; n_track_2 < number_of_matched_velo[0]; n_track_2++) { - if (n_track_1 == n_track_2) continue; - velo_index_2 = static_cast(event_muon_velo_indices_with_clones[n_track_2]); - if (velo_index_1 == velo_index_2 && minimum_weight > event_match_chi2[n_track_2]) { - shared_seeds = true; - track_2_id = n_track_2; - minimum_weight = event_match_chi2[n_track_2]; - } - } - if (!(shared_seeds && (event_match_chi2[track_2_id] <= event_match_chi2[n_track_1]))) { - const auto insert_index = atomicAdd(event_velomuon_number_of_tracks, 1); - auto velomuon_track = MuonTrack(event_muon_tracks[event_matched_muon_indices_with_clones[n_track_1]]); - velomuon_track.set_p(fabsf(1 / event_qop_with_clones[n_track_1])); - velomuon_track.set_velo_index(velo_index_1); - event_velomuon_tracks[insert_index] = velomuon_track; - event_velomuon_velo_indices[insert_index] = velo_index_1; - event_velomuon_muon_indices[insert_index] = event_matched_muon_indices_with_clones[n_track_1]; - event_velomuon_qop[insert_index] = event_qop_with_clones[n_track_1]; - event_velomuon_muon_id[velo_index_1] = true; - } - } -} diff --git a/device/selections/lines/muon/include/OneVeloMuonTrackLine.cuh b/device/selections/lines/muon/include/OneVeloMuonTrackLine.cuh deleted file mode 100644 index 83913ce9ff7..00000000000 --- a/device/selections/lines/muon/include/OneVeloMuonTrackLine.cuh +++ /dev/null @@ -1,92 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * -\*****************************************************************************/ -#pragma once - -#include "AlgorithmTypes.cuh" -#include "Line.cuh" -#include "MuonDefinitions.cuh" - -namespace one_velomuon_track_line { - struct Parameters { - // Commonly required inputs, outputs and properties - HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; - DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; - MASK_INPUT(dev_event_list_t) dev_event_list; - HOST_OUTPUT(host_decisions_size_t, unsigned) host_decisions_size; - HOST_OUTPUT(host_post_scaler_t, float) host_post_scaler; - HOST_OUTPUT(host_post_scaler_hash_t, uint32_t) host_post_scaler_hash; - HOST_OUTPUT(host_fn_parameters_t, char) host_fn_parameters; - // Line-specific inputs and properties - DEVICE_INPUT(dev_velomuon_tracks_t, MuonTrack) dev_velomuon_tracks; - DEVICE_INPUT(dev_velomuon_tracks_qop_t, float) dev_velomuon_tracks_qop; - DEVICE_INPUT(dev_velomuon_tracks_offsets_t, unsigned) dev_velomuon_tracks_offsets; - DEVICE_INPUT(dev_velomuon_number_of_tracks_t, unsigned) dev_velomuon_number_of_tracks; - HOST_INPUT(host_velomuon_total_number_of_tracks_t, unsigned) host_velomuon_total_number_of_tracks; - - PROPERTY(pre_scaler_t, "pre_scaler", "Pre-scaling factor", float) pre_scaler; - PROPERTY(post_scaler_t, "post_scaler", "Post-scaling factor", float) post_scaler; - PROPERTY(pre_scaler_hash_string_t, "pre_scaler_hash_string", "Pre-scaling hash string", std::string); - PROPERTY(post_scaler_hash_string_t, "post_scaler_hash_string", "Post-scaling hash string", std::string); - - PROPERTY(min_p_t, "min_p", "Minimum momentum", float) min_p; - PROPERTY(min_pt_t, "min_pt", "Minimum transverse momentum", float) min_pt; - }; - - // SelectionAlgorithm definition - struct one_velomuon_track_line_t : public SelectionAlgorithm, - Parameters, - Line { - - void set_arguments_size( - ArgumentReferences arguments, - const RuntimeOptions& runtime_options, - const Constants& constants, - const HostBuffers& host_buffers) const; - - // Offset function - __device__ static unsigned offset(const Parameters& parameters, const unsigned event_number) - { - return parameters.dev_velomuon_tracks_offsets[event_number]; - } - - // Get decision size function - static unsigned get_decisions_size(const ArgumentReferences& arguments) - { - return first(arguments); - } - - // Get input function - __device__ static std::tuple - get_input(const Parameters& parameters, const unsigned event_number, const unsigned i) - { - // Get the number of events - // const unsigned number_of_events = parameters.dev_number_of_events[0]; - const auto velomuon_tracks_offsets = parameters.dev_velomuon_tracks_offsets; - const auto velomuon_track = parameters.dev_velomuon_tracks; - - // Get the ith velo track - const unsigned track_index = i + velomuon_tracks_offsets[event_number]; - - return std::forward_as_tuple(velomuon_track[track_index]); - } - - __device__ static unsigned input_size(const Parameters& parameters, const unsigned event_number) - { - return parameters.dev_velomuon_number_of_tracks[event_number]; - } - - // Selection function - __device__ static bool select(const Parameters& parameters, std::tuple input); - - private: - // Commonly required properties - Property m_pre_scaler {this, 1.f}; - Property m_post_scaler {this, 1.f}; - Property m_pre_scaler_hash_string {this, ""}; - Property m_post_scaler_hash_string {this, ""}; - // Line-specific properties - Property m_min_p {this, 5000.f}; - Property m_min_pt {this, 500.f}; - }; -} // namespace one_velomuon_track_line diff --git a/device/selections/lines/muon/src/OneVeloMuonTrackLine.cu b/device/selections/lines/muon/src/OneVeloMuonTrackLine.cu deleted file mode 100644 index ff1ffb184b2..00000000000 --- a/device/selections/lines/muon/src/OneVeloMuonTrackLine.cu +++ /dev/null @@ -1,28 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * -\*****************************************************************************/ -#include "OneVeloMuonTrackLine.cuh" - -// Explicit instantiation of the line -INSTANTIATE_LINE(one_velomuon_track_line::one_velomuon_track_line_t, one_velomuon_track_line::Parameters) - -void one_velomuon_track_line::one_velomuon_track_line_t::set_arguments_size( - ArgumentReferences arguments, - const RuntimeOptions& runtime_options, - const Constants& constants, - const HostBuffers& host_buffers) const -{ - static_cast(this)->set_arguments_size(arguments, runtime_options, constants, host_buffers); -} -// Selection function -__device__ bool one_velomuon_track_line::one_velomuon_track_line_t::select( - const Parameters& parameters, - std::tuple input) -{ - const auto& velomuon_track = std::get<0>(input); - const auto p = velomuon_track.get_p(); - const auto pt = velomuon_track.get_pt(); - const bool decision = (p > parameters.min_p && pt > parameters.min_pt); - - return decision; -} diff --git a/device/validators/include/LongTrackValidator.cuh b/device/validators/include/LongTrackValidator.cuh index 685e41982cb..d2ea081d800 100644 --- a/device/validators/include/LongTrackValidator.cuh +++ b/device/validators/include/LongTrackValidator.cuh @@ -16,22 +16,13 @@ namespace long_track_validator { struct Parameters { HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; HOST_INPUT(host_number_of_reconstructed_long_tracks_t, unsigned) host_number_of_reconstructed_long_tracks; - HOST_INPUT(host_number_of_reconstructed_velomuon_tracks_t, unsigned) host_number_of_reconstructed_velomuon_tracks; HOST_INPUT(host_mc_events_t, const MCEvents*) host_mc_events; DEVICE_INPUT(dev_velo_states_view_t, Allen::Views::Physics::KalmanStates) dev_velo_states_view; - DEVICE_INPUT(dev_velo_tracks_view_t, Allen::Views::Velo::Consolidated::Tracks) dev_velo_tracks_view; MASK_INPUT(dev_event_list_t) dev_event_list; DEVICE_INPUT(dev_multi_event_long_tracks_view_t, Allen::Views::Physics::MultiEventLongTracks) dev_multi_event_long_tracks_view; DEVICE_INPUT(dev_offsets_long_tracks_t, unsigned) dev_offsets_long_tracks; - DEVICE_OUTPUT(dev_long_checker_tracks_t, Checker::Track) dev_long_checker_tracks; - DEVICE_OUTPUT(dev_velomuon_checker_tracks_t, Checker::Track) dev_velomuon_checker_tracks; - - DEVICE_INPUT(dev_velomuon_tracks_velo_indices_t, unsigned) dev_velomuon_tracks_velo_indices; - DEVICE_INPUT(dev_velomuon_tracks_qop_t, float) dev_velomuon_tracks_qop; - DEVICE_INPUT(dev_offsets_velomuon_tracks_t, unsigned) dev_offsets_velomuon_tracks; - PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; PROPERTY(root_output_filename_t, "root_output_filename", "root output filename", std::string); }; diff --git a/device/validators/include/MuonValidator.cuh b/device/validators/include/MuonValidator.cuh index bd49e7ef9ad..7487ea80eee 100644 --- a/device/validators/include/MuonValidator.cuh +++ b/device/validators/include/MuonValidator.cuh @@ -16,19 +16,14 @@ namespace muon_validator { struct Parameters { HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; HOST_INPUT(host_number_of_reconstructed_long_tracks_t, unsigned) host_number_of_reconstructed_long_tracks; - HOST_INPUT(host_number_of_reconstructed_velo_tracks_t, unsigned) host_number_of_reconstructed_velo_tracks; HOST_INPUT(host_mc_events_t, const MCEvents*) host_mc_events; DEVICE_INPUT(dev_velo_states_view_t, Allen::Views::Physics::KalmanStates) dev_velo_states_view; MASK_INPUT(dev_event_list_t) dev_event_list; DEVICE_INPUT(dev_multi_event_long_tracks_view_t, Allen::Views::Physics::MultiEventLongTracks) dev_multi_event_long_tracks_view; - DEVICE_INPUT(dev_velo_tracks_view_t, Allen::Views::Velo::Consolidated::Tracks) dev_velo_tracks_view; - DEVICE_INPUT(dev_offsets_velo_tracks_t, unsigned) dev_offsets_velo_tracks; DEVICE_INPUT(dev_offsets_long_tracks_t, unsigned) dev_offsets_long_tracks; DEVICE_INPUT(dev_is_muon_t, bool) dev_is_muon; - DEVICE_INPUT(dev_match_velo_muon_t, bool) dev_match_velo_muon; DEVICE_OUTPUT(dev_muon_checker_tracks_t, Checker::Track) dev_muon_checker_tracks; - DEVICE_OUTPUT(dev_muon_checker_velotracks_t, Checker::Track) dev_muon_checker_velotracks; PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; PROPERTY(root_output_filename_t, "root_output_filename", "root output filename", std::string); }; diff --git a/device/validators/src/LongTrackValidator.cu b/device/validators/src/LongTrackValidator.cu index a3fc7177e0e..369b93260c0 100644 --- a/device/validators/src/LongTrackValidator.cu +++ b/device/validators/src/LongTrackValidator.cu @@ -10,25 +10,11 @@ __global__ void long_track_validator::long_track_validator(long_track_validator: { const unsigned event_number = blockIdx.x; const auto event_long_tracks = parameters.dev_multi_event_long_tracks_view->container(event_number); - const auto event_velo_tracks = parameters.dev_velo_tracks_view[event_number]; const auto endvelo_states = parameters.dev_velo_states_view[event_number]; const unsigned offset_long_tracks = event_long_tracks.offset(); - const unsigned offset_velomuon_tracks = parameters.dev_offsets_velomuon_tracks[event_number]; - const unsigned number_of_velomuon_tracks = - parameters.dev_offsets_velomuon_tracks[event_number + 1] - parameters.dev_offsets_velomuon_tracks[event_number]; - - const float* event_velomuon_qop = parameters.dev_velomuon_tracks_qop + offset_velomuon_tracks; - const unsigned* event_velomuon_velo_indices = parameters.dev_velomuon_tracks_velo_indices + offset_velomuon_tracks; Checker::Track* long_checker_tracks_event = parameters.dev_long_checker_tracks + offset_long_tracks; - Checker::Track* velomuon_checker_tracks_event = parameters.dev_velomuon_checker_tracks + offset_velomuon_tracks; + prepare_long_tracks(event_long_tracks, endvelo_states, long_checker_tracks_event); - prepare_velomuon_tracks( - number_of_velomuon_tracks, - event_velo_tracks, - endvelo_states, - event_velomuon_qop, - event_velomuon_velo_indices, - velomuon_checker_tracks_event); } void long_track_validator::long_track_validator_t::set_arguments_size( @@ -38,7 +24,6 @@ void long_track_validator::long_track_validator_t::set_arguments_size( const HostBuffers&) const { set_size(arguments, first(arguments)); - set_size(arguments, first(arguments)); } void long_track_validator::long_track_validator_t::operator()( @@ -53,34 +38,18 @@ void long_track_validator::long_track_validator_t::operator()( const auto event_list = make_host_buffer(arguments, context); const auto long_tracks_for_checker = make_host_buffer(arguments, context); const auto event_tracks_offsets = make_host_buffer(arguments, context); - - const auto velomuon_tracks_for_checker = make_host_buffer(arguments, context); - const auto event_velomuon_offsets = make_host_buffer(arguments, context); std::vector tracks; - std::vector velomuon_tracks; - tracks.resize(event_list.size()); - velomuon_tracks.resize(event_list.size()); for (size_t i = 0; i < event_list.size(); ++i) { const auto evnum = event_list[i]; const auto event_offset = event_tracks_offsets[evnum]; - const auto event_velomuon_offset = event_velomuon_offsets[evnum]; const auto n_tracks = event_tracks_offsets[evnum + 1] - event_offset; - const auto n_velomuon_tracks = event_velomuon_offsets[evnum + 1] - event_velomuon_offset; - std::vector event_tracks = {long_tracks_for_checker.begin() + event_offset, + std::vector event_trakcs = {long_tracks_for_checker.begin() + event_offset, long_tracks_for_checker.begin() + event_offset + n_tracks}; - - std::vector event_velomuon_tracks = {velomuon_tracks_for_checker.begin() + event_velomuon_offset, - velomuon_tracks_for_checker.begin() + event_velomuon_offset + - n_velomuon_tracks}; - tracks[i] = event_tracks; - velomuon_tracks[i] = event_velomuon_tracks; + tracks[i] = event_trakcs; } auto& checker = runtime_options.checker_invoker->checker(name(), property()); checker.accumulate(*first(arguments), tracks, event_list); - auto& velomuon_checker = - runtime_options.checker_invoker->checker("velomuon tracks", property()); - velomuon_checker.accumulate(*first(arguments), velomuon_tracks, event_list); } \ No newline at end of file diff --git a/device/validators/src/MuonValidator.cu b/device/validators/src/MuonValidator.cu index c886a867a97..769842037d0 100644 --- a/device/validators/src/MuonValidator.cu +++ b/device/validators/src/MuonValidator.cu @@ -10,19 +10,14 @@ __global__ void muon_validator::muon_validator(muon_validator::Parameters parame { const unsigned event_number = blockIdx.x; const auto event_long_tracks = parameters.dev_multi_event_long_tracks_view->container(event_number); - const auto event_velo_tracks = parameters.dev_velo_tracks_view[event_number]; const auto endvelo_states = parameters.dev_velo_states_view[event_number]; const unsigned offset_long_tracks = event_long_tracks.offset(); const bool* is_muon = parameters.dev_is_muon + offset_long_tracks; - const bool* match_velo_muon = parameters.dev_match_velo_muon + event_velo_tracks.offset(); Checker::Track* muon_checker_tracks_event = parameters.dev_muon_checker_tracks + offset_long_tracks; - Checker::Track* muon_checker_velotracks_event = parameters.dev_muon_checker_velotracks + event_velo_tracks.offset(); prepare_long_tracks(event_long_tracks, endvelo_states, muon_checker_tracks_event); - prepare_velo_tracks(event_velo_tracks, muon_checker_velotracks_event); prepare_muons(event_long_tracks.size(), muon_checker_tracks_event, is_muon); - prepare_muons(event_velo_tracks.size(), muon_checker_velotracks_event, match_velo_muon); } void muon_validator::muon_validator_t::set_arguments_size( @@ -32,7 +27,6 @@ void muon_validator::muon_validator_t::set_arguments_size( const HostBuffers&) const { set_size(arguments, first(arguments)); - set_size(arguments, first(arguments)); } void muon_validator::muon_validator_t::operator()( @@ -47,33 +41,18 @@ void muon_validator::muon_validator_t::operator()( const auto event_list = make_host_buffer(arguments, context); const auto muon_tracks_for_checker = make_host_buffer(arguments, context); const auto event_tracks_offsets = make_host_buffer(arguments, context); - - const auto muon_velotracks_for_checker = make_host_buffer(arguments, context); - const auto event_velotracks_offsets = make_host_buffer(arguments, context); std::vector tracks; - std::vector velotracks; tracks.resize(event_list.size()); - velotracks.resize(event_list.size()); for (size_t i = 0; i < event_list.size(); ++i) { const auto evnum = event_list[i]; const auto event_offset = event_tracks_offsets[evnum]; - const auto event_velooffset = event_velotracks_offsets[evnum]; const auto n_tracks = event_tracks_offsets[evnum + 1] - event_offset; - const auto n_velotracks = event_velotracks_offsets[evnum + 1] - event_velooffset; - std::vector event_tracks = {muon_tracks_for_checker.begin() + event_offset, + std::vector event_trakcs = {muon_tracks_for_checker.begin() + event_offset, muon_tracks_for_checker.begin() + event_offset + n_tracks}; - - std::vector event_velotracks = {muon_velotracks_for_checker.begin() + event_velooffset, - muon_velotracks_for_checker.begin() + event_velooffset + - n_velotracks}; - tracks[i] = event_tracks; - velotracks[i] = event_velotracks; + tracks[i] = event_trakcs; } auto& checker = runtime_options.checker_invoker->checker(name(), property()); checker.accumulate(*first(arguments), tracks, event_list); - auto& checker_velo = - runtime_options.checker_invoker->checker("velo muon checker", property()); - checker_velo.accumulate(*first(arguments), velotracks, event_list); } \ No newline at end of file diff --git a/stream/sequence/include/Constants.cuh b/stream/sequence/include/Constants.cuh index 7de5fa927d0..2d4cd1de08f 100644 --- a/stream/sequence/include/Constants.cuh +++ b/stream/sequence/include/Constants.cuh @@ -21,7 +21,6 @@ namespace Muon { namespace Constants { struct FieldOfInterest; struct MatchVeloWindows; - struct MomParam; } // namespace Constants } // namespace Muon namespace LookingForward { @@ -103,7 +102,6 @@ struct Constants { Muon::MuonGeometry* dev_muon_geometry = nullptr; Muon::MuonTables* dev_muon_tables = nullptr; Muon::Constants::MatchVeloWindows* dev_match_velo_windows = nullptr; - Muon::Constants::MomParam* dev_muon_mom_param = nullptr; // Velo-UT-muon MatchUpstreamMuon::MuonChambers* dev_muonmatch_search_muon_chambers = nullptr; diff --git a/stream/sequence/src/Constants.cpp b/stream/sequence/src/Constants.cpp index 9e78154cb00..370a1411323 100644 --- a/stream/sequence/src/Constants.cpp +++ b/stream/sequence/src/Constants.cpp @@ -23,7 +23,6 @@ void Constants::reserve_constants() Allen::malloc((void**) &dev_muonmatch_search_muon_chambers, sizeof(MatchUpstreamMuon::MuonChambers)); Allen::malloc((void**) &dev_muonmatch_search_windows, sizeof(MatchUpstreamMuon::SearchWindows)); Allen::malloc((void**) &dev_match_velo_windows, sizeof(Muon::Constants::MatchVeloWindows)); - Allen::malloc((void**) &dev_muon_mom_param, sizeof(Muon::Constants::MomParam)); host_ut_region_offsets.resize(UT::Constants::n_layers * UT::Constants::n_regions_in_layer + 1); host_ut_dxDy.resize(UT::Constants::n_layers); @@ -80,9 +79,6 @@ void Constants::initialize_constants( sizeof(Muon::Constants::MatchVeloWindows), Allen::memcpyHostToDevice); - Muon::Constants::MomParam host_muon_mom_param; - Allen::memcpy(dev_muon_mom_param, &host_muon_mom_param, sizeof(Muon::Constants::MomParam), Allen::memcpyHostToDevice); - // Velo-UT-muon MatchUpstreamMuon::MuonChambers host_muonmatch_search_muon_chambers; MatchUpstreamMuon::SearchWindows host_muonmatch_search_windows; -- GitLab From e50babe0d1cdb89a92951a18a52ea46135a031a8 Mon Sep 17 00:00:00 2001 From: Saverio Mariani Date: Fri, 30 Sep 2022 10:02:30 +0200 Subject: [PATCH 10/17] Remove leftover calls to match_velo_muon Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Allen/-/jobs/24877715 --- configuration/python/AllenConf/HLT1.py | 2 +- configuration/python/AllenConf/hlt1_muon_lines.py | 1 + configuration/python/AllenConf/hlt1_reconstruction.py | 10 ++-------- configuration/python/AllenConf/muon_reconstruction.py | 3 ++- device/event_model/muon/include/MuonDefinitions.cuh | 8 ++++---- 5 files changed, 10 insertions(+), 14 deletions(-) diff --git a/configuration/python/AllenConf/HLT1.py b/configuration/python/AllenConf/HLT1.py index cbec6c75af4..edec6b3784c 100644 --- a/configuration/python/AllenConf/HLT1.py +++ b/configuration/python/AllenConf/HLT1.py @@ -19,6 +19,7 @@ from AllenConf.validators import rate_validation, routingbits_validation from PyConf.control_flow import NodeLogic, CompositeNode from PyConf.tonic import configurable from AllenConf.lumi_reconstruction import lumi_reconstruction +from AllenCore.generator import is_allen_standalone def default_physics_lines(reconstructed_objects, with_calo, with_muon): @@ -28,7 +29,6 @@ def default_physics_lines(reconstructed_objects, with_calo, with_muon): long_track_particles = reconstructed_objects["long_track_particles"] secondary_vertices = reconstructed_objects["secondary_vertices"] muon_stubs = reconstructed_objects["muon_stubs"] - velo_muon = reconstructed_objects["velo_muon"] lines = [ make_two_track_mva_charm_xsec_line( diff --git a/configuration/python/AllenConf/hlt1_muon_lines.py b/configuration/python/AllenConf/hlt1_muon_lines.py index d2b8fc4f396..e100c344598 100644 --- a/configuration/python/AllenConf/hlt1_muon_lines.py +++ b/configuration/python/AllenConf/hlt1_muon_lines.py @@ -9,6 +9,7 @@ from AllenAlgorithms.algorithms import ( from AllenConf.utils import initialize_number_of_events, mep_layout from AllenCore.generator import make_algorithm + def make_one_muon_track_line(number_of_muon_tracks, muon_tracks, dev_output_buffer, diff --git a/configuration/python/AllenConf/hlt1_reconstruction.py b/configuration/python/AllenConf/hlt1_reconstruction.py index ecb24375b5d..1303728bd7f 100755 --- a/configuration/python/AllenConf/hlt1_reconstruction.py +++ b/configuration/python/AllenConf/hlt1_reconstruction.py @@ -28,14 +28,12 @@ def hlt1_reconstruction(matching=False, velo_states = run_velo_kalman_filter(velo_tracks) pvs = make_pvs(velo_tracks) muon_stubs = make_muon_stubs() - velo_muon = make_velo_muon() output = { "velo_tracks": velo_tracks, "velo_states": velo_states, "pvs": pvs, "muon_stubs": muon_stubs, - "velo_muon": velo_muon } if matching: @@ -90,11 +88,9 @@ def hlt1_reconstruction(matching=False, secondary_vertices = fit_secondary_vertices( long_tracks, pvs, kalman_velo_only, long_track_particles) - velo_muon = make_velo_muon() output.update({ "long_track_particles": long_track_particles, "secondary_vertices": secondary_vertices, - "velo_muon": velo_muon }) return output @@ -142,8 +138,7 @@ def validator_node(reconstructed_objects, line_algorithms, matching, with_ut, validators += [ make_composite_node_with_gec( "long_validation", - long_validation(reconstructed_objects["long_tracks"], - reconstructed_objects["velo_muon"]), + long_validation(reconstructed_objects["long_tracks"]), with_scifi=True, with_ut=with_ut) ] @@ -151,8 +146,7 @@ def validator_node(reconstructed_objects, line_algorithms, matching, with_ut, if with_muon: validators += make_composite_node_with_gec( "muon_validation", - muon_validation(reconstructed_objects["muonID"], - reconstructed_objects['velo_muon']), + muon_validation(reconstructed_objects["muonID"]), with_scifi=True, with_ut=with_ut), diff --git a/configuration/python/AllenConf/muon_reconstruction.py b/configuration/python/AllenConf/muon_reconstruction.py index 5f0a778b762..890d8146fe0 100644 --- a/configuration/python/AllenConf/muon_reconstruction.py +++ b/configuration/python/AllenConf/muon_reconstruction.py @@ -4,7 +4,8 @@ from AllenAlgorithms.algorithms import ( data_provider_t, muon_calculate_srq_size_t, host_prefix_sum_t, muon_populate_tile_and_tdc_t, muon_add_coords_crossing_maps_t, - muon_populate_hits_t, is_muon_t, empty_lepton_id_t, find_muon_hits_t, consolidate_muon_t) + muon_populate_hits_t, is_muon_t, empty_lepton_id_t, find_muon_hits_t, + consolidate_muon_t) from AllenConf.utils import initialize_number_of_events from AllenCore.generator import make_algorithm diff --git a/device/event_model/muon/include/MuonDefinitions.cuh b/device/event_model/muon/include/MuonDefinitions.cuh index 9b387ecbdf2..c033828d864 100644 --- a/device/event_model/muon/include/MuonDefinitions.cuh +++ b/device/event_model/muon/include/MuonDefinitions.cuh @@ -140,12 +140,12 @@ namespace Muon { 480., // M5 }; - + float z[4] {15205.f, 16400.f, 17700.f, 18850.f}; }; - static constexpr unsigned max_number_of_tracks = 120; - } -} + static constexpr unsigned max_number_of_tracks = 120; + } // namespace Constants +} // namespace Muon struct MuonTrack { int m_hits[4] {-1, -1, -1, -1}; -- GitLab From 1c9545d77990bfa0636d792aeab9f0ab10d6186f Mon Sep 17 00:00:00 2001 From: Adrian Casais Vidal Date: Fri, 30 Sep 2022 15:36:52 +0200 Subject: [PATCH 11/17] Default monitoring configuration to false Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Allen/-/jobs/24885380 Update gitlab-ci references more references more references --- .../python/AllenConf/muon_reconstruction.py | 4 ++-- .../python/AllenSequences/standalone_muon.py | 2 +- .../muon/match_velo_muon/include/FindMuonHits.cuh | 2 ++ device/muon/match_velo_muon/src/FindMuonHits.cu | 9 +++++---- ...v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt | 8 ++++---- ...newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt | 8 ++++---- ...D_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt | 8 ++++---- ...bID_hlt1_pp_SMOG2_validation_geforcertx3090.txt | 8 ++++---- ...newLHCbID_hlt1_pp_matching_validation_a5000.txt | 8 ++++---- ...LHCbID_hlt1_pp_matching_validation_epyc7502.txt | 8 ++++---- ...lt1_pp_matching_validation_geforcertx2080ti.txt | 8 ++++---- ..._hlt1_pp_matching_validation_geforcertx3090.txt | 8 ++++---- ...uster_v1_newLHCbID_hlt1_pp_validation_a5000.txt | 8 ++++---- ...er_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt | 8 ++++---- ...wLHCbID_hlt1_pp_validation_geforcertx2080ti.txt | 8 ++++---- ...newLHCbID_hlt1_pp_validation_geforcertx3090.txt | 8 ++++---- ...k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt | 14 +++++++------- ...ewLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt | 14 +++++++------- ..._hlt1_pp_veloSP_validation_geforcertx2080ti.txt | 14 +++++++------- ...ID_hlt1_pp_veloSP_validation_geforcertx3090.txt | 14 +++++++------- ...newLHCbID_hlt1_pp_matching_validation_a5000.txt | 14 +++++++------- ...LHCbID_hlt1_pp_matching_validation_epyc7502.txt | 14 +++++++------- ...lt1_pp_matching_validation_geforcertx2080ti.txt | 14 +++++++------- ..._hlt1_pp_matching_validation_geforcertx3090.txt | 14 +++++++------- ...v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt | 8 ++++---- ...newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt | 8 ++++---- ...D_hlt1_pp_no_ut_validation_geforcertx2080ti.txt | 8 ++++---- ...bID_hlt1_pp_no_ut_validation_geforcertx3090.txt | 8 ++++---- ...uster_v1_newLHCbID_hlt1_pp_validation_a5000.txt | 10 +++++----- ...er_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt | 8 ++++---- ...wLHCbID_hlt1_pp_validation_geforcertx2080ti.txt | 10 +++++----- ...newLHCbID_hlt1_pp_validation_geforcertx3090.txt | 10 +++++----- ...uster_v1_newLHCbID_hlt1_pp_validation_a5000.txt | 8 ++++---- ...er_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt | 8 ++++---- ...wLHCbID_hlt1_pp_validation_geforcertx2080ti.txt | 8 ++++---- ...newLHCbID_hlt1_pp_validation_geforcertx3090.txt | 8 ++++---- ...v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt | 8 ++++---- ...newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt | 8 ++++---- ...D_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt | 8 ++++---- ...bID_hlt1_pp_SMOG2_validation_geforcertx3090.txt | 8 ++++---- 40 files changed, 181 insertions(+), 178 deletions(-) diff --git a/configuration/python/AllenConf/muon_reconstruction.py b/configuration/python/AllenConf/muon_reconstruction.py index 890d8146fe0..ee10d2c13ec 100644 --- a/configuration/python/AllenConf/muon_reconstruction.py +++ b/configuration/python/AllenConf/muon_reconstruction.py @@ -168,7 +168,7 @@ def muon_id(): return alg -def make_muon_stubs(): +def make_muon_stubs(monitoring=False): number_of_events = initialize_number_of_events() decoded_muon = decode_muon() @@ -180,7 +180,7 @@ def make_muon_stubs(): dev_station_ocurrences_offset_t=decoded_muon[ "dev_station_ocurrences_offset"], dev_muon_hits_t=decoded_muon["dev_muon_hits"], - ) + enable_monitoring=monitoring) prefix_sum_muon_tracks = make_algorithm( host_prefix_sum_t, name="prefix_sum_muon_tracks_find_hits", diff --git a/configuration/python/AllenSequences/standalone_muon.py b/configuration/python/AllenSequences/standalone_muon.py index 7e24ef5e68c..0d8345eb1e5 100644 --- a/configuration/python/AllenSequences/standalone_muon.py +++ b/configuration/python/AllenSequences/standalone_muon.py @@ -10,7 +10,7 @@ from PyConf.control_flow import NodeLogic, CompositeNode from AllenConf.hlt1_reconstruction import validator_node from AllenConf.validators import rate_validation -muon_stubs = make_muon_stubs() +muon_stubs = make_muon_stubs(monitoring=True) lines = [ line_maker( make_one_muon_track_line( diff --git a/device/muon/match_velo_muon/include/FindMuonHits.cuh b/device/muon/match_velo_muon/include/FindMuonHits.cuh index 376c204eb68..63b2f953eb1 100644 --- a/device/muon/match_velo_muon/include/FindMuonHits.cuh +++ b/device/muon/match_velo_muon/include/FindMuonHits.cuh @@ -24,6 +24,7 @@ namespace find_muon_hits { DEVICE_OUTPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; HOST_OUTPUT(host_muon_number_of_tracks_t, unsigned) host_muon_number_of_tracks; PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; + PROPERTY(enable_monitoring_t, "enable_monitoring", "Enable monitoring boolean", bool) enable_monitoring; }; __global__ void find_muon_hits(Parameters, const Muon::Constants::MatchVeloWindows* dev_match_velo_windows); @@ -49,6 +50,7 @@ namespace find_muon_hits { private: Property m_block_dim {this, {{64, 1, 1}}}; + Property m_enable_monitoring {this, false}; }; } // namespace find_muon_hits diff --git a/device/muon/match_velo_muon/src/FindMuonHits.cu b/device/muon/match_velo_muon/src/FindMuonHits.cu index cbbe7d2b5a9..547c2b18e81 100644 --- a/device/muon/match_velo_muon/src/FindMuonHits.cu +++ b/device/muon/match_velo_muon/src/FindMuonHits.cu @@ -118,10 +118,11 @@ void find_muon_hits::find_muon_hits_t::operator()( global_function(find_muon_hits)(dim3(size(arguments)), property(), context)( arguments, constants.dev_match_velo_windows); - - Allen::synchronize(context); - output_monitor(arguments, runtime_options, context); - Allen::synchronize(context); + if (property()) { + Allen::synchronize(context); + output_monitor(arguments, runtime_options, context); + Allen::synchronize(context); + } } __device__ bool applyWeightedFit(MuonTrack& muon_track, Muon::ConstHits& muon_hits, bool xz) { diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt index 5e879162d98..c35cd349854 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 81/ 1000, ( 2430.00 +/- 258.83) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -143,7 +143,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 81 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -203,9 +203,9 @@ Hlt1_SMOG2_2BodyGeneric: 21 33 Hlt1_SMOG2_SingleTrack: 158 202 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 3901 +Total decisions: 3982 Total tracks: 284 Total SVs: 64 Total hits: 8398 -Total stdinfo: 6429 +Total stdinfo: 6510 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt index 6a655e50576..50e13edde76 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 87/ 1000, ( 2610.00 +/- 267.37) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -143,7 +143,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 87 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -203,9 +203,9 @@ Hlt1_SMOG2_2BodyGeneric: 23 37 Hlt1_SMOG2_SingleTrack: 160 204 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 3906 +Total decisions: 3993 Total tracks: 295 Total SVs: 71 Total hits: 8640 -Total stdinfo: 6550 +Total stdinfo: 6637 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt index 5e879162d98..be32d2b6444 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 87/ 1000, ( 2610.00 +/- 267.37) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -143,7 +143,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 87 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -203,9 +203,9 @@ Hlt1_SMOG2_2BodyGeneric: 21 33 Hlt1_SMOG2_SingleTrack: 158 202 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 3901 +Total decisions: 3988 Total tracks: 284 Total SVs: 64 Total hits: 8398 -Total stdinfo: 6429 +Total stdinfo: 6516 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt index 5e879162d98..c35cd349854 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 81/ 1000, ( 2430.00 +/- 258.83) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -143,7 +143,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 81 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -203,9 +203,9 @@ Hlt1_SMOG2_2BodyGeneric: 21 33 Hlt1_SMOG2_SingleTrack: 158 202 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 3901 +Total decisions: 3982 Total tracks: 284 Total SVs: 64 Total hits: 8398 -Total stdinfo: 6429 +Total stdinfo: 6510 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt index e012a0a47e7..6d1edf39687 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt @@ -93,7 +93,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 81/ 1000, ( 2430.00 +/- 258.83) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -155,7 +155,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 81 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -205,9 +205,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2019 +Total decisions: 2100 Total tracks: 37 Total SVs: 25 Total hits: 663 -Total stdinfo: 2415 +Total stdinfo: 2496 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt index 45854a910f8..094a1abbc9b 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt @@ -93,7 +93,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 87/ 1000, ( 2610.00 +/- 267.37) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -155,7 +155,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 87 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -205,9 +205,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2019 +Total decisions: 2106 Total tracks: 38 Total SVs: 27 Total hits: 678 -Total stdinfo: 2431 +Total stdinfo: 2518 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt index e012a0a47e7..0db4ce31711 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt @@ -93,7 +93,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 87/ 1000, ( 2610.00 +/- 267.37) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -155,7 +155,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 87 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -205,9 +205,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2019 +Total decisions: 2106 Total tracks: 37 Total SVs: 25 Total hits: 663 -Total stdinfo: 2415 +Total stdinfo: 2502 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt index e012a0a47e7..6d1edf39687 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt @@ -93,7 +93,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 81/ 1000, ( 2430.00 +/- 258.83) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -155,7 +155,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 81 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -205,9 +205,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2019 +Total decisions: 2100 Total tracks: 37 Total SVs: 25 Total hits: 663 -Total stdinfo: 2415 +Total stdinfo: 2496 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt index 13c4e8b172e..98e190b87e8 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 81/ 1000, ( 2430.00 +/- 258.83) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -133,7 +133,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 81 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -183,9 +183,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2021 +Total decisions: 2102 Total tracks: 41 Total SVs: 30 Total hits: 884 -Total stdinfo: 2469 +Total stdinfo: 2550 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt index 45fd92757da..f487930eb71 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 87/ 1000, ( 2610.00 +/- 267.37) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -133,7 +133,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 87 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -183,9 +183,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2021 +Total decisions: 2108 Total tracks: 43 Total SVs: 32 Total hits: 925 -Total stdinfo: 2493 +Total stdinfo: 2580 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt index 13c4e8b172e..ba046cdea7e 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 87/ 1000, ( 2610.00 +/- 267.37) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -133,7 +133,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 87 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -183,9 +183,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2021 +Total decisions: 2108 Total tracks: 41 Total SVs: 30 Total hits: 884 -Total stdinfo: 2469 +Total stdinfo: 2556 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt index 13c4e8b172e..98e190b87e8 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 81/ 1000, ( 2430.00 +/- 258.83) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -133,7 +133,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 81 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -183,9 +183,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2021 +Total decisions: 2102 Total tracks: 41 Total SVs: 30 Total hits: 884 -Total stdinfo: 2469 +Total stdinfo: 2550 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt index 0464c08db21..ba8a0cbf5bc 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 29/ 1000, ( 870.00 +/- 159.20) kHz -Hlt1TwoKs: 2/ 1000, ( 60.00 +/- 42.38) kHz +Hlt1OneMuonTrackLine: 610/ 1000, (18300.00 +/- 462.72) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 163/ 1000, ( 4890.00 +/- 350.41) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 43 Hlt1D2PiPi: 29 33 -Hlt1TwoKs: 2 2 +Hlt1OneMuonTrackLine: 610 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 2 2 Hlt1LowPtMuon: 163 189 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 43 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4194 -Total tracks: 3520 -Total SVs: 2975 -Total hits: 85980 -Total stdinfo: 44254 +Total decisions: 4802 +Total tracks: 3519 +Total SVs: 2972 +Total hits: 85957 +Total stdinfo: 44842 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt index 005cf902cc9..c496b1ee62f 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 40/ 1000, ( 1200.00 +/- 185.90) kHz Hlt1D2PiPi: 31/ 1000, ( 930.00 +/- 164.42) kHz -Hlt1TwoKs: 2/ 1000, ( 60.00 +/- 42.38) kHz +Hlt1OneMuonTrackLine: 605/ 1000, (18150.00 +/- 463.76) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 4/ 1000, ( 120.00 +/- 59.88) kHz Hlt1LowPtMuon: 154/ 1000, ( 4620.00 +/- 342.43) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 22 25 Hlt1D2KPi: 40 43 Hlt1D2PiPi: 31 34 -Hlt1TwoKs: 2 2 +Hlt1OneMuonTrackLine: 605 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 4 4 Hlt1LowPtMuon: 154 178 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 40 43 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4124 -Total tracks: 3330 -Total SVs: 2796 -Total hits: 81261 -Total stdinfo: 41948 +Total decisions: 4727 +Total tracks: 3329 +Total SVs: 2793 +Total hits: 81238 +Total stdinfo: 42531 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt index 0464c08db21..ba8a0cbf5bc 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 29/ 1000, ( 870.00 +/- 159.20) kHz -Hlt1TwoKs: 2/ 1000, ( 60.00 +/- 42.38) kHz +Hlt1OneMuonTrackLine: 610/ 1000, (18300.00 +/- 462.72) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 163/ 1000, ( 4890.00 +/- 350.41) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 43 Hlt1D2PiPi: 29 33 -Hlt1TwoKs: 2 2 +Hlt1OneMuonTrackLine: 610 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 2 2 Hlt1LowPtMuon: 163 189 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 43 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4194 -Total tracks: 3520 -Total SVs: 2975 -Total hits: 85980 -Total stdinfo: 44254 +Total decisions: 4802 +Total tracks: 3519 +Total SVs: 2972 +Total hits: 85957 +Total stdinfo: 44842 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx3090.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx3090.txt index 0464c08db21..7a4bc782865 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx3090.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx3090.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 29/ 1000, ( 870.00 +/- 159.20) kHz -Hlt1TwoKs: 2/ 1000, ( 60.00 +/- 42.38) kHz +Hlt1OneMuonTrackLine: 611/ 1000, (18330.00 +/- 462.51) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 163/ 1000, ( 4890.00 +/- 350.41) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 43 Hlt1D2PiPi: 29 33 -Hlt1TwoKs: 2 2 +Hlt1OneMuonTrackLine: 611 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 2 2 Hlt1LowPtMuon: 163 189 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 43 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4194 -Total tracks: 3520 -Total SVs: 2975 -Total hits: 85980 -Total stdinfo: 44254 +Total decisions: 4803 +Total tracks: 3519 +Total SVs: 2972 +Total hits: 85957 +Total stdinfo: 44843 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt index 3f1320a65ca..a055eff0eb2 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt @@ -109,7 +109,7 @@ Hlt1TwoTrackKs: 3/ 1000, ( 90.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 37/ 1000, ( 1110.00 +/- 179.08) kHz -Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz +Hlt1OneMuonTrackLine: 609/ 1000, (18270.00 +/- 462.93) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 5/ 1000, ( 150.00 +/- 66.91) kHz Hlt1LowPtMuon: 312/ 1000, ( 9360.00 +/- 439.53) kHz @@ -171,7 +171,7 @@ Hlt1TwoTrackKs: 3 3 Hlt1D2KK: 21 23 Hlt1D2KPi: 36 38 Hlt1D2PiPi: 37 38 -Hlt1TwoKs: 1 1 +Hlt1OneMuonTrackLine: 609 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 5 5 Hlt1LowPtMuon: 312 417 @@ -221,9 +221,9 @@ Hlt1D2KPiAlignment: 36 38 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 4440 -Total tracks: 3913 -Total SVs: 3045 -Total hits: 79317 -Total stdinfo: 47924 +Total decisions: 5090 +Total tracks: 4029 +Total SVs: 3138 +Total hits: 81522 +Total stdinfo: 49874 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt index 1abe9e7b526..d1579785633 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt @@ -109,7 +109,7 @@ Hlt1TwoTrackKs: 3/ 1000, ( 90.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 38/ 1000, ( 1140.00 +/- 181.38) kHz -Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz +Hlt1OneMuonTrackLine: 605/ 1000, (18150.00 +/- 463.76) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 5/ 1000, ( 150.00 +/- 66.91) kHz Hlt1LowPtMuon: 308/ 1000, ( 9240.00 +/- 437.98) kHz @@ -171,7 +171,7 @@ Hlt1TwoTrackKs: 3 3 Hlt1D2KK: 21 23 Hlt1D2KPi: 39 41 Hlt1D2PiPi: 38 39 -Hlt1TwoKs: 1 1 +Hlt1OneMuonTrackLine: 605 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 5 5 Hlt1LowPtMuon: 308 416 @@ -221,9 +221,9 @@ Hlt1D2KPiAlignment: 39 41 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 4439 -Total tracks: 3935 -Total SVs: 3080 -Total hits: 79744 -Total stdinfo: 48239 +Total decisions: 5102 +Total tracks: 4064 +Total SVs: 3163 +Total hits: 82247 +Total stdinfo: 50266 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt index 3f1320a65ca..326d0b7fc11 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt @@ -109,7 +109,7 @@ Hlt1TwoTrackKs: 3/ 1000, ( 90.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 37/ 1000, ( 1110.00 +/- 179.08) kHz -Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz +Hlt1OneMuonTrackLine: 610/ 1000, (18300.00 +/- 462.72) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 5/ 1000, ( 150.00 +/- 66.91) kHz Hlt1LowPtMuon: 312/ 1000, ( 9360.00 +/- 439.53) kHz @@ -171,7 +171,7 @@ Hlt1TwoTrackKs: 3 3 Hlt1D2KK: 21 23 Hlt1D2KPi: 36 38 Hlt1D2PiPi: 37 38 -Hlt1TwoKs: 1 1 +Hlt1OneMuonTrackLine: 610 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 5 5 Hlt1LowPtMuon: 312 417 @@ -221,9 +221,9 @@ Hlt1D2KPiAlignment: 36 38 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 4440 -Total tracks: 3913 -Total SVs: 3045 -Total hits: 79317 -Total stdinfo: 47924 +Total decisions: 5091 +Total tracks: 4029 +Total SVs: 3138 +Total hits: 81522 +Total stdinfo: 49875 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt index 3f1320a65ca..87f942e1926 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt @@ -109,7 +109,7 @@ Hlt1TwoTrackKs: 3/ 1000, ( 90.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 37/ 1000, ( 1110.00 +/- 179.08) kHz -Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz +Hlt1OneMuonTrackLine: 611/ 1000, (18330.00 +/- 462.51) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 5/ 1000, ( 150.00 +/- 66.91) kHz Hlt1LowPtMuon: 312/ 1000, ( 9360.00 +/- 439.53) kHz @@ -171,7 +171,7 @@ Hlt1TwoTrackKs: 3 3 Hlt1D2KK: 21 23 Hlt1D2KPi: 36 38 Hlt1D2PiPi: 37 38 -Hlt1TwoKs: 1 1 +Hlt1OneMuonTrackLine: 611 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 5 5 Hlt1LowPtMuon: 312 417 @@ -221,9 +221,9 @@ Hlt1D2KPiAlignment: 36 38 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 4440 -Total tracks: 3913 -Total SVs: 3045 -Total hits: 79317 -Total stdinfo: 47924 +Total decisions: 5092 +Total tracks: 4029 +Total SVs: 3138 +Total hits: 81522 +Total stdinfo: 49876 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt index 0cccce4e918..bf6351ab9d7 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt @@ -68,7 +68,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 19/ 1000, ( 570.00 +/- 129.52) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 32/ 1000, ( 960.00 +/- 166.97) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 612/ 1000, (18360.00 +/- 462.29) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 6/ 1000, ( 180.00 +/- 73.26) kHz Hlt1LowPtMuon: 20/ 1000, ( 600.00 +/- 132.82) kHz @@ -130,7 +130,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 19 23 Hlt1D2KPi: 36 39 Hlt1D2PiPi: 32 35 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 612 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 6 7 Hlt1LowPtMuon: 20 20 @@ -180,9 +180,9 @@ Hlt1D2KPiAlignment: 36 39 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 3 3 -Total decisions: 3686 +Total decisions: 4298 Total tracks: 1975 Total SVs: 1537 Total hits: 40931 -Total stdinfo: 25634 +Total stdinfo: 26246 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt index 44f61e5350b..2bbbb1263c7 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt @@ -68,7 +68,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 33/ 1000, ( 990.00 +/- 169.47) kHz Hlt1D2PiPi: 27/ 1000, ( 810.00 +/- 153.77) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 605/ 1000, (18150.00 +/- 463.76) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 7/ 1000, ( 210.00 +/- 79.09) kHz Hlt1LowPtMuon: 18/ 1000, ( 540.00 +/- 126.13) kHz @@ -130,7 +130,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 22 25 Hlt1D2KPi: 33 34 Hlt1D2PiPi: 27 29 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 605 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 7 7 Hlt1LowPtMuon: 18 18 @@ -180,9 +180,9 @@ Hlt1D2KPiAlignment: 33 34 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 3627 +Total decisions: 4232 Total tracks: 1865 Total SVs: 1437 Total hits: 38522 -Total stdinfo: 24295 +Total stdinfo: 24900 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt index 0cccce4e918..d6f70ca3fc3 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt @@ -68,7 +68,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 19/ 1000, ( 570.00 +/- 129.52) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 32/ 1000, ( 960.00 +/- 166.97) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 610/ 1000, (18300.00 +/- 462.72) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 6/ 1000, ( 180.00 +/- 73.26) kHz Hlt1LowPtMuon: 20/ 1000, ( 600.00 +/- 132.82) kHz @@ -130,7 +130,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 19 23 Hlt1D2KPi: 36 39 Hlt1D2PiPi: 32 35 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 610 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 6 7 Hlt1LowPtMuon: 20 20 @@ -180,9 +180,9 @@ Hlt1D2KPiAlignment: 36 39 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 3 3 -Total decisions: 3686 +Total decisions: 4296 Total tracks: 1975 Total SVs: 1537 Total hits: 40931 -Total stdinfo: 25634 +Total stdinfo: 26244 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt index 0cccce4e918..96f3a20d68d 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt @@ -68,7 +68,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 19/ 1000, ( 570.00 +/- 129.52) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 32/ 1000, ( 960.00 +/- 166.97) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 611/ 1000, (18330.00 +/- 462.51) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 6/ 1000, ( 180.00 +/- 73.26) kHz Hlt1LowPtMuon: 20/ 1000, ( 600.00 +/- 132.82) kHz @@ -130,7 +130,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 19 23 Hlt1D2KPi: 36 39 Hlt1D2PiPi: 32 35 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 611 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 6 7 Hlt1LowPtMuon: 20 20 @@ -180,9 +180,9 @@ Hlt1D2KPiAlignment: 36 39 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 3 3 -Total decisions: 3686 +Total decisions: 4297 Total tracks: 1975 Total SVs: 1537 Total hits: 40931 -Total stdinfo: 25634 +Total stdinfo: 26245 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt index 3bedc6f24ac..d3783095807 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 28/ 1000, ( 840.00 +/- 156.51) kHz -Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz +Hlt1OneMuonTrackLine: 610/ 1000, (18300.00 +/- 462.72) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 164/ 1000, ( 4920.00 +/- 351.27) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 42 Hlt1D2PiPi: 28 31 -Hlt1TwoKs: 1 1 +Hlt1OneMuonTrackLine: 610 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 2 Hlt1LowPtMuon: 164 191 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 42 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4193 +Total decisions: 4802 Total tracks: 3525 -Total SVs: 2976 +Total SVs: 2975 Total hits: 86137 -Total stdinfo: 44297 +Total stdinfo: 44902 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt index 09caa950ce2..65381c32ce8 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 30/ 1000, ( 900.00 +/- 161.83) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 605/ 1000, (18150.00 +/- 463.76) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 4/ 1000, ( 120.00 +/- 59.88) kHz Hlt1LowPtMuon: 157/ 1000, ( 4710.00 +/- 345.13) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 42 Hlt1D2PiPi: 30 33 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 605 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 4 4 Hlt1LowPtMuon: 157 182 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 42 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4118 +Total decisions: 4723 Total tracks: 3335 Total SVs: 2794 Total hits: 81411 -Total stdinfo: 41974 +Total stdinfo: 42579 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt index 3bedc6f24ac..d3783095807 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 28/ 1000, ( 840.00 +/- 156.51) kHz -Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz +Hlt1OneMuonTrackLine: 610/ 1000, (18300.00 +/- 462.72) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 164/ 1000, ( 4920.00 +/- 351.27) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 42 Hlt1D2PiPi: 28 31 -Hlt1TwoKs: 1 1 +Hlt1OneMuonTrackLine: 610 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 2 Hlt1LowPtMuon: 164 191 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 42 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4193 +Total decisions: 4802 Total tracks: 3525 -Total SVs: 2976 +Total SVs: 2975 Total hits: 86137 -Total stdinfo: 44297 +Total stdinfo: 44902 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt index 3bedc6f24ac..a339007991f 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 28/ 1000, ( 840.00 +/- 156.51) kHz -Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz +Hlt1OneMuonTrackLine: 609/ 1000, (18270.00 +/- 462.93) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 164/ 1000, ( 4920.00 +/- 351.27) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 42 Hlt1D2PiPi: 28 31 -Hlt1TwoKs: 1 1 +Hlt1OneMuonTrackLine: 609 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 2 Hlt1LowPtMuon: 164 191 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 42 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4193 +Total decisions: 4801 Total tracks: 3525 -Total SVs: 2976 +Total SVs: 2975 Total hits: 86137 -Total stdinfo: 44297 +Total stdinfo: 44901 diff --git a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt index 6b4bce6df9a..c4220b35086 100644 --- a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt +++ b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 6/ 1000, ( 180.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 31/ 1000, ( 930.00 +/- 164.42) kHz Hlt1D2PiPi: 22/ 1000, ( 660.00 +/- 139.16) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 617/ 1000, (18510.00 +/- 461.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 135/ 1000, ( 4050.00 +/- 324.19) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 6 6 Hlt1D2KK: 22 24 Hlt1D2KPi: 31 33 Hlt1D2PiPi: 22 23 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 617 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 3 Hlt1LowPtMuon: 135 155 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 31 33 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 3901 +Total decisions: 4518 Total tracks: 3075 Total SVs: 2535 Total hits: 76091 -Total stdinfo: 38641 +Total stdinfo: 39258 diff --git a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt index 9eab829d60b..f8eefe6c05b 100644 --- a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt +++ b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 6/ 1000, ( 180.00 +/- Hlt1D2KK: 17/ 1000, ( 510.00 +/- 122.64) kHz Hlt1D2KPi: 27/ 1000, ( 810.00 +/- 153.77) kHz Hlt1D2PiPi: 17/ 1000, ( 510.00 +/- 122.64) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 605/ 1000, (18150.00 +/- 463.76) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1LowPtMuon: 125/ 1000, ( 3750.00 +/- 313.75) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 6 6 Hlt1D2KK: 17 19 Hlt1D2KPi: 27 30 Hlt1D2PiPi: 17 18 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 605 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 3 4 Hlt1LowPtMuon: 125 142 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 27 30 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 3 3 -Total decisions: 3839 +Total decisions: 4444 Total tracks: 2947 Total SVs: 2389 Total hits: 72752 -Total stdinfo: 36971 +Total stdinfo: 37576 diff --git a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt index 6b4bce6df9a..d2799ad419f 100644 --- a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt +++ b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 6/ 1000, ( 180.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 31/ 1000, ( 930.00 +/- 164.42) kHz Hlt1D2PiPi: 22/ 1000, ( 660.00 +/- 139.16) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 607/ 1000, (18210.00 +/- 463.35) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 135/ 1000, ( 4050.00 +/- 324.19) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 6 6 Hlt1D2KK: 22 24 Hlt1D2KPi: 31 33 Hlt1D2PiPi: 22 23 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 607 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 3 Hlt1LowPtMuon: 135 155 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 31 33 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 3901 +Total decisions: 4508 Total tracks: 3075 Total SVs: 2535 Total hits: 76091 -Total stdinfo: 38641 +Total stdinfo: 39248 diff --git a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt index 6b4bce6df9a..229916974bc 100644 --- a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt +++ b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 6/ 1000, ( 180.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 31/ 1000, ( 930.00 +/- 164.42) kHz Hlt1D2PiPi: 22/ 1000, ( 660.00 +/- 139.16) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 616/ 1000, (18480.00 +/- 461.40) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 135/ 1000, ( 4050.00 +/- 324.19) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 6 6 Hlt1D2KK: 22 24 Hlt1D2KPi: 31 33 Hlt1D2PiPi: 22 23 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 616 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 3 Hlt1LowPtMuon: 135 155 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 31 33 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 3901 +Total decisions: 4517 Total tracks: 3075 Total SVs: 2535 Total hits: 76091 -Total stdinfo: 38641 +Total stdinfo: 39257 diff --git a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt index e06279c0e12..45955ec8974 100644 --- a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt +++ b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 2/ 1000, ( 60.00 +/- Hlt1D2KK: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1D2KPi: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1D2PiPi: 2/ 1000, ( 60.00 +/- 42.38) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 484/ 1000, (14520.00 +/- 474.10) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1LowPtMuon: 77/ 1000, ( 2310.00 +/- 252.91) kHz @@ -157,7 +157,7 @@ Hlt1TwoTrackKs: 2 2 Hlt1D2KK: 2 3 Hlt1D2KPi: 3 3 Hlt1D2PiPi: 2 2 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 484 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 1 1 Hlt1LowPtMuon: 77 82 @@ -217,9 +217,9 @@ Hlt1_SMOG2_2BodyGeneric: 0 0 Hlt1_SMOG2_SingleTrack: 0 0 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 2373 +Total decisions: 2857 Total tracks: 610 Total SVs: 343 Total hits: 14212 -Total stdinfo: 8625 +Total stdinfo: 9109 diff --git a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt index 81dd7788229..5b721b62d61 100644 --- a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt +++ b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 2/ 1000, ( 60.00 +/- Hlt1D2KK: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1D2KPi: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1D2PiPi: 2/ 1000, ( 60.00 +/- 42.38) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 478/ 1000, (14340.00 +/- 473.88) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1LowPtMuon: 75/ 1000, ( 2250.00 +/- 249.87) kHz @@ -157,7 +157,7 @@ Hlt1TwoTrackKs: 2 2 Hlt1D2KK: 1 2 Hlt1D2KPi: 3 3 Hlt1D2PiPi: 2 2 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 478 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 1 1 Hlt1LowPtMuon: 75 82 @@ -217,9 +217,9 @@ Hlt1_SMOG2_2BodyGeneric: 0 0 Hlt1_SMOG2_SingleTrack: 0 0 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 2371 +Total decisions: 2849 Total tracks: 593 Total SVs: 321 Total hits: 13747 -Total stdinfo: 8399 +Total stdinfo: 8877 diff --git a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt index e06279c0e12..6685d9354e7 100644 --- a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt +++ b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 2/ 1000, ( 60.00 +/- Hlt1D2KK: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1D2KPi: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1D2PiPi: 2/ 1000, ( 60.00 +/- 42.38) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 479/ 1000, (14370.00 +/- 473.92) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1LowPtMuon: 77/ 1000, ( 2310.00 +/- 252.91) kHz @@ -157,7 +157,7 @@ Hlt1TwoTrackKs: 2 2 Hlt1D2KK: 2 3 Hlt1D2KPi: 3 3 Hlt1D2PiPi: 2 2 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 479 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 1 1 Hlt1LowPtMuon: 77 82 @@ -217,9 +217,9 @@ Hlt1_SMOG2_2BodyGeneric: 0 0 Hlt1_SMOG2_SingleTrack: 0 0 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 2373 +Total decisions: 2852 Total tracks: 610 Total SVs: 343 Total hits: 14212 -Total stdinfo: 8625 +Total stdinfo: 9104 diff --git a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt index e06279c0e12..8440ecabd1a 100644 --- a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt +++ b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 2/ 1000, ( 60.00 +/- Hlt1D2KK: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1D2KPi: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1D2PiPi: 2/ 1000, ( 60.00 +/- 42.38) kHz -Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1OneMuonTrackLine: 481/ 1000, (14430.00 +/- 474.00) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1LowPtMuon: 77/ 1000, ( 2310.00 +/- 252.91) kHz @@ -157,7 +157,7 @@ Hlt1TwoTrackKs: 2 2 Hlt1D2KK: 2 3 Hlt1D2KPi: 3 3 Hlt1D2PiPi: 2 2 -Hlt1TwoKs: 0 0 +Hlt1OneMuonTrackLine: 481 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 1 1 Hlt1LowPtMuon: 77 82 @@ -217,9 +217,9 @@ Hlt1_SMOG2_2BodyGeneric: 0 0 Hlt1_SMOG2_SingleTrack: 0 0 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 2373 +Total decisions: 2854 Total tracks: 610 Total SVs: 343 Total hits: 14212 -Total stdinfo: 8625 +Total stdinfo: 9106 -- GitLab From 9198ad155ae68851f9d368d9f5d34b5e79a25278 Mon Sep 17 00:00:00 2001 From: Adrian Casais Vidal Date: Tue, 4 Oct 2022 17:41:33 +0200 Subject: [PATCH 12/17] Ill condition!! --- .../muon/match_velo_muon/src/FindMuonHits.cu | 63 ++++++++++++++----- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/device/muon/match_velo_muon/src/FindMuonHits.cu b/device/muon/match_velo_muon/src/FindMuonHits.cu index 547c2b18e81..293ef130b0a 100644 --- a/device/muon/match_velo_muon/src/FindMuonHits.cu +++ b/device/muon/match_velo_muon/src/FindMuonHits.cu @@ -154,7 +154,7 @@ __device__ bool applyWeightedFit(MuonTrack& muon_track, Muon::ConstHits& muon_hi float slope, a, chi2ndof; slope = a = chi2ndof = 9999.f; float det = sz2 * s0 - sz * sz; - if (det != 0) { + if (det != 0.f) { slope = (sxz * s0 - sx * sz) / det; a = (sx * sz2 - sxz * sz) / det; @@ -196,20 +196,21 @@ __device__ int find_compatible_hit_in_station( const auto ymax = Ymax[i_station * 4 + region_seed]; int track_index = -1; - float deltaXmin, deltaYmin; + float deltaXmin, deltaYmin,delta2min; for (unsigned i_hit = 0; i_hit < nhits_i_station; i_hit++) { const auto idx = station_offset + i_hit; const auto deltaX = fabsf(x - muon_hits.x(idx)); const auto deltaY = fabsf(y - muon_hits.y(idx)); - - if (deltaX < xmax && deltaY < ymax && (track_index == -1 || (deltaY < deltaYmin && deltaX < deltaXmin))) { + const auto delta2 = deltaX * deltaX + deltaY * deltaY; + + if (deltaX < xmax && deltaY < ymax && (track_index == -1 || (deltaY * deltaY + deltaX * deltaX < delta2min))) { deltaXmin = deltaX; deltaYmin = deltaY; + delta2min = deltaX * deltaX + deltaY * deltaY; track_index = static_cast(i_hit); } } - return track_index; } @@ -217,8 +218,8 @@ __device__ std::pair extrapolate( const Muon::ConstHits muon_hits, const float* z, const MuonTrack& muon_track, - const unsigned& previous_index, const unsigned& current_index, + const unsigned& previous_index, const unsigned& following_index) { const auto x_current_station = muon_hits.x(muon_track.hit(current_index)); @@ -236,6 +237,7 @@ __device__ std::pair extrapolate( } __device__ void seedAndFind( + unsigned event_number, Muon::ConstHits muon_hits, const unsigned* station_ocurrences_offset, const int* st_order, @@ -263,11 +265,7 @@ __device__ void seedAndFind( for (unsigned i_station = 1; i_station < n_stations; i_station++) { const auto station = st_order[i_station]; - if (station == st_order[3] && muon_track.number_of_hits() < 2) { - // If we are on the last station and we have less than 2 hits, early exit - break; - } - else if (muon_track.number_of_hits() >= 2) { + if (muon_track.number_of_hits() >= 2) { // Update x, y parameters by extrapolating the building track const auto xy = extrapolate( muon_hits, match_velo_windows.z, muon_track, last_two_stations_found[0], last_two_stations_found[1], station); @@ -278,9 +276,28 @@ __device__ void seedAndFind( // Create x, y parameters by linear extrapolation from origin const auto slope = match_velo_windows.z[station] * zseed_inverse; x = xseed * slope; - y = yseed * slope; + y = yseed * slope; } + // if (event_number == 194){ + // float hit1x = last_two_stations_found[1]!=-1 ? muon_hits.x( muon_track.hit(last_two_stations_found[1])) : -1.f; + // float hit1y = last_two_stations_found[1]!=-1 ? muon_hits.y(muon_track.hit(last_two_stations_found[1])) : -1.f; + + // printf("Event number: %u. xcurr=%.3f, ycurr=%.3f. xprev=%.3f, yprev=%.3f. Station %i extrapol: x=%.3f,y=%.3f.previous: %i, station_found1: %i station\n", + // event_number, + // //seed, + // muon_hits.x(muon_track.hit(last_two_stations_found[0])), + // muon_hits.y(muon_track.hit(last_two_stations_found[0])), + // hit1x, + // hit1y, + // i_station, + // x, + // y, + // last_two_stations_found[0], + // last_two_stations_found[1] + // ); + // } + const auto hit_index = find_compatible_hit_in_station( x, y, @@ -292,14 +309,19 @@ __device__ void seedAndFind( match_velo_windows.Ymax); if (hit_index != -1) { - muon_track.add_hit_to_station(station_ocurrences_offset[station] + hit_index, station); + const auto idx = station_ocurrences_offset[station] + hit_index; + // if (event_number == 194){ + // printf("Event number: %u. Seed=%u. Hit found. x: %.3f y: %.3f z: .%.3f\n",event_number,seed,muon_hits.x(idx),muon_hits.y(idx),muon_hits.z(idx)); + // } + muon_track.add_hit_to_station(idx, station); last_two_stations_found[1] = last_two_stations_found[0]; last_two_stations_found[0] = station; region_seed = muon_hits.region(station_ocurrences_offset[station] + hit_index); } + else break; } - if (muon_track.number_of_hits() > 3 && muon_track.hit(required_station) != -1) { + if (muon_track.number_of_hits() == 4 && muon_track.hit(required_station) != -1) { auto fit_result_xz = applyWeightedFit(muon_track, muon_hits, true); auto fit_result_yz = applyWeightedFit(muon_track, muon_hits, false); if (fit_result_xz && fit_result_yz) { @@ -322,7 +344,6 @@ __global__ void find_muon_hits::find_muon_hits( const auto station_ocurrences_offset = parameters.dev_station_ocurrences_offset + event_number * Muon::Constants::n_stations; const auto muon_hits = Muon::ConstHits {parameters.dev_muon_hits, muon_total_number_of_hits}; - // TODO: Change into container taking into consideration actual sizes of Muon::Constants::M4 and Muon::Constants::M5 // (use prefix sum) @@ -343,10 +364,12 @@ __global__ void find_muon_hits::find_muon_hits( __shared__ float muon_tracks_shared_container[Muon::Constants::max_number_of_tracks * sizeof(MuonTrack)]; MuonTrack* muon_tracks = reinterpret_cast(muon_tracks_shared_container); __shared__ unsigned number_of_muon_tracks_atomic[1]; - if (threadIdx.x == 0) number_of_muon_tracks_atomic[0] = 0; - + if (threadIdx.x == 0) { + number_of_muon_tracks_atomic[0] = 0; + } __syncthreads(); seedAndFind( + event_number, muon_hits, station_ocurrences_offset, st_order.data(), @@ -355,8 +378,14 @@ __global__ void find_muon_hits::find_muon_hits( Muon::Constants::M2, number_of_muon_tracks_atomic, muon_tracks); + + __syncthreads(); + if( threadIdx.x ==0 ) { + printf("Event number: %i. Number of muon tracks atomic: %i \n",event_number,number_of_muon_tracks_atomic[0]); + } + // need to tune track making in order to make available second loop: take care of not repeating tracks! // seedAndFind( -- GitLab From 6c0592be99c8f843c558452a79f61e46ffcf9c01 Mon Sep 17 00:00:00 2001 From: Saverio Mariani Date: Tue, 4 Oct 2022 18:33:30 +0200 Subject: [PATCH 13/17] Make required minimum number of track hits configurable and cleaning Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Allen/-/jobs/24953950 update refs more references fixing refs once again --- .../match_velo_muon/include/FindMuonHits.cuh | 3 + .../muon/match_velo_muon/src/FindMuonHits.cu | 61 +++++-------------- ...wLHCbID_hlt1_pp_SMOG2_validation_a5000.txt | 8 +-- ...CbID_hlt1_pp_SMOG2_validation_epyc7502.txt | 8 +-- ...1_pp_SMOG2_validation_geforcertx2080ti.txt | 8 +-- ...lt1_pp_SMOG2_validation_geforcertx3090.txt | 8 +-- ...CbID_hlt1_pp_matching_validation_a5000.txt | 8 +-- ...D_hlt1_pp_matching_validation_epyc7502.txt | 8 +-- ...p_matching_validation_geforcertx2080ti.txt | 8 +-- ..._pp_matching_validation_geforcertx3090.txt | 8 +-- ..._v1_newLHCbID_hlt1_pp_validation_a5000.txt | 8 +-- ..._newLHCbID_hlt1_pp_validation_epyc7502.txt | 8 +-- ...ID_hlt1_pp_validation_geforcertx2080ti.txt | 8 +-- ...CbID_hlt1_pp_validation_geforcertx3090.txt | 8 +-- ...LHCbID_hlt1_pp_veloSP_validation_a5000.txt | 8 +-- ...bID_hlt1_pp_veloSP_validation_epyc7502.txt | 8 +-- ..._pp_veloSP_validation_geforcertx2080ti.txt | 8 +-- ...t1_pp_veloSP_validation_geforcertx3090.txt | 8 +-- ...CbID_hlt1_pp_matching_validation_a5000.txt | 14 ++--- ...D_hlt1_pp_matching_validation_epyc7502.txt | 14 ++--- ...p_matching_validation_geforcertx2080ti.txt | 14 ++--- ..._pp_matching_validation_geforcertx3090.txt | 14 ++--- ...wLHCbID_hlt1_pp_no_ut_validation_a5000.txt | 8 +-- ...CbID_hlt1_pp_no_ut_validation_epyc7502.txt | 8 +-- ...1_pp_no_ut_validation_geforcertx2080ti.txt | 8 +-- ...lt1_pp_no_ut_validation_geforcertx3090.txt | 8 +-- ..._v1_newLHCbID_hlt1_pp_validation_a5000.txt | 8 +-- ..._newLHCbID_hlt1_pp_validation_epyc7502.txt | 8 +-- ...ID_hlt1_pp_validation_geforcertx2080ti.txt | 8 +-- ...CbID_hlt1_pp_validation_geforcertx3090.txt | 8 +-- ..._v1_newLHCbID_hlt1_pp_validation_a5000.txt | 8 +-- ..._newLHCbID_hlt1_pp_validation_epyc7502.txt | 8 +-- ...ID_hlt1_pp_validation_geforcertx2080ti.txt | 8 +-- ...CbID_hlt1_pp_validation_geforcertx3090.txt | 8 +-- ...wLHCbID_hlt1_pp_SMOG2_validation_a5000.txt | 8 +-- ...CbID_hlt1_pp_SMOG2_validation_epyc7502.txt | 8 +-- ...1_pp_SMOG2_validation_geforcertx2080ti.txt | 8 +-- ...lt1_pp_SMOG2_validation_geforcertx3090.txt | 8 +-- 38 files changed, 175 insertions(+), 201 deletions(-) diff --git a/device/muon/match_velo_muon/include/FindMuonHits.cuh b/device/muon/match_velo_muon/include/FindMuonHits.cuh index 63b2f953eb1..7da66fe4599 100644 --- a/device/muon/match_velo_muon/include/FindMuonHits.cuh +++ b/device/muon/match_velo_muon/include/FindMuonHits.cuh @@ -25,6 +25,8 @@ namespace find_muon_hits { HOST_OUTPUT(host_muon_number_of_tracks_t, unsigned) host_muon_number_of_tracks; PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; PROPERTY(enable_monitoring_t, "enable_monitoring", "Enable monitoring boolean", bool) enable_monitoring; + PROPERTY(required_number_of_hits_t, "required_number_of_hits", "Minimum number of hits to accept a muon stub", int) + required_number_of_hits; }; __global__ void find_muon_hits(Parameters, const Muon::Constants::MatchVeloWindows* dev_match_velo_windows); @@ -51,6 +53,7 @@ namespace find_muon_hits { private: Property m_block_dim {this, {{64, 1, 1}}}; Property m_enable_monitoring {this, false}; + Property m_required_number_of_hits {this, 4}; }; } // namespace find_muon_hits diff --git a/device/muon/match_velo_muon/src/FindMuonHits.cu b/device/muon/match_velo_muon/src/FindMuonHits.cu index 293ef130b0a..0c330155fba 100644 --- a/device/muon/match_velo_muon/src/FindMuonHits.cu +++ b/device/muon/match_velo_muon/src/FindMuonHits.cu @@ -196,18 +196,16 @@ __device__ int find_compatible_hit_in_station( const auto ymax = Ymax[i_station * 4 + region_seed]; int track_index = -1; - float deltaXmin, deltaYmin,delta2min; + float delta2min; for (unsigned i_hit = 0; i_hit < nhits_i_station; i_hit++) { const auto idx = station_offset + i_hit; const auto deltaX = fabsf(x - muon_hits.x(idx)); const auto deltaY = fabsf(y - muon_hits.y(idx)); const auto delta2 = deltaX * deltaX + deltaY * deltaY; - - if (deltaX < xmax && deltaY < ymax && (track_index == -1 || (deltaY * deltaY + deltaX * deltaX < delta2min))) { - deltaXmin = deltaX; - deltaYmin = deltaY; - delta2min = deltaX * deltaX + deltaY * deltaY; + + if (deltaX < xmax && deltaY < ymax && (track_index == -1 || delta2 < delta2min)) { + delta2min = delta2; track_index = static_cast(i_hit); } } @@ -237,13 +235,13 @@ __device__ std::pair extrapolate( } __device__ void seedAndFind( - unsigned event_number, Muon::ConstHits muon_hits, const unsigned* station_ocurrences_offset, const int* st_order, unsigned n_stations, Muon::Constants::MatchVeloWindows match_velo_windows, int required_station, + int required_number_of_hits, unsigned* number_of_muon_tracks_atomic, MuonTrack* muon_tracks) { @@ -276,28 +274,9 @@ __device__ void seedAndFind( // Create x, y parameters by linear extrapolation from origin const auto slope = match_velo_windows.z[station] * zseed_inverse; x = xseed * slope; - y = yseed * slope; + y = yseed * slope; } - // if (event_number == 194){ - // float hit1x = last_two_stations_found[1]!=-1 ? muon_hits.x( muon_track.hit(last_two_stations_found[1])) : -1.f; - // float hit1y = last_two_stations_found[1]!=-1 ? muon_hits.y(muon_track.hit(last_two_stations_found[1])) : -1.f; - - // printf("Event number: %u. xcurr=%.3f, ycurr=%.3f. xprev=%.3f, yprev=%.3f. Station %i extrapol: x=%.3f,y=%.3f.previous: %i, station_found1: %i station\n", - // event_number, - // //seed, - // muon_hits.x(muon_track.hit(last_two_stations_found[0])), - // muon_hits.y(muon_track.hit(last_two_stations_found[0])), - // hit1x, - // hit1y, - // i_station, - // x, - // y, - // last_two_stations_found[0], - // last_two_stations_found[1] - // ); - // } - const auto hit_index = find_compatible_hit_in_station( x, y, @@ -310,18 +289,16 @@ __device__ void seedAndFind( if (hit_index != -1) { const auto idx = station_ocurrences_offset[station] + hit_index; - // if (event_number == 194){ - // printf("Event number: %u. Seed=%u. Hit found. x: %.3f y: %.3f z: .%.3f\n",event_number,seed,muon_hits.x(idx),muon_hits.y(idx),muon_hits.z(idx)); - // } muon_track.add_hit_to_station(idx, station); last_two_stations_found[1] = last_two_stations_found[0]; last_two_stations_found[0] = station; region_seed = muon_hits.region(station_ocurrences_offset[station] + hit_index); } - else break; + else + break; } - if (muon_track.number_of_hits() == 4 && muon_track.hit(required_station) != -1) { + if (muon_track.number_of_hits() == required_number_of_hits && muon_track.hit(required_station) != -1) { auto fit_result_xz = applyWeightedFit(muon_track, muon_hits, true); auto fit_result_yz = applyWeightedFit(muon_track, muon_hits, false); if (fit_result_xz && fit_result_yz) { @@ -364,30 +341,23 @@ __global__ void find_muon_hits::find_muon_hits( __shared__ float muon_tracks_shared_container[Muon::Constants::max_number_of_tracks * sizeof(MuonTrack)]; MuonTrack* muon_tracks = reinterpret_cast(muon_tracks_shared_container); __shared__ unsigned number_of_muon_tracks_atomic[1]; - if (threadIdx.x == 0) { - number_of_muon_tracks_atomic[0] = 0; - } + if (threadIdx.x == 0) number_of_muon_tracks_atomic[0] = 0; + __syncthreads(); seedAndFind( - event_number, muon_hits, station_ocurrences_offset, st_order.data(), - 4, + Muon::Constants::n_stations, match_velo_windows, Muon::Constants::M2, + parameters.required_number_of_hits, number_of_muon_tracks_atomic, muon_tracks); - - - __syncthreads(); - - if( threadIdx.x ==0 ) { - printf("Event number: %i. Number of muon tracks atomic: %i \n",event_number,number_of_muon_tracks_atomic[0]); - } - // need to tune track making in order to make available second loop: take care of not repeating tracks! + __syncthreads(); + // TODO: tune track making in order to make available second loop: take care of not repeating tracks! // seedAndFind( // muon_hits, // station_ocurrences_offset, @@ -395,6 +365,7 @@ __global__ void find_muon_hits::find_muon_hits( // 3, // match_velo_windows, // Muon::Constants::M2, + // parameters.required_number_of_hits, // number_of_muon_tracks_atomic, // muon_tracks); diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt index c35cd349854..ae40bd02acf 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1OneMuonTrackLine: 81/ 1000, ( 2430.00 +/- 258.83) kHz +Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -143,7 +143,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1OneMuonTrackLine: 81 0 +Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -203,9 +203,9 @@ Hlt1_SMOG2_2BodyGeneric: 21 33 Hlt1_SMOG2_SingleTrack: 158 202 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 3982 +Total decisions: 3989 Total tracks: 284 Total SVs: 64 Total hits: 8398 -Total stdinfo: 6510 +Total stdinfo: 6517 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt index 50e13edde76..1c49fe89513 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1OneMuonTrackLine: 87/ 1000, ( 2610.00 +/- 267.37) kHz +Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -143,7 +143,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1OneMuonTrackLine: 87 0 +Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -203,9 +203,9 @@ Hlt1_SMOG2_2BodyGeneric: 23 37 Hlt1_SMOG2_SingleTrack: 160 204 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 3993 +Total decisions: 3994 Total tracks: 295 Total SVs: 71 Total hits: 8640 -Total stdinfo: 6637 +Total stdinfo: 6638 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt index be32d2b6444..ae40bd02acf 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1OneMuonTrackLine: 87/ 1000, ( 2610.00 +/- 267.37) kHz +Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -143,7 +143,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1OneMuonTrackLine: 87 0 +Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -203,9 +203,9 @@ Hlt1_SMOG2_2BodyGeneric: 21 33 Hlt1_SMOG2_SingleTrack: 158 202 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 3988 +Total decisions: 3989 Total tracks: 284 Total SVs: 64 Total hits: 8398 -Total stdinfo: 6516 +Total stdinfo: 6517 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt index c35cd349854..ae40bd02acf 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1OneMuonTrackLine: 81/ 1000, ( 2430.00 +/- 258.83) kHz +Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -143,7 +143,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1OneMuonTrackLine: 81 0 +Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -203,9 +203,9 @@ Hlt1_SMOG2_2BodyGeneric: 21 33 Hlt1_SMOG2_SingleTrack: 158 202 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 3982 +Total decisions: 3989 Total tracks: 284 Total SVs: 64 Total hits: 8398 -Total stdinfo: 6510 +Total stdinfo: 6517 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt index 6d1edf39687..0168abbc259 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt @@ -93,7 +93,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1OneMuonTrackLine: 81/ 1000, ( 2430.00 +/- 258.83) kHz +Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -155,7 +155,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1OneMuonTrackLine: 81 0 +Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -205,9 +205,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2100 +Total decisions: 2107 Total tracks: 37 Total SVs: 25 Total hits: 663 -Total stdinfo: 2496 +Total stdinfo: 2503 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt index 094a1abbc9b..07bceb4f468 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt @@ -93,7 +93,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1OneMuonTrackLine: 87/ 1000, ( 2610.00 +/- 267.37) kHz +Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -155,7 +155,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1OneMuonTrackLine: 87 0 +Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -205,9 +205,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2106 +Total decisions: 2107 Total tracks: 38 Total SVs: 27 Total hits: 678 -Total stdinfo: 2518 +Total stdinfo: 2519 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt index 0db4ce31711..0168abbc259 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt @@ -93,7 +93,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1OneMuonTrackLine: 87/ 1000, ( 2610.00 +/- 267.37) kHz +Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -155,7 +155,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1OneMuonTrackLine: 87 0 +Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -205,9 +205,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2106 +Total decisions: 2107 Total tracks: 37 Total SVs: 25 Total hits: 663 -Total stdinfo: 2502 +Total stdinfo: 2503 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt index 6d1edf39687..0168abbc259 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt @@ -93,7 +93,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1OneMuonTrackLine: 81/ 1000, ( 2430.00 +/- 258.83) kHz +Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -155,7 +155,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1OneMuonTrackLine: 81 0 +Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -205,9 +205,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2100 +Total decisions: 2107 Total tracks: 37 Total SVs: 25 Total hits: 663 -Total stdinfo: 2496 +Total stdinfo: 2503 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt index 98e190b87e8..793ce284314 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1OneMuonTrackLine: 81/ 1000, ( 2430.00 +/- 258.83) kHz +Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -133,7 +133,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1OneMuonTrackLine: 81 0 +Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -183,9 +183,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2102 +Total decisions: 2109 Total tracks: 41 Total SVs: 30 Total hits: 884 -Total stdinfo: 2550 +Total stdinfo: 2557 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt index f487930eb71..98f5317ce8a 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1OneMuonTrackLine: 87/ 1000, ( 2610.00 +/- 267.37) kHz +Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -133,7 +133,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1OneMuonTrackLine: 87 0 +Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -183,9 +183,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2108 +Total decisions: 2109 Total tracks: 43 Total SVs: 32 Total hits: 925 -Total stdinfo: 2580 +Total stdinfo: 2581 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt index ba046cdea7e..793ce284314 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1OneMuonTrackLine: 87/ 1000, ( 2610.00 +/- 267.37) kHz +Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -133,7 +133,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1OneMuonTrackLine: 87 0 +Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -183,9 +183,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2108 +Total decisions: 2109 Total tracks: 41 Total SVs: 30 Total hits: 884 -Total stdinfo: 2556 +Total stdinfo: 2557 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt index 98e190b87e8..793ce284314 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt @@ -71,7 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz -Hlt1OneMuonTrackLine: 81/ 1000, ( 2430.00 +/- 258.83) kHz +Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1LowPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -133,7 +133,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 -Hlt1OneMuonTrackLine: 81 0 +Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 Hlt1LowPtMuon: 0 0 @@ -183,9 +183,9 @@ Hlt1D2KPiAlignment: 0 0 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 0 0 -Total decisions: 2102 +Total decisions: 2109 Total tracks: 41 Total SVs: 30 Total hits: 884 -Total stdinfo: 2550 +Total stdinfo: 2557 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt index ba8a0cbf5bc..b93f6773470 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 29/ 1000, ( 870.00 +/- 159.20) kHz -Hlt1OneMuonTrackLine: 610/ 1000, (18300.00 +/- 462.72) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 163/ 1000, ( 4890.00 +/- 350.41) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 43 Hlt1D2PiPi: 29 33 -Hlt1OneMuonTrackLine: 610 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 2 2 Hlt1LowPtMuon: 163 189 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 43 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4802 +Total decisions: 4873 Total tracks: 3519 Total SVs: 2972 Total hits: 85957 -Total stdinfo: 44842 +Total stdinfo: 44913 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt index c496b1ee62f..88400d2f83d 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 40/ 1000, ( 1200.00 +/- 185.90) kHz Hlt1D2PiPi: 31/ 1000, ( 930.00 +/- 164.42) kHz -Hlt1OneMuonTrackLine: 605/ 1000, (18150.00 +/- 463.76) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 4/ 1000, ( 120.00 +/- 59.88) kHz Hlt1LowPtMuon: 154/ 1000, ( 4620.00 +/- 342.43) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 22 25 Hlt1D2KPi: 40 43 Hlt1D2PiPi: 31 34 -Hlt1OneMuonTrackLine: 605 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 4 4 Hlt1LowPtMuon: 154 178 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 40 43 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4727 +Total decisions: 4803 Total tracks: 3329 Total SVs: 2793 Total hits: 81238 -Total stdinfo: 42531 +Total stdinfo: 42607 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt index ba8a0cbf5bc..b93f6773470 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 29/ 1000, ( 870.00 +/- 159.20) kHz -Hlt1OneMuonTrackLine: 610/ 1000, (18300.00 +/- 462.72) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 163/ 1000, ( 4890.00 +/- 350.41) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 43 Hlt1D2PiPi: 29 33 -Hlt1OneMuonTrackLine: 610 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 2 2 Hlt1LowPtMuon: 163 189 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 43 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4802 +Total decisions: 4873 Total tracks: 3519 Total SVs: 2972 Total hits: 85957 -Total stdinfo: 44842 +Total stdinfo: 44913 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx3090.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx3090.txt index 7a4bc782865..b93f6773470 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx3090.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx3090.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 29/ 1000, ( 870.00 +/- 159.20) kHz -Hlt1OneMuonTrackLine: 611/ 1000, (18330.00 +/- 462.51) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 163/ 1000, ( 4890.00 +/- 350.41) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 43 Hlt1D2PiPi: 29 33 -Hlt1OneMuonTrackLine: 611 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 2 2 Hlt1LowPtMuon: 163 189 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 43 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4803 +Total decisions: 4873 Total tracks: 3519 Total SVs: 2972 Total hits: 85957 -Total stdinfo: 44843 +Total stdinfo: 44913 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt index a055eff0eb2..89f5dc93b65 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt @@ -109,7 +109,7 @@ Hlt1TwoTrackKs: 3/ 1000, ( 90.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 37/ 1000, ( 1110.00 +/- 179.08) kHz -Hlt1OneMuonTrackLine: 609/ 1000, (18270.00 +/- 462.93) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 5/ 1000, ( 150.00 +/- 66.91) kHz Hlt1LowPtMuon: 312/ 1000, ( 9360.00 +/- 439.53) kHz @@ -171,7 +171,7 @@ Hlt1TwoTrackKs: 3 3 Hlt1D2KK: 21 23 Hlt1D2KPi: 36 38 Hlt1D2PiPi: 37 38 -Hlt1OneMuonTrackLine: 609 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 5 5 Hlt1LowPtMuon: 312 417 @@ -221,9 +221,9 @@ Hlt1D2KPiAlignment: 36 38 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 5090 -Total tracks: 4029 -Total SVs: 3138 -Total hits: 81522 -Total stdinfo: 49874 +Total decisions: 5120 +Total tracks: 3913 +Total SVs: 3043 +Total hits: 79317 +Total stdinfo: 48596 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt index d1579785633..c1e165b947b 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt @@ -109,7 +109,7 @@ Hlt1TwoTrackKs: 3/ 1000, ( 90.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 38/ 1000, ( 1140.00 +/- 181.38) kHz -Hlt1OneMuonTrackLine: 605/ 1000, (18150.00 +/- 463.76) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 5/ 1000, ( 150.00 +/- 66.91) kHz Hlt1LowPtMuon: 308/ 1000, ( 9240.00 +/- 437.98) kHz @@ -171,7 +171,7 @@ Hlt1TwoTrackKs: 3 3 Hlt1D2KK: 21 23 Hlt1D2KPi: 39 41 Hlt1D2PiPi: 38 39 -Hlt1OneMuonTrackLine: 605 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 5 5 Hlt1LowPtMuon: 308 416 @@ -221,9 +221,9 @@ Hlt1D2KPiAlignment: 39 41 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 5102 -Total tracks: 4064 -Total SVs: 3163 -Total hits: 82247 -Total stdinfo: 50266 +Total decisions: 5119 +Total tracks: 3935 +Total SVs: 3078 +Total hits: 79744 +Total stdinfo: 48911 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt index 326d0b7fc11..89f5dc93b65 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt @@ -109,7 +109,7 @@ Hlt1TwoTrackKs: 3/ 1000, ( 90.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 37/ 1000, ( 1110.00 +/- 179.08) kHz -Hlt1OneMuonTrackLine: 610/ 1000, (18300.00 +/- 462.72) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 5/ 1000, ( 150.00 +/- 66.91) kHz Hlt1LowPtMuon: 312/ 1000, ( 9360.00 +/- 439.53) kHz @@ -171,7 +171,7 @@ Hlt1TwoTrackKs: 3 3 Hlt1D2KK: 21 23 Hlt1D2KPi: 36 38 Hlt1D2PiPi: 37 38 -Hlt1OneMuonTrackLine: 610 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 5 5 Hlt1LowPtMuon: 312 417 @@ -221,9 +221,9 @@ Hlt1D2KPiAlignment: 36 38 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 5091 -Total tracks: 4029 -Total SVs: 3138 -Total hits: 81522 -Total stdinfo: 49875 +Total decisions: 5120 +Total tracks: 3913 +Total SVs: 3043 +Total hits: 79317 +Total stdinfo: 48596 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt index 87f942e1926..89f5dc93b65 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt @@ -109,7 +109,7 @@ Hlt1TwoTrackKs: 3/ 1000, ( 90.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 37/ 1000, ( 1110.00 +/- 179.08) kHz -Hlt1OneMuonTrackLine: 611/ 1000, (18330.00 +/- 462.51) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 5/ 1000, ( 150.00 +/- 66.91) kHz Hlt1LowPtMuon: 312/ 1000, ( 9360.00 +/- 439.53) kHz @@ -171,7 +171,7 @@ Hlt1TwoTrackKs: 3 3 Hlt1D2KK: 21 23 Hlt1D2KPi: 36 38 Hlt1D2PiPi: 37 38 -Hlt1OneMuonTrackLine: 611 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 5 5 Hlt1LowPtMuon: 312 417 @@ -221,9 +221,9 @@ Hlt1D2KPiAlignment: 36 38 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 5092 -Total tracks: 4029 -Total SVs: 3138 -Total hits: 81522 -Total stdinfo: 49876 +Total decisions: 5120 +Total tracks: 3913 +Total SVs: 3043 +Total hits: 79317 +Total stdinfo: 48596 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt index bf6351ab9d7..21b6bef124b 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt @@ -68,7 +68,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 19/ 1000, ( 570.00 +/- 129.52) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 32/ 1000, ( 960.00 +/- 166.97) kHz -Hlt1OneMuonTrackLine: 612/ 1000, (18360.00 +/- 462.29) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 6/ 1000, ( 180.00 +/- 73.26) kHz Hlt1LowPtMuon: 20/ 1000, ( 600.00 +/- 132.82) kHz @@ -130,7 +130,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 19 23 Hlt1D2KPi: 36 39 Hlt1D2PiPi: 32 35 -Hlt1OneMuonTrackLine: 612 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 6 7 Hlt1LowPtMuon: 20 20 @@ -180,9 +180,9 @@ Hlt1D2KPiAlignment: 36 39 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 3 3 -Total decisions: 4298 +Total decisions: 4367 Total tracks: 1975 Total SVs: 1537 Total hits: 40931 -Total stdinfo: 26246 +Total stdinfo: 26315 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt index 2bbbb1263c7..acdbe5d81be 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt @@ -68,7 +68,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 33/ 1000, ( 990.00 +/- 169.47) kHz Hlt1D2PiPi: 27/ 1000, ( 810.00 +/- 153.77) kHz -Hlt1OneMuonTrackLine: 605/ 1000, (18150.00 +/- 463.76) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 7/ 1000, ( 210.00 +/- 79.09) kHz Hlt1LowPtMuon: 18/ 1000, ( 540.00 +/- 126.13) kHz @@ -130,7 +130,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 22 25 Hlt1D2KPi: 33 34 Hlt1D2PiPi: 27 29 -Hlt1OneMuonTrackLine: 605 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 7 7 Hlt1LowPtMuon: 18 18 @@ -180,9 +180,9 @@ Hlt1D2KPiAlignment: 33 34 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 4232 +Total decisions: 4308 Total tracks: 1865 Total SVs: 1437 Total hits: 38522 -Total stdinfo: 24900 +Total stdinfo: 24976 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt index d6f70ca3fc3..21b6bef124b 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt @@ -68,7 +68,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 19/ 1000, ( 570.00 +/- 129.52) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 32/ 1000, ( 960.00 +/- 166.97) kHz -Hlt1OneMuonTrackLine: 610/ 1000, (18300.00 +/- 462.72) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 6/ 1000, ( 180.00 +/- 73.26) kHz Hlt1LowPtMuon: 20/ 1000, ( 600.00 +/- 132.82) kHz @@ -130,7 +130,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 19 23 Hlt1D2KPi: 36 39 Hlt1D2PiPi: 32 35 -Hlt1OneMuonTrackLine: 610 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 6 7 Hlt1LowPtMuon: 20 20 @@ -180,9 +180,9 @@ Hlt1D2KPiAlignment: 36 39 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 3 3 -Total decisions: 4296 +Total decisions: 4367 Total tracks: 1975 Total SVs: 1537 Total hits: 40931 -Total stdinfo: 26244 +Total stdinfo: 26315 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt index 96f3a20d68d..21b6bef124b 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt @@ -68,7 +68,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 19/ 1000, ( 570.00 +/- 129.52) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 32/ 1000, ( 960.00 +/- 166.97) kHz -Hlt1OneMuonTrackLine: 611/ 1000, (18330.00 +/- 462.51) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 6/ 1000, ( 180.00 +/- 73.26) kHz Hlt1LowPtMuon: 20/ 1000, ( 600.00 +/- 132.82) kHz @@ -130,7 +130,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 19 23 Hlt1D2KPi: 36 39 Hlt1D2PiPi: 32 35 -Hlt1OneMuonTrackLine: 611 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 6 7 Hlt1LowPtMuon: 20 20 @@ -180,9 +180,9 @@ Hlt1D2KPiAlignment: 36 39 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 3 3 -Total decisions: 4297 +Total decisions: 4367 Total tracks: 1975 Total SVs: 1537 Total hits: 40931 -Total stdinfo: 26245 +Total stdinfo: 26315 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt index d3783095807..a34c8504ebe 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 28/ 1000, ( 840.00 +/- 156.51) kHz -Hlt1OneMuonTrackLine: 610/ 1000, (18300.00 +/- 462.72) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 164/ 1000, ( 4920.00 +/- 351.27) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 42 Hlt1D2PiPi: 28 31 -Hlt1OneMuonTrackLine: 610 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 2 Hlt1LowPtMuon: 164 191 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 42 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4802 +Total decisions: 4873 Total tracks: 3525 Total SVs: 2975 Total hits: 86137 -Total stdinfo: 44902 +Total stdinfo: 44973 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt index 65381c32ce8..cac9fdf0365 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 30/ 1000, ( 900.00 +/- 161.83) kHz -Hlt1OneMuonTrackLine: 605/ 1000, (18150.00 +/- 463.76) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 4/ 1000, ( 120.00 +/- 59.88) kHz Hlt1LowPtMuon: 157/ 1000, ( 4710.00 +/- 345.13) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 42 Hlt1D2PiPi: 30 33 -Hlt1OneMuonTrackLine: 605 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 4 4 Hlt1LowPtMuon: 157 182 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 42 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4723 +Total decisions: 4799 Total tracks: 3335 Total SVs: 2794 Total hits: 81411 -Total stdinfo: 42579 +Total stdinfo: 42655 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt index d3783095807..a34c8504ebe 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 28/ 1000, ( 840.00 +/- 156.51) kHz -Hlt1OneMuonTrackLine: 610/ 1000, (18300.00 +/- 462.72) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 164/ 1000, ( 4920.00 +/- 351.27) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 42 Hlt1D2PiPi: 28 31 -Hlt1OneMuonTrackLine: 610 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 2 Hlt1LowPtMuon: 164 191 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 42 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4802 +Total decisions: 4873 Total tracks: 3525 Total SVs: 2975 Total hits: 86137 -Total stdinfo: 44902 +Total stdinfo: 44973 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt index a339007991f..a34c8504ebe 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 28/ 1000, ( 840.00 +/- 156.51) kHz -Hlt1OneMuonTrackLine: 609/ 1000, (18270.00 +/- 462.93) kHz +Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 164/ 1000, ( 4920.00 +/- 351.27) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 42 Hlt1D2PiPi: 28 31 -Hlt1OneMuonTrackLine: 609 0 +Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 2 Hlt1LowPtMuon: 164 191 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 39 42 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4801 +Total decisions: 4873 Total tracks: 3525 Total SVs: 2975 Total hits: 86137 -Total stdinfo: 44901 +Total stdinfo: 44973 diff --git a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt index c4220b35086..f7d8fed02bd 100644 --- a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt +++ b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 6/ 1000, ( 180.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 31/ 1000, ( 930.00 +/- 164.42) kHz Hlt1D2PiPi: 22/ 1000, ( 660.00 +/- 139.16) kHz -Hlt1OneMuonTrackLine: 617/ 1000, (18510.00 +/- 461.17) kHz +Hlt1OneMuonTrackLine: 675/ 1000, (20250.00 +/- 444.34) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 135/ 1000, ( 4050.00 +/- 324.19) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 6 6 Hlt1D2KK: 22 24 Hlt1D2KPi: 31 33 Hlt1D2PiPi: 22 23 -Hlt1OneMuonTrackLine: 617 0 +Hlt1OneMuonTrackLine: 675 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 3 Hlt1LowPtMuon: 135 155 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 31 33 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 4518 +Total decisions: 4576 Total tracks: 3075 Total SVs: 2535 Total hits: 76091 -Total stdinfo: 39258 +Total stdinfo: 39316 diff --git a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt index f8eefe6c05b..0466be2b023 100644 --- a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt +++ b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 6/ 1000, ( 180.00 +/- Hlt1D2KK: 17/ 1000, ( 510.00 +/- 122.64) kHz Hlt1D2KPi: 27/ 1000, ( 810.00 +/- 153.77) kHz Hlt1D2PiPi: 17/ 1000, ( 510.00 +/- 122.64) kHz -Hlt1OneMuonTrackLine: 605/ 1000, (18150.00 +/- 463.76) kHz +Hlt1OneMuonTrackLine: 675/ 1000, (20250.00 +/- 444.34) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1LowPtMuon: 125/ 1000, ( 3750.00 +/- 313.75) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 6 6 Hlt1D2KK: 17 19 Hlt1D2KPi: 27 30 Hlt1D2PiPi: 17 18 -Hlt1OneMuonTrackLine: 605 0 +Hlt1OneMuonTrackLine: 675 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 3 4 Hlt1LowPtMuon: 125 142 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 27 30 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 3 3 -Total decisions: 4444 +Total decisions: 4514 Total tracks: 2947 Total SVs: 2389 Total hits: 72752 -Total stdinfo: 37576 +Total stdinfo: 37646 diff --git a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt index d2799ad419f..f7d8fed02bd 100644 --- a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt +++ b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 6/ 1000, ( 180.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 31/ 1000, ( 930.00 +/- 164.42) kHz Hlt1D2PiPi: 22/ 1000, ( 660.00 +/- 139.16) kHz -Hlt1OneMuonTrackLine: 607/ 1000, (18210.00 +/- 463.35) kHz +Hlt1OneMuonTrackLine: 675/ 1000, (20250.00 +/- 444.34) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 135/ 1000, ( 4050.00 +/- 324.19) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 6 6 Hlt1D2KK: 22 24 Hlt1D2KPi: 31 33 Hlt1D2PiPi: 22 23 -Hlt1OneMuonTrackLine: 607 0 +Hlt1OneMuonTrackLine: 675 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 3 Hlt1LowPtMuon: 135 155 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 31 33 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 4508 +Total decisions: 4576 Total tracks: 3075 Total SVs: 2535 Total hits: 76091 -Total stdinfo: 39248 +Total stdinfo: 39316 diff --git a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt index 229916974bc..f7d8fed02bd 100644 --- a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt +++ b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 6/ 1000, ( 180.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 31/ 1000, ( 930.00 +/- 164.42) kHz Hlt1D2PiPi: 22/ 1000, ( 660.00 +/- 139.16) kHz -Hlt1OneMuonTrackLine: 616/ 1000, (18480.00 +/- 461.40) kHz +Hlt1OneMuonTrackLine: 675/ 1000, (20250.00 +/- 444.34) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1LowPtMuon: 135/ 1000, ( 4050.00 +/- 324.19) kHz @@ -147,7 +147,7 @@ Hlt1TwoTrackKs: 6 6 Hlt1D2KK: 22 24 Hlt1D2KPi: 31 33 Hlt1D2PiPi: 22 23 -Hlt1OneMuonTrackLine: 616 0 +Hlt1OneMuonTrackLine: 675 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 3 Hlt1LowPtMuon: 135 155 @@ -197,9 +197,9 @@ Hlt1D2KPiAlignment: 31 33 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 4517 +Total decisions: 4576 Total tracks: 3075 Total SVs: 2535 Total hits: 76091 -Total stdinfo: 39257 +Total stdinfo: 39316 diff --git a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt index 45955ec8974..83ff6702df8 100644 --- a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt +++ b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 2/ 1000, ( 60.00 +/- Hlt1D2KK: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1D2KPi: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1D2PiPi: 2/ 1000, ( 60.00 +/- 42.38) kHz -Hlt1OneMuonTrackLine: 484/ 1000, (14520.00 +/- 474.10) kHz +Hlt1OneMuonTrackLine: 535/ 1000, (16050.00 +/- 473.18) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1LowPtMuon: 77/ 1000, ( 2310.00 +/- 252.91) kHz @@ -157,7 +157,7 @@ Hlt1TwoTrackKs: 2 2 Hlt1D2KK: 2 3 Hlt1D2KPi: 3 3 Hlt1D2PiPi: 2 2 -Hlt1OneMuonTrackLine: 484 0 +Hlt1OneMuonTrackLine: 535 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 1 1 Hlt1LowPtMuon: 77 82 @@ -217,9 +217,9 @@ Hlt1_SMOG2_2BodyGeneric: 0 0 Hlt1_SMOG2_SingleTrack: 0 0 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 2857 +Total decisions: 2908 Total tracks: 610 Total SVs: 343 Total hits: 14212 -Total stdinfo: 9109 +Total stdinfo: 9160 diff --git a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt index 5b721b62d61..761b1618d35 100644 --- a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt +++ b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 2/ 1000, ( 60.00 +/- Hlt1D2KK: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1D2KPi: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1D2PiPi: 2/ 1000, ( 60.00 +/- 42.38) kHz -Hlt1OneMuonTrackLine: 478/ 1000, (14340.00 +/- 473.88) kHz +Hlt1OneMuonTrackLine: 535/ 1000, (16050.00 +/- 473.18) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1LowPtMuon: 75/ 1000, ( 2250.00 +/- 249.87) kHz @@ -157,7 +157,7 @@ Hlt1TwoTrackKs: 2 2 Hlt1D2KK: 1 2 Hlt1D2KPi: 3 3 Hlt1D2PiPi: 2 2 -Hlt1OneMuonTrackLine: 478 0 +Hlt1OneMuonTrackLine: 535 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 1 1 Hlt1LowPtMuon: 75 82 @@ -217,9 +217,9 @@ Hlt1_SMOG2_2BodyGeneric: 0 0 Hlt1_SMOG2_SingleTrack: 0 0 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 2849 +Total decisions: 2906 Total tracks: 593 Total SVs: 321 Total hits: 13747 -Total stdinfo: 8877 +Total stdinfo: 8934 diff --git a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt index 6685d9354e7..83ff6702df8 100644 --- a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt +++ b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 2/ 1000, ( 60.00 +/- Hlt1D2KK: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1D2KPi: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1D2PiPi: 2/ 1000, ( 60.00 +/- 42.38) kHz -Hlt1OneMuonTrackLine: 479/ 1000, (14370.00 +/- 473.92) kHz +Hlt1OneMuonTrackLine: 535/ 1000, (16050.00 +/- 473.18) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1LowPtMuon: 77/ 1000, ( 2310.00 +/- 252.91) kHz @@ -157,7 +157,7 @@ Hlt1TwoTrackKs: 2 2 Hlt1D2KK: 2 3 Hlt1D2KPi: 3 3 Hlt1D2PiPi: 2 2 -Hlt1OneMuonTrackLine: 479 0 +Hlt1OneMuonTrackLine: 535 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 1 1 Hlt1LowPtMuon: 77 82 @@ -217,9 +217,9 @@ Hlt1_SMOG2_2BodyGeneric: 0 0 Hlt1_SMOG2_SingleTrack: 0 0 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 2852 +Total decisions: 2908 Total tracks: 610 Total SVs: 343 Total hits: 14212 -Total stdinfo: 9104 +Total stdinfo: 9160 diff --git a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt index 8440ecabd1a..83ff6702df8 100644 --- a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt +++ b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt @@ -85,7 +85,7 @@ Hlt1TwoTrackKs: 2/ 1000, ( 60.00 +/- Hlt1D2KK: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1D2KPi: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1D2PiPi: 2/ 1000, ( 60.00 +/- 42.38) kHz -Hlt1OneMuonTrackLine: 481/ 1000, (14430.00 +/- 474.00) kHz +Hlt1OneMuonTrackLine: 535/ 1000, (16050.00 +/- 473.18) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1LowPtMuon: 77/ 1000, ( 2310.00 +/- 252.91) kHz @@ -157,7 +157,7 @@ Hlt1TwoTrackKs: 2 2 Hlt1D2KK: 2 3 Hlt1D2KPi: 3 3 Hlt1D2PiPi: 2 2 -Hlt1OneMuonTrackLine: 481 0 +Hlt1OneMuonTrackLine: 535 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 1 1 Hlt1LowPtMuon: 77 82 @@ -217,9 +217,9 @@ Hlt1_SMOG2_2BodyGeneric: 0 0 Hlt1_SMOG2_SingleTrack: 0 0 Hlt1_SMOG2_DiMuonHighMass: 0 0 -Total decisions: 2854 +Total decisions: 2908 Total tracks: 610 Total SVs: 343 Total hits: 14212 -Total stdinfo: 9106 +Total stdinfo: 9160 -- GitLab From e96439381f6c9c39a51b43d3c78eb4666c452855 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 5 Oct 2022 11:42:41 +0200 Subject: [PATCH 14/17] Update CI references patch generated by https://gitlab.cern.ch/lhcb/Allen/-/jobs/24966086 --- ...DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt | 2 ++ ...I_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt | 2 ++ ...cluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt | 2 ++ ...nacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt | 2 ++ 4 files changed, 8 insertions(+) diff --git a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt index f7d8fed02bd..b4c2dda9259 100644 --- a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt +++ b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 6/ 1000, ( 180.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 31/ 1000, ( 930.00 +/- 164.42) kHz Hlt1D2PiPi: 22/ 1000, ( 660.00 +/- 139.16) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 675/ 1000, (20250.00 +/- 444.34) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz @@ -147,6 +148,7 @@ Hlt1TwoTrackKs: 6 6 Hlt1D2KK: 22 24 Hlt1D2KPi: 31 33 Hlt1D2PiPi: 22 23 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 675 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 3 diff --git a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt index 0466be2b023..4632fa2ac3d 100644 --- a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt +++ b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 6/ 1000, ( 180.00 +/- Hlt1D2KK: 17/ 1000, ( 510.00 +/- 122.64) kHz Hlt1D2KPi: 27/ 1000, ( 810.00 +/- 153.77) kHz Hlt1D2PiPi: 17/ 1000, ( 510.00 +/- 122.64) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 675/ 1000, (20250.00 +/- 444.34) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 3/ 1000, ( 90.00 +/- 51.88) kHz @@ -147,6 +148,7 @@ Hlt1TwoTrackKs: 6 6 Hlt1D2KK: 17 19 Hlt1D2KPi: 27 30 Hlt1D2PiPi: 17 18 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 675 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 3 4 diff --git a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt index f7d8fed02bd..b4c2dda9259 100644 --- a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt +++ b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 6/ 1000, ( 180.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 31/ 1000, ( 930.00 +/- 164.42) kHz Hlt1D2PiPi: 22/ 1000, ( 660.00 +/- 139.16) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 675/ 1000, (20250.00 +/- 444.34) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz @@ -147,6 +148,7 @@ Hlt1TwoTrackKs: 6 6 Hlt1D2KK: 22 24 Hlt1D2KPi: 31 33 Hlt1D2PiPi: 22 23 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 675 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 3 diff --git a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt index f7d8fed02bd..b4c2dda9259 100644 --- a/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt +++ b/test/reference/Upgrade_BsPhiPhi_MD_FTv4_DIGI_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 6/ 1000, ( 180.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 31/ 1000, ( 930.00 +/- 164.42) kHz Hlt1D2PiPi: 22/ 1000, ( 660.00 +/- 139.16) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 675/ 1000, (20250.00 +/- 444.34) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz @@ -147,6 +148,7 @@ Hlt1TwoTrackKs: 6 6 Hlt1D2KK: 22 24 Hlt1D2KPi: 31 33 Hlt1D2PiPi: 22 23 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 675 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 3 -- GitLab From 0e5552136d33280a19967a379e53de768612518f Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 5 Oct 2022 13:06:56 +0200 Subject: [PATCH 15/17] Update CI references patch generated by https://gitlab.cern.ch/lhcb/Allen/-/jobs/24966116 --- ...r_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt | 2 ++ ...1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt | 2 ++ ...bID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt | 2 ++ ...HCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt | 2 ++ ...1_newLHCbID_hlt1_pp_matching_validation_a5000.txt | 2 ++ ...ewLHCbID_hlt1_pp_matching_validation_epyc7502.txt | 2 ++ ..._hlt1_pp_matching_validation_geforcertx2080ti.txt | 2 ++ ...ID_hlt1_pp_matching_validation_geforcertx3090.txt | 2 ++ ...cluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt | 2 ++ ...ster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt | 2 ++ ...newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt | 2 ++ ...1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt | 2 ++ ..._1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt | 12 +++++++----- ..._newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt | 12 +++++++----- ...ID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt | 12 +++++++----- ...CbID_hlt1_pp_veloSP_validation_geforcertx3090.txt | 12 +++++++----- ...1_newLHCbID_hlt1_pp_matching_validation_a5000.txt | 8 +++++--- ...ewLHCbID_hlt1_pp_matching_validation_epyc7502.txt | 8 +++++--- ..._hlt1_pp_matching_validation_geforcertx2080ti.txt | 8 +++++--- ...ID_hlt1_pp_matching_validation_geforcertx3090.txt | 8 +++++--- ...r_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt | 2 ++ ...1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt | 2 ++ ...bID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt | 2 ++ ...HCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt | 2 ++ ...cluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt | 8 +++++--- ...ster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt | 2 ++ ...newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt | 8 +++++--- ...1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt | 8 +++++--- ...0_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt | 2 ++ ...1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt | 2 ++ ...bID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt | 2 ++ ...HCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt | 2 ++ 32 files changed, 105 insertions(+), 41 deletions(-) diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt index ae40bd02acf..2e262e392af 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt @@ -71,6 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -143,6 +144,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt index 1c49fe89513..9af462156a3 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt @@ -71,6 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -143,6 +144,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt index ae40bd02acf..2e262e392af 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt @@ -71,6 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -143,6 +144,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt index ae40bd02acf..2e262e392af 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt @@ -71,6 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -143,6 +144,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt index 0168abbc259..24f8d2e32eb 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt @@ -93,6 +93,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -155,6 +156,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt index 07bceb4f468..54f5cce77c2 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt @@ -93,6 +93,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -155,6 +156,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt index 0168abbc259..24f8d2e32eb 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt @@ -93,6 +93,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -155,6 +156,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt index 0168abbc259..24f8d2e32eb 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt @@ -93,6 +93,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -155,6 +156,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt index 793ce284314..e5e3de43ad0 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt @@ -71,6 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -133,6 +134,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt index 98f5317ce8a..5bffe9726a0 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt @@ -71,6 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -133,6 +134,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt index 793ce284314..e5e3de43ad0 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt @@ -71,6 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -133,6 +134,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 diff --git a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt index 793ce284314..e5e3de43ad0 100644 --- a/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt +++ b/test/reference/SMOG2_pHe_5k_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt @@ -71,6 +71,7 @@ Hlt1TwoTrackKs: 0/ 1000, ( 0.00 +/- Hlt1D2KK: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2KPi: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1D2PiPi: 0/ 1000, ( 0.00 +/- 0.00) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 88/ 1000, ( 2640.00 +/- 268.76) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 0/ 1000, ( 0.00 +/- 0.00) kHz @@ -133,6 +134,7 @@ Hlt1TwoTrackKs: 0 0 Hlt1D2KK: 0 0 Hlt1D2KPi: 0 0 Hlt1D2PiPi: 0 0 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 88 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 0 0 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt index b93f6773470..1da09020f6c 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_a5000.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 29/ 1000, ( 870.00 +/- 159.20) kHz +Hlt1TwoKs: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz @@ -147,6 +148,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 43 Hlt1D2PiPi: 29 33 +Hlt1TwoKs: 2 2 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 2 2 @@ -197,9 +199,9 @@ Hlt1D2KPiAlignment: 39 43 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4873 -Total tracks: 3519 -Total SVs: 2972 -Total hits: 85957 -Total stdinfo: 44913 +Total decisions: 4875 +Total tracks: 3520 +Total SVs: 2975 +Total hits: 85980 +Total stdinfo: 44935 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt index 88400d2f83d..89cf6ff7215 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_epyc7502.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 40/ 1000, ( 1200.00 +/- 185.90) kHz Hlt1D2PiPi: 31/ 1000, ( 930.00 +/- 164.42) kHz +Hlt1TwoKs: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 4/ 1000, ( 120.00 +/- 59.88) kHz @@ -147,6 +148,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 22 25 Hlt1D2KPi: 40 43 Hlt1D2PiPi: 31 34 +Hlt1TwoKs: 2 2 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 4 4 @@ -197,9 +199,9 @@ Hlt1D2KPiAlignment: 40 43 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4803 -Total tracks: 3329 -Total SVs: 2793 -Total hits: 81238 -Total stdinfo: 42607 +Total decisions: 4805 +Total tracks: 3330 +Total SVs: 2796 +Total hits: 81261 +Total stdinfo: 42629 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt index b93f6773470..1da09020f6c 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx2080ti.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 29/ 1000, ( 870.00 +/- 159.20) kHz +Hlt1TwoKs: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz @@ -147,6 +148,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 43 Hlt1D2PiPi: 29 33 +Hlt1TwoKs: 2 2 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 2 2 @@ -197,9 +199,9 @@ Hlt1D2KPiAlignment: 39 43 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4873 -Total tracks: 3519 -Total SVs: 2972 -Total hits: 85957 -Total stdinfo: 44913 +Total decisions: 4875 +Total tracks: 3520 +Total SVs: 2975 +Total hits: 85980 +Total stdinfo: 44935 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx3090.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx3090.txt index b93f6773470..1da09020f6c 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx3090.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_1k_newLHCbID_hlt1_pp_veloSP_validation_geforcertx3090.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 29/ 1000, ( 870.00 +/- 159.20) kHz +Hlt1TwoKs: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz @@ -147,6 +148,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 43 Hlt1D2PiPi: 29 33 +Hlt1TwoKs: 2 2 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 2 2 @@ -197,9 +199,9 @@ Hlt1D2KPiAlignment: 39 43 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4873 -Total tracks: 3519 -Total SVs: 2972 -Total hits: 85957 -Total stdinfo: 44913 +Total decisions: 4875 +Total tracks: 3520 +Total SVs: 2975 +Total hits: 85980 +Total stdinfo: 44935 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt index 89f5dc93b65..e1e3e8aedca 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_a5000.txt @@ -109,6 +109,7 @@ Hlt1TwoTrackKs: 3/ 1000, ( 90.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 37/ 1000, ( 1110.00 +/- 179.08) kHz +Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 5/ 1000, ( 150.00 +/- 66.91) kHz @@ -171,6 +172,7 @@ Hlt1TwoTrackKs: 3 3 Hlt1D2KK: 21 23 Hlt1D2KPi: 36 38 Hlt1D2PiPi: 37 38 +Hlt1TwoKs: 1 1 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 5 5 @@ -221,9 +223,9 @@ Hlt1D2KPiAlignment: 36 38 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 5120 +Total decisions: 5121 Total tracks: 3913 -Total SVs: 3043 +Total SVs: 3045 Total hits: 79317 -Total stdinfo: 48596 +Total stdinfo: 48605 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt index c1e165b947b..0b5b364e5bc 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_epyc7502.txt @@ -109,6 +109,7 @@ Hlt1TwoTrackKs: 3/ 1000, ( 90.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 38/ 1000, ( 1140.00 +/- 181.38) kHz +Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 5/ 1000, ( 150.00 +/- 66.91) kHz @@ -171,6 +172,7 @@ Hlt1TwoTrackKs: 3 3 Hlt1D2KK: 21 23 Hlt1D2KPi: 39 41 Hlt1D2PiPi: 38 39 +Hlt1TwoKs: 1 1 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 5 5 @@ -221,9 +223,9 @@ Hlt1D2KPiAlignment: 39 41 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 5119 +Total decisions: 5120 Total tracks: 3935 -Total SVs: 3078 +Total SVs: 3080 Total hits: 79744 -Total stdinfo: 48911 +Total stdinfo: 48920 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt index 89f5dc93b65..e1e3e8aedca 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx2080ti.txt @@ -109,6 +109,7 @@ Hlt1TwoTrackKs: 3/ 1000, ( 90.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 37/ 1000, ( 1110.00 +/- 179.08) kHz +Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 5/ 1000, ( 150.00 +/- 66.91) kHz @@ -171,6 +172,7 @@ Hlt1TwoTrackKs: 3 3 Hlt1D2KK: 21 23 Hlt1D2KPi: 36 38 Hlt1D2PiPi: 37 38 +Hlt1TwoKs: 1 1 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 5 5 @@ -221,9 +223,9 @@ Hlt1D2KPiAlignment: 36 38 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 5120 +Total decisions: 5121 Total tracks: 3913 -Total SVs: 3043 +Total SVs: 3045 Total hits: 79317 -Total stdinfo: 48596 +Total stdinfo: 48605 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt index 89f5dc93b65..e1e3e8aedca 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_matching_validation_geforcertx3090.txt @@ -109,6 +109,7 @@ Hlt1TwoTrackKs: 3/ 1000, ( 90.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 37/ 1000, ( 1110.00 +/- 179.08) kHz +Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 5/ 1000, ( 150.00 +/- 66.91) kHz @@ -171,6 +172,7 @@ Hlt1TwoTrackKs: 3 3 Hlt1D2KK: 21 23 Hlt1D2KPi: 36 38 Hlt1D2PiPi: 37 38 +Hlt1TwoKs: 1 1 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 5 5 @@ -221,9 +223,9 @@ Hlt1D2KPiAlignment: 36 38 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 2 2 -Total decisions: 5120 +Total decisions: 5121 Total tracks: 3913 -Total SVs: 3043 +Total SVs: 3045 Total hits: 79317 -Total stdinfo: 48596 +Total stdinfo: 48605 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt index 21b6bef124b..72b073d9a57 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_a5000.txt @@ -68,6 +68,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 19/ 1000, ( 570.00 +/- 129.52) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 32/ 1000, ( 960.00 +/- 166.97) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 6/ 1000, ( 180.00 +/- 73.26) kHz @@ -130,6 +131,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 19 23 Hlt1D2KPi: 36 39 Hlt1D2PiPi: 32 35 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 6 7 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt index acdbe5d81be..fbfb051fab8 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_epyc7502.txt @@ -68,6 +68,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 22/ 1000, ( 660.00 +/- 139.16) kHz Hlt1D2KPi: 33/ 1000, ( 990.00 +/- 169.47) kHz Hlt1D2PiPi: 27/ 1000, ( 810.00 +/- 153.77) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 7/ 1000, ( 210.00 +/- 79.09) kHz @@ -130,6 +131,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 22 25 Hlt1D2KPi: 33 34 Hlt1D2PiPi: 27 29 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 7 7 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt index 21b6bef124b..72b073d9a57 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx2080ti.txt @@ -68,6 +68,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 19/ 1000, ( 570.00 +/- 129.52) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 32/ 1000, ( 960.00 +/- 166.97) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 6/ 1000, ( 180.00 +/- 73.26) kHz @@ -130,6 +131,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 19 23 Hlt1D2KPi: 36 39 Hlt1D2PiPi: 32 35 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 6 7 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt index 21b6bef124b..72b073d9a57 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_no_ut_validation_geforcertx3090.txt @@ -68,6 +68,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 19/ 1000, ( 570.00 +/- 129.52) kHz Hlt1D2KPi: 36/ 1000, ( 1080.00 +/- 176.73) kHz Hlt1D2PiPi: 32/ 1000, ( 960.00 +/- 166.97) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 6/ 1000, ( 180.00 +/- 73.26) kHz @@ -130,6 +131,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 19 23 Hlt1D2KPi: 36 39 Hlt1D2PiPi: 32 35 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 6 7 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt index a34c8504ebe..29ee7a7d2e5 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_a5000.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 28/ 1000, ( 840.00 +/- 156.51) kHz +Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz @@ -147,6 +148,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 42 Hlt1D2PiPi: 28 31 +Hlt1TwoKs: 1 1 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 2 @@ -197,9 +199,9 @@ Hlt1D2KPiAlignment: 39 42 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4873 +Total decisions: 4874 Total tracks: 3525 -Total SVs: 2975 +Total SVs: 2976 Total hits: 86137 -Total stdinfo: 44973 +Total stdinfo: 44978 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt index cac9fdf0365..97bbf05c045 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_epyc7502.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 30/ 1000, ( 900.00 +/- 161.83) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1SingleHighPtMuonNoMuID: 4/ 1000, ( 120.00 +/- 59.88) kHz @@ -147,6 +148,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 42 Hlt1D2PiPi: 30 33 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 2 2 Hlt1SingleHighPtMuonNoMuID: 4 4 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt index a34c8504ebe..29ee7a7d2e5 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx2080ti.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 28/ 1000, ( 840.00 +/- 156.51) kHz +Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz @@ -147,6 +148,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 42 Hlt1D2PiPi: 28 31 +Hlt1TwoKs: 1 1 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 2 @@ -197,9 +199,9 @@ Hlt1D2KPiAlignment: 39 42 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4873 +Total decisions: 4874 Total tracks: 3525 -Total SVs: 2975 +Total SVs: 2976 Total hits: 86137 -Total stdinfo: 44973 +Total stdinfo: 44978 diff --git a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt index a34c8504ebe..29ee7a7d2e5 100644 --- a/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt +++ b/test/reference/SciFiv6_upgrade_DC19_01_Bs2PhiPhiMD_retinacluster_v1_newLHCbID_hlt1_pp_validation_geforcertx3090.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 4/ 1000, ( 120.00 +/- Hlt1D2KK: 21/ 1000, ( 630.00 +/- 136.03) kHz Hlt1D2KPi: 39/ 1000, ( 1170.00 +/- 183.66) kHz Hlt1D2PiPi: 28/ 1000, ( 840.00 +/- 156.51) kHz +Hlt1TwoKs: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1OneMuonTrackLine: 681/ 1000, (20430.00 +/- 442.17) kHz Hlt1SingleHighPtMuon: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1SingleHighPtMuonNoMuID: 2/ 1000, ( 60.00 +/- 42.38) kHz @@ -147,6 +148,7 @@ Hlt1TwoTrackKs: 4 4 Hlt1D2KK: 21 24 Hlt1D2KPi: 39 42 Hlt1D2PiPi: 28 31 +Hlt1TwoKs: 1 1 Hlt1OneMuonTrackLine: 681 0 Hlt1SingleHighPtMuon: 3 3 Hlt1SingleHighPtMuonNoMuID: 2 2 @@ -197,9 +199,9 @@ Hlt1D2KPiAlignment: 39 42 Hlt1DiMuonHighMassAlignment: 0 0 Hlt1DisplacedDiMuonAlignment: 1 1 -Total decisions: 4873 +Total decisions: 4874 Total tracks: 3525 -Total SVs: 2975 +Total SVs: 2976 Total hits: 86137 -Total stdinfo: 44973 +Total stdinfo: 44978 diff --git a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt index 83ff6702df8..92204beeec9 100644 --- a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt +++ b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_a5000.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 2/ 1000, ( 60.00 +/- Hlt1D2KK: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1D2KPi: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1D2PiPi: 2/ 1000, ( 60.00 +/- 42.38) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 535/ 1000, (16050.00 +/- 473.18) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 1/ 1000, ( 30.00 +/- 29.98) kHz @@ -157,6 +158,7 @@ Hlt1TwoTrackKs: 2 2 Hlt1D2KK: 2 3 Hlt1D2KPi: 3 3 Hlt1D2PiPi: 2 2 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 535 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 1 1 diff --git a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt index 761b1618d35..39f42402e55 100644 --- a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt +++ b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_epyc7502.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 2/ 1000, ( 60.00 +/- Hlt1D2KK: 1/ 1000, ( 30.00 +/- 29.98) kHz Hlt1D2KPi: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1D2PiPi: 2/ 1000, ( 60.00 +/- 42.38) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 535/ 1000, (16050.00 +/- 473.18) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 1/ 1000, ( 30.00 +/- 29.98) kHz @@ -157,6 +158,7 @@ Hlt1TwoTrackKs: 2 2 Hlt1D2KK: 1 2 Hlt1D2KPi: 3 3 Hlt1D2PiPi: 2 2 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 535 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 1 1 diff --git a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt index 83ff6702df8..92204beeec9 100644 --- a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt +++ b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx2080ti.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 2/ 1000, ( 60.00 +/- Hlt1D2KK: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1D2KPi: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1D2PiPi: 2/ 1000, ( 60.00 +/- 42.38) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 535/ 1000, (16050.00 +/- 473.18) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 1/ 1000, ( 30.00 +/- 29.98) kHz @@ -157,6 +158,7 @@ Hlt1TwoTrackKs: 2 2 Hlt1D2KK: 2 3 Hlt1D2KPi: 3 3 Hlt1D2PiPi: 2 2 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 535 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 1 1 diff --git a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt index 83ff6702df8..92204beeec9 100644 --- a/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt +++ b/test/reference/upgrade_mc_minbias_scifi_v5_retinacluster_000_v1_newLHCbID_hlt1_pp_SMOG2_validation_geforcertx3090.txt @@ -85,6 +85,7 @@ Hlt1TwoTrackKs: 2/ 1000, ( 60.00 +/- Hlt1D2KK: 2/ 1000, ( 60.00 +/- 42.38) kHz Hlt1D2KPi: 3/ 1000, ( 90.00 +/- 51.88) kHz Hlt1D2PiPi: 2/ 1000, ( 60.00 +/- 42.38) kHz +Hlt1TwoKs: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1OneMuonTrackLine: 535/ 1000, (16050.00 +/- 473.18) kHz Hlt1SingleHighPtMuon: 0/ 1000, ( 0.00 +/- 0.00) kHz Hlt1SingleHighPtMuonNoMuID: 1/ 1000, ( 30.00 +/- 29.98) kHz @@ -157,6 +158,7 @@ Hlt1TwoTrackKs: 2 2 Hlt1D2KK: 2 3 Hlt1D2KPi: 3 3 Hlt1D2PiPi: 2 2 +Hlt1TwoKs: 0 0 Hlt1OneMuonTrackLine: 535 0 Hlt1SingleHighPtMuon: 0 0 Hlt1SingleHighPtMuonNoMuID: 1 1 -- GitLab From fd4c8090eef8a4a3d661156902dd80b5b0037cc2 Mon Sep 17 00:00:00 2001 From: Saverio Mariani Date: Wed, 5 Oct 2022 18:42:07 +0200 Subject: [PATCH 16/17] Address open threads on MR --- checker/CMakeLists.txt | 1 - .../muon/include/MuonDefinitions.cuh | 56 ++++------ .../include/ConsolidateMuon.cuh | 13 ++- .../match_velo_muon/include/FindMuonHits.cuh | 19 ++-- .../match_velo_muon/src/ConsolidateMuon.cu | 2 +- .../muon/match_velo_muon/src/FindMuonHits.cu | 101 +++++++----------- .../lines/muon/include/OneMuonTrackLine.cuh | 22 ++-- .../lines/muon/src/OneMuonTrackLine.cu | 2 +- stream/sequence/include/Constants.cuh | 4 +- stream/sequence/src/Constants.cpp | 10 +- 10 files changed, 86 insertions(+), 144 deletions(-) diff --git a/checker/CMakeLists.txt b/checker/CMakeLists.txt index 301949babbf..e945a4b5634 100644 --- a/checker/CMakeLists.txt +++ b/checker/CMakeLists.txt @@ -5,4 +5,3 @@ add_subdirectory(clustering) add_subdirectory(tracking) add_subdirectory(pv) add_subdirectory(selections) -file(COPY plotting DESTINATION ./) \ No newline at end of file diff --git a/device/event_model/muon/include/MuonDefinitions.cuh b/device/event_model/muon/include/MuonDefinitions.cuh index c033828d864..05b648c4015 100644 --- a/device/event_model/muon/include/MuonDefinitions.cuh +++ b/device/event_model/muon/include/MuonDefinitions.cuh @@ -96,7 +96,7 @@ namespace Muon { __host__ __device__ const float* params_begin_const() const { return reinterpret_cast(m_params); } }; - struct MatchVeloWindows { + struct MatchWindows { float Xmax[16] = { // R1 R2 R3 R4 100., @@ -130,10 +130,6 @@ namespace Muon { 120., 240., 480., // M4 - // 60., - // 120., - // 240., - // 480., // M5 60., 120., 240., @@ -141,7 +137,7 @@ namespace Muon { }; - float z[4] {15205.f, 16400.f, 17700.f, 18850.f}; + float z_station[4] {15205.f, 16400.f, 17700.f, 18850.f}; }; static constexpr unsigned max_number_of_tracks = 120; } // namespace Constants @@ -149,7 +145,6 @@ namespace Muon { struct MuonTrack { int m_hits[4] {-1, -1, -1, -1}; - int m_velo_index = -1; uint8_t m_number_of_hits = 0; float m_tx; float m_ty; @@ -157,9 +152,7 @@ struct MuonTrack { float m_ay; float m_chi2x; float m_chi2y; - float m_p; - float m_chi2match; - float m_state_muon_index; + int m_state_muon_index; __host__ __device__ MuonTrack() {} @@ -173,34 +166,21 @@ struct MuonTrack { __host__ __device__ uint8_t number_of_hits() const { return m_number_of_hits; } - __host__ __device__ void set_tx(float tx) { m_tx = tx; } - __host__ __device__ void set_ty(float ty) { m_ty = ty; } - __host__ __device__ void set_ax(float ax) { m_ax = ax; } - __host__ __device__ void set_ay(float ay) { m_ay = ay; } - __host__ __device__ void set_chi2x(float chi2x) { m_chi2x = chi2x; } - __host__ __device__ void set_chi2y(float chi2y) { m_chi2y = chi2y; } - __host__ __device__ void set_p(float p) { m_p = p; } - __host__ __device__ void set_chi2match(float chi2) { m_chi2match = chi2; } - __host__ __device__ void set_state(int state) { m_state_muon_index = state; } - __host__ __device__ void set_velo_index(int idx) { m_velo_index = idx; } - - __host__ __device__ float get_tx() const { return m_tx; } - __host__ __device__ float get_ty() const { return m_ty; } - __host__ __device__ float get_ax() const { return m_ax; } - __host__ __device__ float get_ay() const { return m_ay; } - __host__ __device__ float get_chi2x() const { return m_chi2x; } - __host__ __device__ float get_chi2y() const { return m_chi2y; } - __host__ __device__ float get_p() const { return m_p; } - __host__ __device__ float get_pt() const - { - return sqrtf((m_tx * m_tx + m_ty * m_ty) / (1 + m_tx * m_tx + m_ty * m_ty)) * m_p; - } - __host__ __device__ float get_chi2match() const { return m_chi2match; } - __host__ __device__ int get_state() const { return m_state_muon_index; } - __host__ __device__ int get_velo_index() const { return m_velo_index; } - __host__ __device__ float state_x() const { return m_tx * 15205.f + m_ax; } - __host__ __device__ float state_y() const { return m_ty * 15205.f + m_ay; } - __host__ __device__ float state_z() const { return 15205.f; } + __host__ __device__ float& tx() { return m_tx; } + __host__ __device__ float& ty() { return m_ty; } + __host__ __device__ float& ax() { return m_ax; } + __host__ __device__ float& ay() { return m_ay; } + __host__ __device__ float& chi2x() { return m_chi2x; } + __host__ __device__ float& chi2y() { return m_chi2y; } + __host__ __device__ int& state() { return m_state_muon_index; } + + __host__ __device__ float tx() const { return m_tx; } + __host__ __device__ float ty() const { return m_ty; } + __host__ __device__ float ax() const { return m_ax; } + __host__ __device__ float ay() const { return m_ay; } + __host__ __device__ float chi2x() const { return m_chi2x; } + __host__ __device__ float chi2y() const { return m_chi2y; } + __host__ __device__ int state() const { return m_state_muon_index; } }; namespace MatchUpstreamMuon { diff --git a/device/muon/match_velo_muon/include/ConsolidateMuon.cuh b/device/muon/match_velo_muon/include/ConsolidateMuon.cuh index 1e0bfadee72..22d399e62f6 100644 --- a/device/muon/match_velo_muon/include/ConsolidateMuon.cuh +++ b/device/muon/match_velo_muon/include/ConsolidateMuon.cuh @@ -1,5 +1,5 @@ /*****************************************************************************\ -* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +* (c) Copyright 2022 CERN for the benefit of the LHCb Collaboration * \*****************************************************************************/ #pragma once @@ -11,15 +11,18 @@ namespace consolidate_muon { struct Parameters { - HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; MASK_INPUT(dev_event_list_t) dev_event_list; + + HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; + HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; + DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; DEVICE_INPUT(dev_muon_tracks_input_t, MuonTrack) dev_muon_tracks_input; DEVICE_INPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; DEVICE_INPUT(dev_muon_tracks_offsets_t, unsigned) dev_muon_tracks_offsets; - HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; DEVICE_OUTPUT(dev_muon_tracks_output_t, MuonTrack) dev_muon_tracks_output; - PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; + + PROPERTY(block_dim_x_t, "block_dim_x", "block dimension X", unsigned) block_dim_x; }; __global__ void consolidate_muon(Parameters); @@ -39,7 +42,7 @@ namespace consolidate_muon { const Allen::Context& context) const; private: - Property m_block_dim {this, {{64, 1, 1}}}; + Property m_block_dim_x {this, 64}; }; } // namespace consolidate_muon diff --git a/device/muon/match_velo_muon/include/FindMuonHits.cuh b/device/muon/match_velo_muon/include/FindMuonHits.cuh index 7da66fe4599..e98be24bec7 100644 --- a/device/muon/match_velo_muon/include/FindMuonHits.cuh +++ b/device/muon/match_velo_muon/include/FindMuonHits.cuh @@ -1,5 +1,5 @@ /*****************************************************************************\ -* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +* (c) Copyright 2022 CERN for the benefit of the LHCb Collaboration * \*****************************************************************************/ #pragma once @@ -12,24 +12,23 @@ namespace find_muon_hits { struct Parameters { - HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; MASK_INPUT(dev_event_list_t) dev_event_list; + + HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; + + DEVICE_INPUT(dev_muon_hits_t, char) dev_muon_hits; DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; DEVICE_INPUT(dev_station_ocurrences_offset_t, unsigned) dev_station_ocurrences_offset; - HOST_OUTPUT(host_station_ocurrences_offset_t, unsigned) host_station_ocurrences_offset; - DEVICE_INPUT(dev_muon_hits_t, char) dev_muon_hits; - HOST_OUTPUT(host_muon_hits_t, char) host_muon_hits; DEVICE_OUTPUT(dev_muon_tracks_t, MuonTrack) dev_muon_tracks; - HOST_OUTPUT(host_muon_tracks_t, MuonTrack) host_velomuon_tracks; DEVICE_OUTPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; - HOST_OUTPUT(host_muon_number_of_tracks_t, unsigned) host_muon_number_of_tracks; - PROPERTY(block_dim_t, "block_dim", "block dimensions", DeviceDimensions) block_dim; + + PROPERTY(block_dim_x_t, "block_dim_x", "block dimension X", unsigned) block_dim_x; PROPERTY(enable_monitoring_t, "enable_monitoring", "Enable monitoring boolean", bool) enable_monitoring; PROPERTY(required_number_of_hits_t, "required_number_of_hits", "Minimum number of hits to accept a muon stub", int) required_number_of_hits; }; - __global__ void find_muon_hits(Parameters, const Muon::Constants::MatchVeloWindows* dev_match_velo_windows); + __global__ void find_muon_hits(Parameters, const Muon::Constants::MatchWindows* dev_match_windows); struct find_muon_hits_t : public DeviceAlgorithm, Parameters { void set_arguments_size( @@ -51,7 +50,7 @@ namespace find_muon_hits { const Allen::Context& context) const; private: - Property m_block_dim {this, {{64, 1, 1}}}; + Property m_block_dim_x {this, 64}; Property m_enable_monitoring {this, false}; Property m_required_number_of_hits {this, 4}; }; diff --git a/device/muon/match_velo_muon/src/ConsolidateMuon.cu b/device/muon/match_velo_muon/src/ConsolidateMuon.cu index a22e534c3f0..c4bfdbff54a 100644 --- a/device/muon/match_velo_muon/src/ConsolidateMuon.cu +++ b/device/muon/match_velo_muon/src/ConsolidateMuon.cu @@ -26,7 +26,7 @@ void consolidate_muon::consolidate_muon_t::operator()( HostBuffers&, const Allen::Context& context) const { - global_function(consolidate_muon)(dim3(size(arguments)), property(), context)( + global_function(consolidate_muon)(dim3(size(arguments)), property(), context)( arguments); } diff --git a/device/muon/match_velo_muon/src/FindMuonHits.cu b/device/muon/match_velo_muon/src/FindMuonHits.cu index 0c330155fba..62a7b94df21 100644 --- a/device/muon/match_velo_muon/src/FindMuonHits.cu +++ b/device/muon/match_velo_muon/src/FindMuonHits.cu @@ -14,14 +14,9 @@ void find_muon_hits::find_muon_hits_t::set_arguments_size( const Constants&, const HostBuffers&) const { - set_size(arguments, 4 * first(arguments) + 1); - set_size(arguments, first(arguments) * 500 * Muon::Hits::element_size); set_size( arguments, Muon::Constants::max_number_of_tracks * first(arguments)); - set_size( - arguments, Muon::Constants::max_number_of_tracks * first(arguments)); set_size(arguments, first(arguments)); - set_size(arguments, first(arguments)); } void find_muon_hits::find_muon_hits_t::output_monitor( @@ -60,18 +55,17 @@ void find_muon_hits::find_muon_hits_t::output_monitor( handler.branch(tree, "z1", z1); handler.branch(tree, "z2", z2); handler.branch(tree, "z3", z3); - - Allen::copy(arguments, context); - Allen::copy(arguments, context); - - Allen::copy(arguments, context); - Allen::copy(arguments, context); - Allen::synchronize(context); - const auto n_tracks = data(arguments); - const auto tracks = data(arguments); + + const auto host_station_ocurrences_offset = make_host_buffer< dev_station_ocurrences_offset_t >(arguments, context); + const auto host_muon_hits = make_host_buffer< dev_muon_hits_t >(arguments, context); + const auto host_muon_tracks = make_host_buffer< dev_muon_tracks_t >(arguments, context); + const auto host_muon_number_of_tracks = make_host_buffer< dev_muon_number_of_tracks_t >(arguments, context); + + const auto n_tracks = host_muon_number_of_tracks.data(); + const auto tracks = host_muon_tracks.data(); + const auto muon_hits = host_muon_hits.data(); + const auto muon_offsets = host_station_ocurrences_offset.data(); const auto n_events = first(arguments); - const auto muon_hits = data(arguments); - const auto muon_offsets = data(arguments); const auto muon_total_number_of_hits = muon_offsets[n_events * Muon::Constants::n_stations]; const auto event_muon_hits = Muon::ConstHits {muon_hits, muon_total_number_of_hits}; @@ -101,7 +95,7 @@ void find_muon_hits::find_muon_hits_t::output_monitor( std::tie(dx0, dx1, dx2, dx3) = std::make_tuple(dx[0], dx[1], dx[2], dx[3]); std::tie(dy0, dy1, dy2, dy3) = std::make_tuple(dy[0], dy[1], dy[2], dy[3]); std::tie(chi2x, chi2y, tx, ty, ax, ay) = std::make_tuple( - track.get_chi2x(), track.get_chi2y(), track.get_tx(), track.get_ty(), track.get_ax(), track.get_ay()); + track.chi2x(), track.chi2y(), track.tx(), track.ty(), track.ax(), track.ay()); tree->Fill(); } } @@ -116,14 +110,11 @@ void find_muon_hits::find_muon_hits_t::operator()( { Allen::memset_async(arguments, 0, context); - global_function(find_muon_hits)(dim3(size(arguments)), property(), context)( - arguments, constants.dev_match_velo_windows); - if (property()) { - Allen::synchronize(context); - output_monitor(arguments, runtime_options, context); - Allen::synchronize(context); - } + global_function(find_muon_hits)(dim3(size(arguments)), property(), context)( + arguments, constants.dev_match_windows); + if (property()) output_monitor(arguments, runtime_options, context); } + __device__ bool applyWeightedFit(MuonTrack& muon_track, Muon::ConstHits& muon_hits, bool xz) { const auto n_hits_track = muon_track.number_of_hits(); @@ -164,15 +155,15 @@ __device__ bool applyWeightedFit(MuonTrack& muon_track, Muon::ConstHits& muon_hi else return false; if (xz) { - muon_track.set_tx(slope); - muon_track.set_ax(a); - muon_track.set_chi2x(chi2ndof); - muon_track.set_state(muon_track.hit(Muon::Constants::M2)); + muon_track.tx() = slope; + muon_track.ax() = a; + muon_track.chi2x() = chi2ndof; + muon_track.state() = muon_track.hit(Muon::Constants::M2); } else { - muon_track.set_ty(slope); - muon_track.set_ay(a); - muon_track.set_chi2y(chi2ndof); + muon_track.ty() = slope; + muon_track.ay() = a; + muon_track.chi2y() = chi2ndof; } return true; } @@ -189,9 +180,6 @@ __device__ int find_compatible_hit_in_station( { const auto station_offset = station_ocurrences_offset[i_station]; const auto nhits_i_station = station_ocurrences_offset[i_station + 1] - station_offset; - - // TODO: Understand logic here... - // https://gitlab.cern.ch/lhcb/Rec/-/blob/master/Tr/TrackTools/src/StandaloneMuonRec.cpp#L200 const auto xmax = Xmax[i_station * 4 + region_seed]; const auto ymax = Ymax[i_station * 4 + region_seed]; @@ -239,10 +227,10 @@ __device__ void seedAndFind( const unsigned* station_ocurrences_offset, const int* st_order, unsigned n_stations, - Muon::Constants::MatchVeloWindows match_velo_windows, + Muon::Constants::MatchWindows match_windows, int required_station, int required_number_of_hits, - unsigned* number_of_muon_tracks_atomic, + unsigned& number_of_muon_tracks_atomic, MuonTrack* muon_tracks) { @@ -266,13 +254,13 @@ __device__ void seedAndFind( if (muon_track.number_of_hits() >= 2) { // Update x, y parameters by extrapolating the building track const auto xy = extrapolate( - muon_hits, match_velo_windows.z, muon_track, last_two_stations_found[0], last_two_stations_found[1], station); + muon_hits, match_windows.z_station, muon_track, last_two_stations_found[0], last_two_stations_found[1], station); x = xy.first; y = xy.second; } else { // Create x, y parameters by linear extrapolation from origin - const auto slope = match_velo_windows.z[station] * zseed_inverse; + const auto slope = match_windows.z_station[station] * zseed_inverse; x = xseed * slope; y = yseed * slope; } @@ -284,8 +272,8 @@ __device__ void seedAndFind( station, station_ocurrences_offset, muon_hits, - match_velo_windows.Xmax, - match_velo_windows.Ymax); + match_windows.Xmax, + match_windows.Ymax); if (hit_index != -1) { const auto idx = station_ocurrences_offset[station] + hit_index; @@ -302,7 +290,7 @@ __device__ void seedAndFind( auto fit_result_xz = applyWeightedFit(muon_track, muon_hits, true); auto fit_result_yz = applyWeightedFit(muon_track, muon_hits, false); if (fit_result_xz && fit_result_yz) { - const auto insert_index = atomicAdd(number_of_muon_tracks_atomic, 1); + const auto insert_index = atomicAdd(&number_of_muon_tracks_atomic, 1); muon_tracks[insert_index] = muon_track; } } @@ -311,7 +299,7 @@ __device__ void seedAndFind( __global__ void find_muon_hits::find_muon_hits( find_muon_hits::Parameters parameters, - const Muon::Constants::MatchVeloWindows* dev_match_velo_windows) + const Muon::Constants::MatchWindows* dev_match_windows) { const unsigned event_number = parameters.dev_event_list[blockIdx.x]; const unsigned number_of_events = parameters.dev_number_of_events[0]; @@ -321,8 +309,6 @@ __global__ void find_muon_hits::find_muon_hits( const auto station_ocurrences_offset = parameters.dev_station_ocurrences_offset + event_number * Muon::Constants::n_stations; const auto muon_hits = Muon::ConstHits {parameters.dev_muon_hits, muon_total_number_of_hits}; - // TODO: Change into container taking into consideration actual sizes of Muon::Constants::M4 and Muon::Constants::M5 - // (use prefix sum) // Output auto tracks_offset = event_number * Muon::Constants::max_number_of_tracks; @@ -333,15 +319,12 @@ __global__ void find_muon_hits::find_muon_hits( // Station processing order constexpr std::array st_order { Muon::Constants::M5, Muon::Constants::M4, Muon::Constants::M3, Muon::Constants::M2}; - // constexpr std::array st_order2 {Muon::Constants::M4, Muon:constants:M3, Muon::Constants::M2}; - const auto match_velo_windows = dev_match_velo_windows[0]; - - // TODO: Test speed removing + const auto match_windows = dev_match_windows[0]; __shared__ float muon_tracks_shared_container[Muon::Constants::max_number_of_tracks * sizeof(MuonTrack)]; MuonTrack* muon_tracks = reinterpret_cast(muon_tracks_shared_container); - __shared__ unsigned number_of_muon_tracks_atomic[1]; - if (threadIdx.x == 0) number_of_muon_tracks_atomic[0] = 0; + __shared__ unsigned number_of_muon_tracks_atomic; + if (threadIdx.x == 0) number_of_muon_tracks_atomic = 0; __syncthreads(); seedAndFind( @@ -349,7 +332,7 @@ __global__ void find_muon_hits::find_muon_hits( station_ocurrences_offset, st_order.data(), Muon::Constants::n_stations, - match_velo_windows, + match_windows, Muon::Constants::M2, parameters.required_number_of_hits, number_of_muon_tracks_atomic, @@ -357,18 +340,6 @@ __global__ void find_muon_hits::find_muon_hits( __syncthreads(); - // TODO: tune track making in order to make available second loop: take care of not repeating tracks! - // seedAndFind( - // muon_hits, - // station_ocurrences_offset, - // st_order2.data(), - // 3, - // match_velo_windows, - // Muon::Constants::M2, - // parameters.required_number_of_hits, - // number_of_muon_tracks_atomic, - // muon_tracks); - // Clone killing const auto is_clone_of = [&](const MuonTrack& track_a, const MuonTrack& track_b) { if ( @@ -390,11 +361,11 @@ __global__ void find_muon_hits::find_muon_hits( return -1; }; - for (unsigned track = threadIdx.x; track < *number_of_muon_tracks_atomic; track += blockDim.x) { + for (unsigned track = threadIdx.x; track < number_of_muon_tracks_atomic; track += blockDim.x) { const auto muon_track = muon_tracks[track]; bool is_clone = false; - for (unsigned other_track = 0; other_track < number_of_muon_tracks_atomic[0]; ++other_track) { + for (unsigned other_track = 0; other_track < number_of_muon_tracks_atomic; ++other_track) { if (track != other_track) { const int is_clone_of_value = is_clone_of(muon_track, muon_tracks[other_track]); if (is_clone_of_value == 1 || (is_clone_of_value == 0 && track > other_track)) { diff --git a/device/selections/lines/muon/include/OneMuonTrackLine.cuh b/device/selections/lines/muon/include/OneMuonTrackLine.cuh index 110eeb067f2..b1d8c2466d0 100644 --- a/device/selections/lines/muon/include/OneMuonTrackLine.cuh +++ b/device/selections/lines/muon/include/OneMuonTrackLine.cuh @@ -1,5 +1,5 @@ /*****************************************************************************\ -* (c) Copyright 2020 CERN for the benefit of the LHCb Collaboration * +* (c) Copyright 2022 CERN for the benefit of the LHCb Collaboration * \*****************************************************************************/ #pragma once @@ -9,19 +9,19 @@ namespace one_muon_track_line { struct Parameters { - // Commonly required inputs, outputs and properties - HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; - DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; MASK_INPUT(dev_event_list_t) dev_event_list; + + HOST_INPUT(host_number_of_events_t, unsigned) host_number_of_events; + HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; HOST_OUTPUT(host_decisions_size_t, unsigned) host_decisions_size; HOST_OUTPUT(host_post_scaler_t, float) host_post_scaler; HOST_OUTPUT(host_post_scaler_hash_t, uint32_t) host_post_scaler_hash; HOST_OUTPUT(host_fn_parameters_t, char) host_fn_parameters; - // Line-specific inputs and properties + + DEVICE_INPUT(dev_number_of_events_t, unsigned) dev_number_of_events; DEVICE_INPUT(dev_muon_tracks_t, MuonTrack) dev_muon_tracks; DEVICE_INPUT(dev_muon_tracks_offsets_t, unsigned) dev_muon_tracks_offsets; DEVICE_INPUT(dev_muon_number_of_tracks_t, unsigned) dev_muon_number_of_tracks; - HOST_INPUT(host_muon_total_number_of_tracks_t, unsigned) host_muon_total_number_of_tracks; PROPERTY(pre_scaler_t, "pre_scaler", "Pre-scaling factor", float) pre_scaler; PROPERTY(post_scaler_t, "post_scaler", "Post-scaling factor", float) post_scaler; @@ -31,7 +31,6 @@ namespace one_muon_track_line { PROPERTY(max_chi2y_t, "max_chi2y", "Maximum chi2 for the yz plane", float) max_chi2y; }; - // SelectionAlgorithm definition struct one_muon_track_line_t : public SelectionAlgorithm, Parameters, Line { void set_arguments_size( @@ -40,28 +39,22 @@ namespace one_muon_track_line { const Constants& constants, const HostBuffers& host_buffers) const; - // Offset function __device__ static unsigned offset(const Parameters& parameters, const unsigned event_number) { return parameters.dev_muon_tracks_offsets[event_number]; } - // Get decision size function static unsigned get_decisions_size(const ArgumentReferences& arguments) { return first(arguments); } - // Get input function __device__ static std::tuple get_input(const Parameters& parameters, const unsigned event_number, const unsigned i) { - // Get the number of events - // const unsigned number_of_events = parameters.dev_number_of_events[0]; const auto muon_tracks_offsets = parameters.dev_muon_tracks_offsets; const auto muon_tracks = parameters.dev_muon_tracks; - // Get the ith velo track const unsigned track_index = i + muon_tracks_offsets[event_number]; return std::forward_as_tuple(muon_tracks[track_index]); @@ -72,11 +65,9 @@ namespace one_muon_track_line { return parameters.dev_muon_number_of_tracks[event_number]; } - // Selection function __device__ static bool select(const Parameters& parameters, std::tuple input); private: - // Commonly required properties Property m_pre_scaler {this, 1.f}; Property m_post_scaler {this, 1.f}; Property m_pre_scaler_hash_string {this, ""}; @@ -84,6 +75,5 @@ namespace one_muon_track_line { Property m_max_chi2x {this, 1.f}; Property m_max_chi2y {this, 0.3f}; - // Line-specific properties }; } // namespace one_muon_track_line diff --git a/device/selections/lines/muon/src/OneMuonTrackLine.cu b/device/selections/lines/muon/src/OneMuonTrackLine.cu index 450d805d249..7bfcfd44ca9 100644 --- a/device/selections/lines/muon/src/OneMuonTrackLine.cu +++ b/device/selections/lines/muon/src/OneMuonTrackLine.cu @@ -20,7 +20,7 @@ __device__ bool one_muon_track_line::one_muon_track_line_t::select( std::tuple input) { const auto& muon_track = std::get<0>(input); - const bool decision = muon_track.get_chi2x() < parameters.max_chi2x && muon_track.get_chi2y() < parameters.max_chi2y; + const bool decision = muon_track.chi2x() < parameters.max_chi2x && muon_track.chi2y() < parameters.max_chi2y; return decision; } diff --git a/stream/sequence/include/Constants.cuh b/stream/sequence/include/Constants.cuh index 2d4cd1de08f..d4938c214a7 100644 --- a/stream/sequence/include/Constants.cuh +++ b/stream/sequence/include/Constants.cuh @@ -20,7 +20,7 @@ namespace Muon { class MuonTables; namespace Constants { struct FieldOfInterest; - struct MatchVeloWindows; + struct MatchWindows; } // namespace Constants } // namespace Muon namespace LookingForward { @@ -101,7 +101,7 @@ struct Constants { std::vector host_muon_lookup_tables_raw; Muon::MuonGeometry* dev_muon_geometry = nullptr; Muon::MuonTables* dev_muon_tables = nullptr; - Muon::Constants::MatchVeloWindows* dev_match_velo_windows = nullptr; + Muon::Constants::MatchWindows* dev_match_windows = nullptr; // Velo-UT-muon MatchUpstreamMuon::MuonChambers* dev_muonmatch_search_muon_chambers = nullptr; diff --git a/stream/sequence/src/Constants.cpp b/stream/sequence/src/Constants.cpp index 370a1411323..4668e314de5 100644 --- a/stream/sequence/src/Constants.cpp +++ b/stream/sequence/src/Constants.cpp @@ -22,7 +22,7 @@ void Constants::reserve_constants() Allen::malloc((void**) &dev_muon_momentum_cuts, 3 * sizeof(float)); Allen::malloc((void**) &dev_muonmatch_search_muon_chambers, sizeof(MatchUpstreamMuon::MuonChambers)); Allen::malloc((void**) &dev_muonmatch_search_windows, sizeof(MatchUpstreamMuon::SearchWindows)); - Allen::malloc((void**) &dev_match_velo_windows, sizeof(Muon::Constants::MatchVeloWindows)); + Allen::malloc((void**) &dev_match_windows, sizeof(Muon::Constants::MatchWindows)); host_ut_region_offsets.resize(UT::Constants::n_layers * UT::Constants::n_regions_in_layer + 1); host_ut_dxDy.resize(UT::Constants::n_layers); @@ -72,11 +72,11 @@ void Constants::initialize_constants( Allen::memcpy(dev_muon_foi, &host_muon_foi, sizeof(Muon::Constants::FieldOfInterest), Allen::memcpyHostToDevice); // VeloMuon - Muon::Constants::MatchVeloWindows host_match_velo_windows; + Muon::Constants::MatchWindows host_match_windows; Allen::memcpy( - dev_match_velo_windows, - &host_match_velo_windows, - sizeof(Muon::Constants::MatchVeloWindows), + dev_match_windows, + &host_match_windows, + sizeof(Muon::Constants::MatchWindows), Allen::memcpyHostToDevice); // Velo-UT-muon -- GitLab From 8d7d0e31b4948e64de283702140970e0082d1ca6 Mon Sep 17 00:00:00 2001 From: Gitlab CI Date: Wed, 5 Oct 2022 16:47:53 +0000 Subject: [PATCH 17/17] Fixed formatting patch generated by https://gitlab.cern.ch/lhcb/Allen/-/jobs/24980974 --- .../muon/include/MuonDefinitions.cuh | 2 +- .../muon/match_velo_muon/src/FindMuonHits.cu | 32 +++++++++---------- .../lines/muon/include/OneMuonTrackLine.cuh | 1 - stream/sequence/src/Constants.cpp | 5 +-- 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/device/event_model/muon/include/MuonDefinitions.cuh b/device/event_model/muon/include/MuonDefinitions.cuh index 05b648c4015..c7c06103bff 100644 --- a/device/event_model/muon/include/MuonDefinitions.cuh +++ b/device/event_model/muon/include/MuonDefinitions.cuh @@ -180,7 +180,7 @@ struct MuonTrack { __host__ __device__ float ay() const { return m_ay; } __host__ __device__ float chi2x() const { return m_chi2x; } __host__ __device__ float chi2y() const { return m_chi2y; } - __host__ __device__ int state() const { return m_state_muon_index; } + __host__ __device__ int state() const { return m_state_muon_index; } }; namespace MatchUpstreamMuon { diff --git a/device/muon/match_velo_muon/src/FindMuonHits.cu b/device/muon/match_velo_muon/src/FindMuonHits.cu index 62a7b94df21..985c0077ea1 100644 --- a/device/muon/match_velo_muon/src/FindMuonHits.cu +++ b/device/muon/match_velo_muon/src/FindMuonHits.cu @@ -55,12 +55,12 @@ void find_muon_hits::find_muon_hits_t::output_monitor( handler.branch(tree, "z1", z1); handler.branch(tree, "z2", z2); handler.branch(tree, "z3", z3); - - const auto host_station_ocurrences_offset = make_host_buffer< dev_station_ocurrences_offset_t >(arguments, context); - const auto host_muon_hits = make_host_buffer< dev_muon_hits_t >(arguments, context); - const auto host_muon_tracks = make_host_buffer< dev_muon_tracks_t >(arguments, context); - const auto host_muon_number_of_tracks = make_host_buffer< dev_muon_number_of_tracks_t >(arguments, context); - + + const auto host_station_ocurrences_offset = make_host_buffer(arguments, context); + const auto host_muon_hits = make_host_buffer(arguments, context); + const auto host_muon_tracks = make_host_buffer(arguments, context); + const auto host_muon_number_of_tracks = make_host_buffer(arguments, context); + const auto n_tracks = host_muon_number_of_tracks.data(); const auto tracks = host_muon_tracks.data(); const auto muon_hits = host_muon_hits.data(); @@ -94,8 +94,8 @@ void find_muon_hits::find_muon_hits_t::output_monitor( std::tie(z0, z1, z2, z3) = std::make_tuple(z[0], z[1], z[2], z[3]); std::tie(dx0, dx1, dx2, dx3) = std::make_tuple(dx[0], dx[1], dx[2], dx[3]); std::tie(dy0, dy1, dy2, dy3) = std::make_tuple(dy[0], dy[1], dy[2], dy[3]); - std::tie(chi2x, chi2y, tx, ty, ax, ay) = std::make_tuple( - track.chi2x(), track.chi2y(), track.tx(), track.ty(), track.ax(), track.ay()); + std::tie(chi2x, chi2y, tx, ty, ax, ay) = + std::make_tuple(track.chi2x(), track.chi2y(), track.tx(), track.ty(), track.ax(), track.ay()); tree->Fill(); } } @@ -254,7 +254,12 @@ __device__ void seedAndFind( if (muon_track.number_of_hits() >= 2) { // Update x, y parameters by extrapolating the building track const auto xy = extrapolate( - muon_hits, match_windows.z_station, muon_track, last_two_stations_found[0], last_two_stations_found[1], station); + muon_hits, + match_windows.z_station, + muon_track, + last_two_stations_found[0], + last_two_stations_found[1], + station); x = xy.first; y = xy.second; } @@ -266,14 +271,7 @@ __device__ void seedAndFind( } const auto hit_index = find_compatible_hit_in_station( - x, - y, - region_seed, - station, - station_ocurrences_offset, - muon_hits, - match_windows.Xmax, - match_windows.Ymax); + x, y, region_seed, station, station_ocurrences_offset, muon_hits, match_windows.Xmax, match_windows.Ymax); if (hit_index != -1) { const auto idx = station_ocurrences_offset[station] + hit_index; diff --git a/device/selections/lines/muon/include/OneMuonTrackLine.cuh b/device/selections/lines/muon/include/OneMuonTrackLine.cuh index b1d8c2466d0..1febe9e11c7 100644 --- a/device/selections/lines/muon/include/OneMuonTrackLine.cuh +++ b/device/selections/lines/muon/include/OneMuonTrackLine.cuh @@ -74,6 +74,5 @@ namespace one_muon_track_line { Property m_post_scaler_hash_string {this, ""}; Property m_max_chi2x {this, 1.f}; Property m_max_chi2y {this, 0.3f}; - }; } // namespace one_muon_track_line diff --git a/stream/sequence/src/Constants.cpp b/stream/sequence/src/Constants.cpp index 4668e314de5..cbc5991fc50 100644 --- a/stream/sequence/src/Constants.cpp +++ b/stream/sequence/src/Constants.cpp @@ -74,10 +74,7 @@ void Constants::initialize_constants( // VeloMuon Muon::Constants::MatchWindows host_match_windows; Allen::memcpy( - dev_match_windows, - &host_match_windows, - sizeof(Muon::Constants::MatchWindows), - Allen::memcpyHostToDevice); + dev_match_windows, &host_match_windows, sizeof(Muon::Constants::MatchWindows), Allen::memcpyHostToDevice); // Velo-UT-muon MatchUpstreamMuon::MuonChambers host_muonmatch_search_muon_chambers; -- GitLab