[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