Linear Collider Forum

Home » Analysis and Reconstruction » EUDET Telescope » LCIO: first trial and first questions...
Re: LCIO: first trial and first questions... [message #676 is a reply to message #671] Thu, 01 February 2007 02:54 Go to previous messageGo to previous message
Messages: 66
Registered: January 2007
Location: INFN - Roma3

[Reply from Frank]

Hi Antonio,

sorry for the somewhat delayed reply - there where actually a number of issues with your code and LCIO that I had to figure out.

  • First of all you hit a real bug in the underlying I/O code (the sio-library) as you where suspecting. Something goes wrong with the padding for shorts (sio uses xdr which only knows 32 bit words) which in turn causes corrupted files if one tries to store an odd number of shorts (the ADC values). Simply never happened as the TPC people allways store a full waveform which has a power of 2 number of entries and all other data items are either chars or 32-bit quantities... Anyway I will provide a patch as soon as I have a fix for the problem.
  • Apart from the fact that of course one should be able to store also odd numbers of ADC values and one in particular it is probably not a good idea to do so for the non-zero-suppressed pixelsensor raw data. It simply causes an awfully large overhead. Here I would suggest that you store a full matrix (or parts of it - see next point) in one TrackerRawData object. Otherwise file sizes will be very large and I/O unnecessary slow. I modified the example accordingly.
  • Strangly the sio-library refused to store more than 2^16 short values in one call. This of course also needs to be understood and fixed. Anyway for the time being one needs to restrict the pixels per object to 65536. In the example code I divided the 512X512 sensor into four quarters (note that the code won't work for larger sensors of course!) and encoded the pixel numbers/ranges in the cellid. (please use the attached header file at $LCIO/src/cpp/include/UTIL/CellIDEncoder.h until we release a proper LCIO patch).
  • you cannot use special characters in LCIO collection names - so I changed 'raw-frame' to rawframe'
  • I changed the logic in the example program, so that it keeps reading ADC values from a file into a buffer of 512x512 shorts and creates a new event for every complete sensor read

I will try and provide a patch for LCIO asap so that you can continue to develop code for the pixel sensors.

Cheers, Frank

Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Next Topic:RunHeader EUDET specific parameters
Goto Forum:

Current Time: Mon Jun 17 11:34:51 Pacific Daylight Time 2019
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.1.
Copyright ©2001-2010 FUDforum Bulletin Board Software