Linear Collider Forum

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

Ciao Frank,
first of all thank you very much for the very quick turn around. You shouldn't apologize for being in late with Italians, they are used to much much longer waits!


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.

Ok... now it is a feature... Very Happy


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).

So for the time being I'll have a look at the CellIDEncoder and I'll need to adapt it to a full Mimosa readout (1024 x 1024).


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

That's something I buy, this is also the way I usually do it. In the case of an ASCII file, it is a real advantage, but when the input file is a formatted binary, then you can read one full event with just one I/O operation.


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

In the mean time, I'll exercise a bit with Marlin and I can implement the converter as a subclass of DataSourceProcessor.

Thanks again....

ciao ciao



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: Thu Jul 18 14:17:35 Pacific Daylight Time 2019
.:: Contact :: Home ::.

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