16 #ifndef ROOT_TRobustEstimator
17 #define ROOT_TRobustEstimator
23 class TRobustEstimator :
public TObject {
37 TMatrixDSym fCovariance;
38 TMatrixDSym fInvcovariance;
39 TMatrixDSym fCorrelation;
50 void AddToSscp(TMatrixD &sscp, TVectorD &vec);
51 void ClearSscp(TMatrixD &sscp);
54 void Covar(TMatrixD &sscp, TVectorD &m, TMatrixDSym &cov, TVectorD &sd, Int_t nvec);
57 void CreateSubset(Int_t ntotal, Int_t htotal, Int_t p, Int_t *index, TMatrixD &data,
58 TMatrixD &sscp, Double_t *ndist);
59 void CreateOrtSubset(TMatrixD &dat, Int_t *index, Int_t hmerged, Int_t nmerged, TMatrixD &sscp, Double_t *ndist);
61 Double_t CStep(Int_t ntotal, Int_t htotal, Int_t *index, TMatrixD &data, TMatrixD &sscp, Double_t *ndist);
63 Int_t Exact(Double_t *ndist);
64 Int_t Exact2(TMatrixD &mstockbig, TMatrixD &cstockbig, TMatrixD &hyperplane,
65 Double_t *deti, Int_t nbest,Int_t kgroup,
66 TMatrixD &sscp, Double_t *ndist);
68 Int_t Partition(Int_t nmini, Int_t *indsubdat);
69 Int_t RDist(TMatrixD &sscp);
70 void RDraw(Int_t *subdat, Int_t ngroup, Int_t *indsubdat);
72 Double_t KOrdStat(Int_t ntotal, Double_t *arr, Int_t k, Int_t *work);
77 TRobustEstimator(Int_t nvectors, Int_t nvariables, Int_t hh=0);
78 virtual ~TRobustEstimator(){;}
80 void AddColumn(Double_t *col);
81 void AddRow(Double_t *row);
84 void EvaluateUni(Int_t nvectors, Double_t *data, Double_t &mean, Double_t &sigma, Int_t hh=0);
89 const TMatrixD & GetData() {
return fData; }
91 void GetCovariance(TMatrixDSym &matr);
92 const TMatrixDSym* GetCovariance()
const{
return &fCovariance;}
93 void GetCorrelation(TMatrixDSym &matr);
94 const TMatrixDSym* GetCorrelation()
const{
return &fCorrelation;}
95 void GetHyperplane(TVectorD &vec);
96 const TVectorD* GetHyperplane()
const;
97 Int_t GetNHyp() {
return fExact;}
98 void GetMean(TVectorD &means);
99 const TVectorD* GetMean()
const {
return &fMean;}
100 void GetRDistances(TVectorD &rdist);
101 const TVectorD* GetRDistances()
const {
return &fRd;}
102 Int_t GetNumberObservations()
const {
return fN;}
103 Int_t GetNvar()
const {
return fNvar;}
104 const TArrayI* GetOuliers()
const{
return &fOut;}
108 Double_t GetChiQuant(Int_t i)
const;
110 ClassDef(TRobustEstimator,1)