Title: EVIO and XML for Hall D
1EVIO and XML for Hall D
- Elliott Wolin
- Jefferson Lab
- 1-Nov-2001
2Outline
- I. EVIO
- II. EVIO?XML conversion
- III. Test Results
- IV. Conclusions
3I. EVIO - Basics
- Used by Halls A and C (CODA format)
- Tree structure of banks or fragments
- Fragments have 1 or 2 word header, arbitrary tag,
single data type - Files contain fixed-length data blocks
- Library exists for reading/writing events
- Very low overhead binary I/O package
4EVIO - Improvements
- I created Version 2 of EVIO package for Hall D
- Bug fixes in byte swapping routines
- Extended to cover all 8-byte data types
- Added 4-byte header tagsegment type (4096 tags,
16 types), will save 400 bytes/event - Extended data type table
5EVIO - Data Types Version 2
0 unknown 1 unsigned 4-byte
integer 2 IEEE 4-byte float 3
ascii string 4 signed 2-byte
integer 5 unsigned 2-byte integer 6
signed 1-byte integer 7
unsigned 1-byte integer 8 IEEE 8-byte
double 9 signed 8-byte integer
A unsigned 8-byte integer B
signed 4-byte integer C tagsegment D
segment E bank F
repeating structure 10 bank 20
segment 30-37 packet 40 tagsegment
6II. EVIO?XML conversion
- Map EVIO fragment structure directly to XML
- Topmost fragment is always a bank
- EVIO structure information in XML tags,attribs
- EVIO data in XML contents
- Example XML file
- http//www.jlab.org/Hall-D/software/evio2xm
l/one.xml
7Programs
- Convert EVIO?XML using data dictionary
- Event viewer, replaces cefdump (xcefdump?)
- Handle gzipped input XML files
- Copy/extract selected events
- Can apply event and fragment matching criteria
- evio2xml, xml2evio, eviocopy (solaris, linux)
8XML event dump (example)
ltevent format"evio" count"1" content"bank"
data_type"0x10" tag"1" num"204"gt ltbank
content"tagsegment" data_type"0x40" tag"2"
num"1"gt ltuint32 data_type"0x1"
tag"2748"gt 0xffffffff
0xfffffffe 0xfffffffd 0xfffffffc
0xfffffffb 0xfffffffa
0xfffffff9 0xfffffff8 0xfffffff7
0xfffffff6 0xfffffff5
0xfffffff4 0xfffffff3 0xfffffff2
0xfffffff1 0xfffffff0
0xffffffef 0xffffffee 0xffffffed
0xffffffec 0xffffffeb
0xffffffea 0xffffffe9 0xffffffe8
0xffffffe7 0xffffffe6
0xffffffe5 0xffffffe4 0xffffffe3
0xffffffe2 lt/uint32gt
9XML event dump (example), cont
ltint32 data_type"0xb" tag"1"gt
-1 -2 -3
-4 -5 -6 -7
-8 lt/int32gt ltfloat32
data_type"0x2" tag"2"gt -1.000000
-2.000000 -3.000000 -4.000000
-5.000000 -6.000000 -7.000000
-8.000000 -9.000000 -10.000000
-11.000000 -12.000000
lt/float32gt ltstring data_type"0x3"
tag"6"gt lt!CDATA hello world gt
lt/stringgt
10Data Dictionary (example)
ltevioDictgt ltevioDictEntry name"hallc-epics"
tag"132" data_type"0x1"/gt
ltevioDictEntry name"hallc-params" tag"141"
data_type"0x2"/gt ltevioDictEntry
name"hallc-cal tag"4"
data_type"0x3"/gt ltevioDictEntry
name"hallc-tof tag"7"
data_type"0x4"/gt lt/evioDictgt
11III. Test Results
12IV. Conclusions
- EVIO Version 2 is ready for use by Hall D
(online, offline, simulation, etc.) - EVIO should be our only binary format
- XML should be our only ascii format
- Compressed XML can be as compact at binary
- Utilities to convert EVIO?XML available