]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/JCORRAN/AliAnalysisTaskDiHadron.h
Fixed compiler warnings (Jason)
[u/mrichter/AliRoot.git] / PWG4 / JCORRAN / AliAnalysisTaskDiHadron.h
CommitLineData
3b7aa4ba 1#ifndef AliAnalysisTaskDiHadron_cxx
2#define AliAnalysisTaskDiHadron_cxx
3
4
5class TH1F;
6class TH2F;
7class TH3F;
8class AliESDEvent;
9
10#include "TH1.h"
11#include "TH2.h"
12#include "TH3.h"
13#include "AliAnalysisTask.h"
14
15
16class AliAnalysisTaskDiHadron : public AliAnalysisTask{
17 //Default constructor
18 public:
19
20
21 AliAnalysisTaskDiHadron(const char *name="AliAnalysisTaskDiHadron");
22
23 virtual ~AliAnalysisTaskDiHadron() {}
24 //virtual ~AliAnalysisTaskDiHadron();
25
26
27
28 //AliAnalysisTask Functions
29
30 virtual void ConnectInputData(Option_t *option);
31 virtual void CreateOutputObjects();
32 virtual void Exec(Option_t *option);
33 virtual void Terminate(Option_t *);
34
35
36 void SetEfficiencies(Float_t EffFitPt, TF1 *FitLow, TF1 *FitHigh, Int_t NFitLowParam, Int_t NFitHighParam, Float_t *FitLowParam, Float_t *FitHighParam);
37 void SetBins(Int_t nBinPhi, Int_t nBinEta, Int_t nBinPhiEtaPhi, Int_t nBinPhiEtaEta, Int_t nBinPhi3, Int_t nBinEta3, Float_t dPhiMin, Float_t dPhiMax, Int_t NTPtBins, Int_t NMixBins, Int_t NCentBins,Int_t NAPtBins, Int_t NAPt3Bins, Int_t NVertexBins, Int_t NXEBin,Float_t *PtTrigArray, Float_t *PtAssocArray, Float_t *PtAssoc3Array1, Float_t *PtAssoc3Array2, Int_t *CentArrayMin, Int_t *CentArrayMax, Float_t *XEArray);
38 void SetOptions(Int_t fEfficiencyCorr, Int_t DEBUG,Int_t fMCHistos);
39 void SetCuts(Int_t MinClutersTPC, Float_t MinClusterRatio, Float_t MaxTPCchi2, Int_t MinClustersITS, Float_t EtaCut, Float_t TrigEtaCut, Float_t NearPhiCut, Float_t XECut, Float_t MaxDCA, Float_t MaxDCAXY, Float_t MaxDCAZ, Int_t DCA2D, Int_t TPCRefit, Int_t ITSRefit, Int_t SPDCut, Float_t MinPtAssoc, Float_t MaxPtAssoc, Float_t VzCut, Int_t NIDs, char **TrigIDArray);
40 Int_t CheckVertex(AliESDEvent *rESD);
41 Int_t CheckTrigger(AliESDEvent *rESD);
42 Int_t TrackCuts(AliESDEvent *rESD, Float_t *rPt, Float_t *rEta, Float_t *rPhi, Short_t *rCharge, Float_t *rEff, Int_t **rPtAssoc3, Int_t *rNPtAssoc3, Int_t *rGoodTracks);
43 Int_t TrackCutsMC(AliMCEvent *rMC, Float_t *rPt, Float_t *rEta, Float_t *rPhi, Short_t *rCharge, Float_t *rEff, Int_t **rPtAssoc3, Int_t *rNPtAssoc3, Int_t *rGoodTracks);
44
45
46 private:
47
48//Maximum numbers for creating the arrays
49 enum{NUMBER_OF_PT_BINS=20,
50 NUMBER_OF_CENT_BINS=10,
51 NUMBER_OF_APT_BINS=50,
52 NUMBER_OF_APT3_BINS=50,
53 NUMBER_OF_TRIGGER_IDS=1,
54 NUMBER_OF_VERTEX_BINS=20,
55 NUMBER_OF_XE_BINS=20,
56 NUMBER_OF_EVENTS_TO_MIX=100};
57 // virtual void SetParameters();
58 AliESDEvent *fESD;
59 AliMCEvent *fMC;
60 TList *fOutput;
61
62 //Cuts
63
64 Int_t fMinClustersTPC;
65 Float_t fMinClusterRatio;
66 Float_t fMaxTPCchi2;
67 Int_t fMinClustersITS;
68 Float_t fEtaCut;
69 Float_t fTrigEtaCut;
70 Float_t fNearPhiCut;
71 Float_t fXECut;
72 Float_t fMaxDCA;
73 Float_t fMaxDCAXY;
74 Float_t fMaxDCAZ;
75 Int_t fDCA2D;
76 Int_t fTPCRefit;
77 Int_t fITSRefit;
78 Int_t fSPDCut;
79 Float_t fMinPtAssoc;
80 Float_t fMaxPtAssoc;
81 Float_t fVzCut;
82 Int_t fEfficiencyCorr;//Toggle correcting of efficiencies when filling histograms
83 Int_t DEBUG;
84 //Binning
85 Int_t fnBinPhi;
86 Int_t fnBinEta;
87 Int_t fnBinPhiEtaPhi;
88 Int_t fnBinPhiEtaEta;
89 Int_t fnBinPhi3;
90 Int_t fnBinEta3;
91 Float_t fPi;
92 Float_t fdPhiMin;
93 Float_t fdPhiMax;
94 //Parameters for settings
95 Int_t fNTPtBins;
96 Int_t fNMix;
97 Int_t fNCentBins;
98 Int_t fNAPtBins;
99 Int_t fNAPt3Bins;
100 Int_t fNVertexBins;
101 Int_t fNXEBins;
102 Int_t fNIDs;
103 Float_t fEffFitPt;
104 Int_t fNFitLowParam;
105 Int_t fNFitHighParam;
106 Int_t fMCHistos;
107 //TF1 *fFitLow;
108 // TF1 *fFitHigh;
109 Int_t fNFitLow;
110 Int_t fNFitHigh;
111
112 TF1 *fFitLow;
113 TF1 *fFitHigh;
114 Float_t *fFitLowParam;
115 Float_t *fFitHighParam;
116 Float_t *fPtTrigArray;
117 Float_t *fPtAssocArray;
118 Float_t *fPtAssoc3Array1;
119 Float_t *fPtAssoc3Array2;
120 Int_t *fCentArrayMin;
121 Int_t *fCentArrayMax;
122 Float_t *fXEArray;
123 char **fTrigIDArray;
124
125 /*
126 //Float_t *FitLowParam;
127 // Float_t *FitHighParam;
128 // Float_t fPtTrigArray[(NUMBER_OF_PT_BINS+1)];
129 Float_t fPtAssocArray[(NUMBER_OF_APT_BINS+1)];
130 Float_t fPtAssoc3Array1[NUMBER_OF_APT3_BINS];
131 Float_t fPtAssoc3Array2[NUMBER_OF_APT3_BINS];
132 Int_t fCentArrayMin[NUMBER_OF_CENT_BINS];
133 Int_t fCentArrayMax[NUMBER_OF_CENT_BINS];
134 Float_t fXEArray[(NUMBER_OF_XE_BINS+1)];
135 char *fTrigIDArray[NUMBER_OF_TRIGGER_IDS];
136 */
137
138 Float_t fVertexArray[(NUMBER_OF_VERTEX_BINS+1)];
139
140 //Histograms
141 TH1F *fHistPt[NUMBER_OF_CENT_BINS][2];
142 TH1F *fHistPtEff[NUMBER_OF_CENT_BINS][2];
143 TH1F *fHistPtTrig[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
144 TH1F *fHistMult[2];
145 TH1F *fHistMultTrig[NUMBER_OF_PT_BINS][2];
146
147 TH2F *fHistPhi[NUMBER_OF_CENT_BINS][2];
148 TH2F *fHistPhiTrig[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
149 TH2F *fHistDeltaPhi[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
150 TH2F *fHistDeltaPhiMix[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
151
152 TH2F *fHistPhiPt[NUMBER_OF_CENT_BINS][2];
153 TH2F *fHistPhiTrigPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
154 TH2F *fHistDeltaPhiPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
155 TH2F *fHistDeltaPhiMixPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
156
157 TH2F *fHistEta[NUMBER_OF_CENT_BINS][2];
158 TH2F *fHistEtaTrig[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
159
160 TH2F *fHistEtaPt[NUMBER_OF_CENT_BINS][2];
161 TH2F *fHistEtaTrigPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
162
163 TH2F *fHistDeltaEtaN[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
164 TH2F *fHistDeltaEtaNMix[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
165
166 TH2F *fHistDeltaEtaNPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
167 TH2F *fHistDeltaEtaNMixPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
168
169 TH2F *fHistDeltaEtaA[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
170 TH2F *fHistDeltaEtaAMix[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
171
172 TH2F *fHistDeltaEtaAPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
173 TH2F *fHistDeltaEtaAMixPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
174
175 TH1F *fHistNEvents[NUMBER_OF_CENT_BINS][2];
176 TH1F *fHistNTrigger[NUMBER_OF_CENT_BINS][2];
177 TH1F *fHistNTriggerPt[NUMBER_OF_CENT_BINS][2];
178 TH1F *fHistNMix[NUMBER_OF_CENT_BINS][2];
179
180 TH3F *fHistPhiEta[NUMBER_OF_CENT_BINS][2];
181 TH3F *fHistPhiEtaTrig[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
182 TH3F *fHistDeltaPhiEta[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
183 TH3F *fHistDeltaPhiEtaMix[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
184
185 TH3F *fHistPhiEtaPt[NUMBER_OF_CENT_BINS][2];
186 TH3F *fHistPhiEtaTrigPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
187 TH3F *fHistDeltaPhiEtaPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
188 TH3F *fHistDeltaPhiEtaMixPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
189
190 TH1F *fHistXEN[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
191 TH1F *fHistXENMix[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
192 TH1F *fHistXEA[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
193 TH1F *fHistXEAMix[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
194
195 //Three-Particle Histograms
196 TH2F *fHistDeltaPhiPhi[NUMBER_OF_PT_BINS][NUMBER_OF_APT3_BINS][NUMBER_OF_CENT_BINS][4][2];
197 TH2F *fHistDeltaPhiPhiMix[NUMBER_OF_PT_BINS][NUMBER_OF_APT3_BINS][NUMBER_OF_CENT_BINS][4][2];
198 TH2F *fHistDeltaPhiPhiSS[NUMBER_OF_PT_BINS][NUMBER_OF_APT3_BINS][NUMBER_OF_CENT_BINS][4][2];
199 TH2F *fHistDeltaEtaEta[NUMBER_OF_PT_BINS][NUMBER_OF_APT3_BINS][NUMBER_OF_CENT_BINS][4][2];
200 TH2F *fHistDeltaEtaEtaMix[NUMBER_OF_PT_BINS][NUMBER_OF_APT3_BINS][NUMBER_OF_CENT_BINS][4][2];
201 TH2F *fHistDeltaEtaEtaSS[NUMBER_OF_PT_BINS][NUMBER_OF_APT3_BINS][NUMBER_OF_CENT_BINS][4][2];
202
203
204
205
206 //Arrays for event mixing
207 Float_t *fMPt[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
208 Float_t *fMPhi[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
209 Int_t fMixTrack[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
210 Float_t *fMEta[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
211 Short_t *fMCharge[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
212 Float_t *fMEff[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
213 Int_t fMixPointer[NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
214 Int_t fMixEnd[NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
215 //additional ones to speed up the 3-particle correlations
216 Short_t *fMPtAssoc3[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2][10];//using a bit extra memory fixing the pt bins to 10, but makes the arrays much easier
217 Short_t *fMNPtAssoc3[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
218
219
220 //Arrays for Main Events
221 Float_t *tPhi;
222 Float_t *tEta;
223 Float_t *tPt;
224 Short_t *tCharge;
225 Float_t *tEff;
226 Int_t **tPtAssoc3;
227 Int_t *tNPtAssoc3;
228
229 AliAnalysisTaskDiHadron(const AliAnalysisTaskDiHadron&);//not implimented
230 AliAnalysisTaskDiHadron& operator=(const AliAnalysisTaskDiHadron&);//not implimnted
231
232 ClassDef(AliAnalysisTaskDiHadron,1);
233
234};
235#endif
236
237