Print

Print


Jevio from the coda website is the latest and greatest.
Carl

On 2/29/2012 1:50 PM, McCormick, Jeremy I. wrote:
> 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