StFtpcClusterFinder - FTPC cluster finder

calling parameters (obsolete calling parameters):
fcl_(
*ftpcndx_h, *ftpcndx, indices to beginning of tpcs (input data)
*ftpcsqndx_h, *ftpcsqndx, raw data sequence indices (input data)
*ftpcadc_h, *ftpcadc, raw data adc values (input data)
*fppoint_h, *fppoint, ftpc hit points (output data)
*ampslope_h, *ampslope,  amplitude calibration slopes (parameters)
*ampoff_h, *ampoff,  amplitude calibration offsets (parameters)
*timeoff_h, *timeoff, time calibration offsets (parameters)
*padtrans_h, *padtrans, ExB drift calculation table (parameters)
*det_h, *det, geometry and runtime parameters for fcl (parameters)
*zrow_h, *zrow) z positions of all padrows (parameters)

StFtpcClusterFinder is a high-speed cluster finder for the STAR Forward-TPCs with full two-dimensional unfolding, offline calibration, coordinate transformation and ExB-correction.

The FTPC cluster finder is implemented in ROOT(StFtpcClusterMaker).

StFtpcClusterFinder is programmed in C++ by Holm Hümmler and is supported by Janet Seyboth.

In the first step StFtpcClusterFinder follows the principle of the peep-hole cluster finder used by Dirk Schmischke in the development of the online cluster finder: Only the raw data sequences on each two consecutive pads are compared to find coherent areas of nonzero charge. In this step, the actual ADC values are never accessed. Once an independent area of charge has been found, its sequences are stored as a cluster.
In the second step the clusters are searched for peaks: Looping over the ADC values for each sequence in a cluster, the peak for each sequence is found. As this is the only time when all the ADC values are accessed, this is also the point where the amplitude calibration can be done most efficiently. Comparing the sequence peaks with their neighbours, local maxima in the charge distribution are found. Each local maximum is stored as one hit. In this step, the original sequence data is never accessed.
In the third step, the individual hits are fitted: If a cluster contains only one hit, the cluster position can be determined using either a weighted mean over the whole cluster or a gaussian fit around its peak independently for pad and time direction, depending on the input parameters.
If a cluster contains more than one hit, it is unfolded: Starting with the local maxima as a first hypothesis, the influence of each hit on its neighbours is calculated and subtracted from their data for their new fit. For simpler clusters, this procedure converges usually within less than four iterations. The algorithm can, however, also unfold very complicated clusters of more than 50 hits at the expense of longer calculation time.
The fitting is also the step where the time calibration offsets for each pad are applied.
The coordinates for each reconstructed hit are then transformed from pad/time to x/y. In this step, the ExB-correction is also applied. This can be done fast, because at the first call of fcl, the transformation table has been calculated from a database (created using the MAGBOLTZ code) and the calibrated air pressure. Thus, the transformation from time to radius and ExB-shift is a simple interpolation.

A more detailed documentation of the StFtpcClusterFinder source code can be downloaded as  pdf-file  or  ps-file .

StFtpcClusterFinder is designed to work fast. If there is no heavy unfolding necessary (clusters with 5 peaks or less), StFtpcClusterFinder needs less than 5 seconds for one event in both FTPCs. In the worst expected case of very high track densities due to slow delta-electrons, calculation time can go up to three minutes.
You can download a zipped ps-file of the data and reconstructed hits in one very heavily populated FTPC sector. Plotted is the time vs pad direction; the black dots show the reconstructed hits.

This page was updated by Joern Putschke on June 28, 2001