#ifndef ALIDAJETFINDER_H
#define ALIDAJETFINDER_H
#include "AliJetFinder.h"
#include <TMatrixD.h>
#include <TVectorD.h>
class AliDAJetFinder : public AliJetFinder
{
public:
AliDAJetFinder();
virtual ~AliDAJetFinder();
void FindJets ();
protected:
Double_t fAlpha;
Double_t fDelta;
Double_t fAvDist;
Double_t fEps;
Double_t fEpsMax;
Int_t fNloopMax;
Double_t fBeta;
Int_t fNclustMax;
Int_t fNin;
Int_t fNeff;
private:
void InitDetAnn (Double_t &dEtSum, Double_t **xData, TVectorD *px, TVectorD *py, TMatrixD *pyx, TMatrixD *y);
void Annealing (Int_t nk, Double_t **xData, const TVectorD *vPx, TVectorD *vPy, TMatrixD *mPyx, TMatrixD *mY);
void NumCl (Int_t &nc, Int_t &nk, TVectorD *vPy, TMatrixD *mPyx, TMatrixD *mY);
void ReduceClusters(Int_t **iSame, Int_t nc, Int_t &ncout, Int_t **cont, Int_t *nSameOut) const;
void DoubleClusters(Int_t nc, Int_t &nk, TVectorD *vPy, TMatrixD *mY) const;
void EndDetAnn (Int_t &nk, Double_t **xData, Int_t *xx, Double_t etx, const TVectorD *px, TVectorD *py, TMatrixD *pyx, TMatrixD *y);
void StoreJets (Int_t nk, Double_t **xData, const Int_t *xx, const TMatrixD *mY);
ClassDef(AliDAJetFinder,4)
};
#endif