3 set_log_level(LogLevel.INFO)
12 from ROOT
import Belle2, TFile
13 from ROOT.Belle2
import SVD3SampleELSTimeCalibrationAlgorithm
15 from caf.framework
import Calibration, CAF, Collection, LocalDatabase, CentralDatabase
16 from prompt
import CalibrationSettings
17 from caf
import backends
18 from caf
import strategies
19 from caf.utils
import ExpRun, IoV
22 import modularAnalysis
as ana
23 from caf.strategies
import SequentialBoundaries
25 now = datetime.datetime.now()
27 settings = CalibrationSettings(name=
"SVD3SampleELSTimeCalibrationPrompt",
28 expert_username=
"gdujany",
30 input_data_formats=[
"cdst"],
31 input_data_names=[
"hlt_hadron"],
38 def remove_module(path, name):
40 new_path = create_path()
41 for m
in path.modules():
43 new_path.add_module(m)
49 def get_calibrations(input_data, **kwargs):
54 path.add_module(
"Gearbox")
55 path.add_module(
"Geometry", useDB=
True)
63 for moda
in path.modules():
64 if moda.name() ==
'SVDCoGTimeEstimator':
65 moda.param(
"ShaperDigits",
'SVDShaperDigitsFromTracks')
66 moda.param(
"RecoDigits",
'SVDRecoDigitsFromTracks')
67 moda.param(
"CalibrationWithEventT0",
False)
68 if moda.name() ==
'SVDSimpleClusterizer':
69 moda.param(
"Clusters",
'SVDClustersFromTracks')
70 moda.param(
"RecoDigits",
'SVDRecoDigitsFromTracks')
71 moda.param(
"ShaperDigits",
'SVDShaperDigitsFromTracks')
72 moda.param(
"timeAlgorithm", 2)
73 if moda.name() ==
'SVDSpacePointCreator':
74 moda.param(
"SVDClusters",
'SVDClustersFromTracks')
76 path = remove_module(path,
'SVDMissingAPVsClusterCreator')
78 file_to_iov_physics = input_data[
"hlt_hadron"]
85 reduced_file_to_iov_physics = filter_by_max_files_per_run(file_to_iov_physics, max_files_per_run, min_events_per_file=1)
87 good_input_files = list(reduced_file_to_iov_physics.keys())
88 basf2.B2INFO(f
"Total number of files actually used as input = {len(good_input_files)}")
90 exps = [i.exp_low
for i
in reduced_file_to_iov_physics.values()]
91 runs = sorted([i.run_low
for i
in reduced_file_to_iov_physics.values()])
97 if not len(good_input_files):
98 print(
"No good input files found! Check that the input files have entries != 0!")
101 uniqueID =
"SVD3SampleELSTimeCalibrations_Test_" + str(now.isoformat()) +
"_INFO:_1stOrderPolAndInv_TBindep_Exp" + \
102 str(expNum) +
"_runsFrom" + str(firstRun) +
"to" + str(lastRun)
109 requested_iov = kwargs.get(
"requested_iov",
None)
110 output_iov = IoV(requested_iov.exp_low, requested_iov.run_low, -1, -1)
113 collector = register_module(
'SVDTimeCalibrationCollector')
114 collector.param(
"SVDClustersFromTracksName",
"SVDClustersFromTracks")
115 collector.param(
"SVDEventInfoName",
"SVDEventInfo")
116 collector.param(
"EventT0Name",
"EventT0")
117 collector.param(
"granularity",
"run")
120 algorithm = SVD3SampleELSTimeCalibrationAlgorithm(uniqueID)
121 algorithm.setMinEntries(10000)
126 algorithms=algorithm,
127 input_files=good_input_files,
128 pre_collector_path=path,
136 for algorithm
in calibration.algorithms:
137 algorithm.params = {
"iov_coverage": output_iov}