Compatibility with ROOT trunk
[u/mrichter/AliRoot.git] / JETAN / DEV / AliAnalysisTaskKMeans.h
CommitLineData
d89b8229 1#ifndef ALIANALYSISTASKKMEANS_H
2#define ALIANALYSISTASKKMEANS_H
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;
21class AliESDEvent;
22class AliESDtrack;
23class AliESDtrackCuts;
24class AliKMeansResult;
25
26#include "AliAnalysisTaskSE.h"
27
28class AliAnalysisTaskKMeans : public AliAnalysisTaskSE {
29 public:
30 AliAnalysisTaskKMeans();
31 AliAnalysisTaskKMeans(const char *name);
32 AliAnalysisTaskKMeans(const AliAnalysisTaskKMeans &res);
33 AliAnalysisTaskKMeans& operator=(const AliAnalysisTaskKMeans& trclass);
34 virtual ~AliAnalysisTaskKMeans() {}
35 virtual void UserCreateOutputObjects();
36 virtual void UserExec(Option_t *option);
37 virtual void Terminate(Option_t *);
38 virtual void SetCuts(AliESDtrackCuts* cuts) {fCuts = cuts;}
39 virtual Double_t DeltaPhi(Double_t phi1, Double_t phi2);
40 virtual Double_t DeltaR(Double_t phi1, Double_t eta1, Double_t phi2, Double_t eta2);
41 virtual void SetK(Int_t k) {fK = k;}
42 virtual void SetMinimumMultiplicity(Int_t k) {fNMin = k;}
43 virtual void SetEtaPhi(TH2F* h2) {fH2REtaPhi = h2;}
44 private:
45 // Others
46 Int_t fK; // K
47 Int_t fNMin; // Minimum multipicity
48 TList* fHists; //! Histograms
49 TH1F* fH1CEta; //! Eta distribution of clusters
50 TH1F* fH1CPhi; //! Phi distribution of clusters
51 TH1F* fH1CEtaR; //! Eta distribution of clusters for rndm evnt
52 TH2F* fH2N1N2; //! Cluster sizes
53 TH1F* fH1Pt; //! pt outside clusters
54 TH1F* fH1PtC; //! pt outside clusters
55 TH1F* fH1PtC1; //! pt dr > 0.4
56 TH1F* fH1PtC2; //! pt dr > 0.2
57 TH1F* fH1PtAS; //! away-side peak
58 TH1F* fH1PtR; //! away-side peak
59 TH1F* fH1SPt; //! sum pt
60 TH1F* fH1SPtC; //! sum pt
61 TH1F* fH1DPhi; //! Dphi wr to cluster
62 TH1F* fH1DR; //! DR wr to cluster
63 TH1F* fH1DRR; //! DR wr to cluster from rndm events
64 TH2F* fH2DPhiEta; //! eta-phi wr to cluster
65 TH2F* fH2DPhiEtaR; //! eta-phi wr to cluster for rndm events
66 TH2F* fH2DPhiEtaL; //! eta-phi of leading particle
67 TH2F* fH2DPhiEtaLR; //! eta-phi of leading particle
68 TH2F* fH2DPhiEtaC; //! eta-phi of Clusters
69 TH2F* fH2DPhiEtaCR; //! eta-phi of Clusters
70 TH1F* fH1Resp; //! responsibility
71 TH1F* fH1RespR; //! responsibility
72 TH2F* fH2Sigma; //! sigma
73 TH2F* fH2SigmaR; //! sigma random
74 TH1F* fHDensity; //! Particle density
75 TH1F* fHCSize; //! Cluster Size
76 TH1F* fHNCluster; //! Number of clusters
77 TH2F* fHPtDensity; //! Pt vs density
78 TH1F* fHDPhi; //! Phi Correlation
79 TH2F* fH2EtaPhi; //! eta phi
80 TH2F* fH2REtaPhi; // eta phi
81 AliKMeansResult* fA[10]; //! Array of results
82 AliKMeansResult* fB[10]; //! Array of results
83 AliESDtrackCuts* fCuts; // List of cuts
84 ClassDef(AliAnalysisTaskKMeans, 1); // A k-means clustering analysis
85};
86
87#endif