Belle II Software development
DQMAnalysisKLM.py
1#!/usr/bin/env python3
2
3
10
11import basf2
12
13# Set log level.
14basf2.set_log_level(basf2.LogLevel.INFO)
15useful_tags = ["online"] # add whatever is relevant for you
16for tag in useful_tags:
17 basf2.conditions.append_globaltag(tag)
18
19# Create main path.
20main = basf2.create_path()
21
22# random run with reasonable statistics (check rundb.belle2.org)
23exp_num = 35
24run_num = 2291
25exp = "0"*(4-len(str(exp_num)))+str(exp_num)
26run = "0"*(6-len(str(run_num)))+str(run_num)
27
28# downloaded from dqm.belle2.org
29dqm_histo_file = f"hlt_dqm_histo_e{exp}r{run}.root"
30
31# Input module.
32main.add_module('DQMHistAnalysisInputRootFile',
33 Experiment=exp_num,
34 RunList=[run_num],
35 FileList=[dqm_histo_file],
36 SelectHistograms=['KLM/*', 'KLMEfficiencyDQM/*', 'DAQ/*', 'DQMInfo/*'])
37
38# Plot some canvases from Input
39main.add_module("DQMHistAutoCanvas",
40 IncludeFolders=["KLM", "KLMEfficiencyDQM"])
41
42# used by DQMHistAnalysisKLM2 for calculating eff. ratios
43reference = basf2.register_module('DQMHistReference')
44reference.param('ReferenceFile', 'refHisto.root') # also obtained from dqm.belle2.org
45main.add_module(reference)
46
47# DQM's KLM analysis module.
48main.add_module('DQMHistAnalysisKLM') # occupancies and timing related
49main.add_module('DQMHistAnalysisKLM2') # layer eff. measurement via muon tracks
50
51# Output module.
52main.add_module('DQMHistAnalysisOutputFile',
53 OutputFolder="./",
54 Filename=f'KLMDQMAnalysed_hlt_{exp}_{run}.root',
55 SaveHistos=False,
56 SaveCanvases=True)
57
58# Process main path.
59basf2.process(main, calculateStatistics=True)
60
61# Print modules' statistics.
62print(basf2.statistics)