Raw data treatment

This page aims to summarize the step leading to 0-suppressed data starting from raw data. The corrections were tested on BGV fibre modules prior to installation with 1MeV electron injection and on a spare module at the SPS test beam. The detailed study is available here: Read-out, signal corrections and clustering.

Corrections on raw data

The raw data is corrected for several imperfections occuring in the read-out chain. The following table sums up the corrections and how they are implemented at the moment in the EPFL data treatment software. The code (subject to constant update and modifications...) is available here. This version is used for the analysis of the data taken on the spare BGV module (06-4L) at testbeam at SPS. Some more details about the code itself are here.

Correction order Principle How it is now implemented How it should be implemented (offline)
1 Flip ADC values: get positive signal instead of negative adc[ch] = 1023 - adc[ch] same
2 Substract pedestal to signal: a signal 0 (so no signal) does not correspond to adc=0. We need to "calibrate the 0-signal for all channels. We take a measurement of the pedestal with SiPMs off (or at least in the dark with no signal). This is stored to a data file which is reloaded when the analysis on a signal file is performed. The software loops over the events of the pedestal data and gets the mean value for all channels, stores it into a vector. The signal file, when analysed, should not need to load the pedestal file. It should load the pedestals already calculated from a file that we can refresh at any time.
3 Correct for header influence: the two last headers of each analog-link influence the two first channls of this link. The influence of headers is measured in the same pedestal file as in 2. It looks at the two header bits in their possible configurations (00, 01, 10, 11) and averages in each of these cases the pedestal at channel 0 and 1 of the a-link. The correction to apply is the difference between the average pedestal and the specific average pedestal which is stored to a vector and applied event by event on the two first channels of each a-link for a signal file. The best way is to measure the header influence with a pedestal file, as it is done so far. But the algorithm should store the header corrections to a file which can be refreshed with new pedestal measurement.
4 Correct for common mode (CM): at each event, the pedestal
may shift slightly compared to the average pedestal measured in 2.
CM is measured on the signal file. At each event and for each a-link, the average pedestal is measured by selecting channels which have 0-signal, namely signal close to the expected pedestal value. So we get a correction per a-link which is different at all events. same
5 Correlation between channels: due to the design of the FE PCB,
channels influence each other (within one analog-link). Correlations are two-fold: right- and left-correlations.
Correlations are measured with an injector circuit on FE Beetle boards. So they cannot be measured with signal taken at the BGV. The influence between channels (agressor and victim channels are always in the same a-link) is stored in a root file and loaded to a complicated matrix. Correction has two steps: 1) left-correlation, 2) right-correlation. Same but maybe we need to think of a way to measure the correlations on BGV data, to monitor them over time.
6 Correct for the different gain of each attenuator. Difference in gain was also measured with an injector circuit and cannot be measured with BGV data. Storage in root file and loaded in a matrix as in 5. The adc value of signal file are modified taking this difference in gain into account. The adc value should not be multiplied by a correction factor. The difference in gain should be implemented as a different threshold set in the clustering.
7 Correct for the difference in breakdown voltage of each SiPM channel. Breakdown voltage (Vbd) depends on temperature T as: Vbd(T) = Vbd(25C) + 0.0537*(T-25C)
The gain depends on the over-voltage (dV) as: G(dV) = 3.5*10⁶ * (dV/3.5)
So the adc gain is adjusted for each channel with the measurement of Vbd(25C) (reference measurement), T (measured with NTC soldered on the flex cable, same T for one SiPM) and Vbias (common to four SiPMs). Changing the adc gain is equivalent to changing the thresholds in the clustering algorithm.


The clustering is based on three thresholds: seed, neighbour and sum. The algorithm should look for clusters within 64 channels (0 to 63, 64 to 127,...) and not build clusters in the middle or between two SiPMs.

Topic attachments
I Attachment History Action Size Date Who Comment
Texttxt plotter_README.txt r1 manage 2.6 K 2015-11-27 - 10:01 UnknownUser  
C source code filec testbeam_nov2015.C r1 manage 88.9 K 2015-11-27 - 10:01 UnknownUser  
Edit | Attach | Watch | Print version | History: r8 < r7 < r6 < r5 < r4 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r8 - 2017-01-25 - unknown
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    BGV All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback