Hello ROOT talkers,
I am doing a little soft to perform analytical calculations of the track parameters resolution doing vertex detector stand-alone tracking. I am having a problem of matrix inversion. For the moment I have to invert matrices no bigger than 12x12 (6 layers with 2 measurements). I was using the TDecompLU ROOT class by doing as follows,
TDecompLU lu_meas(A);
lu.SetTol(1.0e-20);
int nr = 0;
while(!lu.Invert(InvA) && nr < 10) {
lu.SetMatrix(A);
lu.SetTol(0.1*lu_meas.GetTol());
nr++;
}
where A is the matrix to invert and InvA is the inverted matrix. Both, A and InvA are TMatrixD objects.
I noticed the problem by checking the product A*InvA which is sometimes significantly different from the unit matrix: diagonal (non-diagonal) elements significantly different from 1 (0).
I was wondering if anyone know something about matrix inversion either in ROOT and/or C++.
Thanks in advance,
Alejandro