The calling sequence for this module (with links to the source code) is:
Find the vertex using the pseudo-tracking method.
This is one of two methods used in vertex finding with the MVD.
This is the faster of the two methods, but it does not work as well
at high occupancies.
This algorithm is only used if dMvdTrigCntrl->choice ==1. Otherwise,
the module does nothing. dMvdTrigCntrl->choice is set by
mMvdOccupancy.
The vertex position and other information is returned in dMvdVertexOut.
The software version of 1.XX (currently 1.01) returned in
dMvdVertexOut[Nentry].softvertex means the pseudo-tracking method
was used. MvdVertexOut[Nentry].vertexcl is intended to be a confidence level
for this vertex, but it is currently always set to 1.
MvdVertexOut[Nentry].ErrorCode=1 means there were no errors in
vertex finding. Negative numbers mean there was an error and the
vertex could not be found. The vertex position (cm) is returned
in dMvdVertexOut->vertex[0]=x, [1]=y, [2]=z.
Two different algorithms are used to find the vertex position.
This module uses one of those algorithms --
the "pseudo-tracking method". Because the MVD barrel (which is used
for vertex finding) only has two layers of Si, it can not do real tracking. Instead, the
pseudo-tracking algorithm takes every clump (where a clump is a group of adjacent channels in the
same row, shell, and panel of the MVD which all have signals above threshold) in both the inner
and outer shell and treats every combination of pairs of clumps (one in the inner shell and one in
the outer shell) in the same row of the MVD barrel as a potential track. This combination of hits is
projected back to the beam axis to find the vertex expected for a track which hit these two
locations. For each of these possible vertex locations, a channel in a histogram is incremented. Most
pairs of hits do not correspond to a real track. However, when all pairs are considered, the true
vertex location appears more frequently than the other locations.
A postscript version of the histogram is available
here
here. This sample histogram is from an older version of the code.
In the current code, this (root) histogram is called PseudoZ.
The peak channel in this histogram corresponds to the vertex position. When this algorithm
finds the correct vertex location (as it does in most cases), it is correct to within a few 100 microns
for central Au+Au hijing events. When it gets the wrong answer, it tends to be wrong by many cm.
At high occupancy (around 45% in the inner barrel) this method becomes inefficient.
The array of projected track dimensions was dimension
Lz. This dimension is calculated using the constant ZRESOLUTION in
the source code -- this constant sets the bin size in the vertex-finding
array and therefore can set the maximum resolution of the method.
Currently is is set to 0.03 cm = 300 microns.
The calculated z vertex position is in
dMvdVertexOut->vertex[2].
This algorithm also is able to find x and y of the vertex (returned as
dMvdVertexOut->vertex[0] and dMvdVertexOut->vertex[1]). These algorithms
are similar to those for finding the vertex in z. The histograms showing
the data used in the vertex search are called PseudoX and PseudoY.
The code also fills a covariance matrix (VertexOut[NumOut].vertexerr),
but it is filled with rough guesses -- only the diagonal terms
are non-zero and they are just my estimates of the uncertainty.
This part needs work.
mMvdPseudoTrk
dMvdGeo
dMvdPar
dMvbPar
dMvdNclmp
dMvdClmp
dMvdTrigControl
dMvdPseudoPar
dMvdVertexOut
John Sullivan
comments to: sullivan@lanl.gov
updated 23-Dec-1999