Belle II Software development
Calibration.py
1#!/usr/bin/env python3
2
3
10
11import sys
12
13import basf2
14from ROOT import Belle2 # noqa: make the Belle2 namespace available
15from ROOT.Belle2 import KLMTimeAlgorithm
16from klm_calibration_utils import get_time_pre_collector_path
17from prompt.calibrations.caf_klm_time import get_collector
18from caf.framework import CAF, Calibration, Collection
19from caf import backends
20
21basf2.set_log_level(basf2.LogLevel.INFO)
22
23input_files = sys.argv[1:]
24
25# Create KLM time calibration.
26# To run on data, add global tags using cal_klm.use_central_database()
27# and, if necessary, cal_klm.use_local_database(). The same chain must be
28# set up for collector using collection_cdst.use_central_database() and
29# collection_cdst.use_local_database(). Also disable MC setting for
30# the algorithm by commenting the line algorithm.setMC(True) or changing
31# True to False. The raw CDST format should be turned on in
32# get_time_pre_collector_path().
33algorithm = KLMTimeAlgorithm()
34algorithm.setMC(True)
35algorithm.setMinimalDigitNumber(0)
36cal_klm = Calibration(name='KLMTime', algorithms=algorithm)
37
38coll_cdst = get_collector('hlt_mumu', 'klmTime')
39rec_path_cdst = get_time_pre_collector_path(muon_list_name='klmTime', mc=True)
40collection_cdst = Collection(collector=coll_cdst,
41 input_files=input_files,
42 pre_collector_path=rec_path_cdst)
43cal_klm.add_collection(name='cdst', collection=collection_cdst)
44
45# Create and run calibration framework.
46framework = CAF()
47framework.backend = backends.LSF()
48framework.add_calibration(cal_klm)
49framework.run()