32 po::options_description
generic(
"Generic options");
33 auto generic_add =
generic.add_options();
34 generic_add(
"help,h",
"display this help and exit");
37 string defconfig = std::getenv(
"VMCWORKDIR");
38 defconfig.append(
"/");
40 po::options_description config(
"Configuration");
41 auto config_add = config.add_options();
42 config_add(
"output,o", po::value<string>(&
fOutput)->value_name(
"<file name>"),
43 "name of the output ROOT file with reconstructed data");
44 config_add(
"digitization,d", po::value<string>(&
fRaw)->value_name(
"<file name>"),
45 "name of the raw ROOT file containing digi data");
46 config_add(
"parameter,p", po::value<string>(&
fPar)->value_name(
"<file name>"),
47 "name of a parameter ROOT file (FairRuntimeDb format)");
48 config_add(
"config,c", po::value<string>(&
fConfig)->value_name(
"<file name>")->default_value(defconfig),
49 "name of a YAML file describing the configuration of reconstruction");
50 config_add(
"setup,s", po::value<string>(&
fSetup)->value_name(
"<tag>")->default_value(
DEFAULT_SETUP),
51 "geometry setup tag");
52 config_add(
"overwrite,w", po::bool_switch(&
fOverwrite)->default_value(
false),
53 "allow to overwite an existing output file");
56 po::options_description cmdline_options(
"Allowed options");
57 cmdline_options.add(generic).add(config);
60 po::variables_map vars;
61 po::store(po::parse_command_line(argc, argv, cmdline_options), vars);
65 if (vars.count(
"help") != 0u) {
66 std::cout << cmdline_options << std::endl;
71 if (vars.count(
"output") == 0u) {
72 throw std::runtime_error(
"no output file name specified");
74 if (vars.count(
"digitization") == 0u) {
75 throw std::runtime_error(
"no digitization (raw) file name specified");
77 if (vars.count(
"parameter") == 0u) {
78 throw std::runtime_error(
"no parameter file name specified");