33 if ( ks->
vertexId() != 310 )
return false;
38 if ( (
mass <= m_minMass ) || (
mass >= m_maxMass ) )
return false;
39 if ( ks->
chi2() >= m_maxChisq )
return false;
41 if ( !m_doSecondaryVFit )
return true;
62 HepSymMatrix evWideVertex( 3, 0 );
64 evWideVertex[0][0] = 1.0e12;
65 evWideVertex[1][1] = 1.0e12;
66 evWideVertex[2][2] = 1.0e12;
70 HepSymMatrix evBeamSpot( 3, 0 );
73 StatusCode sc = serviceLocator()->service(
"VertexDbSvc", vtxsvc );
78 for (
unsigned int ivx = 0; ivx < 3; ivx++ )
80 vBeamSpot[ivx] = dbv[ivx];
81 evBeamSpot[ivx][ivx] = vv[ivx] * vv[ivx];
86 cout <<
"KSSELECTOR ERROR: Could not find a vertex from VertexDbSvc" << endl;
95 wideVertex.
setVx( vWideVertex );
96 wideVertex.
setEvx( evWideVertex );
104 vtxfitr->
AddVertex( 0, wideVertex, 0, 1 );
106 bool fitok = vtxfitr->
Fit();
108 HepLorentzVector ppi1 = vtxfitr->
pfit( 0 );
109 HepLorentzVector ppi2 = vtxfitr->
pfit( 1 );
110 HepLorentzVector pks = ppi1 + ppi2;
112 double mass = pks.m();
113 double chisqvtx = vtxfitr->
chisq( 0 );
117 if ( (
mass <= m_minMass ) || (
mass >= m_maxMass ) )
return false;
119 if ( chisqvtx >= m_maxChisq )
return false;
121 if ( !m_doSecondaryVFit )
return true;
131 beamSpot.
setVx( vBeamSpot );
132 beamSpot.
setEvx( evBeamSpot );
145 if ( !svtxfit->
Fit() )
return false;
150 double vfitchi2 = svtxfit->
chisq();
151 double flightsig = 0;
152 if ( vfiterror != 0 ) flightsig = vfitlength / vfiterror;
156 if ( vfitchi2 > m_maxVFitChisq )
return false;
157 if ( flightsig < m_minFlightSig )
return false;
165 wideVertex.
setVx( vWideVertex );
166 wideVertex.
setEvx( evWideVertex );
173 vtxfit->
AddTrack( 0, veeInitialWTrack1 );
174 vtxfit->
AddTrack( 1, veeInitialWTrack2 );
175 vtxfit->
AddVertex( 0, wideVertex, 0, 1 );
186 HepLorentzVector pks = wks.
p();
188 double mass = pks.m();
189 double chisqvtx = vtxfit->
chisq( 0 );
193 if ( (
mass <= m_minMass ) || (
mass >= m_maxMass ) )
return false;
195 if ( chisqvtx >= m_maxChisq )
return false;
197 if ( !m_doSecondaryVFit )
return true;
207 beamSpot.
setVx( vBeamSpot );
208 beamSpot.
setEvx( evBeamSpot );
221 if ( !svtxfit->
Fit() )
return false;
226 double vfitchi2 = svtxfit->
chisq();
227 double flightsig = 0;
228 if ( vfiterror != 0 ) flightsig = vfitlength / vfiterror;
232 if ( vfitchi2 > m_maxVFitChisq )
return false;
233 if ( flightsig < m_minFlightSig )
return false;