7373 print ("##############################" )
7474
7575
76- def do_entire_analysis (data_config : dict , data_param : dict , data_model : dict , run_param : dict ): # pylint: disable=too-many-locals, too-many-statements, too-many-branches
76+ def do_entire_analysis (data_config : dict , data_param : dict , data_param_overwrite : dict , # pylint: disable=too-many-locals, too-many-statements, too-many-branches
77+ data_model : dict , run_param : dict ):
7778
7879 # Disable any graphical stuff. No TCanvases opened and shown by default
7980 gROOT .SetBatch (True )
@@ -85,7 +86,7 @@ def do_entire_analysis(data_config: dict, data_param: dict, data_model: dict, ru
8586 case = list (data_param .keys ())[0 ]
8687
8788 # Update database accordingly if needed
88- update_config (data_param , data_config )
89+ update_config (data_param , data_config , data_param_overwrite )
8990
9091 dodownloadalice = data_config ["download" ]["alice" ]["activate" ]
9192 doconversionmc = data_config ["conversion" ]["mc" ]["activate" ]
@@ -138,8 +139,8 @@ def do_entire_analysis(data_config: dict, data_param: dict, data_model: dict, ru
138139 do_syst_prob_cross = data_config ["systematics" ]["cutvar" ]["probvariationcross" ]
139140 dosystptshape = data_config ["systematics" ]["mcptshape" ]["activate" ]
140141 doanaperperiod = data_config ["analysis" ]["doperperiod" ]
141-
142142 typean = data_config ["analysis" ]["type" ]
143+
143144 dojetstudies = data_config ["analysis" ]["dojetstudies" ]
144145
145146 dirpklmc = data_param [case ]["multi" ]["mc" ]["pkl" ]
@@ -441,7 +442,7 @@ def do_entire_analysis(data_config: dict, data_param: dict, data_model: dict, ru
441442 syst_mgr .analyze (* ml_syst_steps )
442443
443444
444- def load_config (user_path : str , default_path : tuple ) -> dict :
445+ def load_config (user_path : str , default_path = None ) -> dict :
445446 """
446447 Quickly extract either configuration given by user and fall back to package default if no user
447448 config given.
@@ -451,15 +452,16 @@ def load_config(user_path: str, default_path: tuple) -> dict:
451452 Returns:
452453 dictionary built from YAML
453454 """
454- logger = get_logger ()
455+ if not user_path and not default_path :
456+ return None
457+
455458 stream = None
456- if user_path is None :
457- stream = resource_stream (default_path [0 ], default_path [1 ])
458- else :
459+ if user_path :
459460 if not exists (user_path ):
460- logger_string = f"The file { user_path } does not exist."
461- logger .fatal (logger_string )
461+ get_logger ().fatal ("The file %s does not exist" , user_path )
462462 stream = open (user_path )
463+ else :
464+ stream = resource_stream (default_path [0 ], default_path [1 ])
463465 return yaml .safe_load (stream )
464466
465467def main ():
@@ -474,7 +476,9 @@ def main():
474476 parser .add_argument ("--run-config" , "-r" , dest = "run_config" ,
475477 help = "the run configuration to be used" )
476478 parser .add_argument ("--database-analysis" , "-d" , dest = "database_analysis" ,
477- help = "analysis database to be used" )
479+ help = "analysis database to be used" , required = True )
480+ parser .add_argument ("--database-overwrite" , dest = "database_overwrite" ,
481+ help = "overwrite fields in analysis database" )
478482 parser .add_argument ("--database-ml-models" , dest = "database_ml_models" ,
479483 help = "ml model database to be used" )
480484 parser .add_argument ("--database-run-list" , dest = "database_run_list" ,
@@ -490,15 +494,13 @@ def main():
490494 pkg_data = "machine_learning_hep.data"
491495 pkg_data_run_config = "machine_learning_hep.submission"
492496 run_config = load_config (args .run_config , (pkg_data_run_config , "default_complete.yml" ))
493- case = run_config ["case" ]
494497 if args .type_ana is not None :
495498 run_config ["analysis" ]["type" ] = args .type_ana
496499
497- db_analysis_default_name = f"database_ml_parameters_{ case } .yml"
498- print (args .database_analysis )
499- db_analysis = load_config (args .database_analysis , (pkg_data , db_analysis_default_name ))
500+ db_analysis = load_config (args .database_analysis )
501+ db_analysis_overwrite = load_config (args .database_overwrite )
500502 db_ml_models = load_config (args .database_ml_models , (pkg_data , "config_model_parameters.yml" ))
501503 db_run_list = load_config (args .database_run_list , (pkg_data , "database_run_list.yml" ))
502504
503505 # Run the chain
504- do_entire_analysis (run_config , db_analysis , db_ml_models , db_run_list )
506+ do_entire_analysis (run_config , db_analysis , db_analysis_overwrite , db_ml_models , db_run_list )
0 commit comments