Belle II Software development
SVDChannelMappingImporter.py
1#!/usr/bin/env python
2
3
10
11"""
12SVD Database importer.
13Script to Import SVD Channel Mapping into a local DB
14"""
15
16import basf2 as b2
17from ROOT.Belle2 import SVDLocalCalibrationsImporter
18import sys
19import argparse
20from termcolor import colored
21from basf2 import conditions as b2conditions
22
23parser = argparse.ArgumentParser(description="SVD Local Calibrations Importer")
24parser.add_argument('--exp', metavar='experiment', dest='exp', type=int, nargs=1, help='Experiment Number, = 1 for GCR')
25parser.add_argument('--run', metavar='run', dest='run', type=int, nargs=1, help='Run Number')
26parser.add_argument('--mapXML', metavar='channel map xml', dest='mapp', type=str, nargs=1, help='Channel Mapping xml file')
27
28print('')
29
30if(str(sys.argv[1]) == "help"):
31 parser.print_help()
32 exit(1)
33
34args = parser.parse_args()
35
36experiment = args.exp[0]
37run = args.run[0]
38
39if args.mapp is not None:
40 mappingfile = args.mapp[0]
41else:
42 mappingfile = args.mapp
43
44RED = "\033[1;31m"
45BLUE = "\033[1;34m"
46CYAN = "\033[1;36m"
47GREEN = "\033[0;32m"
48RESET = "\033[0;0m"
49BOLD = "\033[;1m"
50BLEU = "\033[34m"
51REVERSE = "\033[;7m"
52sys.stdout.write(RED)
53print('| ---> CHECK HERE: <---')
54print('| experiment number = ' + str(experiment))
55print('|first valid run number = ' + str(run))
56print('| mapping xml = ' + str(mappingfile))
57print('| ---> THANKS! <---')
58sys.stdout.write(RESET)
59
60print('')
61
62proceed = input("Do you want to proceed? y/n ")
63if not str(proceed) == 'y':
64 print(colored(str(proceed) + ' != y, therefore we exit now', 'red'))
65 exit(1)
66
67
68b2conditions.prepend_globaltag("svd_basic")
69
70main = b2.create_path()
71
72
73# Event info setter - execute single event
74eventinfosetter = b2.register_module('EventInfoSetter')
75eventinfosetter.param({'evtNumList': [1], 'expList': experiment, 'runList': run})
76main.add_module(eventinfosetter)
77
78# Gearbox - access to xml files
79main.add_module("Gearbox")
80
81run = int(run)
82
83
84class dbImporterModule(b2.Module):
85 '''channel mapping importer module'''
86
87 def beginRun(self):
88 '''begin run'''
89
90 # call the importer class
91 dbImporter = SVDLocalCalibrationsImporter(experiment, run, experiment, -1)
92 if args.mapp is not None:
93 # import channel mapping
94 dbImporter.importSVDChannelMapping(mappingfile)
95 print(colored("V) Channel Mapping Imported", 'green'))
96
97
98main.add_module(dbImporterModule())
99
100b2.process(main)
101
102print("IMPORT COMPLETED, check the localDB folder and then proceeed with the upload to the central DB")