hi alan,

after you triggered the perigee reference point discussion i would like to ask you to check this code for correctness and eventually remove duplication.

in 
http://alxr.usatlas.bnl.gov/lxr/source/atlas/reconstruction/muonidentification/muidtrackbuilder/src/combinedmuontrackbuilder.cxx#3146

a vertex constraint is added using the full d0 between the vertex and the perigee (obtained from a globaltolocal). this should be correct only if the perigee, the vertex and the track's point of closes approach lie in a straight line. andi and i have been running in similar questions last year and have concluded that such constraints need to be expressed by a different concept, which sets the vertex constraint's surface center into the vertex position. then the constraint is trivial (d0 -&gt; 0.0) and only the cov matrix needs to be rotated.

this concept is established in the head of vertexontrack,
vertexontrack( const trk::recvertex&amp; rvertex, const trk::perigee&amp; mperigee).

please compare the two calculations. also if you could move your code to the vertexontrack constructor, your entire method combinedmuontrackbuilder::vertexontrack() can profit from the central code in the vertexontrack constructor, and does not need to be there.

cheers,
      wolfgang 