[Halld-online] [Clas12_software] EVIO dictionaries

Elliott Wolin wolin at jlab.org
Mon Apr 16 13:27:14 EDT 2012


Hi Mac,

Ignore any correspondence between my example and real life, I just typed 
whatever tag names came into my head.



On 04/16/2012 01:22 PM, Mac Mestayer wrote:
> Hello Elliott;
>
> I liked your examples, but I have a question.
> I'm not sure what "DC" and then "xpos" means; we have
> 18 drift chambers arranged in 3 'regions' for each of
> six 'sectors'.  Don't we need at least one more layer
> between 'bank' and 'leaf'?
>
>             - Mac
>
> "mestayer at jlab.org", (757)-269-7252
>
> On Mon, 16 Apr 2012, Elliott Wolin wrote:
>
>> 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
>>
>> ================================================================================ 
>>
>>
>> _______________________________________________
>> Clas12_software mailing list
>> Clas12_software at jlab.org
>> https://mailman.jlab.org/mailman/listinfo/clas12_software
>>

-- 

				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 Halld-online mailing list