next up previous
Next: Bibliography Up: report Previous: Reliability

New procedures

The code for solving Eqs. 2-4 is shown in Table 1. This code has been checked on real data and does not hang or crash on the first $10^6$ events. The values for the energy and angle it returns look reasonable for the most part.

There is one case that is problematic, that being a high energy cluster whose center is at the outer edge of the detector. An example would be a single block on the outside edge of the detector with a pulse height corresponding to 2GeV. This is fairly rare, only a few per run, but they do have to be treated specially because in this case a solution to Eqs. 2-4 does not actually exist; no photon coming from the target, no matter the energy, would be able to deposit a mean of 2GeV in an outer block without scraping a block at a smaller radius. In real events, of course, not all photons come from the target, but this analysis assumes that they do. The result is that the iterative solution pushes the corrected energy up to ridiculous levels in search of a solution. The code in Table 1 fixes this by quitting out of the loop as soon as the solution energy exceeds some upper bound MAX_PHOTON_ENERGY.


Table 1: Listing of c code for solving Eqs. 2-4.
\begin{table}
\begin{verbatim}...


Another feature of the code in Table 1 that was not presented in the discussion so far is the azimuthal dependence of the maximum polar angle $\theta_0$ of the detector. In Eq. 7 the detector was assumed to be cylindrical. The code uses a simple quadratic fit to take into account the irregularities of the outer boundary of the actual LGD.

The code is located in routine makePohotonPatch.c and assumes that the cluster center $(x,y)$ has already been stored in the structure photon_VC and that the summed cluster energy (uncorrected) is found in cluster->energy. Upon exit from the loop, the answers are stored in the variables energy and theta.

The new code has been uploaded to the central cvs repository. It replaces the former depth correction in makePhotonPatch.c and the energy nonlinearity correction in make_photons.c. So as not to give anyone an unwelcome surprise, the new code is not selected by default. Instead, the two files mentioned above were checked into cvs with special defines

#define OLD_DEPTH_CORRECTION true
#define OLD_NONLINEAR_CORRECTION true
in the head of the file. Commenting out these two lines will enable the new code. Note that they must be commented out in both makePhotonPatch.c and make_photons.c to obtain the new behavior.

As before, the gain coefficients that are obtained using this correction procedure in the calibration will give rise to raw cluster energies that are approximately equal to the corrected ones. If all behaves as expected, once calibration constants have been obtained with this correction in place, an analysis using those gain coefficients and this procedure will need no other patching up to obtain consistent results for the masses of known mesons in the Radphi data set.


next up previous
Next: Bibliography Up: report Previous: Reliability
Richard T. Jones 2003-02-12