133 std::vector<RefCountedVertexTrack> refTracks =
vtx.tracks();
134 int size = refTracks.size();
141 double energy_total =
sqrt(par(3) * par(3) + par(6) * par(6) + par(5) * par(5) + par(4) * par(4));
143 std::vector<RefCountedVertexTrack>::const_iterator rt_i;
145 for (rt_i = refTracks.begin(); rt_i != refTracks.end(); rt_i++) {
148 double rho = param[0];
149 double theta = param[1];
150 double phi = param[2];
151 double mass = param[5];
153 if ((**rt_i).linearizedTrack()->charge() != 0) {
154 a = -(**rt_i).refittedState()->freeTrajectoryState().parameters().magneticFieldInInverseGeV(
vtx.position()).
z() *
155 (**rt_i).refittedState()->freeTrajectoryState().parameters().charge();
175 jc_el(4, 4) = energy_total *
mass / (par(6) * energy_local);
188 jac.sub(4, i_int * 4 + 4, jc_el);
192 cov.sub(1, 1, asHepMatrix<7>((**rt_i).fullCovariance()));
195 AlgebraicMatrix fullCovMatrix(asHepMatrix<7>((**rt_i).fullCovariance()));
207 cov.sub(i_int * 4 + 4, i_int * 4 + 4, m_m_cov);
210 cov.sub(1, i_int * 4 + 4, x_p_cov);
211 cov.sub(i_int * 4 + 4, 1, p_x_cov);
217 for (std::vector<RefCountedVertexTrack>::const_iterator rt_j = refTracks.begin(); rt_j != refTracks.end(); rt_j++) {
219 AlgebraicMatrix i_k_cov_m = asHepMatrix<4, 4>(
vtx.tkToTkCovariance((*rt_i), (*rt_j)));
221 cov.sub(i_int * 4 + 4, j_int * 4 + 4, i_k_cov_m);
222 cov.sub(j_int * 4 + 4, i_int * 4 + 4, i_k_cov_m.T());
232 return jac * cov * jac.T();