11 set_log_level(LogLevel.INFO)
15 import multiprocessing
20 from ROOT
import Belle2, TFile
21 from ROOT.Belle2
import SVDOccupancyCalibrationsAlgorithm
22 from ROOT.Belle2
import SVDHotStripsCalibrationsAlgorithm
24 from caf.framework
import Calibration, CAF, Collection, LocalDatabase, CentralDatabase
25 from caf
import backends
26 from caf
import strategies
29 import reconstruction
as reco
30 import modularAnalysis
as ana
33 now = datetime.datetime.now()
35 uniqueID_hotStrips =
''
41 set_log_level(LogLevel.INFO)
44 def SVDOccupancyAndHotStripsCalibrations(files, tags):
51 path.add_module(
'Progress')
53 path.add_module(
'RootInput', branchNames=input_branches)
55 path.add_module(
"Gearbox")
56 path.add_module(
"Geometry", useDB=
True)
57 raw.add_unpackers(path, components=[
'SVD'])
59 'SVDZeroSuppressionEmulator',
61 ShaperDigits=
'SVDShaperDigits',
62 ShaperDigitsIN=
'SVDShaperDigitsZS5',
65 collector = register_module(
'SVDOccupancyCalibrationsCollector')
66 collector.param(
"SVDShaperDigitsName",
"SVDShaperDigitsZS5")
67 algorithm1 = SVDOccupancyCalibrationsAlgorithm(uniqueID_occup)
68 algorithm2 = SVDHotStripsCalibrationsAlgorithm(uniqueID_hotStrips)
72 calibration =
Calibration(
'SVDOccupancyAndHotStrips',
74 algorithms=[algorithm1, algorithm2],
76 pre_collector_path=path,
77 database_chain=[CentralDatabase(tag)
for tag
in tags],
79 max_files_per_collector_job=1,
88 if __name__ ==
"__main__":
94 .getInputFilesOverride()]
101 good_input_files = []
104 for i
in input_files:
105 file_list = glob.glob(i)
108 tree = tf.Get(
"tree")
109 if tree.GetEntries() != 0:
110 good_input_files.append(f)
112 inputStringSplit = f.split(
"/")
113 s_run = str(inputStringSplit[7])
114 s_exp = str(inputStringSplit[6])
115 print(str(s_run) +
" " + str(s_exp))
116 runNum = runs.append(int(s_run[1:6]))
117 runNum = int(s_run[1:6])
118 expNum = int(s_exp[1:5])
124 if not len(input_files):
125 print(
"You have to specify some input file(s)\n"
126 "using the standard basf2 command line option - i")
127 print(
"See: basf2 -h")
130 uniqueID_occup =
"SVDOccupancyCalibrations_" + \
131 str(now.isoformat()) +
"_INFO:_ZS5_Exp" + str(expNum) +
"_runsFrom" + \
132 str(firstRun) +
"to" + str(lastRun)
134 print(
"UniqueID for SVDccupancyCalibrations")
136 print(str(uniqueID_occup))
139 uniqueID_hotStrips =
"SVDHotStripsCalibrations_" + \
140 str(now.isoformat()) +
"_INFO:_ZS5_base=-1_relOccPrec=5_absOccThr=0.2_Exp"\
141 + str(expNum) +
"_runsFrom" + str(firstRun) +
"to" + str(lastRun)
142 print(
"UniqueID for SVDHotStripsCalibrations")
144 print(str(uniqueID_hotStrips))
147 svdOccupAndHotStripsCAF = SVDOccupancyAndHotStripsCalibrations(input_files,
148 [
'data_reprocessing_prompt',
'svd_basic',
'svd_loadedOnFADC'])
151 cal_fw.add_calibration(svdOccupAndHotStripsCAF)
156 if multiprocessing.cpu_count() < 10: