Add a protection to avoid crash in QA (Julian)
[u/mrichter/AliRoot.git] / JETAN / AliDAJetFinder.h
1 #ifndef ALIDAJETFINDER_H
2 #define ALIDAJETFINDER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //---------------------------------------------------------------------
8 //Jet finder based on Deterministic Annealing
9 //Author: Davide Perrino (davide.perrino@ba.infn.it)
10 //---------------------------------------------------------------------
11
12 #include <AliJetFinder.h>
13 #include <TMatrixD.h>
14 #include <TVectorD.h>
15 class AliDAJetHeader;
16
17 class AliDAJetFinder : public AliJetFinder
18 {
19 public:
20     AliDAJetFinder();
21     virtual  ~AliDAJetFinder();
22
23     void FindJets      ();
24  private:
25     void InitDetAnn    (Double_t &dEtSum, Double_t **xData, TVectorD *px, TVectorD *py, TMatrixD *pyx, TMatrixD *y);
26     void Annealing     (Int_t nk, Double_t **xData, TVectorD *vPx, TVectorD *vPy, TMatrixD *mPyx, TMatrixD *mY);
27     void NumCl         (Int_t &nc, Int_t &nk, TVectorD *vPy, TMatrixD *mPyx, TMatrixD *mY);
28     void ReduceClusters(Int_t **iSame, Int_t nc, Int_t &ncout, Int_t **cont, Int_t *nSameOut) const;
29     void DoubleClusters(Int_t nc, Int_t &nk,  TVectorD *vPy,  TMatrixD *mY) const;
30     void EndDetAnn     (Int_t &nk, Double_t **xData, Int_t *xx, Double_t etx, TVectorD *px, TVectorD *py, TMatrixD *pyx, TMatrixD *y);
31     void StoreJets     (Int_t nk, Double_t **xData, Int_t *xx, TMatrixD *mY);
32
33 protected:
34     AliDAJetFinder(const AliDAJetFinder &jf);
35     AliDAJetFinder& operator=(const AliDAJetFinder &jf);
36     Double_t   fAlpha;                                  // beta increment
37     Double_t   fDelta;                                  // perturbation proportional to Delta
38     Double_t   fAvDist;                                 // minimum distance to distinguish two clusters
39     Double_t   fEps;                                    // convergence criterium below max number of loops
40     Double_t   fEpsMax;                                 // convergence criterium above max number of loops
41     Int_t      fNloopMax;                               // maximum number of loops at a fixed beta
42     Double_t   fBeta;                                   // increasing multiplier of entropy
43     Int_t      fNclustMax;                              // maximum number of clusters to find
44     Int_t      fNin;                                    // number of input data
45     Int_t      fNeff;                                   // total input data, including fakes
46
47     ClassDef(AliDAJetFinder,3)
48 };
49 #endif