- Chosing optimal number of clusters
[u/mrichter/AliRoot.git] / JETAN / AliAnalysisTaskKMeans.h
CommitLineData
70f2ce9d 1#ifndef AliAnalysisTaskKMeans_cxx
2#define AliAnalysisTaskKMeans_cxx
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8//-------------------------------------------------------------------------
9// Analysis Task that uses the Soft K-Means Algorithm to find clusters in
10// the eta-phi space of Minimum Bias. No pt information is used for the clustering.
11//
12//
13// Author: Andreas Morsch (CERN)
14// andreas.morsch@cern.ch
15//-------------------------------------------------------------------------
16
17class TH1F;
18class TH2F;
19class TList;
20class TProfile;
70f2ce9d 21class AliESDEvent;
22class AliESDtrack;
23class AliESDtrackCuts;
19c5a36a 24class AliKMeansResult;
70f2ce9d 25
26#include "AliAnalysisTaskSE.h"
27
28class AliAnalysisTaskKMeans : public AliAnalysisTaskSE {
29 public:
30 AliAnalysisTaskKMeans();
31 AliAnalysisTaskKMeans(const char *name);
32 virtual ~AliAnalysisTaskKMeans() {}
33 virtual void UserCreateOutputObjects();
34 virtual void UserExec(Option_t *option);
35 virtual void Terminate(Option_t *);
36 virtual void SetCuts(AliESDtrackCuts* cuts) {fCuts = cuts;}
37 virtual Double_t DeltaPhi(Double_t phi1, Double_t phi2);
38 virtual Double_t DeltaR(Double_t phi1, Double_t eta1, Double_t phi2, Double_t eta2);
320bb308 39 virtual void SetK(Int_t k) {fK = k;}
42dc9410 40 virtual void SetMinimumMultiplicity(Int_t k) {fNMin = k;}
70f2ce9d 41 private:
42 // Others
320bb308 43 Int_t fK; // K
42dc9410 44 Int_t fNMin; // Minimum multipicity
19c5a36a 45 TList* fHists; //! Histograms
46 TH1F* fH1CEta; //! Eta distribution of clusters
47 TH1F* fH1CPhi; //! Phi distribution of clusters
48 TH1F* fH1CEtaR; //! Eta distribution of clusters for rndm evnt
49 TH2F* fH2N1N2; //! Cluster sizes
50 TH1F* fH1Pt; //! pt outside clusters
51 TH1F* fH1PtC; //! pt outside clusters
52 TH1F* fH1PtC1; //! pt dr > 0.4
53 TH1F* fH1PtC2; //! pt dr > 0.2
54 TH1F* fH1PtAS; //! away-side peak
55 TH1F* fH1PtR; //! away-side peak
56 TH1F* fH1SPt; //! sum pt
57 TH1F* fH1SPtC; //! sum pt
58 TH1F* fH1DPhi; //! Dphi wr to cluster
59 TH1F* fH1DR; //! DR wr to cluster
60 TH1F* fH1DRR; //! DR wr to cluster from rndm events
61 TH2F* fH2DPhiEta; //! eta-phi wr to cluster
62 TH2F* fH2DPhiEtaR; //! eta-phi wr to cluster for rndm events
63 TH2F* fH2DPhiEtaL; //! eta-phi of leading particle
64 TH2F* fH2DPhiEtaLR; //! eta-phi of leading particle
65 TH2F* fH2DPhiEtaC; //! eta-phi of Clusters
66 TH2F* fH2DPhiEtaCR; //! eta-phi of Clusters
67 TH1F* fH1Resp; //! responsibility
68 TH1F* fH1RespR; //! responsibility
69 TH2F* fH2Sigma; //! sigma
70 TH2F* fH2SigmaR; //! sigma random
71 TH1F* fHDensity; //! Particle density
72 TH1F* fHCSize; //! Cluster Size
73 TH1F* fHNCluster; //! Number of clusters
74 TH2F* fHPtDensity; //! Pt vs density
75 AliKMeansResult* fA[10]; //!
76 AliKMeansResult* fB[10]; //!
70f2ce9d 77 AliESDtrackCuts* fCuts; // List of cuts
78 ClassDef(AliAnalysisTaskKMeans, 1); // A k-means clustering analysis
79};
80
81#endif