#include <IterationConfig.h>
Definition at line 364 of file IterationConfig.h.
◆ ConfigJson()
mkfit::ConfigJson::ConfigJson |
( |
bool |
verbose = false | ) |
|
|
inline |
◆ dump()
◆ load_File()
std::unique_ptr< IterationConfig > mkfit::ConfigJson::load_File |
( |
const std::string & |
fname | ) |
|
Definition at line 610 of file IterationConfig.cc.
References gather_cfg::cout, alignmentValidation::fname, mkfit::from_json(), dqmiolumiharvest::j, and m_verbose.
Referenced by MkFitIterationConfigESProducer::produce().
612 open_ifstream(ifs,
fname, __func__);
615 printf(
"%s begin reading from file %s.\n", __func__,
fname.c_str());
618 if (!skipws_ifstream(ifs))
619 throw std::runtime_error(
"empty file");
625 std::cout <<
" Read JSON entity, iteration index is " <<
j[
"m_iteration_index"] <<
", track algorithm is " 626 <<
j[
"m_track_algorithm"] <<
". Instantiating IterationConfig object and over-laying it with JSON.\n";
629 IterationConfig *icp =
new IterationConfig();
633 return std::unique_ptr<IterationConfig>(icp);
void from_json(const nlohmann::json &nlohmann_json_j, mkfit::LayerControl &nlohmann_json_t)
◆ patch_Files()
Definition at line 492 of file IterationConfig.cc.
References mkfit::ConfigJsonPatcher::cd_top(), gather_cfg::cout, alignmentValidation::fname, SiStripCommissioningSource_FromRAW_cfg::fnames, dqmiolumiharvest::j, mkfit::ConfigJsonPatcher::load(), m_verbose, cuy::rep, mkfit::ConfigJsonPatcher::replace(), edmIntegrityCheck::report, and mkfit::ConfigJsonPatcher::save().
Referenced by initGeom().
498 ConfigJsonPatcher::PatchReport
rep;
502 open_ifstream(ifs,
fname, __func__);
505 printf(
"%s begin reading from file %s.\n", __func__,
fname.c_str());
508 int n_read = 0, n_tot_replaced = 0;
509 while (skipws_ifstream(ifs)) {
515 std::cout <<
" Read JSON entity " << n_read <<
" -- applying patch:\n";
519 int n_replaced = cjp.replace(
j);
522 std::cout <<
" Replaced " << n_replaced <<
" entries.\n";
525 n_tot_replaced += n_replaced;
529 printf(
"%s read %d JSON entities from file %s, replaced %d parameters.\n",
538 rep.inc_counts(1, n_read, n_tot_replaced);
541 if (
rep.n_replacements > 0) {
◆ patchLoad_File()
Definition at line 549 of file IterationConfig.cc.
References mkfit::ConfigJsonPatcher::cd_top(), gather_cfg::cout, alignmentValidation::fname, mps_fire::i, dqmiolumiharvest::j, mkfit::ConfigJsonPatcher::load(), m_verbose, cuy::rep, mkfit::ConfigJsonPatcher::replace(), edmIntegrityCheck::report, mkfit::ConfigJsonPatcher::save(), and mkfit::IterationsInfo::size().
Referenced by initGeom().
552 ConfigJsonPatcher::PatchReport
rep;
555 open_ifstream(ifs,
fname, __func__);
558 printf(
"%s begin reading from file %s.\n", __func__,
fname.c_str());
561 if (!skipws_ifstream(ifs))
562 throw std::runtime_error(
"empty file");
566 int track_algo =
j[
"m_track_algorithm"];
569 for (
int i = 0;
i < its_info.size(); ++
i) {
570 if (its_info[
i].m_track_algorithm == track_algo) {
576 throw std::runtime_error(
"matching IterationConfig not found");
579 std::cout <<
" Read JSON entity, Iteration index is " << iii <<
" -- cloning and applying JSON patch:\n";
582 IterationConfig *icp =
new IterationConfig(its_info[iii]);
583 IterationConfig &ic = *icp;
588 int n_replaced = cjp.replace(
j);
593 printf(
"%s read 1 JSON entity from file %s, replaced %d parameters.\n", __func__,
fname.c_str(), n_replaced);
598 rep.inc_counts(1, 1, n_replaced);
600 if (
rep.n_replacements > 0) {
607 return std::unique_ptr<IterationConfig>(icp);
◆ save_Iterations()
void mkfit::ConfigJson::save_Iterations |
( |
IterationsInfo & |
its_info, |
|
|
const std::string & |
fname_fmt, |
|
|
bool |
include_iter_info_preamble |
|
) |
| |
Definition at line 640 of file IterationConfig.cc.
References mkfit::TrackBase::algoint_to_cstr(), cms::cuda::assert(), alignmentValidation::fname, cuy::ii, dqmiolumiharvest::j, mkfit::IterationConfig::m_track_algorithm, mkfit::IterationsInfo::size(), and mkfit::to_json().
Referenced by initGeom().
643 bool has_pct_d = fname_fmt.find(
"%d") != std::string::npos;
644 bool has_pct_s = fname_fmt.find(
"%s") != std::string::npos;
646 assert((has_pct_d || has_pct_s) &&
"JSON save filename-format must include a %d or %s substring");
647 assert(!(has_pct_d && has_pct_s) &&
"JSON save filename-format must include only one of %d or %s substrings");
649 for (
int ii = 0;
ii < its_info.size(); ++
ii) {
650 const IterationConfig &itconf = its_info[
ii];
654 snprintf(
fname, 1024, fname_fmt.c_str(),
ii);
659 open_ofstream(ofs,
fname, __func__);
661 if (include_iter_info_preamble) {
662 ofs <<
"{ \"m_iterations/" <<
ii <<
"\": ";
665 nlohmann::ordered_json
j;
671 if (include_iter_info_preamble) {
void to_json(nlohmann::json &nlohmann_json_j, const mkfit::LayerControl &nlohmann_json_t)
static const char * algoint_to_cstr(int algo)
◆ test_Direct()
Definition at line 689 of file IterationConfig.cc.
References gather_cfg::cout, mkfit::from_json(), createfilelist::int, dqmiolumiharvest::j, mkfit::IterationConfig::m_layer_configs, mkfit::IterationConfig::m_n_regions, mkfit::IterationConfig::m_steering_params, AlCaHLTBitMon_ParallelJobs::p, AlCaHLTBitMon_QueryRunRegistry::string, and x.
697 std::cout <<
"Layer 43, m_select_max_dphi = " <<
j[
"/m_layer_configs/43/m_select_max_dphi"_json_pointer] <<
"\n";
700 { "op": "replace", "path": "/m_layer_configs/43/m_select_max_dphi", "value": 3.141 } 703 std::cout << "Layer 43, m_select_max_dphi = " <<
j[
"/m_layer_configs/43/m_select_max_dphi"_json_pointer] <<
"\n";
705 auto &jx =
j[
"/m_layer_configs/60"_json_pointer];
707 json::json_pointer jp(lojz);
713 printf(
"Layer 43 : m_select_max_dphi = %f, size_of_layer_vec=%d, m_n_regions=%d, size_of_steering_params=%d\n",
714 it_cfg.m_layer_configs[43].m_select_max_dphi,
715 (
int)it_cfg.m_layer_configs.size(),
717 (
int)it_cfg.m_steering_params.size());
719 printf(
"Layer 60 : m_select_max_dphi = %f, size_of_layer_vec=%d, m_n_regions=%d, size_of_steering_params=%d\n",
720 it_cfg.m_layer_configs[60].m_select_max_dphi,
721 (
int)it_cfg.m_layer_configs.size(),
723 (
int)it_cfg.m_steering_params.size());
729 auto &
x =
j[
"/m_layer_configs"_json_pointer];
730 std::cout <<
"Typename /m_layer_configs " <<
x.type_name() <<
"\n";
731 auto &
y =
j[
"/m_layer_configs/143"_json_pointer];
732 std::cout <<
"Typename /m_layer_configs/143 " <<
y.type_name() <<
", is_null=" <<
y.is_null() <<
"\n";
void from_json(const nlohmann::json &nlohmann_json_j, mkfit::LayerControl &nlohmann_json_t)
◆ test_Patcher()
Definition at line 735 of file IterationConfig.cc.
References mkfit::ConfigJsonPatcher::cd(), mkfit::ConfigJsonPatcher::cd_top(), gather_cfg::cout, mkfit::ConfigJsonPatcher::dump(), cppFunctionSkipper::exception, mkfit::ConfigJsonPatcher::get(), mps_fire::i, createfilelist::int, dqmiolumiharvest::j, mkfit::ConfigJsonPatcher::load(), mkfit::IterationConfig::m_layer_configs, mkfit::IterationConfig::m_n_regions, mkfit::IterationConfig::m_steering_params, mkfit::ConfigJsonPatcher::replace(), mkfit::ConfigJsonPatcher::save(), and x.
736 ConfigJsonPatcher cjp;
742 cjp.cd(
"/m_layer_configs/43/m_select_max_dphi");
743 std::cout <<
"Layer 43, m_select_max_dphi = " << cjp.get(
"") <<
"\n";
745 cjp.replace(
"", 3.141);
747 std::cout <<
"Layer 43, m_select_max_dphi = " << cjp.get(
"/m_layer_configs/43/m_select_max_dphi") <<
"\n";
750 std::cout <<
"Replacing layer 60 m_select_max_dphi with full path\n";
751 cjp.replace(
"/m_layer_configs/60/m_select_max_dphi", 99.876);
754 std::cout <<
"Trying to replace an non-existent array entry\n";
755 cjp.replace(
"/m_layer_configs/1460/m_select_max_dphi", 666.666);
757 std::cout <<
"Caugth exception: " << exc.what() <<
"\n";
760 std::cout <<
"Trying to replace an non-existent object entry\n";
761 cjp.replace(
"/m_layer_configs/1/moo_select_max_dphi", 666.666);
763 std::cout <<
"Caugth exception: " << exc.what() <<
"\n";
766 std::cout <<
"Replacing m_select_max_dphi on layers 1 to 3 to 7.7\n";
767 cjp.cd(
"/m_layer_configs");
768 cjp.replace(1, 3,
"/m_select_max_dphi", 7.7);
776 printf(
"Layer 43: m_select_max_dphi = %f, size_of_layer_vec=%d, m_n_regions=%d, size_of_steering_params=%d\n",
777 it_cfg.m_layer_configs[43].m_select_max_dphi,
778 (
int)it_cfg.m_layer_configs.size(),
780 (
int)it_cfg.m_steering_params.size());
782 printf(
"Layer 60: m_select_max_dphi = %f\n", it_cfg.m_layer_configs[60].m_select_max_dphi);
783 for (
int i = 0;
i < 5; ++
i)
784 printf(
"Layer %2d: m_select_max_dphi = %f\n",
i, it_cfg.m_layer_configs[
i].m_select_max_dphi);
790 auto &
j = cjp.get(
"");
792 auto &
x =
j[
"/m_layer_configs"_json_pointer];
793 std::cout <<
"Typename /m_layer_configs " <<
x.type_name() <<
"\n";
794 auto &
y =
j[
"/m_layer_configs/143"_json_pointer];
795 std::cout <<
"Typename /m_layer_configs/143 " <<
y.type_name() <<
", is_null=" <<
y.is_null() <<
"\n";
◆ m_verbose
bool mkfit::ConfigJson::m_verbose = false |
|
private |