The difference in the Jpsi.cc code for using the PrimeVertexFinder is below:

< #include "VertexAlg/PrimeVtxFinder.hh"
2679a2679,2682
> _foundPrim = false;
> //find the closet primary vertex in Z for this event
> _foundPrim = getPvertex(anEvent,xyz[2], &_myPrim);
>
2688,2720d2690
< _foundPrim = false;
< //find the closet primary vertex in Z for this event
< _foundPrim = getPvertex(anEvent,xyz[2], &_myPrim);
<
< // Finding a primary vertex from PrimeVtxFinder (using CTVMFT)
< if (_svxbeam->isValid()) {
< PrimeVtxFinder primeFit;
< HepPoint3D initBeamspot = _svxbeam->position(xyz[2]);
< HepPoint3D initBeamspot_0 = _svxbeam->position(0.);
< float beamXZslope = _svxbeam->slope().x() + _beamsxcor.value();
< float beamYZslope = _svxbeam->slope().y() + _beamsycor.value();
< primeFit.init(initBeamspot);
< primeFit.setUseCotTracks();
< primeFit.beamlineConstraint(initBeamspot_0,beamXZslope,beamYZslope);
< primeFit.setParameters(2); // Minimum number of tracks used is 2
< primeFit.defaultFit();
< // If PrimeVtx successful take vertex otherwise use VxPrim
< if (primeFit.getFit().status() == 0) { // PrimeVtx successful
< const HepPoint3D vtx = primeFit.getVertex();
< const HepSymMatrix vtx_e = primeFit.getScaledErrorMatrix();
< _myPrim.source = 2;
< _myPrim.xvert = vtx.x();
< _myPrim.yvert = vtx.y();
< _myPrim.zvert = vtx.z();
< _myPrim.pverr[0][0]=vtx_e[0][0];
< _myPrim.pverr[1][1]=vtx_e[1][1];
< _myPrim.pverr[2][2]=vtx_e[2][2];
< _myPrim.pverr[0][1]=vtx_e[0][1]; _myPrim.pverr[1][0]=vtx_e[0][1];
< _myPrim.pverr[0][2]=vtx_e[0][2]; _myPrim.pverr[2][0]=vtx_e[0][2];
< _myPrim.pverr[1][2]=vtx_e[1][2]; _myPrim.pverr[2][1]=vtx_e[1][2];
< }
< }
<
2832,2850c2802,2807
< bool usePrimeVertex = true;
< if (usePrimeVertex && _myPrim.source == 2) {
< dimuFit.setPrimaryVertex(_myPrim.xvert,_myPrim.yvert,
< _myPrim.zvert);
< dimuFit.setPrimaryVertexError(_myPrim.pverr);
<
< (*aJpsi).UsedPv[0]=_myPrim.xvert;
< (*aJpsi).UsedPv[1]=_myPrim.yvert;
< (*aJpsi).UsedPv[2]=_myPrim.zvert;
< }
< else {
< dimuFit.setPrimaryVertex(_beamSpot.xvert,_beamSpot.yvert,
< _beamSpot.zvert);
< dimuFit.setPrimaryVertexError(_beamSpot.pverr);
<
< (*aJpsi).UsedPv[0]=_beamSpot.xvert;
< (*aJpsi).UsedPv[1]=_beamSpot.yvert;
< (*aJpsi).UsedPv[2]=_beamSpot.zvert;
< }
---
> dimuFit.setPrimaryVertex(_beamSpot.xvert,_beamSpot.yvert,_beamSpot.zvert);> dimuFit.setPrimaryVertexError(_beamSpot.pverr);
>
> (*aJpsi).UsedPv[0]=_beamSpot.xvert;
> (*aJpsi).UsedPv[1]=_beamSpot.yvert;
> (*aJpsi).UsedPv[2]=_beamSpot.zvert;