12 #ifndef ROOT_TPrincipal
13 #define ROOT_TPrincipal
20 class TPrincipal :
public TNamed {
23 Int_t fNumberOfDataPoints;
24 Int_t fNumberOfVariables;
28 TMatrixD fCovarianceMatrix;
30 TMatrixD fEigenVectors;
31 TVectorD fEigenValues;
33 TVectorD fOffDiagonal;
44 TPrincipal(
const TPrincipal&);
45 TPrincipal& operator=(
const TPrincipal&);
47 void MakeNormalised();
48 void MakeRealCode(
const char *filename,
const char *prefix, Option_t *option=
"");
52 virtual ~TPrincipal();
53 TPrincipal(Int_t nVariables, Option_t *opt=
"ND");
55 virtual void AddRow(
const Double_t *x);
56 virtual void Browse(TBrowser *b);
57 virtual void Clear(Option_t *option=
"");
58 const TMatrixD *GetCovarianceMatrix()
const {
return &fCovarianceMatrix;}
59 const TVectorD *GetEigenValues()
const {
return &fEigenValues;}
60 const TMatrixD *GetEigenVectors()
const {
return &fEigenVectors;}
61 TList *GetHistograms()
const {
return fHistograms;}
62 const TVectorD *GetMeanValues()
const {
return &fMeanValues;}
63 const Double_t *GetRow(Int_t row);
64 const TVectorD *GetSigmas()
const {
return &fSigmas;}
65 const TVectorD *GetUserData()
const {
return &fUserData;}
66 Bool_t IsFolder()
const {
return kTRUE;}
67 virtual void MakeCode(
const char *filename =
"pca", Option_t *option=
"");
68 virtual void MakeHistograms(
const char *name =
"pca", Option_t *option=
"epsdx");
69 virtual void MakeMethods(
const char *classname =
"PCA", Option_t *option=
"");
70 virtual void MakePrincipals();
71 virtual void P2X(
const Double_t *p, Double_t *x, Int_t nTest);
72 virtual void Print(Option_t *opt=
"MSE")
const;
73 virtual void SumOfSquareResiduals(
const Double_t *x, Double_t *s);
74 void Test(Option_t *option=
"");
75 virtual void X2P(
const Double_t *x, Double_t *p);
77 ClassDef(TPrincipal,2)