Belle II Software release-09-00-00
SVDHotStripsCalibrationsCAF.py
1
8
9
13
14import basf2 as b2
15
16import os
17import sys
18import multiprocessing
19
20from ROOT.Belle2 import SVDHotStripsCalibrationsAlgorithm
21
22from caf.framework import CAF, Calibration, CentralDatabase
23from caf import backends
24from caf import strategies
25
26import rawdata as raw
27# import vertex as vx
28
29b2.set_log_level(b2.LogLevel.INFO)
30
31input_branches = [
32 'RawSVDs'
33]
34
35# set_log_level(LogLevel.WARNING)
36
37
38def SVDHotStripsCalibrations(files, tags):
39
40 # Set-up re-processing path
41 path = b2.create_path()
42
43 # logging.log_level = LogLevel.WARNING
44
45 path.add_module('Progress')
46 # Remove all non-raw data to run the full reco again
47 path.add_module('RootInput', branchNames=input_branches)
48
49 path.add_module("Gearbox")
50 path.add_module("Geometry", useDB=True)
51
52 # fil = register_module('SVDShaperDigitsFromTracks')
53 # fil.param('outputINArrayName', 'SVDShaperDigitsFromTracks')
54 # main.add_module(fil)
55
56 # Not needed for di-muon skim cdst or mdst, but needed to re-run reconstruction
57 # with possibly changed global tags
58 raw.add_unpackers(path, components=['SVD'])
59
60 collector = b2.register_module('SVDOccupancyCalibrationsCollector')
61 collector.param("SVDShaperDigitsName", "SVDShaperDigits")
62 algorithm = SVDHotStripsCalibrationsAlgorithm("SVDHotStripsCAF")
63
64 calibration = Calibration('SVDHotStrips',
65 collector=collector,
66 algorithms=algorithm,
67 input_files=files,
68 pre_collector_path=path,
69 database_chain=[CentralDatabase(tag) for tag in tags],
70 output_patterns=None,
71 max_files_per_collector_job=1,
72 backend_args=None
73 )
74
75 calibration.strategies = strategies.SequentialRunByRun
76
77 return calibration
78
79
80if __name__ == "__main__":
81 # use by default raw data from cdst of exp8, run1309 (shaperDigits need to be unpacked, not available in cdst format)
82 input_files = [os.path.abspath(file) for file in [
83 "/group/belle2/dataprod/Data/Raw/e0008/r01309/sub00/physics.0008.01309.HLT5.f00098.root"]]
84 # "/group/belle2/dataprod/Data/Raw/e0008/r01309/sub00/physics.0008.01309.HLT5*"]]
85# "/group/belle2/dataprod/Data/release-03-02-02/DB00000635/proc00000009/\
86# e0008/4S/r01309/skim/hlt_bhabha/cdst/sub00/cdst.physics.0008.01309.HLT*"]]
87
88 if not len(input_files):
89 print("You have to specify some input file(s)\n"
90 "using the standard basf2 command line option - i")
91 print("See: basf2 -h")
92 sys.exit(1)
93
94 svdOccupCAF = SVDHotStripsCalibrations(input_files,
95 ['giulia_CDCEDepToADCConversions_rel4_patch',
96 'data_reprocessing_prompt_rel4_patch'])
97 # beamspot.max_iterations = 0
98
99 cal_fw = CAF()
100 cal_fw.add_calibration(svdOccupCAF)
101 cal_fw.backend = backends.LSF()
102
103 # Try to guess if we are at KEKCC and change the backend to Local if not
104 if multiprocessing.cpu_count() < 10:
105 cal_fw.backend = backends.Local(8)
106
107 cal_fw.run()