43 def collect_histograms(self):
44 """Fill the histograms in each event"""
45 input_root_file = ROOT.TFile.Open(self.input_file, "READ")
47 for event in input_root_file.VxdCdcMergerHarvester_tree:
48 self.hist_merged_hits.Fill(event.PR_NHITS)
49 self.hist_good_over_pt.Fill(event.MC_PT, event.GOOD_MERGE)
50 self.hist_good_over_theta.Fill(event.MC_THETA, event.GOOD_MERGE)
52 input_root_file.Close()
56 def histogram_plot(hist, title, x_variable, x_unit=None, description='', check='', contact='', meta_options=''):
57 """Label and annotate the histograms"""
58 hist.SetName("".join(title.split()))
59 xlabel = f'{x_variable} / ({x_unit})' if x_unit is not None else f'{x_variable}'
60 ylabel = f'Entries / ({(hist.GetXaxis().GetXmax() - hist.GetXaxis().GetXmin()) / hist.GetNbinsX()} {x_unit})' \
61 if x_unit is not None \
62 else f'Entries / ({(hist.GetXaxis().GetXmax() - hist.GetXaxis().GetXmin()) / hist.GetNbinsX()})'
63 hist.SetTitle(f"{title};{xlabel};{ylabel}")
64 hist.GetListOfFunctions().Add(ROOT.TNamed('Description', description))
65 hist.GetListOfFunctions().Add(ROOT.TNamed('Check', check))
66 hist.GetListOfFunctions().Add(ROOT.TNamed('Contact', contact))
67 hist.GetListOfFunctions().Add(ROOT.TNamed('MetaOptions', meta_options))
71 """Draw all of the histograms to the output ROOT file"""
72 output_root_file = ROOT.TFile.Open(self.output_file, "RECREATE")
74 VxdCdcMergerValidationPlots.histogram_plot(self.hist_merged_hits, "Number of hits of merged tracks", "Number of Hits", None,
75 description='Number of hits of merged tracks',
77 contact='software-tracking@belle2.org',
78 meta_options='').Write()
80 VxdCdcMergerValidationPlots.histogram_plot(self.hist_good_over_pt, "Good Merge over Pt", "MC Track Pt (GeV)", None,
81 description='Good Merge over Pt',
83 contact='software-tracking@belle2.org',
84 meta_options='').Write()
86 VxdCdcMergerValidationPlots.histogram_plot(self.hist_good_over_theta, "Good Merge over Theta", "MC Track Theta (1)", None,
87 description='Good Merge over Theta',
89 contact='software-tracking@belle2.org',
90 meta_options='').Write()
92 output_root_file.Write()
93 output_root_file.Close()