16bool Core::LoadConfig(std::string config, std::string userConfig, std::string & environment, std::string userConfigRaw,
23 if (!fileContent.empty()) {
24 gCfg = json::parse(fileContent);
25 Printf(
"Using config file '%s' ...", config.c_str());
26 if (!userConfig.empty()) {
28 if (!fileContentUser.empty()) {
29 json userCfg = json::parse(fileContentUser);
30 gCfg.merge_patch(userCfg);
31 Printf(
"User config file '%s' was merged ...", userConfig.c_str());
34 Printf(
"Warning: User config '%s' was specified, but it was not open !!!", userConfig.c_str());
40 Printf(
"Error: Problem opening config file '%s' !!! Exiting ...", config.c_str());
44 for (
auto & cut : gCfg[
"ndmspc"][
"cuts"]) {
45 if (!cut[
"rebin"].is_number_integer()) gCfg[
"ndmspc"][
"cuts"][cut[
"axis"].get<std::string>()] = 1;
47 Int_t rebin_start = 1;
48 if (cut[
"rebin"].is_number_integer()) rebin = cut[
"rebin"].get<Int_t>();
49 if (cut[
"rebin_start"].is_number_integer()) rebin_start = cut[
"rebin_start"].get<Int_t>();
50 if (rebin > 1 && rebin_start >= rebin) {
51 Printf(
"Error: rebin_start=%d is greater than rebin=%d for axis '%s' !!! Please set rebin_start to lower then "
52 "rebin !!! Exiting ...",
53 rebin_start, rebin, cut[
"axis"].get<std::string>().c_str());
58 if (!environment.empty()) {
59 gCfg[
"ndmspc"][
"environment"] = environment;
62 else if (gCfg[
"ndmspc"][
"environment"].is_string() && !gCfg[
"ndmspc"][
"environment"].get<std::string>().empty()) {
63 environment = gCfg[
"ndmspc"][
"environment"].get<std::string>();
67 if (!userConfigRaw.empty()) {
68 json userCfgRaw = json::parse(userConfigRaw);
69 gCfg.merge_patch(userCfgRaw);
70 Printf(
"Config raw '%s' was merged...", userConfigRaw.c_str());
73 if (!binning.empty()) {
77 for (
auto & cut : gCfg[
"ndmspc"][
"cuts"]) {
79 if (cut[
"enabled"].is_boolean() && cut[
"enabled"].get<bool>() ==
false)
continue;
82 gCfg[
"ndmspc"][
"cuts"][index][
"rebin"] = atoi(b[0].c_str());
83 gCfg[
"ndmspc"][
"cuts"][index][
"rebin_start"] = atoi(b[1].c_str());
static bool LoadConfig(std::string config, std::string userConfig, std::string &environment, std::string userConfigRaw="", std::string binning="")