57 m_trkIdxOrigin.push_back( index );
58 m_tracksOrigin.push_back(
nullptr );
60 int idx = m_trkIdxOrigin.size() - 1;
63 std::cerr <<
"TrackPool: wrong track index " << index <<
", " << m_trkIdxOrigin.size()
67 m_tracksOrigin[idx]->setPidType( m_trkPidOrigin[idx] );
68 m_wtrkInfit.push_back(
wtrk );
69 m_helices.push_back( HepVector( 5, 0 ) );
70 vtxfit->AddTrack( m_trkIdxOrigin[idx], m_wtrkInfit[idx] );
95 for ( uint i = 0; i != m_trkIdxOrigin.size(); ++i )
97 m_p4Infit.push_back( m_wtrkInfit[i].p() );
98 m_x3Infit.push_back( m_wtrkInfit[i].
x() );
104 HepSymMatrix evWideVertex( 3, 0 );
105 evWideVertex[0][0] = 1.0E12;
106 evWideVertex[1][1] = 1.0E12;
107 evWideVertex[2][2] = 1.0E12;
110 wideVertex.
setVx( vWideVertex );
111 wideVertex.
setEvx( evWideVertex );
113 if ( vtxfit->m_vpar_infit.size() == 0 )
115 std::cerr <<
"Not set Vertex?" << std::endl;
122 HepVector ZVx = vtxfit->Vx( 0 );
123 HepSymMatrix ZEVx = evWideVertex;
126 if ( vtxfit->Fit( 0 ) )
129 vtxfit->BuildVirtualParticle( 0 );
131 for ( uint i = 0; i != m_trkIdxOrigin.size(); ++i )
133 m_p4Infit[i] = vtxfit->pfit( i );
134 m_x3Infit[i] = vtxfit->xfit( i );
137 ZDP = vtxfit->vx( 0 );
138 ZVx = vtxfit->Vx( 0 );
139 ZEVx = vtxfit->Evx( 0 );
140 ZDPE.set( vtxfit->errorVx( 0, 0 ), vtxfit->errorVx( 0, 1 ), vtxfit->errorVx( 0, 2 ) );
146 if ( ZDP.perp() > obeampipe )
151 for ( uint i = 0; i != m_trkIdxOrigin.size(); ++i )
153 m_tracksOrigin[i]->setPidType( m_trkPidOrigin[i] );
158 m_tracksOrigin[i]->ferr() );
160 vtxfit->AddTrack( i, m_wtrkInfit[i] );
163 wideVertex.
setVx( ZVx );
165 wideVertex.
setEvx( evWideVertex );
168 vtxfit->AddVertex( 0, wideVertex, m_trkIdxOrigin );
170 if ( vtxfit->Fit( 0 ) )
173 vtxfit->BuildVirtualParticle( 0 );
174 vx = vtxfit->vx( 0 );
175 ZVx = vtxfit->Vx( 0 );
176 ZEVx = vtxfit->Evx( 0 );
196 for ( uint i = 0; i != m_trkIdxOrigin.size(); ++i )
198 m_tracksOrigin[i]->setPidType( m_trkPidOrigin[i] );
203 m_tracksOrigin[i]->ferr() );
205 vtxfit->AddTrack( i, m_wtrkInfit[i] );
208 if ( vtxfit->Fit( 0 ) )
211 vtxfit->BuildVirtualParticle( 0 );
212 vx = vtxfit->vx( 0 );
213 ZVx = vtxfit->Vx( 0 );
214 ZEVx = vtxfit->Evx( 0 );
226 for ( uint i = 0; i != m_trkIdxOrigin.size(); ++i )
228 m_tracksOrigin[i]->setPidType( m_trkPidOrigin[i] );
231 vtxext->KalFitExt(
vx, m_tracksOrigin[i], m_trkPidOrigin[i] );
233 vtxext->getHelixVector(), vtxext->getErrorMatrix() );
235 m_p4Infit[i] = m_wtrkInfit[i].p();
236 m_x3Infit[i] = m_wtrkInfit[i].x();
238 vtxfit->AddTrack( i, m_wtrkInfit[i] );
243 wideVertex.
setEvx( evWideVertex );
245 vtxfit->AddVertex( 0, wideVertex, m_trkIdxOrigin );
248 if ( vtxfit->Fit( 0 ) )
251 vtxfit->BuildVirtualParticle( 0 );
253 else { thePath = 6; }