122 lines
3.6 KiB
Python
122 lines
3.6 KiB
Python
|
"""
|
||
|
This set of options is used for reconstruction development purposes,
|
||
|
and assumes that the input contains MCHits (i.e. is of `Exended`
|
||
|
DST/digi type).
|
||
|
"""
|
||
|
# flake8: noqaq
|
||
|
|
||
|
|
||
|
from Moore import options, run_reconstruction
|
||
|
|
||
|
from Moore.config import Reconstruction
|
||
|
from PyConf.Algorithms import PrKalmanFilter
|
||
|
from PyConf.Tools import TrackMasterExtrapolator
|
||
|
|
||
|
from RecoConf.mc_checking import (
|
||
|
check_track_resolution,
|
||
|
check_tracking_efficiency,
|
||
|
get_mc_categories,
|
||
|
get_hit_type_mask,
|
||
|
make_links_lhcbids_mcparticles_tracking_system,
|
||
|
make_links_tracks_mcparticles,
|
||
|
)
|
||
|
from RecoConf.core_algorithms import make_unique_id_generator
|
||
|
from RecoConf.hlt2_tracking import make_hlt2_tracks
|
||
|
from RecoConf.hlt1_tracking import (
|
||
|
make_VeloClusterTrackingSIMD_hits,
|
||
|
make_PrStorePrUTHits_hits,
|
||
|
make_PrStoreSciFiHits_hits,
|
||
|
get_global_materiallocator,
|
||
|
)
|
||
|
|
||
|
# sample = "Bd2KstEE_MD"
|
||
|
# sample = "Bd2KstEE_MU"
|
||
|
# sample = "Bs2JpsiPhi_MD"
|
||
|
# sample = "Bs2JpsiPhi_MU"
|
||
|
sample = "Bs2PhiPhi_MD"
|
||
|
# sample = "Bs2PhiPhi_MU"
|
||
|
|
||
|
stack = ""
|
||
|
|
||
|
options.evt_max = 5000
|
||
|
options.first_evt = 0 if stack else 5000
|
||
|
options.ntuple_file = f"data/resolutions_and_effs_{sample}{stack}.root"
|
||
|
options.input_type = "ROOT"
|
||
|
options.set_input_and_conds_from_testfiledb(f"upgrade_sim10_Up08_Digi15_{sample}")
|
||
|
|
||
|
|
||
|
def run_tracking_resolution():
|
||
|
tracks = make_hlt2_tracks(light_reco=True, fast_reco=False, use_pr_kf=True)
|
||
|
fitted_forward_tracks = PrKalmanFilter(
|
||
|
Input=tracks["Forward"]["Pr"],
|
||
|
MaxChi2=2.8,
|
||
|
MaxChi2PreOutlierRemoval=20,
|
||
|
HitsVP=make_VeloClusterTrackingSIMD_hits(),
|
||
|
HitsUT=make_PrStorePrUTHits_hits(),
|
||
|
HitsFT=make_PrStoreSciFiHits_hits(),
|
||
|
ReferenceExtrapolator=TrackMasterExtrapolator(
|
||
|
MaterialLocator=get_global_materiallocator(),
|
||
|
),
|
||
|
InputUniqueIDGenerator=make_unique_id_generator(),
|
||
|
).OutputTracks
|
||
|
|
||
|
links_to_lhcbids = make_links_lhcbids_mcparticles_tracking_system()
|
||
|
links_to_forward = make_links_tracks_mcparticles(
|
||
|
InputTracks=tracks["Forward"],
|
||
|
LinksToLHCbIDs=links_to_lhcbids,
|
||
|
)
|
||
|
links_to_match = make_links_tracks_mcparticles(
|
||
|
InputTracks=tracks["Match"],
|
||
|
LinksToLHCbIDs=links_to_lhcbids,
|
||
|
)
|
||
|
links_to_best = make_links_tracks_mcparticles(
|
||
|
InputTracks=tracks["BestLong"],
|
||
|
LinksToLHCbIDs=links_to_lhcbids,
|
||
|
)
|
||
|
res_checker_forward = check_track_resolution(tracks["Forward"], suffix="Forward")
|
||
|
res_checker_best_long = check_track_resolution(
|
||
|
tracks["BestLong"],
|
||
|
suffix="BestLong",
|
||
|
)
|
||
|
res_checker_best_forward = check_track_resolution(
|
||
|
dict(v1=fitted_forward_tracks),
|
||
|
suffix="BestForward",
|
||
|
)
|
||
|
eff_checker_forward = check_tracking_efficiency(
|
||
|
"Forward",
|
||
|
tracks["Forward"],
|
||
|
links_to_forward,
|
||
|
links_to_lhcbids,
|
||
|
get_mc_categories("Forward"),
|
||
|
get_hit_type_mask("Forward"),
|
||
|
)
|
||
|
eff_checker_match = check_tracking_efficiency(
|
||
|
"Match",
|
||
|
tracks["Match"],
|
||
|
links_to_match,
|
||
|
links_to_lhcbids,
|
||
|
get_mc_categories("Match"),
|
||
|
get_hit_type_mask("Match"),
|
||
|
)
|
||
|
eff_checker_best_long = check_tracking_efficiency(
|
||
|
"BestLong",
|
||
|
tracks["BestLong"],
|
||
|
links_to_best,
|
||
|
links_to_lhcbids,
|
||
|
get_mc_categories("BestLong"),
|
||
|
get_hit_type_mask("BestLong"),
|
||
|
)
|
||
|
data = [
|
||
|
res_checker_forward,
|
||
|
res_checker_best_long,
|
||
|
res_checker_best_forward,
|
||
|
eff_checker_forward,
|
||
|
eff_checker_match,
|
||
|
eff_checker_best_long,
|
||
|
]
|
||
|
|
||
|
return Reconstruction("run_tracking_debug", data)
|
||
|
|
||
|
|
||
|
run_reconstruction(options, run_tracking_resolution)
|