Print

Print


It is a right one.
Sergey

> Hi, Sergey.
>
> I'm not sure I've heard of or have access to this svn.  I've been working
> from the Java sources included in jevio 4.0 from the CODA website,
> released on the 28th (yesterday!).  I thought this was up to date but if
> there are is a better distribution that I should be using then please let
> me know how I can get it.
>
> --Jeremy
>
> -----Original Message-----
> From: [log in to unmask] [mailto:[log in to unmask]]
> Sent: Wednesday, February 29, 2012 6:02 AM
> To: McCormick, Jeremy I.
> Cc: McCormick, Jeremy I.; [log in to unmask]; [log in to unmask]; Carl
> Timmer; [log in to unmask]; Neal, Homer A.; Graf, Norman A.; hps-software
> Subject: RE: reading sample Evio v4 file
>
> Hi,
> there is a file evtest1.c in evio-4.0 which was used to generate sample
> file,
> it can be modified to generate something else.
> Please use everything from recent evio-4.0 and jevio-4.0 from my jlab home
> directory or Carl's svn, previous versions are not good, we did some
> changes
> over last week to fix java.
> Sergey
>
>> Hi,
>>
>> It looks like the test file sent earlier by Sergei does not strictly
>> conform to the EVIO v4 data format and cannot be read by jevio.  Carl
>> pointed me to a different sample file that seems to be better.  I'm
>> still
>> having a few issues with parsing it, but the basics are (mostly)
>> working.
>>
>> I've replaced the old file with this new one.
>>
>> http://www.lcsim.org/test/hps/evio4_sample.dat
>>
>> I have an additional question...
>>
>> Is there an example anywhere of creating an EVIO v4 file from scratch in
>> a
>> Java test program?  A C or C++ program would presumably be helpful, too.
>>
>> For instance, say I had the following Java data structure...
>>
>> class MyDataClass {
>>     int t;
>>     long id;
>>     short[] adcCounts; // assume this is non-fixed size
>> }
>>
>> How would I map this example class to a composite record and then write
>> these events out to an EVIO file on disk?  Any tips or sample programs
>> that would help me to figure out how to do this?
>>
>> Creating in-memory events was straightforward in EVIO v3, but with this
>> release there is the added complexity of setting valid formatting
>> strings
>> in order to be able to correctly read the composite data back, among
>> other
>> things.
>>
>> In the real experiment, we'll be getting data off the ET Ring, but for
>> testing purposes it would be very helpful if I could create some valid
>> sample data.  The test programs I found in jevio 4.0 read in existing
>> files but don't create them.
>>
>> --Jeremy
>>
>> -----Original Message-----
>> From: McCormick, Jeremy I.
>> Sent: Tuesday, February 28, 2012 1:43 PM
>> To: [log in to unmask]; [log in to unmask]; 'Carl Timmer';
>> [log in to unmask]; Neal, Homer A.
>> Cc: Graf, Norman A.
>> Subject: reading sample Evio v4 file
>>
>> Hi,
>>
>> I'm trying to test out the new EVIO 4 Java library.  (Thanks for this!)
>>
>> Sergei sent this sample EVIO v4 file last week, which I'm attempting to
>> read and parse using the new Java library.
>>
>> http://www.lcsim.org/test/hps/evio4_sample.dat
>>
>> This file has three child structures in each event, containing sample
>> composite data in three different formats.  I believe that this file
>> contains only composite data blocks.  (Sergei can probably say more
>> about
>> this.)
>>
>> Several things do not work for me, however.
>>
>> Firstly, the call to write out an XML file...
>>
>> reader.toXMLFile(fileName)
>>
>> fails with the error.
>>
>> org.jlab.coda.jevio.EvioException: no composite data
>>     at org.jlab.coda.jevio.CompositeData.<init>(CompositeData.java:168)
>>
>> Secondly, attempting to actually parse one of the blocks as composite
>> data
>> does not work.
>>
>> The parse error occurs when I attempt to access the second data block.
>> The first structure seems okay.  But with the second, there is a null
>> pointer exception in the CompositeData constructor, just after the call
>> to
>> the unpackRawBytesToString() method.  A null pointer is returned by this
>> method rather than a sized String array.  This call occurs just after
>> line
>> 133 of CompositeData.java, where some operations are performed on this
>> null array object.
>>
>> Test program is quite simple...
>>
>>     EvioReader reader = new EvioReader(new File(testFileName));
>>     reader.toXMLFile((new File(testFileName +
>> ".xml")).getCanonicalPath());  // Doesn't work!
>>
>>     EvioEvent event = reader.parseNextEvent();
>>     while (event != null) {
>>         for (BaseStructure b1 : event.getChildren()) {
>>             CompositeData compData = b1.getCompositeData(); // Fails on
>> second data block.
>>         }
>>         event = reader.parseNextEvent();
>>     }
>>
>> As you can see, I'm not doing anything fancy/complicated here, just
>> trying
>> to read each structure as composite data.
>>
>> If someone with more expertise could tell me the following, I would
>> appreciate it...
>>
>> Am I doing this right?
>>
>> Can you reproduce the issue(s)?
>>
>> Are there any know bugs/issues that would prevent the basic parsing
>> and/or
>> the XML output from working for this file?
>>
>> Is there anything wrong with the sample data file?
>>
>> etc.
>>
>> If you need any additional info about this, please let me know.  Thanks!
>>
>> --Jeremy
>>
>
>
>

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the HPS-SOFTWARE list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1