9Entry point for alignment validation.
12 python -m alignment_validation cosmics FILE [FILE ...] [--output-dir DIR] [--format FMT]
13 python -m alignment_validation dimuon FILE [FILE ...] [--output-dir DIR] [--format FMT]
14 [--ip-correction {run_by_run,per_event}]
19from alignment_validation
import cosmics
20from alignment_validation
import dimuon
24 """Parse command-line arguments and run the requested validation.
29 Run cosmic-track validation via :func:`alignment_validation.cosmics.run_validation`.
31 Run di-muon validation via :func:`alignment_validation.dimuon.run_validation`.
33 parser = argparse.ArgumentParser(
34 description=
"Alignment validation for Belle II track reconstruction."
36 sub = parser.add_subparsers(dest=
"command", required=
True)
38 for name, default_out
in [(
"cosmics",
"cosmics_plots"), (
"dimuon",
"dimuon_plots")]:
39 p = sub.add_parser(name, help=f
"Run {name} validation.")
40 p.add_argument(
"files", nargs=
"+", help=
"Input ROOT file(s).")
41 p.add_argument(
"--output-dir", default=default_out, help=
"Output directory for plots.")
42 p.add_argument(
"--format", default=
"pdf", dest=
"file_format", help=
"Plot image format.")
48 choices=[
"run_by_run",
"per_event"],
50 "IP correction strategy: 'run_by_run' (default) averages the IP over each "
51 "(experiment, run) pair; 'per_event' uses the per-event IP directly."
55 args = parser.parse_args()
57 if args.command ==
"cosmics":
58 cosmics.run_validation(args.files, args.output_dir, args.file_format)
59 elif args.command ==
"dimuon":
60 dimuon.run_validation(args.files, args.output_dir, args.file_format, args.ip_correction)
63if __name__ ==
"__main__":