#include <IterationConfig.h>
Definition at line 362 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 608 of file IterationConfig.cc.
References gather_cfg::cout, alignmentValidation::fname, mkfit::from_json(), dqmiolumiharvest::j, and m_verbose.
Referenced by MkFitIterationConfigESProducer::produce().
610 open_ifstream(ifs,
fname, __func__);
613 printf(
"%s begin reading from file %s.\n", __func__,
fname.c_str());
616 if (!skipws_ifstream(ifs))
617 throw std::runtime_error(
"empty file");
623 std::cout <<
" Read JSON entity, iteration index is " <<
j[
"m_iteration_index"] <<
", track algorithm is " 624 <<
j[
"m_track_algorithm"] <<
". Instantiating IterationConfig object and over-laying it with JSON.\n";
627 IterationConfig *icp =
new IterationConfig();
631 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 490 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().
496 ConfigJsonPatcher::PatchReport
rep;
500 open_ifstream(ifs,
fname, __func__);
503 printf(
"%s begin reading from file %s.\n", __func__,
fname.c_str());
506 int n_read = 0, n_tot_replaced = 0;
507 while (skipws_ifstream(ifs)) {
513 std::cout <<
" Read JSON entity " << n_read <<
" -- applying patch:\n";
517 int n_replaced = cjp.replace(
j);
520 std::cout <<
" Replaced " << n_replaced <<
" entries.\n";
523 n_tot_replaced += n_replaced;
527 printf(
"%s read %d JSON entities from file %s, replaced %d parameters.\n",
536 rep.inc_counts(1, n_read, n_tot_replaced);
539 if (
rep.n_replacements > 0) {
◆ patchLoad_File()
Definition at line 547 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().
550 ConfigJsonPatcher::PatchReport
rep;
553 open_ifstream(ifs,
fname, __func__);
556 printf(
"%s begin reading from file %s.\n", __func__,
fname.c_str());
559 if (!skipws_ifstream(ifs))
560 throw std::runtime_error(
"empty file");
564 int track_algo =
j[
"m_track_algorithm"];
567 for (
int i = 0;
i < its_info.size(); ++
i) {
568 if (its_info[
i].m_track_algorithm == track_algo) {
574 throw std::runtime_error(
"matching IterationConfig not found");
577 std::cout <<
" Read JSON entity, Iteration index is " << iii <<
" -- cloning and applying JSON patch:\n";
580 IterationConfig *icp =
new IterationConfig(its_info[iii]);
581 IterationConfig &ic = *icp;
586 int n_replaced = cjp.replace(
j);
591 printf(
"%s read 1 JSON entity from file %s, replaced %d parameters.\n", __func__,
fname.c_str(), n_replaced);
596 rep.inc_counts(1, 1, n_replaced);
598 if (
rep.n_replacements > 0) {
605 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 638 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().
641 bool has_pct_d = fname_fmt.find(
"%d") != std::string::npos;
642 bool has_pct_s = fname_fmt.find(
"%s") != std::string::npos;
644 assert((has_pct_d || has_pct_s) &&
"JSON save filename-format must include a %d or %s substring");
645 assert(!(has_pct_d && has_pct_s) &&
"JSON save filename-format must include only one of %d or %s substrings");
647 for (
int ii = 0;
ii < its_info.size(); ++
ii) {
648 const IterationConfig &itconf = its_info[
ii];
652 snprintf(
fname, 1024, fname_fmt.c_str(),
ii);
657 open_ofstream(ofs,
fname, __func__);
659 if (include_iter_info_preamble) {
660 ofs <<
"{ \"m_iterations/" <<
ii <<
"\": ";
663 nlohmann::ordered_json
j;
669 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 687 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.
695 std::cout <<
"Layer 43, m_select_max_dphi = " <<
j[
"/m_layer_configs/43/m_select_max_dphi"_json_pointer] <<
"\n";
698 { "op": "replace", "path": "/m_layer_configs/43/m_select_max_dphi", "value": 3.141 } 701 std::cout << "Layer 43, m_select_max_dphi = " <<
j[
"/m_layer_configs/43/m_select_max_dphi"_json_pointer] <<
"\n";
703 auto &jx =
j[
"/m_layer_configs/60"_json_pointer];
705 json::json_pointer jp(lojz);
711 printf(
"Layer 43 : m_select_max_dphi = %f, size_of_layer_vec=%d, m_n_regions=%d, size_of_steering_params=%d\n",
712 it_cfg.m_layer_configs[43].m_select_max_dphi,
713 (
int)it_cfg.m_layer_configs.size(),
715 (
int)it_cfg.m_steering_params.size());
717 printf(
"Layer 60 : m_select_max_dphi = %f, size_of_layer_vec=%d, m_n_regions=%d, size_of_steering_params=%d\n",
718 it_cfg.m_layer_configs[60].m_select_max_dphi,
719 (
int)it_cfg.m_layer_configs.size(),
721 (
int)it_cfg.m_steering_params.size());
727 auto &
x =
j[
"/m_layer_configs"_json_pointer];
728 std::cout <<
"Typename /m_layer_configs " <<
x.type_name() <<
"\n";
729 auto &
y =
j[
"/m_layer_configs/143"_json_pointer];
730 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 733 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.
734 ConfigJsonPatcher cjp;
740 cjp.cd(
"/m_layer_configs/43/m_select_max_dphi");
741 std::cout <<
"Layer 43, m_select_max_dphi = " << cjp.get(
"") <<
"\n";
743 cjp.replace(
"", 3.141);
745 std::cout <<
"Layer 43, m_select_max_dphi = " << cjp.get(
"/m_layer_configs/43/m_select_max_dphi") <<
"\n";
748 std::cout <<
"Replacing layer 60 m_select_max_dphi with full path\n";
749 cjp.replace(
"/m_layer_configs/60/m_select_max_dphi", 99.876);
752 std::cout <<
"Trying to replace an non-existent array entry\n";
753 cjp.replace(
"/m_layer_configs/1460/m_select_max_dphi", 666.666);
755 std::cout <<
"Caugth exception: " << exc.what() <<
"\n";
758 std::cout <<
"Trying to replace an non-existent object entry\n";
759 cjp.replace(
"/m_layer_configs/1/moo_select_max_dphi", 666.666);
761 std::cout <<
"Caugth exception: " << exc.what() <<
"\n";
764 std::cout <<
"Replacing m_select_max_dphi on layers 1 to 3 to 7.7\n";
765 cjp.cd(
"/m_layer_configs");
766 cjp.replace(1, 3,
"/m_select_max_dphi", 7.7);
774 printf(
"Layer 43: m_select_max_dphi = %f, size_of_layer_vec=%d, m_n_regions=%d, size_of_steering_params=%d\n",
775 it_cfg.m_layer_configs[43].m_select_max_dphi,
776 (
int)it_cfg.m_layer_configs.size(),
778 (
int)it_cfg.m_steering_params.size());
780 printf(
"Layer 60: m_select_max_dphi = %f\n", it_cfg.m_layer_configs[60].m_select_max_dphi);
781 for (
int i = 0;
i < 5; ++
i)
782 printf(
"Layer %2d: m_select_max_dphi = %f\n",
i, it_cfg.m_layer_configs[
i].m_select_max_dphi);
788 auto &
j = cjp.get(
"");
790 auto &
x =
j[
"/m_layer_configs"_json_pointer];
791 std::cout <<
"Typename /m_layer_configs " <<
x.type_name() <<
"\n";
792 auto &
y =
j[
"/m_layer_configs/143"_json_pointer];
793 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 |