File indexing completed on 2023-03-17 10:39:31
0001
0002
0003 import sys
0004 import argparse
0005 import Alignment.MillePedeAlignmentAlgorithm.mpslib.tools as mps_tools
0006
0007
0008 def main(argv = None):
0009 """Main routine of the script.
0010
0011 Arguments:
0012 - `argv`: arguments passed to the main routine
0013 """
0014
0015 if argv == None:
0016 argv = sys.argv[1:]
0017
0018 parser = argparse.ArgumentParser(
0019 description="Prepare input db file for MillePede workflow.")
0020 parser.add_argument("-g", "--global-tag", dest="global_tag", required=True,
0021 metavar="TAG",
0022 help="global tag to extract the alignment payloads")
0023 parser.add_argument("-r", "--run-number", dest="run_number", required=True,
0024 metavar="INTEGER", type=int,
0025 help="run number to select IOV")
0026 parser.add_argument("-o", "--output-db", dest="output_db",
0027 default="alignment_input.db", metavar="PATH",
0028 help="name of the output file (default: '%(default)s')")
0029 args = parser.parse_args(argv)
0030
0031 inputs = mps_tools.get_tags(args.global_tag,
0032 ["TrackerAlignmentRcd",
0033 "TrackerSurfaceDeformationRcd",
0034 "TrackerAlignmentErrorExtendedRcd"])
0035 for inp in inputs.values():
0036 inp["iovs"] = mps_tools.get_iovs(inp["connect"], inp["tag"])
0037 mps_tools.create_single_iov_db(inputs, args.run_number, args.output_db)
0038
0039
0040
0041 if __name__ == "__main__":
0042 try:
0043 main()
0044 except KeyboardInterrupt:
0045 pass