|
35 | 35 |
|
36 | 36 | sys.path.append(join(dirname(__file__), '.', 'o2dpg_workflow_utils')) |
37 | 37 |
|
38 | | -from o2dpg_workflow_utils import createTask, createGlobalInitTask, dump_workflow, adjust_RECO_environment, isActive, activate_detector, deactivate_detector, compute_n_workers |
| 38 | +from o2dpg_workflow_utils import createTask, createGlobalInitTask, dump_workflow, adjust_RECO_environment, isActive, activate_detector, deactivate_detector, compute_n_workers, merge_dicts |
39 | 39 | from o2dpg_qc_finalization_workflow import include_all_QC_finalization |
40 | 40 | from o2dpg_sim_config import create_sim_config, create_geant_config, constructConfigKeyArg |
41 | 41 |
|
|
52 | 52 | parser.add_argument('--conditionDB',help="CCDB url for QC workflows", default='http://alice-ccdb.cern.ch') |
53 | 53 | parser.add_argument('--qcdbHost',help="QCDB url for QC object uploading", default='http://ali-qcdbmc-gpn.cern.ch:8083') |
54 | 54 | parser.add_argument('--condition-not-after', type=int, help="only consider CCDB objects not created after this timestamp (for TimeMachine)", default=3385078236000) |
55 | | -parser.add_argument('--orbitsPerTF', type=int, help="Timeframe size in number of LHC orbits", default=128) |
56 | | -parser.add_argument('--anchor-config',help="JSON file to contextualise workflow with external configs (config values etc.) for instance comping from data reco workflows.", default='') |
| 55 | +parser.add_argument('--orbitsPerTF', type=int, help="Timeframe size in number of LHC orbits", default=32) |
| 56 | +parser.add_argument('--anchor-config',help="JSON file to contextualise workflow with external configs (config values etc.) for instance coming from data reco workflows.", default='') |
| 57 | +parser.add_argument('--overwrite-config',help="extra JSON file with configs (config values etc.) overwriting defaults or the config coming from --anchor-config", default='') |
57 | 58 | parser.add_argument('--dump-config',help="Dump JSON file with all settings used in workflow", default='user_config.json') |
58 | 59 | parser.add_argument('-ns',type=int,help='number of signal events / timeframe', default=20) |
59 | 60 | parser.add_argument('-gen',help='generator: pythia8, extgen', default='') |
@@ -199,6 +200,13 @@ def load_external_config(configfile): |
199 | 200 | # we load a generic config |
200 | 201 | print ("** Using generic config **") |
201 | 202 | anchorConfig = create_sim_config(args) |
| 203 | +# we apply additional external user choices for the configuration |
| 204 | +# this will overwrite config from earlier stages |
| 205 | +if args.overwrite_config != '': |
| 206 | + # apply final JSON overwrite |
| 207 | + config_overwrite = load_external_config(args.overwrite_config) |
| 208 | + # merge the dictionaries into anchorConfig, the latter takes precedence |
| 209 | + merge_dicts(anchorConfig, config_overwrite) |
202 | 210 |
|
203 | 211 | # write this config |
204 | 212 | config_key_param_path = args.dump_config |
@@ -1073,7 +1081,7 @@ def createRestDigiTask(name, det='ALLSMALLER'): |
1073 | 1081 | FT0FV0EMCCTPDIGItask['cmd'] = ('','ln -nfs ../bkg_HitsFT0.root . ; ln -nfs ../bkg_HitsFV0.root . ; ln -nfs ../bkg_HitsEMC.root; ln -nfs ../bkg_Kine.root; ')[doembedding] |
1074 | 1082 | FT0FV0EMCCTPDIGItask['cmd'] += '${O2_ROOT}/bin/o2-sim-digitizer-workflow ' + getDPL_global_options() + ' -n ' + str(args.ns) + simsoption \ |
1075 | 1083 | + ' --onlyDet FT0,FV0,EMC,CTP --interactionRate ' + str(INTRATE) + ' --incontext ' + str(CONTEXTFILE) \ |
1076 | | - + ' --disable-write-ini' + putConfigValuesNew(localCF={"DigiParams.seed" : str(TFSEED)}) \ |
| 1084 | + + ' --disable-write-ini' + putConfigValuesNew(listOfMainKeys=['EMCSimParam'], localCF={"DigiParams.seed" : str(TFSEED)}) \ |
1077 | 1085 | + (' --combine-devices','')[args.no_combine_dpl_devices] + ('',' --disable-mc')[args.no_mc_labels] + QEDdigiargs \ |
1078 | 1086 | + ' --forceSelectedDets' |
1079 | 1087 | workflow['stages'].append(FT0FV0EMCCTPDIGItask) |
|
0 commit comments