1028{
1030
1040
1041 int override;
1043 int check_required;
1044 int check_ambiguity;
1045
1047
1048 override =
params->override;
1050 check_required =
params->check_required;
1051 check_ambiguity =
params->check_ambiguity;
1052
1055
1057
1058 optarg = 0;
1059 optind = 0;
1060 opterr =
params->print_errors;
1061 optopt = '?';
1062
1063 while (1)
1064 {
1065 int option_index = 0;
1066
1068 { "help", 0, NULL, 'h' },
1069 { "version", 0, NULL, 0 },
1070 { "runnumber", 1, NULL, 'r' },
1071 { "lbstart", 1, NULL, 0 },
1072 { "lbend", 1, NULL, 0 },
1073 { "xml", 1, NULL, 'x' },
1074 { "xml_blacklist", 1, NULL, 0 },
1075 { "tag", 1, NULL, 'T' },
1076 { "root", 1, NULL, 0 },
1077 { "tree", 1, NULL, 0 },
1078 { "d3pd_dir", 1, NULL, 0 },
1079 { "lumitag", 1, NULL, 0 },
1080 { "online", 0, NULL, 0 },
1081 { "lumichannel", 1, NULL, 0 },
1082 { "lumimethod", 1, NULL, 0 },
1083 { "trigger", 1, NULL, 't' },
1084 { "livetrigger", 1, NULL, 0 },
1085 { "lar", 0, NULL, 0 },
1086 { "lartag", 1, NULL, 0 },
1087 { "beamspot", 0, NULL, 0 },
1088 { "beamspottag", 1, NULL, 0 },
1089 { "scale_lumi", 1, NULL, 0 },
1090 { "xml_out", 1, NULL, 0 },
1091 { "xml_collisionlist", 0, NULL, 0 },
1092 { "plots", 0, NULL, 0 },
1093 { "verbose", 0, NULL, 'V' },
1094 { "quiet", 0, NULL, 0 },
1095 { 0, 0, 0, 0 }
1096 };
1097
1098 c = getopt_long (argc, argv,
"hr:x:T:t:V", long_options, &option_index);
1099
1100 if (c == -1) break;
1101
1102 switch (c)
1103 {
1104 case 'h':
1107 exit (EXIT_SUCCESS);
1108
1109 case 'r':
1110
1112 &(local_args_info.runnumber_given), optarg, 0, 0,
ARG_STRING,
1113 "runnumber", 'r',
1114 additional_error))
1115 goto failure;
1116
1117 break;
1118 case 'x':
1119
1121 &(local_args_info.xml_given), optarg, 0, 0,
ARG_STRING,
1122 "xml", 'x',
1123 additional_error))
1124 goto failure;
1125
1126 break;
1127 case 'T':
1128
1130 &(local_args_info.tag_given), optarg, 0, 0,
ARG_STRING,
1131 "tag", 'T',
1132 additional_error))
1133 goto failure;
1134
1135 break;
1136 case 't':
1137
1139 &(local_args_info.trigger_given), optarg, 0, 0,
ARG_STRING,
1140 "trigger", 't',
1141 additional_error))
1142 goto failure;
1143
1144 break;
1145 case 'V':
1146
1147
1149 &(local_args_info.verbose_given), optarg, 0, 0,
ARG_FLAG,
1150 check_ambiguity, override, 1, 0, "verbose", 'V',
1151 additional_error))
1152 goto failure;
1153
1154 break;
1155
1156 case 0:
1157 if (strcmp (long_options[option_index].name, "version") == 0) {
1160 exit (EXIT_SUCCESS);
1161 }
1162
1163
1164 if (strcmp (long_options[option_index].name, "lbstart") == 0)
1165 {
1166
1168 &(local_args_info.lbstart_given), optarg, 0, 0,
ARG_INT,
1169 "lbstart", '-',
1170 additional_error))
1171 goto failure;
1172
1173 }
1174
1175 else if (strcmp (long_options[option_index].name, "lbend") == 0)
1176 {
1177
1179 &(local_args_info.lbend_given), optarg, 0, 0,
ARG_INT,
1180 "lbend", '-',
1181 additional_error))
1182 goto failure;
1183
1184 }
1185
1186 else if (strcmp (long_options[option_index].name, "xml_blacklist") == 0)
1187 {
1188
1189
1192 &(local_args_info.xml_blacklist_given), optarg, 0, 0,
ARG_STRING,
1193 check_ambiguity, override, 0, 0,
1194 "xml_blacklist", '-',
1195 additional_error))
1196 goto failure;
1197
1198 }
1199
1200 else if (strcmp (long_options[option_index].name, "root") == 0)
1201 {
1202
1204 &(local_args_info.root_given), optarg, 0, 0,
ARG_STRING,
1205 "root", '-',
1206 additional_error))
1207 goto failure;
1208
1209 }
1210
1211 else if (strcmp (long_options[option_index].name, "tree") == 0)
1212 {
1213
1214
1217 &(local_args_info.tree_given), optarg, 0, 0,
ARG_STRING,
1218 check_ambiguity, override, 0, 0,
1219 "tree", '-',
1220 additional_error))
1221 goto failure;
1222
1223 }
1224
1225 else if (strcmp (long_options[option_index].name, "d3pd_dir") == 0)
1226 {
1227
1228
1231 &(local_args_info.d3pd_dir_given), optarg, 0, 0,
ARG_STRING,
1232 check_ambiguity, override, 0, 0,
1233 "d3pd_dir", '-',
1234 additional_error))
1235 goto failure;
1236
1237 }
1238
1239 else if (strcmp (long_options[option_index].name, "lumitag") == 0)
1240 {
1241
1242
1245 &(local_args_info.lumitag_given), optarg, 0,
"OflLumi-8TeV-002",
ARG_STRING,
1246 check_ambiguity, override, 0, 0,
1247 "lumitag", '-',
1248 additional_error))
1249 goto failure;
1250
1251 }
1252
1253 else if (strcmp (long_options[option_index].name, "online") == 0)
1254 {
1255
1256
1258 &(local_args_info.online_given), optarg, 0, 0,
ARG_FLAG,
1259 check_ambiguity, override, 1, 0, "online", '-',
1260 additional_error))
1261 goto failure;
1262
1263 }
1264
1265 else if (strcmp (long_options[option_index].name, "lumichannel") == 0)
1266 {
1267
1268
1271 &(local_args_info.lumichannel_given), optarg, 0,
"0",
ARG_INT,
1272 check_ambiguity, override, 0, 0,
1273 "lumichannel", '-',
1274 additional_error))
1275 goto failure;
1276
1277 }
1278
1279 else if (strcmp (long_options[option_index].name, "lumimethod") == 0)
1280 {
1281
1282
1285 &(local_args_info.lumimethod_given), optarg, 0,
"ATLAS_PREFERRED",
ARG_STRING,
1286 check_ambiguity, override, 0, 0,
1287 "lumimethod", '-',
1288 additional_error))
1289 goto failure;
1290
1291 }
1292
1293 else if (strcmp (long_options[option_index].name, "livetrigger") == 0)
1294 {
1295
1296
1299 &(local_args_info.livetrigger_given), optarg, 0,
"L1_EM30",
ARG_STRING,
1300 check_ambiguity, override, 0, 0,
1301 "livetrigger", '-',
1302 additional_error))
1303 goto failure;
1304
1305 }
1306
1307 else if (strcmp (long_options[option_index].name, "lar") == 0)
1308 {
1309
1310
1312 &(local_args_info.lar_given), optarg, 0, 0,
ARG_FLAG,
1313 check_ambiguity, override, 1, 0, "lar", '-',
1314 additional_error))
1315 goto failure;
1316
1317 }
1318
1319 else if (strcmp (long_options[option_index].name, "lartag") == 0)
1320 {
1321
1322
1325 &(local_args_info.lartag_given), optarg, 0,
"LARBadChannelsOflEventVeto-UPD4-01",
ARG_STRING,
1326 check_ambiguity, override, 0, 0,
1327 "lartag", '-',
1328 additional_error))
1329 goto failure;
1330
1331 }
1332
1333 else if (strcmp (long_options[option_index].name, "beamspot") == 0)
1334 {
1335
1336
1338 &(local_args_info.beamspot_given), optarg, 0, 0,
ARG_FLAG,
1339 check_ambiguity, override, 1, 0, "beamspot", '-',
1340 additional_error))
1341 goto failure;
1342
1343 }
1344
1345 else if (strcmp (long_options[option_index].name, "beamspottag") == 0)
1346 {
1347
1348
1351 &(local_args_info.beamspottag_given), optarg, 0,
"IndetBeamposOnl-HLT-UPD1-001-00",
ARG_STRING,
1352 check_ambiguity, override, 0, 0,
1353 "beamspottag", '-',
1354 additional_error))
1355 goto failure;
1356
1357 }
1358
1359 else if (strcmp (long_options[option_index].name, "scale_lumi") == 0)
1360 {
1361
1362
1365 &(local_args_info.scale_lumi_given), optarg, 0,
"1.0",
ARG_DOUBLE,
1366 check_ambiguity, override, 0, 0,
1367 "scale_lumi", '-',
1368 additional_error))
1369 goto failure;
1370
1371 }
1372
1373 else if (strcmp (long_options[option_index].name, "xml_out") == 0)
1374 {
1375
1376
1379 &(local_args_info.xml_out_given), optarg, 0, 0,
ARG_STRING,
1380 check_ambiguity, override, 0, 0,
1381 "xml_out", '-',
1382 additional_error))
1383 goto failure;
1384
1385 }
1386
1387 else if (strcmp (long_options[option_index].name, "xml_collisionlist") == 0)
1388 {
1389
1390
1392 &(local_args_info.xml_collisionlist_given), optarg, 0, 0,
ARG_FLAG,
1393 check_ambiguity, override, 1, 0, "xml_collisionlist", '-',
1394 additional_error))
1395 goto failure;
1396
1397 }
1398
1399 else if (strcmp (long_options[option_index].name, "plots") == 0)
1400 {
1401
1402
1404 &(local_args_info.plots_given), optarg, 0, 0,
ARG_FLAG,
1405 check_ambiguity, override, 1, 0, "plots", '-',
1406 additional_error))
1407 goto failure;
1408
1409 }
1410
1411 else if (strcmp (long_options[option_index].name, "quiet") == 0)
1412 {
1413
1414
1416 &(local_args_info.quiet_given), optarg, 0, 0,
ARG_FLAG,
1417 check_ambiguity, override, 1, 0, "quiet", '-',
1418 additional_error))
1419 goto failure;
1420
1421 }
1422
1423 break;
1424 case '?':
1425
1426 goto failure;
1427
1428 default:
1429 fprintf (stderr,
"%s: option unknown: %c%s\n",
CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error :
""));
1430 abort ();
1431 }
1432 }
1433
1434
1437 local_args_info.runnumber_given, 0,
1441 local_args_info.lbstart_given, 0,
1445 local_args_info.lbend_given, 0,
1449 local_args_info.xml_given, 0,
1453 local_args_info.tag_given, 0,
1457 local_args_info.root_given, 0,
1461 local_args_info.trigger_given, 0,
1463
1465 local_args_info.runnumber_given = 0;
1467 local_args_info.lbstart_given = 0;
1468 args_info->
lbend_given += local_args_info.lbend_given;
1469 local_args_info.lbend_given = 0;
1470 args_info->
xml_given += local_args_info.xml_given;
1471 local_args_info.xml_given = 0;
1472 args_info->
tag_given += local_args_info.tag_given;
1473 local_args_info.tag_given = 0;
1474 args_info->
root_given += local_args_info.root_given;
1475 local_args_info.root_given = 0;
1477 local_args_info.trigger_given = 0;
1478
1479 if (check_required)
1480 {
1482 }
1483
1485
1487 return (EXIT_FAILURE);
1488
1489 return 0;
1490
1491failure:
1499
1501 return (EXIT_FAILURE);
1502}
static int update_multiple_arg_temp(struct generic_list **list, unsigned int *prev_given, const char *val, const char *possible_values[], const char *default_value, cmdline_parser_arg_type arg_type, const char *long_opt, char short_opt, const char *additional_error)
store information about a multiple option in a temporary list
static char * package_name
static void update_multiple_arg(void *field, char ***orig_field, unsigned int field_given, unsigned int prev_given, union generic_value *default_value, cmdline_parser_arg_type arg_type, struct generic_list *list)
updates a multiple option starting from the passed list
static void free_list(struct generic_list *list, short string_arg)
free the passed list (including possible string argument)
void cmdline_parser_print_version(void)
Print the version.
void cmdline_parser_init(struct gengetopt_args_info *args_info)
Initializes the passed gengetopt_args_info structure's fields (also set default values for options th...
void cmdline_parser_print_help(void)
Print the help.
static int cmdline_parser_required2(struct gengetopt_args_info *args_info, const char *prog_name, const char *additional_error)
static int update_arg(void *field, char **orig_field, unsigned int *field_given, unsigned int *prev_given, char *value, const char *possible_values[], const char *, cmdline_parser_arg_type arg_type, int check_ambiguity, int override, int no_free, int multiple_option, const char *long_opt, char short_opt, const char *additional_error)
updates an option
Where the command line options are stored.