2023-12-19 13:00:59 +01:00
|
|
|
# flake8: noqa
|
2024-03-11 12:39:36 +01:00
|
|
|
# ruff: noqa
|
2023-12-19 13:00:59 +01:00
|
|
|
|
|
|
|
"""
|
|
|
|
Moore/run gaudirun.py /work/cetin/LHCb/reco_tuner/moore_options/get_ghost_data.py
|
|
|
|
"""
|
|
|
|
|
|
|
|
from Moore import options, run_reconstruction
|
|
|
|
from Moore.config import Reconstruction
|
|
|
|
|
|
|
|
from PyConf.Algorithms import (
|
|
|
|
PrForwardTrackingVelo,
|
|
|
|
PrForwardTracking,
|
|
|
|
PrTrackAssociator,
|
|
|
|
PrMatchNN,
|
|
|
|
PrResidualVeloTracks,
|
|
|
|
PrResidualSeedingLong,
|
|
|
|
fromPrMatchTracksV1Tracks,
|
|
|
|
fromPrVeloTracksV1Tracks,
|
|
|
|
fromPrSeedingTracksV1Tracks,
|
|
|
|
)
|
|
|
|
from PyConf.application import make_data_with_FetchDataFromFile
|
|
|
|
from PyConf.Tools import PrMCDebugForwardTool, PrMCDebugMatchToolNN
|
|
|
|
from RecoConf.data_from_file import mc_unpackers
|
|
|
|
from RecoConf.hlt1_tracking import make_hlt1_tracks, make_PrStoreSciFiHits_hits
|
|
|
|
from RecoConf.hlt2_tracking import (
|
|
|
|
get_global_ut_hits_tool,
|
|
|
|
make_PrHybridSeeding_tracks,
|
|
|
|
make_PrMatchNN_tracks,
|
|
|
|
get_fast_hlt2_tracks,
|
|
|
|
)
|
2024-02-26 16:18:03 +01:00
|
|
|
from RecoConf.event_filters import require_gec
|
|
|
|
|
2023-12-19 13:00:59 +01:00
|
|
|
from RecoConf.mc_checking import make_links_lhcbids_mcparticles_tracking_system
|
|
|
|
import glob
|
|
|
|
|
|
|
|
options.evt_max = -1
|
|
|
|
|
2024-03-11 12:39:36 +01:00
|
|
|
decay = "B" # D, B
|
2024-02-25 12:06:14 +01:00
|
|
|
options.ntuple_file = (
|
2024-03-27 09:23:35 +01:00
|
|
|
f"/work/cetin/LHCb/reco_tuner/data/ghost_data_{decay}_Default.root"
|
2024-02-25 12:06:14 +01:00
|
|
|
)
|
2023-12-19 13:00:59 +01:00
|
|
|
|
|
|
|
options.input_type = "ROOT"
|
|
|
|
if decay == "B":
|
|
|
|
options.input_files = glob.glob("/auto/data/guenther/Bd_Kstee/*.xdigi")
|
2024-01-16 21:50:18 +01:00
|
|
|
elif decay == "BJpsi":
|
|
|
|
options.input_files = glob.glob("/auto/data/guenther/Bd_JpsiKst_ee/*.xdigi")
|
2023-12-19 13:00:59 +01:00
|
|
|
elif decay == "D":
|
|
|
|
options.input_files = glob.glob("/auto/data/guenther/Dst_D0ee/*.xdigi")
|
|
|
|
elif decay == "test":
|
|
|
|
options.input_files = ["/auto/data/guenther/Bd_Kstee/00151673_00000002_1.xdigi"]
|
|
|
|
elif decay == "both":
|
|
|
|
options.input_files = glob.glob("/auto/data/guenther/Bd_Kstee/*.xdigi") + glob.glob(
|
|
|
|
"/auto/data/guenther/Dst_D0ee/*.xdigi"
|
|
|
|
)
|
|
|
|
|
|
|
|
options.dddb_tag = "dddb-20210617"
|
|
|
|
options.conddb_tag = "sim-20210617-vc-md100"
|
|
|
|
|
|
|
|
options.simulation = True
|
|
|
|
|
|
|
|
|
|
|
|
def run_tracking_debug():
|
|
|
|
links_to_hits = make_links_lhcbids_mcparticles_tracking_system()
|
|
|
|
hlt1_tracks = make_hlt1_tracks()
|
|
|
|
seed_tracks = make_PrHybridSeeding_tracks()
|
|
|
|
|
|
|
|
# add MCLinking to the (fitted) V1 tracks
|
|
|
|
links_to_velo_tracks = PrTrackAssociator(
|
|
|
|
SingleContainer=hlt1_tracks["Velo"]["v1"],
|
|
|
|
LinkerLocationID=links_to_hits,
|
|
|
|
MCParticleLocation=mc_unpackers()["MCParticles"],
|
|
|
|
MCVerticesInput=mc_unpackers()["MCVertices"],
|
|
|
|
).OutputLocation
|
|
|
|
|
|
|
|
links_to_upstream_tracks = PrTrackAssociator(
|
|
|
|
SingleContainer=hlt1_tracks["Upstream"]["v1"],
|
|
|
|
LinkerLocationID=links_to_hits,
|
|
|
|
MCParticleLocation=mc_unpackers()["MCParticles"],
|
|
|
|
MCVerticesInput=mc_unpackers()["MCVertices"],
|
|
|
|
).OutputLocation
|
|
|
|
|
|
|
|
links_to_seed_tracks = PrTrackAssociator(
|
|
|
|
SingleContainer=seed_tracks["v1"],
|
|
|
|
LinkerLocationID=links_to_hits,
|
|
|
|
MCParticleLocation=mc_unpackers()["MCParticles"],
|
|
|
|
MCVerticesInput=mc_unpackers()["MCVertices"],
|
|
|
|
).OutputLocation
|
|
|
|
|
2024-02-29 15:54:19 +01:00
|
|
|
# # be more robust against imperfect data
|
|
|
|
# loose_forward_params = dict(
|
|
|
|
# MaxChi2PerDoF=16,
|
|
|
|
# MaxChi2XProjection=30,
|
|
|
|
# MaxChi2PerDoFFinal=8,
|
|
|
|
# MaxChi2Stereo=8,
|
|
|
|
# MaxChi2StereoAdd=8,
|
|
|
|
# )
|
|
|
|
|
|
|
|
# forward_debug = PrForwardTrackingVelo(
|
|
|
|
# InputTracks=hlt1_tracks["Velo"]["Pr"],
|
|
|
|
# SciFiHits=make_PrStoreSciFiHits_hits(),
|
|
|
|
# AddUTHitsToolName=get_global_ut_hits_tool(enable=True),
|
|
|
|
# DebugTool=PrMCDebugForwardTool(
|
|
|
|
# InputTracks=hlt1_tracks["Velo"]["v1"],
|
|
|
|
# InputTrackLinks=links_to_velo_tracks,
|
|
|
|
# MCParticles=mc_unpackers()["MCParticles"],
|
|
|
|
# SciFiHitLinks=links_to_hits,
|
|
|
|
# SciFiHits=make_PrStoreSciFiHits_hits(),
|
|
|
|
# TrackInfo=make_data_with_FetchDataFromFile(
|
|
|
|
# "/Event/MC/TrackInfo", "LHCb::MCProperty"
|
|
|
|
# ),
|
|
|
|
# ),
|
|
|
|
# **loose_forward_params,
|
|
|
|
# )
|
|
|
|
|
|
|
|
# forward_ut_debug = PrForwardTracking(
|
|
|
|
# SciFiHits=make_PrStoreSciFiHits_hits(),
|
|
|
|
# InputTracks=hlt1_tracks["Upstream"]["Pr"],
|
|
|
|
# AddUTHitsToolName=get_global_ut_hits_tool(enable=True),
|
|
|
|
# DebugTool=PrMCDebugForwardTool(
|
|
|
|
# InputTracks=hlt1_tracks["Upstream"]["v1"],
|
|
|
|
# InputTrackLinks=links_to_upstream_tracks,
|
|
|
|
# MCParticles=mc_unpackers()["MCParticles"],
|
|
|
|
# SciFiHitLinks=links_to_hits,
|
|
|
|
# SciFiHits=make_PrStoreSciFiHits_hits(),
|
|
|
|
# TrackInfo=make_data_with_FetchDataFromFile(
|
|
|
|
# "/Event/MC/TrackInfo", "LHCb::MCProperty"
|
|
|
|
# ),
|
|
|
|
# ),
|
|
|
|
# **loose_forward_params,
|
|
|
|
# )
|
2023-12-19 13:00:59 +01:00
|
|
|
|
|
|
|
loose_matching_params = dict(
|
|
|
|
MaxMatchChi2=30.0, # 30.0,
|
|
|
|
MaxDistX=500, # 500,
|
|
|
|
MaxDistY=500, # 500,
|
2024-03-27 09:23:35 +01:00
|
|
|
MaxDSlope=3.0,
|
|
|
|
MaxDSlopeY=0.3,
|
|
|
|
MaxdDist=0.1,
|
|
|
|
MinMatchNN=0.25, # NN response cut value
|
2023-12-19 13:00:59 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
match_debug = PrMatchNN(
|
|
|
|
VeloInput=hlt1_tracks["Velo"]["Pr"],
|
|
|
|
SeedInput=seed_tracks["Pr"],
|
|
|
|
MatchDebugToolName=PrMCDebugMatchToolNN(
|
|
|
|
VeloTracks=hlt1_tracks["Velo"]["v1"],
|
|
|
|
SeedTracks=seed_tracks["v1"],
|
|
|
|
VeloTrackLinks=links_to_velo_tracks,
|
|
|
|
SeedTrackLinks=links_to_seed_tracks,
|
2024-01-17 16:00:01 +01:00
|
|
|
TrackInfo=make_data_with_FetchDataFromFile(
|
|
|
|
"/Event/MC/TrackInfo", "LHCb::MCProperty"
|
|
|
|
),
|
2023-12-19 13:00:59 +01:00
|
|
|
MCParticles=mc_unpackers()["MCParticles"],
|
|
|
|
),
|
|
|
|
AddUTHitsToolName=get_global_ut_hits_tool(enable=True),
|
|
|
|
**loose_matching_params,
|
|
|
|
).MatchOutput
|
|
|
|
|
|
|
|
"""
|
|
|
|
v1_match_tracks = fromPrMatchTracksV1Tracks(
|
|
|
|
InputTracksLocation=match_debug,
|
|
|
|
VeloTracksLocation=hlt1_tracks["Velo"]["v1"],
|
|
|
|
SeedTracksLocation=seed_tracks["v1"],
|
|
|
|
).OutputTracksLocation
|
|
|
|
|
|
|
|
# run Matching on residual velo and seed track segments
|
|
|
|
|
|
|
|
pr_velo_residual = PrResidualVeloTracks(
|
|
|
|
TracksLocation=match_debug,
|
|
|
|
VeloTrackLocation=hlt1_tracks["Velo"]["Pr"],
|
|
|
|
).VeloTrackOutput
|
|
|
|
|
|
|
|
v1_velo_residual = fromPrVeloTracksV1Tracks(
|
|
|
|
InputTracksLocation=pr_velo_residual
|
|
|
|
).OutputTracksLocation
|
|
|
|
|
|
|
|
pr_seed_residual = PrResidualSeedingLong(
|
|
|
|
MatchTracksLocation=match_debug,
|
|
|
|
SeedTracksLocation=seed_tracks["Pr"],
|
|
|
|
).SeedTracksOutput
|
|
|
|
|
|
|
|
v1_seed_residual = fromPrSeedingTracksV1Tracks(
|
|
|
|
InputTracksLocation=pr_seed_residual
|
|
|
|
).OutputTracksLocation
|
|
|
|
|
|
|
|
# add MCLinking to the (fitted) residual V1 tracks
|
|
|
|
links_to_res_velo_tracks = PrTrackAssociator(
|
|
|
|
SingleContainer=v1_velo_residual,
|
|
|
|
LinkerLocationID=links_to_hits,
|
|
|
|
MCParticleLocation=mc_unpackers()["MCParticles"],
|
|
|
|
MCVerticesInput=mc_unpackers()["MCVertices"],
|
|
|
|
).OutputLocation
|
|
|
|
|
|
|
|
links_to_res_seed_tracks = PrTrackAssociator(
|
|
|
|
SingleContainer=v1_seed_residual,
|
|
|
|
LinkerLocationID=links_to_hits,
|
|
|
|
MCParticleLocation=mc_unpackers()["MCParticles"],
|
|
|
|
MCVerticesInput=mc_unpackers()["MCVertices"],
|
|
|
|
).OutputLocation
|
|
|
|
|
|
|
|
loose_res_matching_params = dict(
|
|
|
|
MaxMatchChi2=30.0, # 30.0,
|
|
|
|
MaxDistX=500, # 500,
|
|
|
|
MaxDistY=500, # 500,
|
|
|
|
MaxDSlope=1.5,
|
|
|
|
MinMatchNN=0.5, # NN response cut value
|
|
|
|
FastYTol=2500.0,
|
|
|
|
)
|
|
|
|
|
|
|
|
match_residual = PrMatchNN(
|
|
|
|
VeloInput=pr_velo_residual,
|
|
|
|
SeedInput=pr_seed_residual,
|
|
|
|
MatchDebugToolName=PrMCDebugMatchToolNN(
|
|
|
|
VeloTracks=v1_velo_residual,
|
|
|
|
SeedTracks=v1_seed_residual,
|
|
|
|
VeloTrackLinks=links_to_res_velo_tracks,
|
|
|
|
SeedTrackLinks=links_to_res_seed_tracks,
|
|
|
|
TrackInfo=make_data_with_FetchDataFromFile("/Event/MC/TrackInfo"),
|
|
|
|
MCParticles=mc_unpackers()["MCParticles"],
|
|
|
|
),
|
|
|
|
AddUTHitsToolName=get_global_ut_hits_tool(enable=True),
|
|
|
|
**loose_res_matching_params,
|
|
|
|
).MatchOutput
|
|
|
|
"""
|
|
|
|
|
2024-02-29 15:54:19 +01:00
|
|
|
# data = [forward_debug, forward_ut_debug, match_debug] # match_residual]
|
|
|
|
data = [match_debug]
|
2023-12-19 13:00:59 +01:00
|
|
|
|
2024-02-26 16:18:03 +01:00
|
|
|
return Reconstruction("run_tracking_debug", data, [require_gec()])
|
2023-12-19 13:00:59 +01:00
|
|
|
|
|
|
|
|
|
|
|
run_reconstruction(options, run_tracking_debug)
|