Bug #10659
Issues reading data products with instance names in the event display
0%
Description
This is a follow up from LArSoft's issue #10538 .
There is a lot of magic ongoing in the event displaying support code, that I don't fully understand.
Apparently the system is able to automatically create a dialogue window for each service whose name ends with "DrawingOptions"
.
It maintains a ServiceTable
and uses that information to create dialogue windows to change service configuration at run time.
When clicking on "Apply", those dialogue windows create a new parameter set with all the values they contain, but they elect to create it as a FHiCL-parseable string. Then the caller parses that FHiCL string and uses the parsed fhicl::ParameterSet
to reconfigure.
All good, except that in the process of creating that configuration string, the FHiCL rule about string value quoting is ignored.
This has some interesting consequences when changing a text entry, say, label
:
- input
product:instance
in the text box:- a
label:product:instance
FHiCL string is created, that is invalid FHiCL; reconfiguration fails
- a
- input
"product:instance"
in the text box:- a
label:"product:instance"
FHiCL string is created, that is valid FHiCL, with valueproduct:instance
- the next time the dialogue is opened, the text box is initialized with that value and unless you manually add the double quotes again you are back in the first case
- a
It's not apparent to me the need of using string
rather than fhicl::ParameterSet
as intermediate representation... can the double conversion be elided? that would solve this issue.
FHiCL C++ has evolved a lot, and critical limitations might have been removed since the time ServiceTable
was designed.
Related issues
History
#1 Updated by Gianluca Petrillo about 1 year ago
- Has duplicate Bug #23575: Instance name in services.RecoDrawingOptions.WireModuleLabels added
#2 Updated by Kyle Knoepfel about 1 year ago
- Status changed from New to Closed