51bool Options::processCommandLine(
int argc,
char* argv[])
55 bpo::options_description eveOptions(
"o2Eve options");
57 eveOptions.add_options()(
58 "help,h",
"produce help message")(
59 "datafolder,d", bpo::value<
decltype(this->mDataFolder)>()->default_value(
"./json"),
"name of the data folder")(
60 "imagefolder,i", bpo::value<
decltype(this->mImageFolder)>()->default_value(
""),
"name of the image folder")(
61 "filename,f", bpo::value<
decltype(this->mFileName)>()->default_value(
"data.root"),
"name of the data file")(
62 "json,j", bpo::value<
decltype(this->mJSON)>()->zero_tokens()->default_value(
false),
"use json files as a source")(
63 "memorylimit,m", bpo::value<
decltype(this->mMemoryLimit)>()->default_value(-1),
"memory usage limit (MB) - app will terminate if it is exceeded (pass -1 for no limit)")(
64 "online,o", bpo::value<
decltype(this->mOnline)>()->zero_tokens()->default_value(
false),
"use online json files as a source")(
65 "optionsfilename,p", bpo::value<std::string>()->default_value(
""),
"name of the options file")(
66 "randomtracks,r", bpo::value<
decltype(this->mRandomTracks)>()->zero_tokens()->default_value(
false),
"use random tracks")(
67 "saveddatafolder,s", bpo::value<
decltype(this->mSavedDataFolder)>()->default_value(
""),
"name of the saved data folder")(
68 "hidedplgui", bpo::value<
decltype(this->mHideDplGUI)>()->zero_tokens()->default_value(
false),
"hide DPL GUI when processing AODs")(
69 "aodconverter,a", bpo::value<
decltype(this->mAODConverterPath)>()->default_value(
"o2-eve-aodconverter"),
"AOD converter path");
71 using namespace bpo::command_line_style;
72 auto style = (allow_short | short_allow_adjacent | short_allow_next | allow_long | long_allow_adjacent | long_allow_next | allow_sticky | allow_dash_for_short);
73 bpo::variables_map varmap;
76 bpo::command_line_parser(argc, argv)
81 }
catch (std::exception
const& e) {
82 LOGP(error,
"error parsing options of {}: {}", argv[0], e.what());
86 if (varmap.count(
"help")) {
91 this->mDataFolder = varmap[
"datafolder"].as<
decltype(this->mDataFolder)>();
92 this->mImageFolder = varmap[
"imagefolder"].as<
decltype(this->mImageFolder)>();
93 this->mFileName = varmap[
"filename"].as<
decltype(this->mFileName)>();
94 this->mJSON = varmap[
"json"].as<
decltype(this->mJSON)>();
95 this->mMemoryLimit = varmap[
"memorylimit"].as<
decltype(this->mMemoryLimit)>();
96 this->mOnline = varmap[
"online"].as<
decltype(this->mOnline)>();
97 this->mOptionsFileName = varmap[
"optionsfilename"].as<std::string>();
98 this->mRandomTracks = varmap[
"randomtracks"].as<
decltype(this->mRandomTracks)>();
99 this->mSavedDataFolder = varmap[
"saveddatafolder"].as<
decltype(this->mSavedDataFolder)>();
100 this->mHideDplGUI = varmap[
"hidedplgui"].as<
decltype(this->mHideDplGUI)>();
101 this->mAODConverterPath = varmap[
"aodconverter"].as<
decltype(this->mAODConverterPath)>();
104 this->saveToJSON(
"o2eve.json");