-- modified cut analysis for Pb-Pb
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / AlidNdPtCutAnalysisPbPb.h
1 #ifndef ALIDNDPTCUTANALYSISPBPB_H
2 #define ALIDNDPTCUTANALYSISPBPB_H
3
4 //------------------------------------------------------------------------------
5 // AlidNdPtCutAnalysisPbPb class to determine 
6 // cuts to be used for dNdPt analysis. 
7 //
8 // Author: J.Otwinowski 12/11/2010 
9 //------------------------------------------------------------------------------
10
11 class iostream;
12 class TFile;
13 class TCint;
14 class TProfile;
15 class TFolder;
16 class TObjArray;
17 class TString;
18 class THnSparse;
19
20 class AliESDtrackCuts;
21 class AliVertexerTracks;
22 class AliESD;
23 class AliESDfriend;
24 class AliESDfriendTrack;
25
26 #include "AlidNdPt.h"
27
28 class AlidNdPtCutAnalysisPbPb : public AlidNdPt {
29 public :
30   AlidNdPtCutAnalysisPbPb(); 
31   AlidNdPtCutAnalysisPbPb(Char_t* name, Char_t* title);
32   ~AlidNdPtCutAnalysisPbPb();
33
34   // Init data members
35   virtual void Init();
36
37   // Process events
38   virtual void Process(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0);
39
40   // Merge output objects (needed by PROOF) 
41   virtual Long64_t Merge(TCollection* const list);
42
43   // Analyse output histograms 
44   virtual void Analyse();
45
46   // Export objects to folder
47   virtual TFolder *ExportToFolder(TObjArray * const array=0);
48
49   // Get analysis folder
50   TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
51
52   // Create folder for analysed histograms
53   TFolder *CreateFolder(TString folder = "folderdNdPtAnalysis",TString title = "Analysed dNdPt histograms");
54
55   // Fill histograms
56   void FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, Float_t centralityF) const;
57
58   // Getters
59   THnSparseF *GetEventCount()   const {return fEventCount;}
60   THnSparseF *GetRecEventHist() const   {return fRecEventHist;}
61   THnSparseF *GetMCEventHist()  const   {return fMCEventHist;}
62   THnSparseF *GetRecMCEventHist() const {return fRecMCEventHist;}
63
64   //
65   THnSparseF *GetRecMCTrackHist() const {return fRecMCTrackHist;}
66   
67
68   TString GetCentralityEstimator() const {return fCentralityEstimator; }
69   void SetCentralityEstimator(TString centEst="V0M") { fCentralityEstimator = centEst; }
70
71 private:
72
73   // analysis folder 
74   TFolder *fAnalysisFolder; // folder for analysed histograms
75
76   //
77   // THnSparse event histograms
78   //
79   THnSparseF *fEventCount; //-> trig, trig + vertex
80
81   THnSparseF *fRecEventHist;   //-> Xv:Yv:Zv:ResZv:Mult
82   THnSparseF *fMCEventHist;    //-> mcXv:mcYv:mcZv
83   THnSparseF *fRecMCEventHist; //-> Xv-mcXv:Yv-mcYv:Zv-mcZv:Mult
84
85   //
86   // THnSparse track histograms
87   //
88   //THnSparseF *fRecMCTrackHist; //-> nClust:chi2PerClust:nClust/nFindableClust:DCAy:DCAz:eta:phi:pt:hasStrangeMother:isFromMaterial:isPrim:charge:centr
89   THnSparseF *fRecMCTrackHist; //-> nCrossRows:chi2PerClust:nCrossRows/nFindableClust:fracSharedClust:DCAy:DCAz:eta:phi:pt:hasStrangeMother:isFromMaterial:isPrim:charge:centr
90   TString fCentralityEstimator;     // use centrality can be "VOM" (default), "FMD", "TRK", "TKL", "CL0", "CL1", "V0MvsFMD", "TKLvsV0M", "ZEMvsZDC"
91
92   AlidNdPtCutAnalysisPbPb(const AlidNdPtCutAnalysisPbPb&); // not implemented
93   AlidNdPtCutAnalysisPbPb& operator=(const AlidNdPtCutAnalysisPbPb&); // not implemented
94
95   ClassDef(AlidNdPtCutAnalysisPbPb,2);
96 };
97
98 #endif