TDC linearization in 1998

The following solution has been implemented. The raw TDC vs. ADC data of several slow-rate runs (33k pi-stops per second), containing about 2000 data points, was binned into columns by ADC value, so that the width of the column is linearly increasing with increasing ADC value. Then the average TDC and ADC values along with statistical error on TDC value were calculated in each column. Thus, the number of points was reduced to about 70. Then the fits were done on PAW, looking for solution in the form:
TDC=par1+par3*(ADC-par4) par2.

In order to obtain reasonable parameters, we could not use the events with all triggers together because a number of graphs had strange jumps [see example; here Trig 8 is Pienu:Hi, Trig 16 is Pienu:Hi':PS, and Trig 128 is Prompt:PS]. However, making cuts on different triggers considerably improved the quality of the fits, as can be seen on the example graph. Since from the triggers with high statistics we are mostly concerned with Pienu, we used the data cut on that trigger to obtain the parameters for linearization of CsI TDC's.
In this file you can see the results of the binning and fitting for all 240 crystals. Some crystals still display a "jump", which is larger than the statistical deviation. This imperfection may be due to different response time of triggers, depending on which cluster fired the trigger. Unfortunately, the trigger TDC information is not currently available, so it does not appear possible to make better fits than the ones shown in the file above.

How well can you trust the parameters?

One of the questions is how well do these obtained parameters can be used in different sets. In order to do that, I analyzed the data from several runs with different intensities, and found the rms difference between the two functions for each crystal. The histograms can be seen in this file. The table below summarizes the results.
Intensity Run numbers Crystal with the
worst difference*
The worst
difference
Average
difference
33k(1) vs. 33k(2) 10229-10233 vs. 10231-10236 104 0.378ns 0.148ns
33k(1) vs. 100k 10229-10233 vs. 10191-10198 16 0.473ns 0.181ns
33k(1) vs. 240k 10229-10233 vs. 10123-10131 16 0.648ns 0.218ns
33k(2) vs. 100k 10231-10236 vs. 10191-10198 16 0.393ns 0.165ns
33k(2) vs. 240k 10231-10236 vs. 10123-10131 16 0.552ns 0.202ns
100k vs. 240k 10191-10198 vs. 10123-10131 52 0.517ns 0.180ns
33k(all) vs. 33k(1) 10229-10236 vs. 10229-10233 35 0.305ns 0.108ns
33k(all) vs. 33k(2) 10229-10236 vs. 10231-10236 16 0.198ns 0.100ns
33k(all) vs. 100k 10229-10236 vs. 10191-10198 16 0.573ns 0.165ns
33k(all) vs. 240k 10229-10236 vs. 10123-10131 16 0.740ns 0.210ns
* Not including crystals 220-239.

These figures suggest that for most crystals the rms difference is under 0.5ns -- the resolution of the detector -- in the energy range 10-100MeV (the integrals were computed from channel 250 to 2500). Therefore, it seems that the parameters provided below work for all runs at all intensities.
For analyzer users

In order to use the parameters in the analyzer, save the file into your analyzer directory, in ODBEdit go to "Analyzer/Parameters/TDC Calibration" and type in "load param.odb".

Grab the file with correction parameters.