-
Notifications
You must be signed in to change notification settings - Fork 20
Description
Right now, FHiCL parameter values may be transferred in to Jsonnet via std.extVar(). This is rigid and awkward as there is no way NOT to transfer a value.
Jsonnet also supports "top-level arguments" (TLAs) which allow passing in values to a Jsonnet that evaluates to a function. These arguments can be given default values in the Jsonnet and so the Jsonnet may be evaluated without supplying any arguments.
This "function-calling-with-optional-dependency-injection" pattern is much better for organizing structure into independent modules than is the current "required-call-to-external-resource" pattern.
After defining a new FHiCL parameter(s) to name TLA values and adding the C++ to marshal them, an exhaustive configuration cleanup over many detectors would be needed for each experiment to see benefits.
This change will also facilitate configuration reuse in non-art/larsoft contexts.