X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=JETAN%2FAliKMeansClustering.h;h=7340e21650236aab876d639a30cc41a49685a7f5;hp=e00d12f4795de2948556f83db696a3820decbbed;hb=a4ef43838e2df52e13b72e4b2695e42690b485e2;hpb=77f42a252c7b27d60f667d3293a22656b3ae0c31 diff --git a/JETAN/AliKMeansClustering.h b/JETAN/AliKMeansClustering.h index e00d12f4795..7340e216502 100755 --- a/JETAN/AliKMeansClustering.h +++ b/JETAN/AliKMeansClustering.h @@ -20,15 +20,48 @@ class AliKMeansClustering : public TObject AliKMeansClustering() {} virtual ~AliKMeansClustering() {} - static void SoftKMeans (Int_t k, Int_t n, Double_t* x, Double_t* y, Double_t* mx, Double_t* my , Double_t* rk ); - static void SoftKMeans2(Int_t k, Int_t n, Double_t* x, Double_t* y, Double_t* mx, Double_t* my , Double_t* sigma2, + static Int_t SoftKMeans (Int_t k, Int_t n, Double_t* x, Double_t* y, Double_t* mx, Double_t* my , Double_t* rk ); + static Int_t SoftKMeans2(Int_t k, Int_t n, Double_t* x, Double_t* y, Double_t* mx, Double_t* my , Double_t* sigma2, Double_t* rk ); - static void SetBeta(Double_t beta) {fBeta = beta;} + static Int_t SoftKMeans3(Int_t k, Int_t n, Double_t* x, Double_t* y, Double_t* mx, Double_t* my , + Double_t* sigmax2, Double_t* sigmay2, Double_t* rk ); + static void OptimalInit(Int_t k, Int_t n, Double_t* x, Double_t* y, Double_t* mx, Double_t* my); + static void SetBeta(Double_t beta) {fBeta = beta;} static Double_t d(Double_t mx, Double_t my, Double_t x, Double_t y); protected: static Double_t fBeta; ClassDef(AliKMeansClustering, 1) }; + +class AliKMeansResult : public TObject +{ + public: + AliKMeansResult(Int_t k); + AliKMeansResult(const AliKMeansResult &res); + AliKMeansResult& operator=(const AliKMeansResult& trclass); + + virtual ~AliKMeansResult(); + Int_t GetK() const {return fK;} + Double_t* GetMx() const {return fMx;} + Double_t* GetMy() const {return fMy;} + Double_t* GetSigma2() const {return fSigma2;} + Double_t* GetRk() const {return fRk;} + Int_t* GetInd() const {return fInd;} + Double_t* GetTarget() const {return fTarget;} + void CopyResults(AliKMeansResult* res); + void Sort(); + void Sort(Int_t n, Double_t* x, Double_t* y); +protected: + Int_t fK; //! Number of clusters + Double_t* fMx; //! Position x + Double_t* fMy; //! Position y + Double_t* fSigma2; //! Sigma2 + Double_t* fRk; //! Responsibility + Double_t* fTarget; //! Target for sorting + Int_t* fInd; //! Index for sorting + ClassDef(AliKMeansResult, 1) +}; + #endif