Project

General

Profile

parsegdml

Root 5 accepted expressions in gdml files. In root 6, this ability has been disabled.

The old implementation allowed expressions because it was based on TFormula::Evaluate, which behaved terribly at the time and introduced ugly errors, specially when parsing expressions having constants. Since we realized we did not fully support expression parsing, we dropped the feature completely, so the TGDMLParse class can only parse expression free GDML. We are open to contributions doing this properly though..

However, larsoft gdml files have many expressions. This is an attempt to provide a tool which can convert files safely from the old gdml style to one which can be parsed by root 6.

Because output from parsegdml has a very different format than the original gdml, the RemoveMathFromGDML.py script is provided instead (found in larsoft). We have used parsegdml to verify the results provided by RemoveMathFromGDML.py.
Note that the current version of this script (1.6) is not expected to support "expressions having constants", since we haven't seen such a use case in LArSoft.