Hi Xavier, I post a message from Eddy Offermann who has investigated your problem: "Interesting issue. It is not related to TVector, it gives the proper error messages. It seems that Xavier created a TPrincipal object with a very old root version. At some point in time (root version ??) , I redid TPrincipal, making sure that all indices start at 0 instead of 1. I never considered the scenario that somebody would get a TPrincipal object created the old way and loaded into the new version." Rene Brun On Fri, 29 Nov 2002, Xavier CAMARD wrote: > I'm using TPrincipal class in data analysis with root version > 3.01/05. I'm storing my TPrincipal object in a file, which you can load > here : > > http://www.phenix.bnl.gov/~camard/rootobject/ > > This file is called principal.root. > > When I want to print the PCA result via > "principal->Print("MSEV")", with root version 3.01/05, the result is the > following : > > root [0] TFile f("principal.root") > root [1] .ls > TFile** principal.root > TFile* principal.root > KEY: TPrincipal principal;1 > root [2] principal->Print("MSEV") > Variable # | Mean Value | Sigma | Eigenvalue > -------------+------------+------------+------------ > 1 | 5.437 | 1.601 | 0.7393 > 2 | 4.686 | 7.723 | 0.1798 > 3 | 0.5313 | 0.172 | 0.0809 > > Eigenvector # 1 > Vector 3 is as follows > > | 1 | > ------------------ > 1 | -0.6107 > 2 | -0.5912 > 3 | 0.5268 > > Eigenvector # 2 > Vector 3 is as follows > > | 1 | > ------------------ > 1 | -0.264 > 2 | -0.4753 > 3 | -0.8393 > > Eigenvector # 3 > Vector 3 is as follows > > | 1 | > ------------------ > 1 | 0.7466 > 2 | -0.6516 > 3 | 0.1342 > > root [3] .q > > And as you can see, everything is correct. But when I want to do > exactly the same thing with the version 3.03/08, I see a problem : > > root [0] TFile f("principal.root") > root [1] .ls > TFile** principal.root > TFile* principal.root > KEY: TPrincipal principal;1 > root [2] principal->Print("MSEV") > Variable # | Mean Value | Sigma | Eigenvalue > -------------+------------+------------+------------ > 0 Error in <TVectorD::operator()>: requested element 0 is out > of vector boundaries [1,3] > | 0 Error in <TVectorD::operator()>: requested element 0 is out > of vector boundaries [1,3] > | 0 Error in <TVectorD::operator()>: requested element 0 is out > of vector boundaries [1,3] > | 0 > 1 | 5.437 | 1.601 | 0.7393 > 2 | 4.686 | 7.723 | 0.1798 > > Eigenvector # 0Error in <TMatrixDColumn::TMatrixDColumn>: column #0 is not > within the matrix > Error in <TVectorD::operator=(const TMatrixDColumn&)>: can't assign a > column of the matrix to the vector > > Vector 3 is as follows > > | 1 | > ------------------ > 0 | 0 > 1 | 0 > 2 | 0 > > Eigenvector # 1Error in <TVectorD::operator=(const > TMatrixDColumn&)>: can't assign a column of the matrix to the vector > > Vector 3 is as follows > > | 1 | > ------------------ > 0 | 0 > 1 | 0 > 2 | 0 > > Eigenvector # 2Error in <TVectorD::operator=(const > TMatrixDColumn&)>: can't assign a column of the matrix to the vector > > Vector 3 is as follows > > | 1 | > ------------------ > 0 | 0 > 1 | 0 > 2 | 0 > > root [3] .q > > I don't know what to do to print the good result with root version > 3.03/08. > > Thank you. > > * Xavier CAMARD * > * SUBATECH, Ecole des Mines de Nantes * > * 4, rue Alfred Kastler * > * BP 20722 - 44307 Nantes Cedex 03 * > * e-mail: camard@subatech.in2p3.fr * > * tel:(33)(0)2 51 85 84 65 (France) * > * fax:(33)(0)2 51 85 84 24 (France) * >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:22 MET