]>
Commit | Line | Data |
---|---|---|
3b7aa4ba | 1 | #ifndef AliAnalysisTaskDiHadron_cxx |
2 | #define AliAnalysisTaskDiHadron_cxx | |
3 | ||
4 | ||
5 | class TH1F; | |
6 | class TH2F; | |
7 | class TH3F; | |
8 | class AliESDEvent; | |
9 | ||
10 | #include "TH1.h" | |
11 | #include "TH2.h" | |
12 | #include "TH3.h" | |
13 | #include "AliAnalysisTask.h" | |
14 | ||
15 | ||
16 | class 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 |