]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/ChargedHadrons/dNdPt/AlidNdPtAnalysisPbPb2011.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / ChargedHadrons / dNdPt / AlidNdPtAnalysisPbPb2011.h
CommitLineData
1a6352a5 1
2#ifndef AlidNdPtAnalysisPbPb2011_H
3#define AlidNdPtAnalysisPbPb2011_H
4
5
6//------------------------------------------------------------------------------
7// AlidNdPtAnalysisPbPb2011 class used for dNdPt analysis.in PbPb collision
8//
9// Author: J.Otwinowski 04/11/2008
10// last change: 2012-09-04 by P. Luettig
11//------------------------------------------------------------------------------
12
13class iostream;
14
15class TFile;
16class TCint;
17class TProfile;
18class TFolder;
19class TObjArray;
20class TString;
21class THnSparse;
22
23class AliESDtrackCuts;
24class AliVertexerTracks;
25class AliESD;
26class AliESDfriend;
27class AliESDfriendTrack;
28class AlidNdPtHelper;
29class AliTriggerAnalysis;
30
31#include "AlidNdPt.h"
3c5d5aef 32#include "TObjString.h"
1a6352a5 33
34class AlidNdPtAnalysisPbPb2011 : public AlidNdPt {
35public :
36 AlidNdPtAnalysisPbPb2011();
37 AlidNdPtAnalysisPbPb2011(Char_t* name, Char_t* title);
38 ~AlidNdPtAnalysisPbPb2011();
39
40 // Init data members
41 virtual void Init();
42
43 // Process events
44 virtual void Process(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0);
45
46 // Merge output objects (needed by PROOF)
47 virtual Long64_t Merge(TCollection* const list);
48
49 // Analyse output histograms
50 virtual void Analyse();
51
52 // Export objects to folder
53 virtual TFolder *ExportToFolder(TObjArray * const array=0);
54
55 // Get analysis folder
56 TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
57
58 // Fill control histograms
22ad7981 59 void SetHistogramsOn(Bool_t histOn=kTRUE) {fHistogramsOn = histOn;}
1a6352a5 60 Bool_t IsHistogramsOn() const {return fHistogramsOn;}
61
62 // Create folder for analysed histograms
63 TFolder *CreateFolder(TString folder = "folderdNdPtAnalysis",TString title = "Analysed dNdPt histograms");
64
65 // Set binning for Histograms (if not set default binning is used)
68c688b7 66 void SetBinsMult(Int_t nbins, Double_t* edges) { Printf("[I] Setting Mult Bins"); fMultNbins = nbins; fBinsMult = CloneArray(nbins,edges); }
67 void SetBinsPt(Int_t nbins, Double_t* edges) { Printf("[I] Setting pT Bins"); fPtNbins = nbins; fBinsPt = CloneArray(nbins,edges); }
68 void SetBinsPtCorr(Int_t nbins, Double_t* edges) { Printf("[I] Setting pTcorr Bins"); fPtCorrNbins = nbins; fBinsPtCorr = CloneArray(nbins,edges); }
69 void SetBinsEta(Int_t nbins, Double_t* edges) { Printf("[I] Setting Eta Bins"); fEtaNbins = nbins; fBinsEta = CloneArray(nbins,edges); }
70 void SetBinsZv(Int_t nbins, Double_t* edges) { Printf("[I] Setting Zv Bins"); fZvNbins = nbins; fBinsZv= CloneArray(nbins,edges); }
71 void SetBinsCentrality(Int_t nbins, Double_t* edges) { Printf("[I] Setting Cent Bins"); fCentralityNbins = nbins; fBinsCentrality = CloneArray(nbins,edges); }
1a6352a5 72
73 // Fill histograms
74 void FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, AlidNdPtHelper::TrackObject trackObj, Float_t centralityF);
75 void FillHistograms(AliStack *const stack, Int_t label, AlidNdPtHelper::TrackObject trackObj, Float_t centralityF);
76 void FillHistograms(TObjArray *const allChargedTracks,Int_t *const labelsAll,Int_t multAll,Int_t *const labelsAcc,Int_t multAcc,Int_t *const labelsRec,Int_t multRec, Float_t centralityF);
77
78 // Getters
79 THnSparseF *GetTrackPtCorrelationMatrix() const {return fTrackPtCorrelationMatrix;}
80 //
81 THnSparseF *GetGenEventMatrix() const {return fGenEventMatrix;}
82 THnSparseF *GetTriggerEventMatrix() const {return fTriggerEventMatrix;}
83 THnSparseF *GetRecEventMatrix() const {return fRecEventMatrix;}
84 //
85 THnSparseF *GetGenTrackEventMatrix() const {return fGenTrackEventMatrix;}
86 THnSparseF *GetTriggerTrackEventMatrix() const {return fTriggerTrackEventMatrix;}
87 THnSparseF *GetRecTrackEventMatrix() const {return fRecTrackEventMatrix;}
88 //
89 THnSparseF *GetGenTrackMatrix() const {return fGenTrackMatrix;}
90 THnSparseF *GetGenPrimTrackMatrix() const {return fGenPrimTrackMatrix;}
91 THnSparseF *GetRecPrimTrackMatrix() const {return fRecPrimTrackMatrix;}
92
93 THnSparseF *GetRecTrackMatrix() const {return fRecTrackMatrix;}
94 THnSparseF *GetRecSecTrackMatrix() const {return fRecSecTrackMatrix;}
95 THnSparseF *GetRecMultTrackMatrix() const {return fRecMultTrackMatrix;}
96 //
97 // control histograms
98 //
99 THnSparseF *GetMCEventHist1() const {return fMCEventHist1;}
100 THnSparseF *GetRecEventHist1() const {return fRecEventHist1;}
101 THnSparseF *GetRecEventHist2() const {return fRecEventHist2;}
102
103
104 THnSparseF *GetRecMCEventHist1() const {return fRecMCEventHist1;}
105 THnSparseF *GetRecMCTrackHist1() const {return fRecMCTrackHist1;}
106
107 THnSparseF *GetRecMCEventHist2() const {return fRecMCEventHist2;}
108
109 THnSparseF *GetMCTrackHist1(Int_t i) const {return fMCTrackHist1[i];}
110 THnSparseF *GetMCPrimTrackHist1(Int_t i) const {return fMCPrimTrackHist1[i];}
111 THnSparseF *GetMCPrimTrackHist2(Int_t i) const {return fMCPrimTrackHist2[i];}
112 THnSparseF *GetMCSecTrackHist1(Int_t i) const {return fMCSecTrackHist1[i];}
113
114 THnSparseF *GetRecTrackHist1(Int_t i) const {return fRecTrackHist1[i];}
115 THnSparseF *GetRecTrackHist2(Int_t i) const {return fRecTrackHist2[i];}
116 THnSparseF *GetRecTrackMultHist1(Int_t i) const {return fRecTrackMultHist1[i];}
117
118
119 THnSparseF *GetMCMultRecTrackHist1() const {return fMCMultRecTrackHist1;}
120
121 THnSparseF *GetRecTrackHist3() const {return fRecTrackHist3;}
122
123 TString GetCentralityEstimator() const {return fCentralityEstimator; }
1a6352a5 124 void SetCentralityEstimator(TString centEst="V0M") { fCentralityEstimator = centEst; }
125
126private:
127
128 // analysis folder
129 TFolder *fAnalysisFolder; // folder for analysed histograms
130 Bool_t fHistogramsOn; // switch on/off filling of control histograms
131
132 //
133 // correlation matrices (histograms)
134 //
135 // rec. track pt vs true track pt correlation matrix for given eta
136 THnSparseF *fTrackPtCorrelationMatrix; //-> Pt:mcPt:mcEta:centrality
137
138 //
139 // event level correction
140 //
141 // all generated
142 THnSparseF *fGenEventMatrix; //-> mcZv:multMB:centrality
143
144 // trigger bias corrections (fTriggerEventMatrix / fGenEventMatrix)
145 THnSparseF *fTriggerEventMatrix; //-> mcZv:multMB:centrality
146
147 // event vertex rec. eff correction (fRecEventMatrix / fTriggerEventMatrix)
148 THnSparseF *fRecEventMatrix; //-> mcZv:multMB:centrality
149
150 // track-event level correction
151 THnSparseF *fGenTrackEventMatrix; //-> mcZv:mcPt:mcEta:centrality
152
153 // trigger bias corrections (fTriggerTrackEventMatrix / fGenTrackEventMatrix)
154 THnSparseF *fTriggerTrackEventMatrix; //-> mcZv:mcPt:mcEta:centrality
155
156 // event vertex rec. corrections (fRecTrackEventMatrix / fTriggerTrackEventMatrix)
157 THnSparseF *fRecTrackEventMatrix; //-> mcZv:Pt:mcEta:centrality
158
159 //
160 // track level correction
161 //
162 // track rec. efficiency correction (fRecPrimTrackMatrix / fGenPrimTrackMatrix)
163 THnSparseF *fGenTrackMatrix; //-> mcZv:mcPt:mcEta:centrality
164 THnSparseF *fGenPrimTrackMatrix; //-> mcZv:mcPt:mcEta:centrality
165 THnSparseF *fRecPrimTrackMatrix; //-> mcZv:mcPt:mcEta:centrality
166 // secondary track contamination correction (fRecSecTrackMatrix / fRecTrackMatrix)
167 THnSparseF *fRecTrackMatrix; //-> mcZv:mcPt:mcEta:centrality
168 THnSparseF *fRecSecTrackMatrix; //-> mcZv:mcPt:mcEta:centrality
169 // multiple rec. track corrections (fRecMultTrackMatrix / fRecTrackMatrix)
170 THnSparseF *fRecMultTrackMatrix; //-> mcZv:Pt:mcEta:centrality
171
172 //
173 // ESD and MC control analysis histograms
174 //
175 // THnSparse event histograms
176 THnSparseF *fMCEventHist1; //-> mcXv:mcYv:mcZv:centrality
177 THnSparseF *fRecEventHist1; //-> Xv:Yv:Zv:centrality
178 THnSparseF *fRecEventHist2; //-> Zv:multMB:mult:centrality
179 THnSparseF *fRecMCEventHist1; //-> Xv-mcXv:Yv-mcYv:Zv-mcZv:centrality
180 THnSparseF *fRecMCEventHist2; //-> Xv-mcXv:Zv-mcZv:mult:centrality
181
182 // [0] - after charged track selection, [1] - after acceptance cuts, [2] - after esd track cuts
183 THnSparseF *fMCTrackHist1[AlidNdPtHelper::kCutSteps]; //-> mcPt:mcEta:mcPhi:centrality
184 THnSparseF *fMCPrimTrackHist1[AlidNdPtHelper::kCutSteps]; //-> mcPt:mcEta:pid:mech:mother:centrality
185 THnSparseF *fMCPrimTrackHist2[AlidNdPtHelper::kCutSteps]; //-> pdg:mech:mother:centrality
186 THnSparseF *fMCSecTrackHist1[AlidNdPtHelper::kCutSteps]; //-> mcPt:mcEta:pid:mech:mother:centrality
187
188 THnSparseF *fRecTrackHist1[AlidNdPtHelper::kCutSteps]; //-> Pt:Eta:Phi:centrality
189 THnSparseF *fRecTrackHist2[AlidNdPtHelper::kCutSteps]; //-> Zv:Pt:Eta:centrality
190 THnSparseF *fRecTrackMultHist1[AlidNdPtHelper::kCutSteps]; //-> Pt:mult:centrality
191 THnSparseF *fRecMCTrackHist1; //-> mcPt:mcEta:(Pt-mcPt)/mcPt:(Eta-mcEta):centrality
192
193 //multple reconstructed tracks
194 THnSparseF *fMCMultRecTrackHist1; //-> mcPt:mcEta:pid:centrality
195 // track control histograms
196 THnSparseF *fRecTrackHist3; //-> nclust:chi2:Pt:Eta:Phi:centrality
197
198 AliTriggerAnalysis *fTriggerAnalysis; //! trigger analysis object;
199 TString fCentralityEstimator; // use centrality can be "VOM" (default), "FMD", "TRK", "TKL", "CL0", "CL1", "V0MvsFMD", "TKLvsV0M", "ZEMvsZDC"
3c5d5aef 200
1a6352a5 201 //binning for THNsparse
68c688b7 202 Int_t fMultNbins;
1a6352a5 203 Int_t fPtNbins;
204 Int_t fPtCorrNbins;
205 Int_t fEtaNbins;
206 Int_t fZvNbins;
207 Int_t fCentralityNbins;
68c688b7 208 Double_t* fBinsMult; //[fMultNbins]
209 Double_t* fBinsPt; //[fPtNbins]
210 Double_t* fBinsPtCorr; //[fPtCorrNbins]
211 Double_t* fBinsEta; //[fEtaNbins]
212 Double_t* fBinsZv; //[fZvNbins]
213 Double_t* fBinsCentrality; //[fCentralityNbins]
1a6352a5 214
215 Bool_t fIsInit;
216
217
218 AlidNdPtAnalysisPbPb2011(const AlidNdPtAnalysisPbPb2011&); // not implemented
219 AlidNdPtAnalysisPbPb2011& operator=(const AlidNdPtAnalysisPbPb2011&); // not implemented
220
221 ClassDef(AlidNdPtAnalysisPbPb2011,6);
222};
223
224#endif