Project

General

Profile

Bug #10659

Issues reading data products with instance names in the event display

Added by Gianluca Petrillo almost 4 years ago.

Status:
New
Priority:
Low
Assignee:
-
Start date:
10/27/2015
Due date:
% Done:

0%

Estimated time:
Duration:

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
  • input "product:instance" in the text box:
    • a label:"product:instance" FHiCL string is created, that is valid FHiCL, with value product: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

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.



Also available in: Atom PDF