[Halld-offline] MD5 Geometry checksum added to HDDS and HDGeant
David Lawrence
davidl at jlab.org
Thu Nov 8 08:59:39 EST 2012
Hi Offliners,
I have recently committed a series of changes to our code repository that
implement a means of calculating an md5 checksum of the HDDS XML
files used of the geometry. The changes are in HDDS, HDDM, and HDGeant.
Therefore, if you update either HDDS or sim-recon, you should updated the
other as well to get a working system.
The primary motivation of this is to provide a way to check that the
geometry used to produce an hddm file matches the geometry in an existing
set of XML files. Development of new experiments or any other exercise that
may require optimization of the geometry should find this an important
bookkeeping tool.
This is related to a change I committed last week that provides an option
in hdgeant to dynamically generate, compile, and link the geometry from
the XML source at run time.
Some details:
- The hdds tools that generate the FORTRAN and C++(root) code using
the XML files for input now produce a md5geom() subroutine as part of
the generated code. This subroutine returns the md5 checksum for the
geometry used to generate that code.
- A single checksum is produced for the entire set of XML files that are
used. The checksum calculation is integrated with the Xerces parser so
that as the parser includes files, they are added to the checksum
(the order of
the files is thus important but is handled by Xerces).
- The simulation HDDM format (class="s") was modified to include places
for geometry md5 checksums for hdgeant, mcsmear, and the dana
analysis program. Currently, only hdgeant fills in this value (mcsmear
has a lot of hard-coded geometry). The new geometry tag is only written
out for the first event.
- The hdgeant program has been modified to allow command line arguments.
One is "-xml" which will generate, compile, and dynamically link
geometry
based on the XML source in the directory pointed to by the HDDS_HOME
environment variable.
Another is "-checksum" which will print the md5 checksum for the
geometry
to be used and then exit. If the -xml option is given along with the
-checksum option, then the generate,compile,link cycle is performed
first and the checksum obtained from the shared object.
- A new hdds-md5 tool was added to allow you to quickly calculate the
md5 checksum of the current set of XML files so you can compare to
the one recorded in the hddm file.
If you experience any trouble or have questions or comments, please
contact me.
Regards,
-David
More information about the Halld-offline
mailing list