Hi,
I am trying to update a package that performs vertexing with mass/kinematic constraints. As you can imagine, it uses heavily the TMatrixD object. The package runs under ROOT v3, it compiles in v4 but the matrix manipulations fail (it appears to be an inversion but could be due to something further upstream)
Unfortunately the author is no longer in contact so I am alone in fixing things.
I have read the v4.00/08 Release Notes so know something of what has changed. These say that things are almost backward compatible except for indexing with GetElements. It appears that this member function is not used in the package.
I just wondered if anyone has done something similar, or if any ROOT experts can shed some more light on this.
I rewrote the linear algebra package . Indeed the claim is that besides
matrix storage (was column-wise, is now row-wise) , it is backward
compatible . Could you tell me a bit more how it fails :
wrong result ?
run-time error ?
If you send me the code (edmondoffermann - yahoo - com), I will
have a look at it ,
In the code, new_winv is a HepSymMatrix so I think it has the correct syntax. For some reason a number of matrix inversions are done using the HepSymMatrix class, ie a TMatrixD is converted to a HepSymMatrix, inverted and then converted back again. I have no idea why this is the case. I changed the code to just use TMatrixD but keep getting the same problem. It seems the matrix that I am trying to invert is just junk (det zero).
The cause is still under investigation, the one thing I know it that it worked in v3!
Hi Eddy,
On further investigation, I see the same behaviour in both v3 and v4 of ROOT now I have built both in gcc. The older version was built with kcc and I think this maybe the difference.