Error upon constructing TMatrixD


I ran a macro in ROOT for a couple of weeks without problems, until today. The problem is that ROOT (suddenly) doesn’t recognize the typedef TMatrixD anymore. The following now gives a syntax error.

void test(){ TMatrixD A(2,3); }

When I replace all occurrences of TMatrixD with TMatrixT, the following constructor give an ‘unknown type’ error:

void test(){ TMatrixT<double> A(2,3); TMatrixT<double> B(TMatrixT<double>::kTransposed,A); // This gives an error TMatrixT<double> C(TMatrixD::kTransposed,A); // This will work }

I also tried including the header file TMatrixT.h in the macro. It then recognizes the typedef again, but upon running the macro a second time ROOT complains about multiple inclusions of header files.

Am I doing something wrong here? What is the correct way to work with these typedefs in ROOT?