c4f4befa7b0a910dfb56302ad55ec1d062ecff3f
[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) 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 private:
68
69   // analysis folder 
70   TFolder *fAnalysisFolder; // folder for analysed histograms
71
72   //
73   // THnSparse event histograms
74   //
75   THnSparseF *fEventCount; //-> trig, trig + vertex
76
77   THnSparseF *fRecEventHist;   //-> Xv:Yv:Zv:ResZv:Mult
78   THnSparseF *fMCEventHist;    //-> mcXv:mcYv:mcZv
79   THnSparseF *fRecMCEventHist; //-> Xv-mcXv:Yv-mcYv:Zv-mcZv:Mult
80
81   //
82   // THnSparse track histograms
83   //
84   THnSparseF *fRecMCTrackHist; //-> nClust:chi2PerClust:nClust/nFindableClust:DCAy:DCAz:eta:phi:pt:hasStrangeMother:isFromMaterial:isPrim:charge
85
86   AlidNdPtCutAnalysisPbPb(const AlidNdPtCutAnalysisPbPb&); // not implemented
87   AlidNdPtCutAnalysisPbPb& operator=(const AlidNdPtCutAnalysisPbPb&); // not implemented
88
89   ClassDef(AlidNdPtCutAnalysisPbPb,1);
90 };
91
92 #endif