Description of mMvdZcor

The calling sequence for this module (with links to the source code) is:
mMvdZcor dBbcOut dMvdGeo dMvdPar dMvbGeo dMvbPar dMvbRaw dMvdTrigControl dMvdVertexOut dMvdZcorPar

Find the vertex position using the "correlation" method. This algorithm does not find x and y of the vertex -- they are just set to zero. The calculated z vertex position is dMvdVertexOut->vertex[2].

The vertex position from the beam-beam counters is used to narrow the search to a range of +-5cm from the beam-beam counter vertex vertex, when it is known. When it is not known the whole central region is searched to find the vertex.

Other variables in dMvdVertexOut include:

  • VertexOut[NumOut].softvertex=2.xx (currently 2.01) when the correlation algorithm is used,
  • VertexOut[NumOut].ErrorCode, which should be 1 if there were no errors, negative if there were errors,
  • VertexOut[NumOut].vertexcl = confidence level, currently hardwired to 1.

    This is one of two algorithms used in vertex-finding with the MVD. Unlike the "pseudo-tracking method", the correlation method correlation makes use of the ADC information from the individual channels. This algorithm is slower than the pseudo-tracking method, but works better at high ocupancies. I have also heard that it works well at very low occupancies. However, it is much slower than the pseudotracking method at low occupancies.

    The algorithm is based on the assumption that the pattern of energy loss per channel in the inner and outer layers of the MVD are similar. By scaling pattern of ADC values in the outer shell of the MVD down by the ratio of the inner/outer layer radius (5.0/7.5), a new array is created. (This scaling is done in "channel number" space -- the scaled down array will have 5/7.5 = 2/3 as many channels as the original array.) The two patterns are the same, but there is an offset. The offset is proportional to the vertex location. By finding the value of the offset which makes the two patterns most similar, the vertex position is found. A histogram which plots the "difference" between the pattern of hits in the inner and outer layers is plotted vs. the offset in histogram 7083 for each event. A sample version of this histogram (postscript file) is available. This sample histogram comes from an older version of the code, but the algorithm is unchanged. In the current code, this histogram is available as the (root)( histogram CorrZ.

    There is a sharp minimum which corresponds to the location of the vertex. This method gives the correct vertex to within a few 100 microns. Ideally, this method would work even with multiple hits per channel in the barrel. It is sensitive to the quality of the ADC calibrations. A figure which attempts to make this algorithm a little clearer is available here as a postscript file.


    John Sullivan
    comments to: sullivan@lanl.gov
    updated 15-Jul-1999