Belle II Software  release-05-01-25
SVDCrossTalkCalibrationsCAF.py
1 
7 
8 from basf2 import *
9 
10 set_log_level(LogLevel.INFO)
11 
12 import os
13 import sys
14 import multiprocessing
15 
16 import ROOT
17 from ROOT import Belle2
18 from ROOT.Belle2 import SVDCrossTalkCalibrationsAlgorithm
19 
20 from caf.framework import Calibration, CAF, Collection, LocalDatabase, CentralDatabase
21 from caf import backends
22 from caf import strategies
23 
24 import rawdata as raw
25 
26 from basf2 import conditions
27 
28 input_branches = [
29  'RawSVDs'
30 ]
31 
32 
33 def SVDCrossTalkCalibrations(files, tags):
34 
35  # Set-up re-processing path
36  path = create_path()
37 
38  path.add_module('Progress')
39  path.add_module('RootInput', branchNames=input_branches)
40 
41  path.add_module("Gearbox")
42  path.add_module("Geometry")
43 
44  raw.add_unpackers(path, components=['SVD'])
45 
46  collector = register_module('SVDCrossTalkCalibrationsCollector')
47  algorithm = SVDCrossTalkCalibrationsAlgorithm("SVDCrossTalkCAF")
48 
49  calibration = Calibration('SVDCrossTalk',
50  collector=collector,
51  algorithms=algorithm,
52  input_files=files,
53  pre_collector_path=path,
54  database_chain=[CentralDatabase(tag) for tag in tags],
55  output_patterns=None,
56  max_files_per_collector_job=-1,
57  backend_args=None
58  )
59  # Local database containing occupancy payload required for runs that do not have SVDOccupancy payload
60  # attached to svd_basic global tag
61  # calibration.use_local_database('/gpfs/fs02/belle2/group/detector/SVD/earlyPhase3/localDB_Occupancy/database.txt')
62 
63  calibration.strategies = strategies.SequentialRunByRun
64 
65  return calibration
66 
67 
68 if __name__ == "__main__":
69  # input_files = [os.path.abspath(file) for file in [
70  # "/group/belle2/dataprod/Data/Raw/e0008/r01309/sub00/physics.0008.01309.HLT5.f00098.root"]]
71  input_files = [os.path.abspath(file) for file in Belle2.Environment.Instance()
72  .getInputFilesOverride()]
73 
74  print(" ")
75  print("INPUT FILES")
76  print(" ")
77  print(input_files)
78  print(" ")
79 
80  svdCrossTalkCAF = SVDCrossTalkCalibrations(input_files,
81  ['data_reprocessing_prompt_rel4_patchb',
82  'svd_loadedOnFADC', 'svd_basic'])
83 
84  cal_fw = CAF()
85  cal_fw.add_calibration(svdCrossTalkCAF)
86  cal_fw.backend = backends.LSF()
87 
88  # Try to guess if we are at KEKCC and change the backend to Local if not
89  if multiprocessing.cpu_count() < 10:
90  cal_fw.backend = backends.Local(8)
91 
92  cal_fw.run()
strategies.SequentialRunByRun
Definition: strategies.py:251
backends.LSF
Definition: backends.py:1567
Belle2::Environment::Instance
static Environment & Instance()
Static method to get a reference to the Environment instance.
Definition: Environment.cc:31
Calibration
Definition: Calibration.py:1
backends.Local
Definition: backends.py:878