10 from ROOT
import Belle2
18 ROOT.gSystem.Load(
"libtracking")
22 """Module to perform event-by-event tracking validation."""
24 """ Expert level behavior:
25 expert_level <= default_expert_level: all figures and plots from this module except tree entries
26 expert_level > default_expert_level: everything including tree entries
30 default_expert_level = 10
35 output_file_name=None,
36 reco_tracks_name='RecoTracks',
37 mc_reco_tracks_name='MCRecoTracks',
41 output_file_name = output_file_name
or name +
'TrackingValidation.root'
43 super().
__init__(foreach=
"EventMetaData",
45 output_file_name=output_file_name,
47 expert_level=expert_level)
57 """Initialization signal at the start of the event processing"""
63 def pick(self, event_meta_data=None):
67 def peel(self, event_meta_data=None):
68 """Peel information from the event"""
79 n_mc_particles = mc_particles.getEntries()
84 n_mc_reco_tracks = mc_reco_tracks.getEntries()
88 n_reco_tracks = reco_tracks.getEntries()
91 all_mc_tracks_det_hit_ids = set()
92 n_matched_mc_reco_tracks = 0
93 n_merged_mc_reco_tracks = 0
94 n_missing_mc_reco_tracks = 0
95 for mc_reco_track
in mc_reco_tracks:
96 mc_reco_track_det_hit_ids = utilities.get_det_hit_ids(mc_reco_track)
97 all_mc_tracks_det_hit_ids.update(mc_reco_track_det_hit_ids)
99 is_matched = track_match_look_up.isMatchedMCRecoTrack(mc_reco_track)
100 is_merged = track_match_look_up.isMergedMCRecoTrack(mc_reco_track)
101 is_missing = track_match_look_up.isMissingMCRecoTrack(mc_reco_track)
104 n_matched_mc_reco_tracks += 1
106 n_merged_mc_reco_tracks += 1
108 n_missing_mc_reco_tracks += 1
111 n_matched_reco_tracks = 0
112 n_clone_reco_tracks = 0
113 n_background_reco_tracks = 0
114 n_ghost_reco_tracks = 0
116 all_tracks_det_hit_ids = set()
118 for reco_track
in reco_tracks:
119 is_matched = track_match_look_up.isMatchedPRRecoTrack(reco_track)
120 is_clone = track_match_look_up.isClonePRRecoTrack(reco_track)
121 is_background = track_match_look_up.isBackgroundPRRecoTrack(reco_track)
122 is_ghost = track_match_look_up.isGhostPRRecoTrack(reco_track)
125 n_matched_reco_tracks += 1
127 n_clone_reco_tracks += 1
129 n_background_reco_tracks += 1
131 n_ghost_reco_tracks += 1
133 reco_track_det_hit_ids = utilities.get_det_hit_ids(reco_track)
135 all_tracks_det_hit_ids.update(reco_track_det_hit_ids)
136 if is_matched
or is_clone:
137 mc_reco_track = self.
track_match_look_uptrack_match_look_up.getRelatedMCRecoTrack(reco_track)
139 mc_reco_track_det_hit_ids = utilities.get_det_hit_ids(mc_reco_track)
140 n_matched_hits += len(reco_track_det_hit_ids & mc_reco_track_det_hit_ids)
143 n_mc_particles=n_mc_particles,
144 n_mc_reco_tracks=n_mc_reco_tracks,
145 n_reco_tracks=n_reco_tracks,
147 n_matched_mc_reco_tracks=n_matched_mc_reco_tracks,
148 n_merged_mc_reco_tracks=n_merged_mc_reco_tracks,
149 n_missing_mc_reco_tracks=n_missing_mc_reco_tracks,
151 n_matched_reco_tracks=n_matched_reco_tracks,
152 n_clone_reco_tracks=n_clone_reco_tracks,
153 n_background_reco_tracks=n_background_reco_tracks,
154 n_ghost_reco_tracks=n_ghost_reco_tracks,
156 n_cdc_hits=cdc_hits.getEntries(),
157 n_all_mc_track_hits=len(all_mc_tracks_det_hit_ids),
158 n_all_track_hits=len(all_tracks_det_hit_ids),
159 n_found_hits=len(all_mc_tracks_det_hit_ids & all_tracks_det_hit_ids),
160 n_matched_hits=n_matched_hits
167 save_tree = refiners.save_tree(
170 folder_name=
"event_tree",
172 above_expert_level=default_expert_level
177 save_clone_rate = refiners.save_fom(
180 name=
"{module.id}_hit_figures_of_merit",
181 title=
"Hit sums in {module.title}",
185 "n_all_mc_track_hits",
a (simplified) python wrapper for StoreArray.
Class to provide convenient methods to look up matching information between pattern recognition and M...
cdc_hits_name
cached value of the CDCHits collection name
track_match_look_up
Reference to the track-match object that examines relation information from MCMatcherTracksModule.
def pick(self, event_meta_data=None)
mc_reco_tracks_name
cached value of the MCRecoTracks collection name
def peel(self, event_meta_data=None)
def __init__(self, name, contact, output_file_name=None, reco_tracks_name='RecoTracks', mc_reco_tracks_name='MCRecoTracks', expert_level=None)
reco_tracks_name
cached value of the RecoTracks collection name