14 bool Core::LoadConfig(std::string config, std::string userConfig, std::string environment, std::string userConfigRaw)
16 std::string fileContent = Utils::OpenRawFile(config);
17 if (!fileContent.empty()) {
18 gCfg = json::parse(fileContent);
19 Printf(
"Using config file '%s' ...", config.c_str());
20 if (!userConfig.empty()) {
21 std::string fileContentUser = Ndmspc::Utils::OpenRawFile(userConfig);
22 if (!fileContentUser.empty()) {
23 json userCfg = json::parse(fileContentUser);
24 gCfg.merge_patch(userCfg);
25 Printf(
"User config file '%s' was merged ...", userConfig.c_str());
28 Printf(
"Warning: User config '%s' was specified, but it was not open !!!", userConfig.c_str());
34 Printf(
"Error: Problem opening config file '%s' !!! Exiting ...", config.c_str());
38 for (
auto & cut : gCfg[
"ndmspc"][
"cuts"]) {
39 if (!cut[
"rebin"].is_number_integer()) gCfg[
"ndmspc"][
"cuts"][cut[
"axis"].get<std::string>()] = 1;
41 Int_t rebin_start = 1;
42 if (cut[
"rebin"].is_number_integer()) rebin = cut[
"rebin"].get<Int_t>();
43 if (cut[
"rebin_start"].is_number_integer()) rebin_start = cut[
"rebin_start"].get<Int_t>();
44 if (rebin > 1 && rebin_start >= rebin) {
45 Printf(
"Error: rebin_start=%d is greater than rebin=%d for axis '%s' !!! Please set rebin_start to lower then "
46 "rebin !!! Exiting ...",
47 rebin_start, rebin, cut[
"axis"].get<std::string>().c_str());
52 if (!environment.empty()) {
53 gCfg[
"ndmspc"][
"environment"] = environment;
54 LoadEnvironment(environment);
56 else if (gCfg[
"ndmspc"][
"environment"].is_string() && !gCfg[
"ndmspc"][
"environment"].get<std::string>().empty()) {
57 environment = gCfg[
"ndmspc"][
"environment"].get<std::string>();
58 LoadEnvironment(environment);
61 if (!userConfigRaw.empty()) {
62 json userCfgRaw = json::parse(userConfigRaw);
63 gCfg.merge_patch(userCfgRaw);
64 Printf(
"Config raw '%s' was merged...", userConfigRaw.c_str());
69 bool Core::LoadEnvironment(std::string environment)
71 if (gCfg[
"ndmspc"][
"environments"][environment].is_object()) {
72 Printf(
"Using environment '%s' ...", environment.c_str());
73 json myCfg = gCfg[
"ndmspc"][
"environments"][environment];
74 gCfg.merge_patch(myCfg);
77 if (!environment.compare(
"default")) {
81 Printf(
"Error: Environment '%s' was not found !!! Exiting ...", environment.c_str());