[Clas12_software] EVIO dictionaries
Elliott Wolin
wolin at jlab.org
Mon Apr 16 12:43:09 EDT 2012
Hi,
This morning I checked into evio-4.0 a new version that implements a
dictionary facility that I believe meets all requirements that were
discussed last week. To my knowledge this completes the initial round
of C++ upgrades to EVIO, and now the Java and C++ versions should be
completely compatible.
A number of other improvements have been discussed, including adding
append mode and random-access I/O. We need to discuss with the DAQ
group which are feasible and set priorities.
I parse three types of XML dictionary tags: "dictEntry", "bank" and
"leaf". In all cases the only attributes I look at are "name", "tag"
and "num." All other tags and attributes are ignored, so the XML can be
used to define whatever else you want, e.g. definitions of composite
bank structures, content specifications (e.g: contentType="int"), etc.
dictEntry is the simplest, it just makes a entry into the map of names
vs tag/num pairs. It can occur anywhere in the XML:
<dictEntry name="fred" tag="1" num="1"/>
Here the name "fred" is a synonym for the tag/num pair (1,1).
"bank" and "leaf" are for describing hierarchical bank structures, e.g:
<bank name="CLAS12" tag="1" num="0">
<bank name="DC" tag="20" num="0">
<leaf name="xpos" tag="20" num="1"/>
<leaf name="ypos" tag="20" num="2"/>
<leaf name="zpos" tag="20" num="3"/>
</bank>
<bank name="SC" tag="30" num="0">
<leaf name="xpos" tag="30" num="1"/>
<leaf name="ypos" tag="30" num="2"/>
<leaf name="zpos" tag="30" num="3"/>
</bank>
</bank>
where "bank" means bank-of-banks, and "leaf" means bank-of-ints (or
floats or another primitive types). The parser will generate map
entries that equate the tag/num pair (1,0) to "CLAS12", (20,0) to
"CLAS12.DC", (20,1) to "CLAS12.DC.xpos", (30,3) to "CLAS12.SC.zpos", etc
(actually I think everything is case-insensitive, have to check).
We can discuss other tag names besides "bank" and "leaf," but I think
these are adequate. Currently if a leaf entry has children an exception
is thrown. I could change this to a warning if desired.
Please give it a try.
Thanks,
--
Sincerely,
Elliott
================================================================================
Those raised in a morally relative or neutral environment will hold
no truths to be self-evident.
Elliott Wolin
Staff Physicist, Jefferson Lab
12000 Jefferson Ave
Suite 8 MS 12A1
Newport News, VA 23606
757-269-7365
================================================================================
More information about the Clas12_software
mailing list