]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/UserTasks/AliAnalysisTaskJetHadronCorrelation.cxx
Updating analysis task
[u/mrichter/AliRoot.git] / PWGJE / UserTasks / AliAnalysisTaskJetHadronCorrelation.cxx
CommitLineData
32de1459 1//#include <string.h>
2//#include <TStyle.h>
3#include <list>
4#include <string>
5
6#include "TTree.h"
7#include "TCanvas.h"
8#include "AliAnalysisTask.h"
9#include "AliInputEventHandler.h"
10#include "AliESDtrack.h"
11#include "AliAODVertex.h"
12#include "AliAODCluster.h"
13
14#include <TROOT.h>
15#include <TRandom.h>
16#include <TSystem.h>
17#include <TInterpreter.h>
18#include <TChain.h>
19#include <TFile.h>
20#include <TKey.h>
21#include <TH1F.h>
22#include <TH2F.h>
23#include <TH3F.h>
24#include <TProfile.h>
25#include <TList.h>
26#include <TLorentzVector.h>
27#include <TClonesArray.h>
28#include <TRefArray.h>
29
30#include "TDatabasePDG.h"
31#include "AliAnalysisManager.h"
32#include "AliJetFinder.h"
33#include "AliJetHeader.h"
34#include "AliJetReader.h"
35#include "AliJetReaderHeader.h"
36#include "AliUA1JetHeaderV1.h"
37#include "AliSISConeJetHeader.h"
38#include "AliESDEvent.h"
39#include "AliAODEvent.h"
40#include "AliAODHandler.h"
1d478650 41#include "AliAODInputHandler.h"
32de1459 42#include "AliAODTrack.h"
043cb2c6 43#include "AliAODMCParticle.h"
32de1459 44#include "AliAODJet.h"
45#include "AliAODJetEventBackground.h"
46#include "AliMCParticle.h"
47#include "AliAODMCParticle.h"
48#include "AliMCEventHandler.h"
49#include "AliMCEvent.h"
50#include "AliStack.h"
51
52#include "AliAODHeader.h"
53#include "AliAODMCHeader.h"
54//#include "AliGenPythiaEventHeader.h"
55#include "AliJetKineReaderHeader.h"
56#include "AliGenCocktailEventHeader.h"
57#include "AliInputEventHandler.h"
58#include "AliGenEventHeader.h"
59#include "AliGenDPMjetEventHeader.h"
60
32de1459 61#include "AliAnalysisTaskJetHadronCorrelation.h"
62#include "AliAnalysisTaskPhiCorrelations.h"
63//#include "AliAnalysisHelperJetTasks.h"
64#include "AliPWG4HighPtQAMC.h"
65
c64cb1f6 66using std::cout;
67using std::endl;
68
32de1459 69ClassImp(AliAnalysisTaskJetHadronCorrelation)
70
71 //________________________________________________________________________
72 AliAnalysisTaskJetHadronCorrelation::AliAnalysisTaskJetHadronCorrelation():
73 AliAnalysisTaskSE(),
74 fUseAODInput(kFALSE),
75 fFillAOD(kFALSE),
76 fJetBranch("jets"),
77 fNonStdFile(""),
78 fAODIn(0x0),
79 fAODOut(0x0),
80 fAODExtension(0x0),
81 JFAlg("ANTIKT"),
82 Radius(0.4),
00a3f17b 83 Filtermask(272),
32de1459 84 BackM(0),
85 TrackPtcut(0.15),
86 SkipCone(0),
87 IsMC(kTRUE),
043cb2c6 88 JetEScale(1.),
89 TrackEScale(1.),
2424ef49 90 fxsec(0.),
91 ftrial(1.),
92 fJetRecEtaWindow(0.5), // eta window for rec jets
93 fMinJetPt(10),
32de1459 94 fHistList(0x0), // Output list
95 fIfiles(0),
96 fH1Events(0x0),
97 fH1Xsec(0x0),
98 fH1Trials(0x0),
2424ef49 99 fH1Track_pt (0x0),
100 fH1Track_phi (0x0),
101 fH1Track_eta (0x0),
043cb2c6 102 fH1MCTrack_pt (0x0),
103 fH1MCTrack_phi (0x0),
104 fH1MCTrack_eta (0x0),
105 fH1MCPrimTrack_pt (0x0),
106 fH1MCPrimTrack_phi (0x0),
107 fH1MCPrimTrack_eta (0x0),
2424ef49 108 fH1Jet_pt (0x0),
109 fH1Jet_phi (0x0),
110 fH1Jet_eta (0x0),
111 fH1leadJet_pt (0x0),
112 fH1leadJet_pt_dijet (0x0),
113 fH1subJet_pt_dijet (0x0),
114 fH2JetsJet_dphi (0x0),
115 fH2JetsJet_deta (0x0),
116 fH2JetsJet_Aj (0x0),
117 fH2JetsJet_pt (0x0),
118 fH1JetMC_pt (0x0),
119 fH1leadJetMC_pt (0x0),
120 fH1leadJetMC_pt_dijet (0x0),
121 fH1subJetMC_pt_dijet (0x0),
122 fH2JetsJetMC_dphi (0x0),
123 fH2JetsJetMC_deta (0x0),
124 fH2JetsJetMC_Aj (0x0),
125 fH2JetsJetMC_pt (0x0),
126 fH2Mult_Mtrack (0x0),
127 fH2Mult_Mlead (0x0),
128 fH2Mult_Mjet (0x0),
129 fH2Mult_Njet (0x0),
130 fH2Mult_Aj (0x0),
131 fH2Mlead_Aj (0x0),
132 fH2Jet_pt_Mlead (0x0),
043cb2c6 133 fH2Jet_pt_Munder (0x0),
134 fH2leadJetMCptResolution(0x0),
135 fH2TrackMCptResolution(0x0),
7be049b5 136 fH2TrackMCptEfficiency(0x0),
043cb2c6 137 fH2AjCorrelation_MCRec(0x0),
138 fH2MleadCorrelation_MCRec(0x0)
32de1459 139{
2424ef49 140 for(int j=0;j<5;j++){
141 fH1ndiJ_ediv [j]=0;
142 fH1Aj [j]=0;
143 fH1Mlead [j]=0;
144 fH1leadJetMC_dphiResolution [j]=0;
145 fH1subJetMC_dphiResolution [j]=0;
146 fH1leadJetMC_Efficiency [j]=0;
147 fH1subJetMC_Efficiency [j]=0;
148 for(int k=0;k<5;k++){
149 fH1JetHadron_dphi_ediv [j][k]=0;
150 fH1JetHadron_dphi_tptweight_ediv [j][k]=0;
151 fH1JetHadron_dphi_tJptweight_ediv[j][k]=0;
043cb2c6 152 fH1JetHadronMC_dphi_ediv [j][k]=0;
153 fH1JetHadronMC_dphi_tptweight_ediv [j][k]=0;
154 fH1JetHadronMC_dphi_tJptweight_ediv[j][k]=0;
155 fH1JetHadronMCPrim_dphi_ediv [j][k]=0;
156 fH1JetHadronMCPrim_dphi_tptweight_ediv [j][k]=0;
157 fH1JetHadronMCPrim_dphi_tJptweight_ediv[j][k]=0;
32de1459 158 }
2424ef49 159 }
160 for(int j=0;j<3;j++){
161 fH1ndiJ_2040Mlead [j]=0;
162 fH1ndiJ_2040Aj [j]=0;
163 for(int k=0;k<5;k++){
164 fH1JetHadron_dphi_tptweight2040_Mleaddep[j][k]=0;
165 fH1JetHadron_dphi_tptweight2040_Ajdep [j][k]=0;
043cb2c6 166 fH1JetHadronMC_dphi_tptweight2040_Mleaddep[j][k]=0;
167 fH1JetHadronMC_dphi_tptweight2040_Ajdep [j][k]=0;
168 fH1JetHadronMCPrim_dphi_tptweight2040_Mleaddep[j][k]=0;
169 fH1JetHadronMCPrim_dphi_tptweight2040_Ajdep [j][k]=0;
32de1459 170 }
171 }
32de1459 172 // Default constructor
173}
174
175//________________________________________________________________________
176AliAnalysisTaskJetHadronCorrelation::AliAnalysisTaskJetHadronCorrelation(const char *name):
177 AliAnalysisTaskSE(name),
178 fUseAODInput(kFALSE),
179 fFillAOD(kFALSE),
180 fJetBranch("jets"),
181 fNonStdFile(""),
182 fAODIn(0x0),
183 fAODOut(0x0),
184 fAODExtension(0x0),
185 JFAlg("ANTIKT"),
186 Radius(0.4),
00a3f17b 187 Filtermask(272),
32de1459 188 BackM(0),
189 TrackPtcut(0.15),
190 SkipCone(0),
191 IsMC(kTRUE),
043cb2c6 192 JetEScale(1.),
193 TrackEScale(1.),
32de1459 194 fxsec(0.),
195 ftrial(1.),
196 fJetRecEtaWindow(0.5), // eta window for rec jets
197 fMinJetPt(10),
198 fHistList(0x0), // Output list
199 fIfiles(0),
200
201 fH1Events(0x0),
202 fH1Xsec(0x0),
203 fH1Trials(0x0),
2424ef49 204 fH1Track_pt (0x0),
205 fH1Track_phi (0x0),
206 fH1Track_eta (0x0),
043cb2c6 207 fH1MCTrack_pt (0x0),
208 fH1MCTrack_phi (0x0),
209 fH1MCTrack_eta (0x0),
210 fH1MCPrimTrack_pt (0x0),
211 fH1MCPrimTrack_phi (0x0),
212 fH1MCPrimTrack_eta (0x0),
2424ef49 213 fH1Jet_pt (0x0),
214 fH1Jet_phi (0x0),
215 fH1Jet_eta (0x0),
216 fH1leadJet_pt (0x0),
217 fH1leadJet_pt_dijet (0x0),
218 fH1subJet_pt_dijet (0x0),
219 fH2JetsJet_dphi (0x0),
220 fH2JetsJet_deta (0x0),
221 fH2JetsJet_Aj (0x0),
222 fH2JetsJet_pt (0x0),
223 fH1JetMC_pt (0x0),
224 fH1leadJetMC_pt (0x0),
225 fH1leadJetMC_pt_dijet (0x0),
226 fH1subJetMC_pt_dijet (0x0),
227 fH2JetsJetMC_dphi (0x0),
228 fH2JetsJetMC_deta (0x0),
229 fH2JetsJetMC_Aj (0x0),
230 fH2JetsJetMC_pt (0x0),
231 fH2Mult_Mtrack (0x0),
232 fH2Mult_Mlead (0x0),
233 fH2Mult_Mjet (0x0),
234 fH2Mult_Njet (0x0),
235 fH2Mult_Aj (0x0),
236 fH2Mlead_Aj (0x0),
237 fH2Jet_pt_Mlead (0x0),
043cb2c6 238 fH2Jet_pt_Munder (0x0),
239 fH2leadJetMCptResolution(0x0),
240 fH2TrackMCptResolution(0x0),
7be049b5 241 fH2TrackMCptEfficiency(0x0),
043cb2c6 242 fH2AjCorrelation_MCRec(0x0),
243 fH2MleadCorrelation_MCRec(0x0)
32de1459 244{
2424ef49 245 for(int j=0;j<5;j++){
246 fH1ndiJ_ediv [j]=0;
247 fH1Aj [j]=0;
248 fH1Mlead [j]=0;
249 fH1leadJetMC_dphiResolution [j]=0;
250 fH1subJetMC_dphiResolution [j]=0;
251 fH1leadJetMC_Efficiency [j]=0;
252 fH1subJetMC_Efficiency [j]=0;
253 for(int k=0;k<5;k++){
254 fH1JetHadron_dphi_ediv [j][k]=0;
255 fH1JetHadron_dphi_tptweight_ediv [j][k]=0;
256 fH1JetHadron_dphi_tJptweight_ediv[j][k]=0;
043cb2c6 257 fH1JetHadronMC_dphi_ediv [j][k]=0;
258 fH1JetHadronMC_dphi_tptweight_ediv [j][k]=0;
259 fH1JetHadronMC_dphi_tJptweight_ediv[j][k]=0;
260 fH1JetHadronMCPrim_dphi_ediv [j][k]=0;
261 fH1JetHadronMCPrim_dphi_tptweight_ediv [j][k]=0;
262 fH1JetHadronMCPrim_dphi_tJptweight_ediv[j][k]=0;
32de1459 263 }
2424ef49 264 }
265 for(int j=0;j<3;j++){
266 fH1ndiJ_2040Mlead [j]=0;
267 fH1ndiJ_2040Aj [j]=0;
268 for(int k=0;k<5;k++){
269 fH1JetHadron_dphi_tptweight2040_Mleaddep[j][k]=0;
270 fH1JetHadron_dphi_tptweight2040_Ajdep [j][k]=0;
043cb2c6 271 fH1JetHadronMC_dphi_tptweight2040_Mleaddep[j][k]=0;
272 fH1JetHadronMC_dphi_tptweight2040_Ajdep [j][k]=0;
273 fH1JetHadronMCPrim_dphi_tptweight2040_Mleaddep[j][k]=0;
274 fH1JetHadronMCPrim_dphi_tptweight2040_Ajdep [j][k]=0;
32de1459 275 }
276 }
277
278 // Default constructor
32de1459 279 // Constructor
32de1459 280 // Define input and output slots here
281 // Input slot #0 works with a TChain
282 DefineInput(0, TChain::Class());
283 // Output slot #0 id reserved by the base class for AOD
284 // Output slot #1 writes into a TH1 container
285 DefineOutput(1, TList::Class());
32de1459 286}
287
288//________________________________________________________________________
289void AliAnalysisTaskJetHadronCorrelation::UserCreateOutputObjects()
290{
291 // Create histograms
292 // Called once
293
32de1459 294 fHistList = new TList();fHistList->SetOwner(kTRUE); cout<<"TList is created for output "<<endl;
295 //if (!fHistList){ fHistList = new TList();fHistList->SetOwner(kTRUE); cout<<"TList is created for output "<<endl;}
296
297 Bool_t oldStatus = TH1::AddDirectoryStatus();
298 TH1::AddDirectory(kFALSE);
32de1459 299 Float_t pi=TMath::Pi();
32de1459 300
301
302 char *histname;
2424ef49 303
304 fH1Events = new TH1F ("Events" ,"Events" ,1,0,1);
305 fH1Xsec = new TProfile("Xsec" ,"Xsec" ,1,0,1);
306 fH1Trials = new TH1F ("Trials" ,"Trials" ,1,0,1);
307
308 fH1JetMC_pt = new TH1F("JetMC_pt" ,"JetMC_pt" ,400,0,400);
309 fH1leadJetMC_pt = new TH1F("leadJetMC_pt" ,"leadJetMC_pt" ,400,0,400);
310 fH1leadJetMC_pt_dijet = new TH1F("leadJetMC_pt_dijet","leadJetMC_pt_dijet",400,0,400);
311 fH1subJetMC_pt_dijet = new TH1F("subJetMC_pt_dijet" ,"subJetMC_pt_dijet" ,400,0,400);
312
313 histname = Form("JetsJetMC_dphi");
314 fH2JetsJetMC_dphi = new TH2F(histname,histname,200,0,400,100,-2*pi,2*pi);
315 histname = Form("JetsJetMC_deta");
316 fH2JetsJetMC_deta = new TH2F(histname,histname,200,0,400,100,-1.5,1.5);
317 histname = Form("JetsJetMC_Aj");
318 fH2JetsJetMC_Aj = new TH2F(histname,histname,200,0,400,100,0,1.2);
319 histname = Form("JetsJetMC_pt");
320 fH2JetsJetMC_pt = new TH2F(histname,histname,200,0,400,200,0,400);
321
322 fH1Track_pt = new TH1F("Track_pt" ,"Track_pt" ,400,0,400);
323 fH1Track_phi = new TH1F("Track_phi" ,"Track_phi" ,100,0,2*pi);
324 fH1Track_eta = new TH1F("Track_eta" ,"Track_eta" ,100,-1.,1);
043cb2c6 325 fH1MCTrack_pt = new TH1F("MCTrack_pt" ,"MCTrack_pt" ,400,0,400);
326 fH1MCTrack_phi = new TH1F("MCTrack_phi" ,"MCTrack_phi" ,100,0,2*pi);
327 fH1MCTrack_eta = new TH1F("MCTrack_eta" ,"MCTrack_eta" ,100,-1.,1);
328 fH1MCPrimTrack_pt = new TH1F("MCPrimTrack_pt" ,"MCPrimTrack_pt" ,400,0,400);
329 fH1MCPrimTrack_phi = new TH1F("MCPrimTrack_phi" ,"MCPrimTrack_phi" ,100,0,2*pi);
330 fH1MCPrimTrack_eta = new TH1F("MCPrimTrack_eta" ,"MCPrimTrack_eta" ,100,-1.,1);
2424ef49 331 fH1Jet_pt = new TH1F("Jet_pt" ,"Jet_pt" ,400,0,400);
332 fH1Jet_phi = new TH1F("Jet_phi" ,"Jet_pt" ,100,0,2*pi);
333 fH1Jet_eta = new TH1F("Jet_eta" ,"Jet_pt" ,100,-1.,1);
334 fH1leadJet_pt = new TH1F("leadJet_pt" ,"leadJet_pt" ,400,0,400);
335 fH1leadJet_pt_dijet = new TH1F("leadJet_pt_dijet" ,"leadJet_pt_dijet" ,400,0,400);
336 fH1subJet_pt_dijet = new TH1F("subJet_pt_dijet" ,"subJet_pt_dijet" ,400,0,400);
337 histname = Form("JetsJet_dphi");
338 fH2JetsJet_dphi = new TH2F(histname,histname,200,0,400,100,-2*pi,2*pi);
339 histname = Form("JetsJet_deta");
340 fH2JetsJet_deta = new TH2F(histname,histname,200,0,400,100,-1.5,1.5);
341 histname = Form("JetsJet_Aj");
342 fH2JetsJet_Aj = new TH2F(histname,histname,200,0,400,100,0,1.2);
343 histname = Form("JetsJet_pt");
344 fH2JetsJet_pt = new TH2F(histname,histname,200,0,400,200,0,400);
345
346
347 histname = Form("Mult_Mtrack");
348 fH2Mult_Mtrack = new TH2F(histname,histname,50,0,250,50,0,250);
349 histname = Form("Mult_Mlead");
350 fH2Mult_Mlead = new TH2F(histname,histname,50,0,250,25,0,25);
351 histname = Form("Mult_Mjet");
352 fH2Mult_Mjet = new TH2F(histname,histname,50,0,250,50,0,100);
353 histname = Form("Mult_Njet");
354 fH2Mult_Njet = new TH2F(histname,histname,50,0,250,50,0,50);
355 histname = Form("Mult_Aj");
356 fH2Mult_Aj = new TH2F(histname,histname,50,0,250,25,0,1.2);
357 histname = Form("Mlead_Aj");
358 fH2Mlead_Aj = new TH2F(histname,histname,25,0,25,25,0,1.2);
359 histname = Form("Jet_pt_Mlead");
360 fH2Jet_pt_Mlead = new TH2F(histname,histname,50,0,200,25,0,25);
361 histname = Form("Jet_pt_Munder");
362 fH2Jet_pt_Munder = new TH2F(histname,histname,50,0,200,25,0,5);
043cb2c6 363 histname = Form("leadJetMCptResolution");
7be049b5 364 fH2leadJetMCptResolution = new TH2F(histname,histname,200,0,200,200,0,200);
043cb2c6 365 histname = Form("TrackMCptResolution");
7be049b5 366 fH2TrackMCptResolution = new TH2F(histname,histname,200,0,200,200,0,200);
367 histname = Form("TrackMCptEfficiency");
368 fH2TrackMCptEfficiency = new TH2F(histname,histname,200,0,200,100,0,1.2);
043cb2c6 369 histname = Form("AjCorrelation_MCRec");
370 fH2AjCorrelation_MCRec = new TH2F(histname,histname,60,0,1.2,60,0,1.2);
371 histname = Form("MleadCorrelation_MCRec");
372 fH2MleadCorrelation_MCRec = new TH2F(histname,histname,60,0,60,60,0,60);
2424ef49 373
374 for(int j=0;j<5;j++){
375 histname = Form("ndiJ_ediv%d",j);
376 fH1ndiJ_ediv[j]= new TH1F(histname,histname,1,1,2);
377 histname = Form("leadJetMC_dphiResolution%d",j);
378 fH1leadJetMC_dphiResolution[j] = new TH1F(histname,histname,200,-2*pi,2*pi);
379 histname = Form("subJetMC_dphiResolution%d",j);
380 fH1subJetMC_dphiResolution[j] = new TH1F(histname,histname,200,-2*pi,2*pi);
381 histname = Form("leadJetMC_Efficiency%d",j);
382 fH1leadJetMC_Efficiency[j] = new TH1F(histname,histname,100,0,1.2);
383 histname = Form("subJetMC_Efficiency%d",j);
384 fH1subJetMC_Efficiency[j] = new TH1F(histname,histname,100,0,1.2);
385
386 histname = Form("Aj%d",j);
387 fH1Aj[j] = new TH1F(histname,histname,50,0,1.2);
388 histname = Form("Mlead%d",j);
389 fH1Mlead[j] = new TH1F(histname,histname,50,0,50);
390 for(int k=0;k<5;k++){
391 histname = Form("JetHadron_dphi_ediv%d%d",j,k);
392 fH1JetHadron_dphi_ediv [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
393 histname = Form("JetHadron_dphi_tptweight_ediv%d%d",j,k);
394 fH1JetHadron_dphi_tptweight_ediv [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
395 histname = Form("JetHadron_dphi_tJptweight_ediv%d%d",j,k);
396 fH1JetHadron_dphi_tJptweight_ediv [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
043cb2c6 397
398 histname = Form("JetHadronMC_dphi_ediv%d%d",j,k);
399 fH1JetHadronMC_dphi_ediv [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
400 histname = Form("JetHadronMC_dphi_tptweight_ediv%d%d",j,k);
401 fH1JetHadronMC_dphi_tptweight_ediv [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
402 histname = Form("JetHadronMC_dphi_tJptweight_ediv%d%d",j,k);
403 fH1JetHadronMC_dphi_tJptweight_ediv [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
404
405 histname = Form("JetHadronMCPrim_dphi_ediv%d%d",j,k);
406 fH1JetHadronMCPrim_dphi_ediv [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
407 histname = Form("JetHadronMCPrim_dphi_tptweight_ediv%d%d",j,k);
408 fH1JetHadronMCPrim_dphi_tptweight_ediv [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
409 histname = Form("JetHadronMCPrim_dphi_tJptweight_ediv%d%d",j,k);
410 fH1JetHadronMCPrim_dphi_tJptweight_ediv [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
2424ef49 411 }
412 }
413 for(int j=0;j<3;j++){
414 histname = Form("ndiJ_2040Mlead%d",j);
415 fH1ndiJ_2040Mlead[j]= new TH1F(histname,histname,1,1,2);
416 histname = Form("ndiJ_2040Aj%d",j);
417 fH1ndiJ_2040Aj[j]= new TH1F(histname,histname,1,1,2);
418 for(int k=0;k<5;k++){
419 histname = Form("JetHadron_dphi_tptweight2040_Mleaddep%d%d",j,k);
420 fH1JetHadron_dphi_tptweight2040_Mleaddep [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
421 histname = Form("JetHadron_dphi_tptweight2040_Ajdep%d%d",j,k);
422 fH1JetHadron_dphi_tptweight2040_Ajdep [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
043cb2c6 423 histname = Form("JetHadronMC_dphi_tptweight2040_Mleaddep%d%d",j,k);
424 fH1JetHadronMC_dphi_tptweight2040_Mleaddep [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
425 histname = Form("JetHadronMC_dphi_tptweight2040_Ajdep%d%d",j,k);
426 fH1JetHadronMC_dphi_tptweight2040_Ajdep [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
427 histname = Form("JetHadronMCPrim_dphi_tptweight2040_Mleaddep%d%d",j,k);
428 fH1JetHadronMCPrim_dphi_tptweight2040_Mleaddep [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
429 histname = Form("JetHadronMCPrim_dphi_tptweight2040_Ajdep%d%d",j,k);
430 fH1JetHadronMCPrim_dphi_tptweight2040_Ajdep [j][k]= new TH1F(histname,histname,200,-1./2.*pi,3./2.*pi);
32de1459 431 }
2424ef49 432 }
433
00a3f17b 434
2424ef49 435 if(IsMC){
32de1459 436 fHistList->Add(fH1Xsec);
437 fHistList->Add(fH1Trials);
043cb2c6 438 fHistList->Add(fH1Track_pt );
439 fHistList->Add(fH1Track_phi );
440 fHistList->Add(fH1Track_eta );
441 fHistList->Add(fH1MCTrack_pt );
442 fHistList->Add(fH1MCTrack_phi );
443 fHistList->Add(fH1MCTrack_eta );
444 fHistList->Add(fH1MCPrimTrack_pt );
445 fHistList->Add(fH1MCPrimTrack_phi );
446 fHistList->Add(fH1MCPrimTrack_eta );
2424ef49 447 fHistList->Add(fH1JetMC_pt );
448 fHistList->Add(fH1leadJetMC_pt );
449 fHistList->Add(fH1leadJetMC_pt_dijet);
450 fHistList->Add(fH1subJetMC_pt_dijet );
451 fHistList->Add(fH1Jet_pt );
452 fHistList->Add(fH1Jet_phi );
453 fHistList->Add(fH1Jet_eta );
454 fHistList->Add(fH1leadJet_pt );
455 fHistList->Add(fH1leadJet_pt_dijet );
456 fHistList->Add(fH1subJet_pt_dijet );
457 fHistList->Add(fH2JetsJetMC_dphi );
458 fHistList->Add(fH2JetsJetMC_deta );
459 fHistList->Add(fH2JetsJetMC_Aj );
460 fHistList->Add(fH2JetsJetMC_pt );
461 fHistList->Add(fH2JetsJet_dphi );
462 fHistList->Add(fH2JetsJet_deta );
463 fHistList->Add(fH2JetsJet_Aj );
464 fHistList->Add(fH2JetsJet_pt );
043cb2c6 465 fHistList->Add(fH2leadJetMCptResolution);
466 fHistList->Add(fH2TrackMCptResolution);
7be049b5 467 fHistList->Add(fH2TrackMCptEfficiency);
043cb2c6 468 fHistList->Add(fH2AjCorrelation_MCRec);
469 fHistList->Add(fH2MleadCorrelation_MCRec);
32de1459 470 for(int j=0;j<5;j++){
2424ef49 471 fHistList->Add(fH1ndiJ_ediv [j]);
472 fHistList->Add(fH1leadJetMC_dphiResolution [j]);
473 fHistList->Add(fH1subJetMC_dphiResolution [j]);
474 fHistList->Add(fH1leadJetMC_Efficiency [j]);
475 fHistList->Add(fH1subJetMC_Efficiency [j]);
32de1459 476 for(int k=0;k<5;k++){
2424ef49 477 fHistList->Add(fH1JetHadron_dphi_ediv [j][k]);
478 fHistList->Add(fH1JetHadron_dphi_tptweight_ediv [j][k]);
479 fHistList->Add(fH1JetHadron_dphi_tJptweight_ediv [j][k]);
043cb2c6 480 fHistList->Add(fH1JetHadronMC_dphi_ediv [j][k]);
481 fHistList->Add(fH1JetHadronMC_dphi_tptweight_ediv [j][k]);
482 fHistList->Add(fH1JetHadronMC_dphi_tJptweight_ediv [j][k]);
483 fHistList->Add(fH1JetHadronMCPrim_dphi_ediv [j][k]);
484 fHistList->Add(fH1JetHadronMCPrim_dphi_tptweight_ediv [j][k]);
485 fHistList->Add(fH1JetHadronMCPrim_dphi_tJptweight_ediv [j][k]);
486 }
487 }
488 for(int j=0;j<3;j++){
489 fHistList->Add(fH1ndiJ_2040Mlead [j]);
490 fHistList->Add(fH1ndiJ_2040Aj [j]);
491 for(int k=0;k<5;k++){
492 fHistList->Add(fH1JetHadron_dphi_tptweight2040_Mleaddep [j][k]);
493 fHistList->Add(fH1JetHadron_dphi_tptweight2040_Ajdep [j][k]);
494 fHistList->Add(fH1JetHadronMC_dphi_tptweight2040_Mleaddep [j][k]);
495 fHistList->Add(fH1JetHadronMC_dphi_tptweight2040_Ajdep [j][k]);
496 fHistList->Add(fH1JetHadronMCPrim_dphi_tptweight2040_Mleaddep [j][k]);
497 fHistList->Add(fH1JetHadronMCPrim_dphi_tptweight2040_Ajdep [j][k]);
32de1459 498 }
499 }
500 }
501 else{
2424ef49 502 fHistList->Add(fH1Events);
503 fHistList->Add(fH1Track_pt );
504 fHistList->Add(fH1Track_phi );
505 fHistList->Add(fH1Track_eta );
506 fHistList->Add(fH1Jet_pt );
507 fHistList->Add(fH1Jet_phi );
508 fHistList->Add(fH1Jet_eta );
509 fHistList->Add(fH1leadJet_pt );
510 fHistList->Add(fH1leadJet_pt_dijet);
511 fHistList->Add(fH1subJet_pt_dijet );
512 fHistList->Add(fH2JetsJet_dphi );
513 fHistList->Add(fH2JetsJet_deta );
514 fHistList->Add(fH2JetsJet_Aj );
515 fHistList->Add(fH2JetsJet_pt );
516 fHistList->Add(fH2Mult_Mtrack );
517 fHistList->Add(fH2Mult_Mlead );
518 fHistList->Add(fH2Mult_Mjet );
519 fHistList->Add(fH2Mult_Njet );
520 fHistList->Add(fH2Mult_Aj );
521 fHistList->Add(fH2Mlead_Aj );
522 fHistList->Add(fH2Jet_pt_Mlead );
523 fHistList->Add(fH2Jet_pt_Munder );
32de1459 524 for(int j=0;j<5;j++){
2424ef49 525 fHistList->Add(fH1ndiJ_ediv [j]);
043cb2c6 526 fHistList->Add(fH1Aj [j]);
527 fHistList->Add(fH1Mlead [j]);
32de1459 528 for(int k=0;k<5;k++){
2424ef49 529 fHistList->Add(fH1JetHadron_dphi_ediv [j][k]);
530 fHistList->Add(fH1JetHadron_dphi_tptweight_ediv [j][k]);
531 fHistList->Add(fH1JetHadron_dphi_tJptweight_ediv [j][k]);
32de1459 532 }
533 }
2424ef49 534 for(int j=0;j<3;j++){
535 fHistList->Add(fH1ndiJ_2040Mlead [j]);
536 fHistList->Add(fH1ndiJ_2040Aj [j]);
32de1459 537 for(int k=0;k<5;k++){
2424ef49 538 fHistList->Add(fH1JetHadron_dphi_tptweight2040_Mleaddep [j][k]);
539 fHistList->Add(fH1JetHadron_dphi_tptweight2040_Ajdep [j][k]);
32de1459 540 }
541 }
542 }
543
32de1459 544 // =========== Switch on Sumw2 for all histos ===========
545 for (Int_t i=0; i<fHistList->GetEntries(); ++i)
546 {
547 TH1 *h1 = dynamic_cast<TH1*>(fHistList->At(i));
548 if (h1)
549 {
550 h1->Sumw2();
551 continue;
552 }
553 THnSparse *hn = dynamic_cast<THnSparse*>(fHistList->At(i));
554 if(hn)hn->Sumw2();
555 }
556 TH1::AddDirectory(oldStatus);
557
32de1459 558 PostData(1,fHistList);
32de1459 559}
560
561//----------------------------------------------------------------------
562void AliAnalysisTaskJetHadronCorrelation::Init()
563{
564 // Initialization
565 if (fDebug) printf("AnalysisTaskJetHadronCorrelation::Init() \n");
566
567}
568
569Bool_t AliAnalysisTaskJetHadronCorrelation::Notify()
570{
571
572
573 fIfiles++;
574 fAODIn = dynamic_cast<AliAODEvent*>(InputEvent());
575 fAODOut = AODEvent();
576 if(fNonStdFile.Length()!=0){
577 AliAODHandler *aodH = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler());
578 fAODExtension = (aodH?aodH->GetExtension(fNonStdFile.Data()):0);
579 if(fAODExtension){
580 if(fDebug>1)Printf("AODExtension found for %s ",fNonStdFile.Data());
581 }
582 }
583
584 TTree *tree = AliAnalysisManager::GetAnalysisManager()->GetTree();
585 fxsec=0;
586 ftrial=1;
587
588 if(tree){
589 TFile *curfile = tree->GetCurrentFile();
590 if(!curfile){
591 Error("Notify","No current file");
592 return kFALSE;
593 }
32de1459 594 if(IsMC){
595 AliPWG4HighPtQAMC::PythiaInfoFromFile(curfile->GetName(),fxsec,ftrial);
32de1459 596 fH1Xsec ->Fill(0.,fxsec);
597 fH1Trials->Fill(0.,ftrial);
32de1459 598 }
599
600 }
601
602 printf("Reading File %s ",fInputHandler->GetTree()->GetCurrentFile()->GetName());
603 return kTRUE;
604}
605void AliAnalysisTaskJetHadronCorrelation::FinishTaskOutput()
606{
607}
608
609
610
611//________________________________________________________________________
612void AliAnalysisTaskJetHadronCorrelation::UserExec(Option_t *)
613{
614
615
616 // Main loop (called each event)
2424ef49 617 // Execute analysis for current event
1d478650 618
619 AliAODEvent *fAOD;
620 TObject* handler = AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler();
621 if( handler && handler->InheritsFrom("AliAODInputHandler") ) {
622 fAOD = ((AliAODInputHandler*)handler)->GetEvent();
623 if(fUseAODInput) fAODIn = fAOD;
624 if (fDebug > 1) Printf("%s:%d AOD event from input", (char*)__FILE__,__LINE__);
625 }
626 else {
627 handler = AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler();
628 if( handler && handler->InheritsFrom("AliAODHandler") ) {
629 fAOD = ((AliAODHandler*)handler)->GetAOD();
630 fAODIn = fAOD;
631 if (fDebug > 1) Printf("%s:%d AOD event from output", (char*)__FILE__,__LINE__);
632 }
633 }
634
635 if(!fAODIn && !fUseAODInput){ // case we have AOD in input & output and want jets from output
636 TObject* outHandler = AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler();
637 if( outHandler && outHandler->InheritsFrom("AliAODHandler") ) {
638 fAODIn = ((AliAODHandler*)outHandler)->GetAOD();
639 if (fDebug > 1) Printf("%s:%d jets from output AOD", (char*)__FILE__,__LINE__);
640 }
641 }
1d478650 642 if (!fAODIn) {
643 Printf("ERROR %s : fAODIn not available",(char*)__FILE__);
644 return;
645 }
646
2424ef49 647 AliInputEventHandler* inputHandler = (AliInputEventHandler*)
648 ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
f4b5b842 649 if(!(inputHandler->IsEventSelected() & AliVEvent::kMB)){
650 if (fDebug > 1 ) Printf(" Trigger Selection: event REJECTED ... ");
651 return;
652 }
653 if(!IsMC)fH1Events->Fill(0);
32de1459 654
2424ef49 655 AliAODHeader* aliH = dynamic_cast <AliAODHeader*> (fAODIn->GetHeader());
656 if(!aliH){
657 Printf("ERROR: AliAODHeader not available");
658 return;
659 }
660 double Mult = aliH->GetRefMultiplicity();
661
662 // start jet analysis -------------------------Init.
663 Float_t pi=TMath::Pi();
32de1459 664
2424ef49 665 Double_t Jet_n [20];
043cb2c6 666 Double_t Jet_pt [20][5000];
667 Double_t Jet_phi [20][5000];
668 Double_t Jet_eta [20][5000];
669 Double_t Jet_area [20][5000];
32de1459 670 Double_t subJet_n [20];
043cb2c6 671 Double_t subJet_pt [20][5000];
672 Double_t subJet_eta[20][5000];
673 Double_t subJet_phi[20][5000];
32de1459 674 Double_t Track_n ;
043cb2c6 675 Double_t Track_pt [5000];
676 Double_t Track_eta[5000];
677 Double_t Track_phi[5000];
678 Double_t MCTrack_n ;
679 Double_t MCTrack_pt [5000];
680 Double_t MCTrack_eta[5000];
681 Double_t MCTrack_phi[5000];
682
683 Track_n=0;MCTrack_n=0;
32de1459 684 for(int i=0;i<20;i++){
685 Jet_n[i]=0;
686 subJet_n[i]=0;
687 for(int j=0;j<1000;j++){
688 Jet_pt[i][j]=0.;
689 Jet_phi[i][j]=999.;
690 Jet_eta[i][j]=999.;
2424ef49 691 Jet_area[i][j]=999.;
32de1459 692 subJet_pt[i][j]=0.;
693 subJet_phi[i][j]=999.;
694 subJet_eta[i][j]=999.;
695 Track_pt [j]=0.;
696 Track_phi[j]=999.;
697 Track_eta[j]=999.;
043cb2c6 698 MCTrack_pt [j]=0.;
699 MCTrack_phi[j]=999.;
700 MCTrack_eta[j]=999.;
32de1459 701 }
702 }
703
32de1459 704 int nLJetAOD=999; double ptLJetAOD=0;double phiLJetAOD=999.;double etaLJetAOD=999.;int nsLJetAOD=900;double ptsLJetAOD=0;double phisLJetAOD=900.;double etasLJetAOD=900.;
705 int nLJetMC2=999; double ptLJetMC2=0;double phiLJetMC2=999.;double etaLJetMC2=999.;int nsLJetMC2=900;double ptsLJetMC2=0;double phisLJetMC2=900.;double etasLJetMC2=900.;
706 int nLJetMC =999; double ptLJetMC =0;double phiLJetMC =999.;double etaLJetMC =999.;int nsLJetMC =900;double ptsLJetMC =0;double phisLJetMC =900.;double etasLJetMC =900.;
2424ef49 707 bool findLJetAOD=false;bool findsLJetAOD=false;
708 bool findLJetMC2=false;bool findsLJetMC2=false;
709 bool findLJetMC =false;bool findsLJetMC =false;
043cb2c6 710 bool findDiJet=false,findDiJetMC=false;
32de1459 711 int nLJet = 999;
2424ef49 712 int nsLJet =999;
713 int Mjet_tot =0;
714 int Njet_tot =0;
715
043cb2c6 716 double Aj=99.,AjMC=99.;
717 double Mlead=99.,MleadMC=99.;
718 int Munder=99.;
2424ef49 719
720 //--------------------------------------------------------------------Init.
32de1459 721
722
723 TString cAdd = "";
724 cAdd += Form("%02d_",(int)((Radius+0.01)*10.));
725 cAdd += Form("B%d",(int)BackM);
726 cAdd += Form("_Filter%05d",Filtermask);
727 cAdd += Form("_Cut%05d",(int)(1000.*TrackPtcut));
728 cAdd += Form("_Skip%02d",SkipCone);
729 TString Branchname_gen,Branchname_gen2,Branchname_rec;
652845bc 730 Branchname_gen = Form("clustersAODMC_%s%s",JFAlg.Data(),cAdd.Data());
731 Branchname_gen2 = Form("clustersAODMC2_%s%s",JFAlg.Data(),cAdd.Data());
32de1459 732 Branchname_rec = Form("clustersAOD_%s%s",JFAlg.Data(),cAdd.Data());
733
734
735 for(int algorithm=0;algorithm<3;algorithm++){
2424ef49 736
32de1459 737 if(algorithm==0)fJetBranch = Branchname_rec.Data();
738 if(algorithm==1)fJetBranch = Branchname_gen2.Data();
739 if(algorithm==2)fJetBranch = Branchname_gen.Data();
740
741 if((!IsMC&&(algorithm==1||algorithm==2)))continue;
742
743 TClonesArray* jets = dynamic_cast <TClonesArray*> (fAODIn->FindListObject(fJetBranch.Data()));
652845bc 744 if(!jets){
745 printf(" Tere are no Branch named %s \n",fJetBranch.Data());
746 continue;
747 }
32de1459 748 Int_t nj = jets->GetEntriesFast();
749 if (fDebug) printf("There are %5d jets in the event \n", nj);
750 AliAODJet* jetsAOD;
751 Jet_n[algorithm] = nj;
752 int nLjet_in05_pthdiv[20][20];
753 int nsLjet_in05_pthdiv[20][20];
754 for(int i=0;i<20;i++){
755 for(int j=0;j<20;j++){
756 nLjet_in05_pthdiv [i][j]=0;
757 nsLjet_in05_pthdiv[i][j]=0;
758 }
759 }
760 //Find Leading Jet -------------------------------------------------------
761 for(int njet =0;njet<nj;njet++){
762 jetsAOD = (AliAODJet*) (jets->At(njet));
043cb2c6 763 Jet_pt [algorithm][njet] = jetsAOD->Pt()*JetEScale;
32de1459 764 Jet_phi [algorithm][njet] = jetsAOD->Phi();
765 Jet_eta [algorithm][njet] = jetsAOD->Eta();
2424ef49 766 Jet_area [algorithm][njet] = jetsAOD->EffectiveAreaCharged();
767
768 TRefArray *reftracks = jetsAOD->GetRefTracks();
769 if(algorithm==0){if(Jet_pt[algorithm][njet]>1.)Mjet_tot += reftracks->GetEntriesFast();Njet_tot++;}
32de1459 770 double eta_cut_Jet=0.5;
771 if((TMath::Abs(Jet_eta[algorithm][njet])<eta_cut_Jet)&&(Jet_pt[algorithm][njet]>10.)){
772 if(algorithm==0){
2424ef49 773 fH1Jet_pt ->Fill(Jet_pt [algorithm][njet]);
774 fH1Jet_phi->Fill(Jet_phi[algorithm][njet]);
775 fH1Jet_eta->Fill(Jet_eta[algorithm][njet]);
32de1459 776 if(Jet_pt[algorithm][njet]>ptLJetAOD){
777 findLJetAOD=true;
778 nLJetAOD=njet;ptLJetAOD=Jet_pt[algorithm][njet];phiLJetAOD=Jet_phi[algorithm][njet];etaLJetAOD=Jet_eta[algorithm][njet];
779 }
780 }
781 if(algorithm==1){
2424ef49 782 fH1JetMC_pt->Fill(Jet_pt[algorithm][njet]);
32de1459 783 if(Jet_pt[algorithm][njet]>ptLJetMC2){
784 findLJetMC2=true;
785 nLJetMC2=njet;ptLJetMC2=Jet_pt[algorithm][njet];phiLJetMC2=Jet_phi[algorithm][njet];etaLJetMC2=Jet_eta[algorithm][njet];
786 }
787 }
788 if(algorithm==2){
789 if(Jet_pt[algorithm][njet]>ptLJetMC){
790 findLJetMC=true;
791 nLJetMC=njet;ptLJetMC=Jet_pt[algorithm][njet];phiLJetMC=Jet_phi[algorithm][njet];etaLJetMC=Jet_eta[algorithm][njet];
792 }
793 }
794 }
795 }//njet loop
2424ef49 796 if(algorithm==0){nLJet=nLJetAOD;fH1leadJet_pt ->Fill(Jet_pt[algorithm][nLJet]);}
797 if(algorithm==1){nLJet=nLJetMC2;fH1leadJetMC_pt->Fill(Jet_pt[algorithm][nLJet]);}
798 if(algorithm==2){nLJet=nLJetMC;}
799 if(findLJetAOD&&(algorithm==0)){
800 jetsAOD = (AliAODJet*) (jets->At(nLJet));
801 TRefArray *reftracks = jetsAOD->GetRefTracks();
802 Mlead = reftracks->GetEntriesFast();
803 }
7be049b5 804 if(findLJetMC2&&(algorithm==1)){
805 jetsAOD = (AliAODJet*) (jets->At(nLJetMC2));
043cb2c6 806 TRefArray *reftracks = jetsAOD->GetRefTracks();
807 MleadMC = reftracks->GetEntriesFast();
808 }
2424ef49 809 //----------------------------------------------------------- Leading Jet
32de1459 810 if(nj<2)continue;
811 //Find Sub leading Jet ==================================================
812 for(int njet=0;njet<nj;njet++){
813 if(njet==nLJet)continue;
814 jetsAOD = (AliAODJet *)jets->At(njet);
043cb2c6 815 subJet_pt [algorithm][njet] = jetsAOD->Pt()*JetEScale;
32de1459 816 subJet_phi[algorithm][njet] = jetsAOD->Phi();
817 subJet_eta[algorithm][njet] = jetsAOD->Eta();
818 double eta_cut_Jet=0.5;
819 if((TMath::Abs(subJet_eta[algorithm][njet])<eta_cut_Jet) && (subJet_pt[algorithm][njet]>10.)){
820 if(subJet_pt[algorithm][njet]>ptsLJetAOD&&algorithm==0){
2424ef49 821 findsLJetAOD=true;
32de1459 822 nsLJetAOD=njet;ptsLJetAOD=Jet_pt[algorithm][njet];phisLJetAOD=Jet_phi[algorithm][njet];etasLJetAOD=Jet_eta[algorithm][njet];
823 }
824 if(subJet_pt[algorithm][njet]>ptsLJetMC2 &&algorithm==1){
2424ef49 825 findsLJetMC2=true;
32de1459 826 nsLJetMC2=njet;ptsLJetMC2=Jet_pt[algorithm][njet];phisLJetMC2=Jet_phi[algorithm][njet];etasLJetMC2=Jet_eta[algorithm][njet];
827 }
828 if(subJet_pt[algorithm][njet]>ptsLJetMC &&algorithm==2){
2424ef49 829 findsLJetMC=true;
32de1459 830 nsLJetMC =njet;ptsLJetMC =Jet_pt[algorithm][njet];phisLJetMC =Jet_phi[algorithm][njet];etasLJetMC =Jet_eta[algorithm][njet];
831 }
832 }
833 }
2424ef49 834 if(algorithm==0){nsLJet=nsLJetAOD;}
835 if(algorithm==1){nsLJet=nsLJetMC2;}
836 if(algorithm==2){nsLJet=nsLJetMC ;}
837 //====================================================== Sub leading Jet
32de1459 838
839 double Leading_pt=0.;double Leading_phi=999.;double Leading_eta=999.;double sLeading_pt=0.;double sLeading_phi=999.;double sLeading_eta=999.;
840 if(algorithm==0){Leading_pt=ptLJetAOD;Leading_phi=phiLJetAOD;Leading_eta=etaLJetAOD;sLeading_pt=ptsLJetAOD;sLeading_phi=phisLJetAOD;sLeading_eta=etasLJetAOD;}
841 if(algorithm==1){Leading_pt=ptLJetMC2;Leading_phi=phiLJetMC2;Leading_eta=etaLJetMC2;sLeading_pt=ptsLJetMC2;sLeading_phi=phisLJetMC2;sLeading_eta=etasLJetMC2;}
842 if(algorithm==2){Leading_pt=ptLJetMC ;Leading_phi=phiLJetMC ;Leading_eta=etaLJetMC ;sLeading_pt=ptsLJetMC ;sLeading_phi=phisLJetMC ;sLeading_eta=etasLJetMC ;}
843
844 ////Di-Jet event trigger +++++++++++++++++++++++++++++++++++++++++++++++
845 double DPhi = DeltaPhi(Leading_phi,sLeading_phi);
846 double DEta = Leading_eta-sLeading_eta;
847 if(algorithm==0){
2424ef49 848 fH2JetsJet_dphi->Fill(Leading_pt,DPhi);
849 fH2JetsJet_deta->Fill(Leading_pt,DEta);
32de1459 850 }
851 if(algorithm==1){
2424ef49 852 fH2JetsJetMC_dphi->Fill(Leading_pt,DPhi);
853 fH2JetsJetMC_deta->Fill(Leading_pt,DEta);
32de1459 854 }
855 if((TMath::Cos(DPhi)<-0.5)&&(Leading_pt>10.)&&(sLeading_pt>10.)){
043cb2c6 856 if(algorithm==0)Aj = (Leading_pt-sLeading_pt)/(Leading_pt+sLeading_pt);
857 if(algorithm==1)AjMC = (Leading_pt-sLeading_pt)/(Leading_pt+sLeading_pt);
32de1459 858 if(algorithm==0){
2424ef49 859 fH1leadJet_pt_dijet->Fill(Leading_pt);
860 fH1subJet_pt_dijet ->Fill(sLeading_pt);
861 fH2JetsJet_Aj ->Fill(Leading_pt,Aj);
862 fH2JetsJet_pt ->Fill(Leading_pt,sLeading_pt);
863 fH2Mult_Aj ->Fill(Mult,Aj);
864 fH2Mlead_Aj ->Fill(Mlead,Aj);
865 for(int eb=0;eb<5;eb++){
866 if(TMath::Abs(Leading_pt -10.-20.*(eb))<10.){
867 fH1Aj[eb] ->Fill(Aj);
868 }
869 }
32de1459 870 }
871 if(algorithm==1){
2424ef49 872 fH1leadJetMC_pt_dijet->Fill(Leading_pt);
873 fH1subJetMC_pt_dijet ->Fill(sLeading_pt);
043cb2c6 874 fH2JetsJetMC_Aj ->Fill(Leading_pt,AjMC);
2424ef49 875 fH2JetsJetMC_pt ->Fill(Leading_pt,sLeading_pt);
043cb2c6 876 findDiJetMC=true;
32de1459 877 }
2424ef49 878 findDiJet=true;
043cb2c6 879
32de1459 880 }
2424ef49 881 ////+++++++++++++++++++++++++++++++++++++++++++++++ Di-Jet event trigger
32de1459 882
043cb2c6 883 //if(algorithm==1){//IDEAL Jet-Hadron Correlation
884 // if((findDiJet)&&(Leading_pt>10.)&&(sLeading_pt>10.)){
885 // double eta_cut_Jet=0.5;
886 // if(TMath::Abs(Leading_eta)<eta_cut_Jet){
887 // for(int eb=0;eb<5;eb++){
7be049b5 888 // if(TMath::Abs(Leading_pt -10.-20.*(eb))<10.){ //<------------------------- Change Condition
889 // fH1ndiJMCIdeal_ediv[eb]->Fill(1);
890 // if(eb==1){
891 // if((0<Mlead)&&Mlead<7) {fH1ndiJMCIdeal_2040Mlead[0]->Fill(1);}
892 // else if((7<=Mlead)&&(Mlead<10)) {fH1ndiJMCIdeal_2040Mlead[1]->Fill(1);}
893 // else {fH1ndiJMCIdeal_2040Mlead[2]->Fill(1);}
894 // if((0<Aj)&&(Aj<0.19)) {fH1ndiJMCIdeal_2040Aj [0]->Fill(1);}
895 // else if((0.19<=Aj)&&(Aj<0.38)) {fH1ndiJMCIdeal_2040Aj [1]->Fill(1);}
896 // else {fH1ndiJMCIdeal_2040Aj [2]->Fill(1);}
897 // }
898 // fH1MleadMCIdeal[eb]->Fill(Mlead);
899 // fH1AjIdeal[eb] ->Fill(Aj);
043cb2c6 900 // //MC Track
901 // TClonesArray* mctracks = dynamic_cast <TClonesArray*> (fAODIn->GetList()->FindObject(AliAODMCParticle::StdBranchName()));
902 // if(!mctracks){
903 // if (fDebug > 1) Printf("%s:%d could not get AODMCtracks", (char*)__FILE__,__LINE__);
904 // continue;
905 // }
906 // Int_t ntmc = mctracks->GetEntriesFast();
907 // AliAODMCParticle* trackMCAOD;
908 // int lastprim=0;
909 // for(int ntrack =0;ntrack<ntmc;ntrack++){
910 // trackMCAOD = (AliAODMCParticle*) (mctracks->At(ntrack));
911 // if((trackMCAOD->IsPhysicalPrimary())==1)lastprim=ntrack;
912 // }
913 // for(int ntrack =0;ntrack<ntmc;ntrack++){
914 // trackMCAOD = (AliAODMCParticle*) (mctracks->At(ntrack));
915 // if((trackMCAOD->IsPhysicalPrimary())&&(trackMCAOD->Charge())){// for Physical particles
916 // double DelPhi = DeltaPhi(Leading_phi,trackMCAOD->Phi());
917 // if(TMath::Abs(trackMCAOD->Era())<0.9){
918 // for(int teb=0;teb<5;teb++){
919 // if(teb==0){if(!( trackMCAOD->Pt()>0.15))continue;}
920 // if(teb==1){if(!((trackMCAOD->Pt()<1.5)&&(trackMCAOD->Pt()>0.15)))continue;}
921 // if(teb==2){if(!((trackMCAOD->Pt()<3.0)&&(trackMCAOD->Pt()>1.5)))continue;}
922 // if(teb==3){if(!((trackMCAOD->Pt()<4.5)&&(trackMCAOD->Pt()>3.0)))continue;}
923 // if(teb==4){if(!( trackMCAOD->Pt()>4.5))continue;}
924 // fH1JetHadronMCIdeal_dphi_ediv [eb][teb]->Fill(DelPhi);
925 // fH1JetHadronMCIdeal_dphi_tptweight_ediv [eb][teb]->Fill(DelPhi,trackMCAOD->Pt());
926 // fH1JetHadronMCIdeal_dphi_tJptweight_ediv [eb][teb]->Fill(DelPhi,trackMCAOD->Pt()/Leading_pt);
927 // if(eb==1){
928 // if((0<Mlead)&&Mlead<7) {fH1JetHadronMCIdeal_dphi_tptweight2040_Mleaddep[0][teb]->Fill(DelPhi,trackMCAOD->Pt());}
929 // else if((7<=Mlead)&&(Mlead<10)){fH1JetHadronMCIdeal_dphi_tptweight2040_Mleaddep[1][teb]->Fill(DelPhi,trackMCAOD->Pt());}
930 // else {fH1JetHadronMCIdeal_dphi_tptweight2040_Mleaddep[2][teb]->Fill(DelPhi,trackMCAOD->Pt());}
931 // if((0<Aj)&&(Aj<0.19)) {fH1JetHadronMCIdeal_dphi_tptweight2040_Ajdep [0][teb]->Fill(DelPhi,trackMCAOD->Pt());}
932 // else if((0.19<=Aj)&&(Aj<0.38)) {fH1JetHadronMCIdeal_dphi_tptweight2040_Ajdep [1][teb]->Fill(DelPhi,trackMCAOD->Pt());}
933 // else {fH1JetHadronMCIdeal_dphi_tptweight2040_Ajdep [2][teb]->Fill(DelPhi,trackMCAOD->Pt());}
934 // }
935 // }
936 // }
937 // }
938 // }//Track Loop
939 // }
940 // }
941 // }
942 // }
943 //}
944
2424ef49 945 if(algorithm!=0)continue;// for only data & reconstructed Jets
32de1459 946
2424ef49 947 //count number of tracks@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
043cb2c6 948 //Reconstructed Track
2424ef49 949 TClonesArray* tracks = dynamic_cast <TClonesArray*> (fAODIn->GetTracks());
950 if(!tracks){
951 if (fDebug > 1) Printf("%s:%d could not get AODtracks", (char*)__FILE__,__LINE__);
952 continue;
953 }
2424ef49 954
7be049b5 955 Bool_t TrackEff[5000];
956 for(int i=0;i<5000;i++){
957 TrackEff[i]=false;
958 }
043cb2c6 959 Int_t nt = fAODIn->GetNumberOfTracks();
960 AliAODTrack* trackAOD=NULL;
2424ef49 961 for(int ntrack =0;ntrack<nt;ntrack++){
962 trackAOD = (AliAODTrack*) (tracks->At(ntrack));
963 Bool_t bgoodT=false;
964 if(Filtermask!=768){if(trackAOD->TestFilterMask(Filtermask))bgoodT=true;}
965 else {if(trackAOD->IsHybridGlobalConstrainedGlobal())bgoodT=true;} //for hybrid Track cuts
966 if(!bgoodT)continue;
967 if(TMath::Abs(trackAOD->Eta())<0.9){
968 Track_n++;
043cb2c6 969 fH1Track_pt ->Fill(trackAOD->Pt()*TrackEScale);
2424ef49 970 fH1Track_phi->Fill(trackAOD->Phi());
971 fH1Track_eta->Fill(trackAOD->Eta());
043cb2c6 972
7be049b5 973 if(IsMC){
974 // track pt resplution-------------------
975 Int_t MCID = TMath::Abs(trackAOD->GetLabel());
976 TClonesArray* mctracks = dynamic_cast <TClonesArray*> (fAODIn->GetList()->FindObject(AliAODMCParticle::StdBranchName()));
977 if(!mctracks){
978 if (fDebug > 1) Printf("%s:%d could not get AODMCtracks", (char*)__FILE__,__LINE__);
979 continue;
980 }
981 AliAODMCParticle *trackMCAOD = (AliAODMCParticle*) mctracks->At(MCID);
982 fH2TrackMCptResolution->Fill(trackMCAOD->Pt(),trackAOD->Pt());
983 TrackEff[MCID]=true;
984 // --------------------------------------
043cb2c6 985 }
2424ef49 986 }
987 }
043cb2c6 988 if(IsMC){// still under construction
989 //MC Track
990 TClonesArray* mctracks = dynamic_cast <TClonesArray*> (fAODIn->GetList()->FindObject(AliAODMCParticle::StdBranchName()));
991 if(!mctracks){
992 if (fDebug > 1) Printf("%s:%d could not get AODMCtracks", (char*)__FILE__,__LINE__);
993 continue;
994 }
995 Int_t ntmc = mctracks->GetEntriesFast();
996 AliAODMCParticle* trackMCAOD;
997 int lastprim=0;
998 for(int ntrack =0;ntrack<ntmc;ntrack++){
999 trackMCAOD = (AliAODMCParticle*) (mctracks->At(ntrack));
1000 if((trackMCAOD->IsPhysicalPrimary())==1)lastprim=ntrack;
1001 }
1002 for(int ntrack =0;ntrack<ntmc;ntrack++){
1003 trackMCAOD = (AliAODMCParticle*) (mctracks->At(ntrack));
1004 if((trackMCAOD->GetPdgCode()>10)&&((trackMCAOD->GetMother())>1)&&(ntrack>lastprim)&&(trackMCAOD->Charge())){// for Decay particles
7be049b5 1005 fH1MCTrack_pt ->Fill(trackMCAOD->Pt());
1006 fH1MCTrack_phi->Fill(trackMCAOD->Phi());
1007 fH1MCTrack_eta->Fill(trackMCAOD->Eta());
1008 if(TrackEff[ntrack])fH2TrackMCptEfficiency->Fill(trackMCAOD->Pt(),1);
1009 else fH2TrackMCptEfficiency->Fill(trackMCAOD->Pt(),0);
2424ef49 1010 }
043cb2c6 1011 if((trackMCAOD->IsPhysicalPrimary())&&(trackMCAOD->Charge())){// for Physical particles
1012 MCTrack_n++;
7be049b5 1013 fH1MCTrack_pt ->Fill(trackMCAOD->Pt());
1014 fH1MCTrack_phi->Fill(trackMCAOD->Phi());
1015 fH1MCTrack_eta->Fill(trackMCAOD->Eta());
1016 fH1MCPrimTrack_pt ->Fill(trackMCAOD->Pt());
1017 fH1MCPrimTrack_phi->Fill(trackMCAOD->Phi());
1018 fH1MCPrimTrack_eta->Fill(trackMCAOD->Eta());
1019 if(TrackEff[ntrack])fH2TrackMCptEfficiency->Fill(trackMCAOD->Pt(),1);
1020 else fH2TrackMCptEfficiency->Fill(trackMCAOD->Pt(),0);
00a3f17b 1021 }
1022 }
043cb2c6 1023 }//still under construction
1024 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ count number of tracks
00a3f17b 1025
043cb2c6 1026 //Jet-Hadron Correlation###############################################
1027 if((findDiJet)&&(Leading_pt>10.)&&(sLeading_pt>10.)){
00a3f17b 1028 double eta_cut_Jet=0.5;
1029 if(TMath::Abs(Leading_eta)<eta_cut_Jet){
1030 for(int eb=0;eb<5;eb++){
2424ef49 1031 if(TMath::Abs(Leading_pt -10.-20.*(eb))<10.){
043cb2c6 1032 fH1ndiJ_ediv[eb]->Fill(1);
1033 if(eb==1){
1034 if((0<Mlead)&&Mlead<7) {fH1ndiJ_2040Mlead[0]->Fill(1);}
1035 else if((7<=Mlead)&&(Mlead<10)) {fH1ndiJ_2040Mlead[1]->Fill(1);}
1036 else {fH1ndiJ_2040Mlead[2]->Fill(1);}
1037 if((0<Aj)&&(Aj<0.19)) {fH1ndiJ_2040Aj [0]->Fill(1);}
1038 else if((0.19<=Aj)&&(Aj<0.38)) {fH1ndiJ_2040Aj [1]->Fill(1);}
1039 else {fH1ndiJ_2040Aj [2]->Fill(1);}
1040 }
2424ef49 1041 fH1Mlead[eb]->Fill(Mlead);
00a3f17b 1042 for(int ntrack =0;ntrack<nt;ntrack++){
1043 trackAOD = (AliAODTrack*) (fAODIn->GetTrack(ntrack));
1044 Bool_t bgoodT=false;
2424ef49 1045 if(Filtermask!=768){if(trackAOD->TestFilterMask(Filtermask))bgoodT=true;}
1046 else{ if(trackAOD->IsHybridGlobalConstrainedGlobal())bgoodT=true;} //for hybrid Track cuts
00a3f17b 1047 if(!bgoodT)continue;
043cb2c6 1048 Track_pt [ntrack] = trackAOD->Pt()*TrackEScale;
00a3f17b 1049 Track_phi [ntrack] = trackAOD->Phi();
1050 Track_eta [ntrack] = trackAOD->Eta();
1051 double DelPhi = DeltaPhi(Leading_phi,Track_phi[ntrack]);
1052 if(TMath::Abs(Track_eta[ntrack])<0.9){
2424ef49 1053 if((TMath::Abs(DelPhi-pi/2.)<pi/8.)||((DelPhi+pi/2.)<pi/8.)||(TMath::Abs(DelPhi-3./2.*pi)<pi/8.))Munder++;
00a3f17b 1054 for(int teb=0;teb<5;teb++){
2424ef49 1055 if(teb==0){if(!( Track_pt[ntrack]>0.15))continue;}
00a3f17b 1056 if(teb==1){if(!((Track_pt[ntrack]<1.5)&&(Track_pt[ntrack]>0.15)))continue;}
1057 if(teb==2){if(!((Track_pt[ntrack]<3.0)&&(Track_pt[ntrack]>1.5)))continue;}
1058 if(teb==3){if(!((Track_pt[ntrack]<4.5)&&(Track_pt[ntrack]>3.0)))continue;}
2424ef49 1059 if(teb==4){if(!( Track_pt[ntrack]>4.5))continue;}
1060 fH1JetHadron_dphi_ediv [eb][teb]->Fill(DelPhi);
1061 fH1JetHadron_dphi_tptweight_ediv [eb][teb]->Fill(DelPhi,Track_pt[ntrack]);
1062 fH1JetHadron_dphi_tJptweight_ediv [eb][teb]->Fill(DelPhi,Track_pt[ntrack]/Leading_pt);
1063 if(eb==1){
043cb2c6 1064 if((0<Mlead)&&Mlead<7) {fH1JetHadron_dphi_tptweight2040_Mleaddep[0][teb]->Fill(DelPhi,Track_pt[ntrack]);}
1065 else if((7<=Mlead)&&(Mlead<10)){fH1JetHadron_dphi_tptweight2040_Mleaddep[1][teb]->Fill(DelPhi,Track_pt[ntrack]);}
2424ef49 1066 else {fH1JetHadron_dphi_tptweight2040_Mleaddep[2][teb]->Fill(DelPhi,Track_pt[ntrack]);}
043cb2c6 1067 if((0<Aj)&&(Aj<0.19)) {fH1JetHadron_dphi_tptweight2040_Ajdep [0][teb]->Fill(DelPhi,Track_pt[ntrack]);}
1068 else if((0.19<=Aj)&&(Aj<0.38)) {fH1JetHadron_dphi_tptweight2040_Ajdep [1][teb]->Fill(DelPhi,Track_pt[ntrack]);}
2424ef49 1069 else {fH1JetHadron_dphi_tptweight2040_Ajdep [2][teb]->Fill(DelPhi,Track_pt[ntrack]);}
32de1459 1070 }
1071 }
00a3f17b 1072 }
1073 }//Track Loop
043cb2c6 1074 if(IsMC){// still under construction
1075 //MC Track
1076 TClonesArray* mctracks = dynamic_cast <TClonesArray*> (fAODIn->GetList()->FindObject(AliAODMCParticle::StdBranchName()));
1077 if(!mctracks){
1078 if (fDebug > 1) Printf("%s:%d could not get AODMCtracks", (char*)__FILE__,__LINE__);
1079 continue;
1080 }
1081 Int_t ntmc = mctracks->GetEntriesFast();
1082 AliAODMCParticle* trackMCAOD;
1083 int lastprim=0;
1084 for(int ntrack =0;ntrack<ntmc;ntrack++){
1085 trackMCAOD = (AliAODMCParticle*) (mctracks->At(ntrack));
1086 if((trackMCAOD->IsPhysicalPrimary())==1)lastprim=ntrack;
1087 }
1088 for(int ntrack =0;ntrack<ntmc;ntrack++){
1089 trackMCAOD = (AliAODMCParticle*) (mctracks->At(ntrack));
1090 if((trackMCAOD->GetPdgCode()>10)&&((trackMCAOD->GetMother())>1)&&(ntrack>lastprim)&&(trackMCAOD->Charge())){// for Decay particles
1091 MCTrack_pt [ntrack] = trackMCAOD->Pt();
1092 MCTrack_phi [ntrack] = trackMCAOD->Phi();
1093 MCTrack_eta [ntrack] = trackMCAOD->Eta();
1094 double DelPhi = DeltaPhi(Leading_phi,MCTrack_phi[ntrack]);
1095 if(TMath::Abs(MCTrack_eta[ntrack])<0.9){
1096 for(int teb=0;teb<5;teb++){
1097 if(teb==0){if(!( MCTrack_pt[ntrack]>0.15))continue;}
1098 if(teb==1){if(!((MCTrack_pt[ntrack]<1.5)&&(MCTrack_pt[ntrack]>0.15)))continue;}
1099 if(teb==2){if(!((MCTrack_pt[ntrack]<3.0)&&(MCTrack_pt[ntrack]>1.5)))continue;}
1100 if(teb==3){if(!((MCTrack_pt[ntrack]<4.5)&&(MCTrack_pt[ntrack]>3.0)))continue;}
1101 if(teb==4){if(!( MCTrack_pt[ntrack]>4.5))continue;}
1102 fH1JetHadronMC_dphi_ediv [eb][teb]->Fill(DelPhi);
1103 fH1JetHadronMC_dphi_tptweight_ediv [eb][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);
1104 fH1JetHadronMC_dphi_tJptweight_ediv [eb][teb]->Fill(DelPhi,MCTrack_pt[ntrack]/Leading_pt);
1105 if(eb==1){
1106 if((0<Mlead)&&Mlead<7) {fH1JetHadronMC_dphi_tptweight2040_Mleaddep[0][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1107 else if((7<=Mlead)&&(Mlead<10)){fH1JetHadronMC_dphi_tptweight2040_Mleaddep[1][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1108 else {fH1JetHadronMC_dphi_tptweight2040_Mleaddep[2][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1109 if((0<Aj)&&(Aj<0.19)) {fH1JetHadronMC_dphi_tptweight2040_Ajdep [0][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1110 else if((0.19<=Aj)&&(Aj<0.38)) {fH1JetHadronMC_dphi_tptweight2040_Ajdep [1][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1111 else {fH1JetHadronMC_dphi_tptweight2040_Ajdep [2][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1112 }
1113 }
1114 }
1115 }
1116 if((trackMCAOD->IsPhysicalPrimary())&&(trackMCAOD->Charge())){// for Physical particles
1117 MCTrack_pt [ntrack] = trackMCAOD->Pt();
1118 MCTrack_phi [ntrack] = trackMCAOD->Phi();
1119 MCTrack_eta [ntrack] = trackMCAOD->Eta();
1120 double DelPhi = DeltaPhi(Leading_phi,MCTrack_phi[ntrack]);
1121 if(TMath::Abs(MCTrack_eta[ntrack])<0.9){
1122 for(int teb=0;teb<5;teb++){
1123 if(teb==0){if(!( MCTrack_pt[ntrack]>0.15))continue;}
1124 if(teb==1){if(!((MCTrack_pt[ntrack]<1.5)&&(MCTrack_pt[ntrack]>0.15)))continue;}
1125 if(teb==2){if(!((MCTrack_pt[ntrack]<3.0)&&(MCTrack_pt[ntrack]>1.5)))continue;}
1126 if(teb==3){if(!((MCTrack_pt[ntrack]<4.5)&&(MCTrack_pt[ntrack]>3.0)))continue;}
1127 if(teb==4){if(!( MCTrack_pt[ntrack]>4.5))continue;}
1128 fH1JetHadronMC_dphi_ediv [eb][teb]->Fill(DelPhi);
1129 fH1JetHadronMC_dphi_tptweight_ediv [eb][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);
1130 fH1JetHadronMC_dphi_tJptweight_ediv [eb][teb]->Fill(DelPhi,MCTrack_pt[ntrack]/Leading_pt);
1131 fH1JetHadronMCPrim_dphi_ediv [eb][teb]->Fill(DelPhi);
1132 fH1JetHadronMCPrim_dphi_tptweight_ediv [eb][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);
1133 fH1JetHadronMCPrim_dphi_tJptweight_ediv [eb][teb]->Fill(DelPhi,MCTrack_pt[ntrack]/Leading_pt);
1134 if(eb==1){
1135 if((0<Mlead)&&Mlead<7) {fH1JetHadronMC_dphi_tptweight2040_Mleaddep[0][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1136 else if((7<=Mlead)&&(Mlead<10)){fH1JetHadronMC_dphi_tptweight2040_Mleaddep[1][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1137 else {fH1JetHadronMC_dphi_tptweight2040_Mleaddep[2][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1138 if((0<Aj)&&(Aj<0.19)) {fH1JetHadronMC_dphi_tptweight2040_Ajdep [0][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1139 else if((0.19<=Aj)&&(Aj<0.38)) {fH1JetHadronMC_dphi_tptweight2040_Ajdep [1][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1140 else {fH1JetHadronMC_dphi_tptweight2040_Ajdep [2][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1141
1142 if((0<Mlead)&&Mlead<7) {fH1JetHadronMCPrim_dphi_tptweight2040_Mleaddep[0][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1143 else if((7<=Mlead)&&(Mlead<10)){fH1JetHadronMCPrim_dphi_tptweight2040_Mleaddep[1][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1144 else {fH1JetHadronMCPrim_dphi_tptweight2040_Mleaddep[2][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1145 if((0<Aj)&&(Aj<0.19)) {fH1JetHadronMCPrim_dphi_tptweight2040_Ajdep [0][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1146 else if((0.19<=Aj)&&(Aj<0.38)) {fH1JetHadronMCPrim_dphi_tptweight2040_Ajdep [1][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1147 else {fH1JetHadronMCPrim_dphi_tptweight2040_Ajdep [2][teb]->Fill(DelPhi,MCTrack_pt[ntrack]);}
1148 }
1149 }
1150 }
1151 }
1152 }
1153 }//still under construction
32de1459 1154 }
043cb2c6 1155 }// Momentum Loop Jet
1156 fH2Jet_pt_Munder ->Fill(Leading_pt,(double)Munder/(1.8*pi/2.)*Jet_area[0][nLJet]);
1157 fH2Jet_pt_Mlead ->Fill(Leading_pt,Mlead);
00a3f17b 1158 }//eta cut
32de1459 1159 }// Di-Jet
2424ef49 1160 //############################################### Jet-Hadron Correlation
32de1459 1161 }// algorithm LOOP
1162 if(IsMC){
1163 for(int eb=0;eb<5;eb++){
043cb2c6 1164 double DPhi,DEta;
2424ef49 1165 if(TMath::Abs(ptLJetAOD -10.-20.*(eb))<10.){
32de1459 1166 DPhi = DeltaPhi(phiLJetMC,phiLJetAOD);
2424ef49 1167 DEta = etaLJetMC-etaLJetAOD;
1168 fH1leadJetMC_dphiResolution[eb]->Fill(DPhi);
1169 if(sqrt(pow(DPhi,2)+pow(DEta,2))<0.4)fH1leadJetMC_Efficiency[eb]->Fill(1);
1170 else fH1leadJetMC_Efficiency[eb]->Fill(0);
32de1459 1171 DPhi = DeltaPhi(phisLJetMC,phisLJetAOD);
2424ef49 1172 DEta = etasLJetMC-etasLJetAOD;
1173 fH1subJetMC_dphiResolution[eb]->Fill(DPhi);
1174 if(sqrt(pow(DPhi,2)+pow(DEta,2))<0.4)fH1subJetMC_Efficiency[eb]->Fill(1);
1175 else fH1subJetMC_Efficiency[eb]->Fill(0);
043cb2c6 1176 DPhi = DeltaPhi(phiLJetMC2,phiLJetAOD);
1177 DEta = etaLJetMC2-etaLJetAOD;
1178
1179 if(sqrt(pow(DPhi,2)+pow(DEta,2))<0.4)fH2leadJetMCptResolution->Fill(ptLJetMC2,ptLJetAOD);
1180 if(findDiJetMC)fH2AjCorrelation_MCRec ->Fill(AjMC,Aj);
1181 if(findDiJetMC)fH2MleadCorrelation_MCRec->Fill(MleadMC,Mlead);
32de1459 1182 }
1183 }
1184 }
2424ef49 1185 else{
1186 fH2Mult_Mtrack->Fill(Mult,Track_n);
1187 fH2Mult_Mjet ->Fill(Mult,Mjet_tot);
1188 fH2Mult_Njet ->Fill(Mult,Njet_tot);
1189 if(findLJetAOD)fH2Mult_Mlead ->Fill(Mult,Mlead);
1190 }
32de1459 1191
32de1459 1192 PostData(1, fHistList);
1193 return;
1194}
1195
1196//________________________________________________________________________
00a3f17b 1197void AliAnalysisTaskJetHadronCorrelation::Terminate(Option_t *){
32de1459 1198 // Terminate analysis
1199 if (fDebug) printf("AnalysisTaskPt: Terminate() \n");
32de1459 1200}
1201
32de1459 1202Double_t AliAnalysisTaskJetHadronCorrelation::DeltaPhi(Double_t phi1,Double_t phi2){
1203 Float_t pi=TMath::Pi();
1204 Double_t dphi = phi1-phi2;
1205 if (dphi<(-1./2*pi))dphi = dphi +2*pi;
1206 else if(dphi>( 3./2*pi))dphi = dphi -2*pi;
1207 return dphi;
1208}