80344356b61c60ea511d93158f70e157c56f1f86
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / AlidNdPtCutAnalysis.h
1 #ifndef ALIDEDPTCUTANALYSIS_H
2 #define ALIDEDPTCUTANALYSIS_H
3
4 //------------------------------------------------------------------------------
5 // AlidNdPtCutAnalysis class. 
6 //
7 // a. functionality:
8 // - fills generic cut histograms
9 // - generates cuts (selection criteria)
10 //
11 // b. data members:
12 // - generic cut histograms
13 // - control histograms
14 //
15 // Author: J.Otwinowski 04/11/2008 
16 //------------------------------------------------------------------------------
17
18 class TProfile;
19 class TFolder;
20 class TObjArray;
21 class TString;
22
23 class AliESDtrackCuts;
24 class AliVertexerTracks;
25 class AliESD;
26 class AliESDfriend;
27 class AliESDfriendTrack;
28
29 #include "THnSparse.h"
30 #include "AlidNdPt.h"
31
32 class AlidNdPtCutAnalysis : public AlidNdPt {
33 public :
34   AlidNdPtCutAnalysis(); 
35   AlidNdPtCutAnalysis(Char_t* name, Char_t* title);
36   ~AlidNdPtCutAnalysis();
37
38   // Init data members
39   virtual void Init();
40
41   // Process events
42   virtual void Process(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0);
43
44   // Merge output objects (needed by PROOF) 
45   virtual Long64_t Merge(TCollection* list);
46
47   // Analyse output histograms 
48   virtual void Analyse();
49
50   // Export objects to folder
51   virtual TFolder *ExportToFolder(TObjArray * array=0);
52
53   // Get analysis folder
54   TFolder* GetAnalysisFolder() {return fAnalysisFolder;}
55
56   // Create folder for analysed histograms
57   TFolder *CreateFolder(TString folder = "folderdNdPtAnalysis",TString title = "Analysed dNdPt histograms");
58
59   // Fill histograms
60   void FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack);
61
62   // Getters
63   THnSparseF *GetRecEventHist()   {return fRecEventHist;}
64   THnSparseF *GetMCEventHist()    {return fMCEventHist;}
65   THnSparseF *GetRecMCEventHist() {return fRecMCEventHist;}
66
67   //
68   THnSparseF *GetRecMCTrackHist() {return fRecMCTrackHist;}
69   
70 private:
71
72   // analysis folder 
73   TFolder *fAnalysisFolder; // folder for analysed histograms
74
75   //
76   // THnSparse event histograms
77   //
78   THnSparseF *fRecEventHist;   //-> Xv:Yv:Zv:ResZv:Mult
79   THnSparseF *fMCEventHist;    //-> mcXv:mcYv:mcZv
80   THnSparseF *fRecMCEventHist; //-> Xv-mcXv:Yv-mcYv:Zv-mcZv:Mult
81
82   //
83   // THnSparse track histograms
84   //
85   THnSparseF *fRecMCTrackHist; //-> nClust:chi2PerClust:nClust/nFindableClust:DCAy:DCAz:eta:phi:pt:isNotKink:isPrim
86
87   AlidNdPtCutAnalysis(const AlidNdPtCutAnalysis&); // not implemented
88   AlidNdPtCutAnalysis& operator=(const AlidNdPtCutAnalysis&); // not implemented
89
90   ClassDef(AlidNdPtCutAnalysis,1);
91 };
92
93 #endif