Belle II Software  release-05-01-25
caf_cdc_alignment.py
1 import basf2 as b2
2 
3 import os
4 import sys
5 
6 
7 from caf.framework import CAF
8 from caf import backends
9 
10 from reconstruction import add_cosmics_reconstruction
11 
12 from alignment import setups
13 
14 b2.set_log_level(b2.LogLevel.INFO)
15 
16 
17 def main(argv):
18  print('Demonstrator of Millepede alignment of CDC layers with CAF')
19 
20  inputFiles = []
21  for file in argv[0:]:
22  inputFiles.append(os.path.abspath(file))
23 
24  if not len(inputFiles):
25  print('Usage: basf2 caf_cdc_alignment DST_FILE.root [DST_FILE2.root ... ]')
26  sys.exit(1)
27 
28  print('Input DST files:')
29  print(inputFiles)
30 
31  reco_path = b2.create_path()
32  reco_path.add_module('Progress')
33  reco_path.add_module('Gearbox')
34  reco_path.add_module('Geometry', excludedComponents=['SVD', 'PXD', 'ARICH', 'BeamPipe', 'EKLM'])
35  # Add CDC CR reconstruction.
36  add_cosmics_reconstruction(reco_path, components=['CDC'], merge_tracks=True, pruneTracks=False)
37 
38  setups.dirty_data = True
39  millepede = setups.setup_CDCLayers_GCR_Karim()
40  millepede.path = reco_path
41  calib_init = millepede.create('cdc_layers_init', inputFiles)
42  calib_init.max_iterations = 0
43  calib_init.max_files_per_collector_job = 1
44 
45  setups.dirty_data = False
46  millepede = setups.setup_CDCLayers_GCR_Karim()
47  millepede.path = reco_path
48  millepede.set_param(1.e-3, 'minPValue')
49  calib_std = millepede.create('cdc_layers_std', inputFiles)
50  calib_std.max_files_per_collector_job = 1
51 
52  calib_std.depends_on(calib_init)
53 
54  caf = CAF()
55 
56  caf.add_calibration(calib_init)
57  caf.add_calibration(calib_std)
58 
59  caf.backend = backends.Local(2)
60 
61  caf.output_dir = 'caf_output'
62  caf.run()
63 
64  print("Finished CAF Processing")
65 
66 
67 if __name__ == "__main__":
68  # Pass all arguments after script name as input files
69  main(sys.argv[1:])
main
int main(int argc, char **argv)
Run all tests.
Definition: test_main.cc:77
backends.Local
Definition: backends.py:878