Method updating the states. Takes a vector of full parameters: (x,y,z,particle_1,...,particle_n), corresponding linearization point: vector of states and GlobalPoint, and constraint to be applied during the vertex fit. Returns refitted vector of 7n+3 parameters and corresponding covariance matrix, where n - number of tracks.
Definition at line 82 of file KinematicConstrainedVertexUpdatorT.h.
91 int vSize = lStates.size();
93 assert(nConstraint == 0 ||
cs !=
nullptr);
94 assert(vSize == nConstraint);
103 for (std::vector<KinematicState>::const_iterator
i = lStates.begin();
i != lStates.end();
i++)
104 for (
int j = 0;
j < 7;
j++) {
114 if (nConstraint != 0) {
115 cs->init(lStates, lPoint, fieldValue);
116 val.Place_at(
cs->value(), 0);
117 g.Place_at(
cs->positionDerivative(), 0, 0);
118 g.Place_at(
cs->parametersDerivative(), 0, 3);
127 v_g_sym = ROOT::Math::Similarity(
g, inCov);
133 LogDebug(
"KinematicConstrainedVertexFitter3") <<
"Fit failed: unable to invert SYM gain matrix\n";
143 finPar = inPar - inCov * (ROOT::Math::Transpose(
g) *
lambda);
146 ROOT::Math::SMatrix<double, 3 + 7 * nTrk, 3 + 7 * nTrk, ROOT::Math::MatRepSym<double, 3 + 7 * nTrk> >
prod =
147 ROOT::Math::SimilarityT(
g,
v_g_sym);
148 ROOT::Math::SMatrix<double, 3 + 7 * nTrk, 3 + 7 * nTrk, ROOT::Math::MatRepSym<double, 3 + 7 * nTrk> >
prod1;
149 ROOT::Math::AssignSym::Evaluate(
prod1, inCov *
prod * inCov);
153 pCov = inCov.template Sub<ROOT::Math::SMatrix<double, 3, 3, ROOT::Math::MatRepSym<double, 3> > >(0, 0);
156 double chi = ROOT::Math::Dot(
lambda,
val);
160 float ndf = 2 * vSize - 3;
171 for (std::vector<KinematicState>::iterator i_st = lStates.begin(); i_st != lStates.end(); i_st++) {
172 for (
int i = 0;
i < 7;
i++) {
173 newPar(
i) =
finPar(3 + i_int * 7 +
i);
176 nCovariance = inCov.template Sub<ROOT::Math::SMatrix<double, 7, 7, ROOT::Math::MatRepSym<double, 7> > >(
177 3 + i_int * 7, 3 + i_int * 7);
References cms::cuda::assert(), KineDebug3::count(), fwrapper::cs, g, mps_fire::i, invertPosDefMatrix(), dqmiolumiharvest::j, LogDebug, dumpMFGeometry_cfg::prod, prod1Switch_cff::prod1, heppy_batch::val, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), progressbar.ProgressBar::finish(), and MatrixUtil.Steps::overwrite().