18 #include "TClonesArray.h"
24 #include "AliAODJet.h"
26 #include "AliAODPWG4ParticleCorrelation.h"
27 #include "AliVTrack.h"
28 #include "AliAODCaloCluster.h"
29 #include "AliAODEvent.h"
32 #include "AliAODJetEventBackground.h"
37 #include "AliAODMCParticle.h"
40 #include "AliEMCALGeometry.h"
51 fDeltaPhiMaxCut(0.), fDeltaPhiMinCut(0.), fRatioMaxCut(0.), fRatioMinCut(0.),
52 fConeSize(0.), fPtThresholdInCone(0.),fUseJetRefTracks(kTRUE),
53 fMakeCorrelationInHistoMaker(kFALSE), fSelectIsolated(kTRUE),
54 fJetConeSize(0.4),fJetMinPt(5),fJetMinPtBkgSub(-100.),fJetAreaFraction(0.6),
56 fJetBranchName(
"jets"),
57 fBackgroundJetFromReader(kTRUE),
58 fBkgJetBranchName(
"jets"),
59 fGammaConeSize(0.3),fUseBackgroundSubtractionGamma(kFALSE),fSaveGJTree(kTRUE),
60 fMostEnergetic(kFALSE),fMostOpposite(kTRUE), fUseHistogramJetBkg(kTRUE),
61 fUseHistogramTracks(kTRUE),fUseHistogramJetTracks(kTRUE),fMCStudies(kFALSE),fGenerator(0),
63 fhDeltaEta(0), fhDeltaPhiCorrect(0),fhDeltaPhi0PiCorrect(0), fhDeltaPt(0), fhPtRatio(0), fhPt(0),
64 fhFFz(0),fhFFxi(0),fhFFpt(0),fhNTracksInCone(0),
65 fhJetFFz(0),fhJetFFxi(0),fhJetFFpt(0),fhJetFFzCor(0),fhJetFFxiCor(0),
66 fhGamPtPerTrig(0),fhPtGamPtJet(0),
67 fhBkgFFz(),fhBkgFFxi(),fhBkgFFpt(),fhBkgNTracksInCone(),fhBkgSumPtInCone(),fhBkgSumPtnTracksInCone(),
68 fhNjetsNgammas(0),fhCuts(0),
69 fhDeltaEtaBefore(0),fhDeltaPhiBefore(0),fhDeltaPtBefore(0),fhPtRatioBefore(0),
70 fhPtBefore(0),fhDeltaPhi0PiCorrectBefore(0),
71 fhJetPtBefore(0),fhJetPtBeforeCut(0),fhJetPt(0),fhJetPtMostEne(0),fhJetPhi(0),fhJetEta(0),fhJetEtaVsPt(0),
72 fhJetPhiVsEta(0),fhJetEtaVsNpartInJet(0),fhJetEtaVsNpartInJetBkg(0),fhJetChBkgEnergyVsPt(0),fhJetChAreaVsPt(0),
73 fhTrackPhiVsEta(0),fhTrackAveTrackPt(0),fhJetNjetOverPtCut(),
75 fhJetChBkgEnergyVsArea(0),fhJetRhoVsPt(0),fhJetRhoVsCentrality(0),
76 fhJetNparticlesInJet(0),fhJetDeltaEtaDeltaPhi(0),fhJetDeltaEtaDeltaPhiAllTracks(0),
77 fhJetAveTrackPt(0),fhJetNtracksInJetAboveThr(),fhJetRatioNTrkAboveToNTrk(),fhJetNtrackRatioMostEne(),
78 fhJetNtrackRatioJet5GeV(),fhJetNtrackRatioLead5GeV(),
79 fhBkgJetBackground(),fhBkgJetSigma(),fhBkgJetArea(),fhPhotonPtMostEne(0),
80 fhPhotonAverageEnergy(0),fhPhotonRatioAveEneToMostEne(0),fhPhotonAverageEnergyMinus1(0),fhPhotonRatioAveEneMinus1ToMostEne(0),
81 fhPhotonNgammaMoreAverageToNgamma(0),fhPhotonNgammaMoreAverageMinus1ToNgamma(0),fhPhotonNgammaOverPtCut(),
82 fhPhotonBkgRhoVsNtracks(0),fhPhotonBkgRhoVsNclusters(0),fhPhotonBkgRhoVsCentrality(0),
83 fhPhotonBkgRhoVsNcells(0),fhPhotonPt(0),fhPhotonPtCorrected(0),fhPhotonPtCorrectedZoom(0),fhPhotonPtDiff(0),
84 fhPhotonPtDiffVsCentrality(0),fhPhotonPtDiffVsNcells(0),fhPhotonPtDiffVsNtracks(0),fhPhotonPtDiffVsNclusters(0),
85 fhPhotonSumPtInCone(0),fhPhotonSumPtCorrectInCone(0),fhPhotonSumPtChargedInCone(0),
86 fhSelectedJetPhiVsEta(0),fhSelectedJetChBkgEnergyVsPtJet(0),fhSelectedJetChAreaVsPtJet(0),fhSelectedJetNjet(0),fhSelectedNtracks(0),
87 fhSelectedTrackPhiVsEta(0),fhCuts2(0),
88 fhSelectedPhotonNLMVsPt(0),fhSelectedPhotonLambda0VsPt(0), fhRandomPhiEta(),
89 fhMCPhotonCuts(0),fhMCPhotonPt(0),fhMCPhotonEtaPhi(0),fhMCJetOrigin(0),
90 fhMCJetNPartVsPt(0),fhMCJetChNPartVsPt(0),fhMCJetNPart150VsPt(0),fhMCJetChNPart150VsPt(0),fhMCJetChNPart150ConeVsPt(0),
91 fhMCJetRatioChFull(0),fhMCJetRatioCh150Ch(0),
92 fhMCJetEtaPhi(0),fhMCJetChEtaPhi(0),fhMCJet150EtaPhi(0),fhMCJetCh150EtaPhi(0),fhMCJetCh150ConeEtaPhi(0),
141 fMCJetCh150ConePt(0),
142 fMCJetCh150ConeNPart(0),
143 fMCJetCh150ConeEta(0),
144 fMCJetCh150ConePhi(0)
147 for(
Int_t i=0;i<10;i++)
172 outputContainer->SetName(
"ParticleJetFinderHistos") ;
189 fhDeltaPhiCorrect =
new TH2F(
"DeltaPhiCorrect",
"#phi_{trigger} - #phi_{jet} vs p_{T trigger}",nptbins,ptmin,ptmax,100,0,6.5);
194 fhDeltaPhi0PiCorrect =
new TH2F(
"DeltaPhi0PiCorrect",
"#phi_{trigger} - #phi_{jet} (0,#pi) vs p_{T trigger}",nptbins,ptmin,ptmax,100,0,3.5);
200 fhDeltaEta =
new TH2F(
"DeltaEta",
"#eta_{trigger} - #eta_{jet} vs p_{T trigger}",nptbins,ptmin,ptmax,100,-2,2);
202 fhDeltaEta->SetXTitle(
"p_{T trigger} (GeV/c)");
205 fhDeltaPt =
new TH2F(
"DeltaPt",
"p_{T trigger} - p_{T jet} vs p_{T trigger}",nptbins,ptmin,ptmax,150,-50,100);
207 fhDeltaPt->SetXTitle(
"p_{T trigger} (GeV/c)");
210 fhPtRatio =
new TH2F(
"PtRatio",
"p_{T jet} / p_{T trigger} vs p_{T trigger}",nptbins,ptmin,ptmax,200,0,2.);
212 fhPtRatio->SetXTitle(
"p_{T trigger} (GeV/c)");
215 fhPt =
new TH2F(
"Pt",
"p_{T jet} vs p_{T trigger}",nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
216 fhPt->SetYTitle(
"p_{T jet}(GeV/c)");
217 fhPt->SetXTitle(
"p_{T trigger} (GeV/c)");
218 outputContainer->Add(
fhPt);
220 fhFFz =
new TH2F(
"FFz",
"z = p_{T i charged}/p_{T trigger} vs p_{T trigger}",nptbins,ptmin,ptmax,200,0.,2);
221 fhFFz->SetYTitle(
"z");
222 fhFFz->SetXTitle(
"p_{T trigger}");
223 outputContainer->Add(
fhFFz) ;
225 fhFFxi =
new TH2F(
"FFxi",
"#xi = ln(p_{T trigger}/p_{T i charged}) vs p_{T trigger}", nptbins,ptmin,ptmax,100,0.,10.);
227 fhFFxi->SetXTitle(
"p_{T trigger}");
228 outputContainer->Add(
fhFFxi) ;
230 fhFFpt =
new TH2F(
"FFpt",
"p_{T i charged} vs p_{T trigger}", nptbins,ptmin,ptmax,100,0.,50.);
231 fhFFpt->SetYTitle(
"p_{T charged hadron}");
232 fhFFpt->SetXTitle(
"p_{T trigger}");
233 outputContainer->Add(
fhFFpt) ;
235 fhNTracksInCone =
new TH2F(
"NTracksInCone",
"Number of tracks in cone vs p_{T trigger}", nptbins,ptmin,ptmax,100,0.,150.);
241 fhJetFFz =
new TH2F(
"JetFFz",
"z = p_{T i charged}/p_{T jet} vs p_{T jet}",nptbins,ptmin,ptmax,200,0.,2);
246 fhJetFFxi =
new TH2F(
"JetFFxi",
"#xi = ln(p_{T jet}/p_{T i charged}) vs p_{T jet}", nptbins,ptmin,ptmax,100,0.,10.);
251 fhJetFFpt =
new TH2F(
"JetFFpt",
"p_{T i charged} vs p_{T jet}", nptbins,ptmin,ptmax,100,0.,50.);
252 fhJetFFpt->SetYTitle(
"p_{T charged hadron}");
256 fhJetFFzCor =
new TH2F(
"JetFFzCor",
"z = -cos(#alpha(jet,trig))*p_{T i charged}/p_{T jet} vs p_{T jet}",nptbins,ptmin,ptmax,200,0.,2);
261 fhJetFFxiCor =
new TH2F(
"JetFFxiCor",
"#xi = ln(p_{T jet}/(-cos(#alpha(jet,trig))*p_{T i charged})) vs p_{T jet}", nptbins,ptmin,ptmax,100,0.,10.);
266 fhGamPtPerTrig =
new TH1F(
"GamPtPerTrig",
"GamPtPerTrig", nptbins,ptmin,ptmax);
271 fhPtGamPtJet =
new TH2F(
"PtGamPtJet",
"p_{T #gamma} vs p_{T jet}", nptbins,ptmin,ptmax,150,-50.,100.);
278 fhBkgFFz[0] =
new TH2F(
"BkgFFzRC",
"z = p_{T i charged}/p_{T trigger} vs p_{T trigger} Bkg RC" ,nptbins,ptmin,ptmax,200,0.,2);
279 fhBkgFFz[1] =
new TH2F(
"BkgFFzPCG",
"z = p_{T i charged}/p_{T trigger} vs p_{T trigger} Bkg PCG" ,nptbins,ptmin,ptmax,200,0.,2);
280 fhBkgFFz[2] =
new TH2F(
"BkgFFzPCJ",
"z = p_{T i charged}/p_{T trigger} vs p_{T trigger} Bkg PCJ" ,nptbins,ptmin,ptmax,200,0.,2);
281 fhBkgFFz[3] =
new TH2F(
"BkgFFzMP",
"z = p_{T i charged}/p_{T trigger} vs p_{T trigger} Bkg MP" ,nptbins,ptmin,ptmax,200,0.,2);
282 fhBkgFFz[4] =
new TH2F(
"BkgFFzTest",
"z = p_{T i charged}/p_{T trigger} vs p_{T trigger} Bkg Test",nptbins,ptmin,ptmax,200,0.,2);
283 for(
Int_t i=0;i<5;i++){
285 fhBkgFFz[i]->SetXTitle(
"p_{T trigger}");
289 fhBkgFFxi[0] =
new TH2F(
"BkgFFxiRC",
"#xi = ln(p_{T trigger}/p_{T i charged}) vs p_{T trigger} Bkg RC", nptbins,ptmin,ptmax,100,0.,10.);
290 fhBkgFFxi[1] =
new TH2F(
"BkgFFxiPCG",
"#xi = ln(p_{T trigger}/p_{T i charged}) vs p_{T trigger} Bkg PCG", nptbins,ptmin,ptmax,100,0.,10.);
291 fhBkgFFxi[2] =
new TH2F(
"BkgFFxiPCJ",
"#xi = ln(p_{T trigger}/p_{T i charged}) vs p_{T trigger} Bkg PCJ", nptbins,ptmin,ptmax,100,0.,10.);
292 fhBkgFFxi[3] =
new TH2F(
"BkgFFxiMP",
"#xi = ln(p_{T trigger}/p_{T i charged}) vs p_{T trigger} Bkg MP", nptbins,ptmin,ptmax,100,0.,10.);
293 fhBkgFFxi[4] =
new TH2F(
"BkgFFxiTest",
"#xi = ln(p_{T trigger}/p_{T i charged}) vs p_{T trigger} Bkg Test",nptbins,ptmin,ptmax,100,0.,10.);
294 for(
Int_t i=0;i<5;i++){
296 fhBkgFFxi[i]->SetXTitle(
"p_{T trigger}");
300 fhBkgFFpt[0] =
new TH2F(
"BkgFFptRC",
"p_{T i charged} vs p_{T trigger} Bkg RC", nptbins,ptmin,ptmax,100,0.,50.);
301 fhBkgFFpt[1] =
new TH2F(
"BkgFFptPCG",
"p_{T i charged} vs p_{T trigger} Bkg PCG", nptbins,ptmin,ptmax,100,0.,50.);
302 fhBkgFFpt[2] =
new TH2F(
"BkgFFptPCJ",
"p_{T i charged} vs p_{T trigger} Bkg PCJ", nptbins,ptmin,ptmax,100,0.,50.);
303 fhBkgFFpt[3] =
new TH2F(
"BkgFFptMP",
"p_{T i charged} vs p_{T trigger} Bkg MP", nptbins,ptmin,ptmax,100,0.,50.);
304 fhBkgFFpt[4] =
new TH2F(
"BkgFFptTest",
"p_{T i charged} vs p_{T trigger} Bkg Test", nptbins,ptmin,ptmax,100,0.,50.);
305 for(
Int_t i=0;i<5;i++){
306 fhBkgFFpt[i]->SetYTitle(
"p_{T charged hadron}");
307 fhBkgFFpt[i]->SetXTitle(
"p_{T trigger}");
311 fhBkgNTracksInCone[0] =
new TH2F(
"BkgNTracksInConeRC",
"Number of tracks in cone vs p_{T trigger} Bkg RC", nptbins,ptmin,ptmax,100,0.,150.);
312 fhBkgNTracksInCone[1] =
new TH2F(
"BkgNTracksInConePCG",
"Number of tracks in cone vs p_{T trigger} Bkg PCG", nptbins,ptmin,ptmax,100,0.,150.);
313 fhBkgNTracksInCone[2] =
new TH2F(
"BkgNTracksInConePCJ",
"Number of tracks in cone vs p_{T trigger} Bkg PCJ", nptbins,ptmin,ptmax,100,0.,150.);
314 fhBkgNTracksInCone[3] =
new TH2F(
"BkgNTracksInConeMP",
"Number of tracks in cone vs p_{T trigger} Bkg MP", nptbins,ptmin,ptmax,100,0.,150.);
315 fhBkgNTracksInCone[4] =
new TH2F(
"BkgNTracksInConeTest",
"Number of tracks in cone vs p_{T trigger} Bkg Test", nptbins,ptmin,ptmax,100,0.,150.);
316 for(
Int_t i=0;i<5;i++){
322 fhBkgSumPtInCone[0] =
new TH2F(
"BkgSumPtInConeRC",
"Sum P_{T} in cone vs p_{T trigger} Bkg RC", nptbins,ptmin,ptmax,100,0.,100.);
323 fhBkgSumPtInCone[1] =
new TH2F(
"BkgSumPtInConePCG",
"Sum P_{T} in cone vs p_{T trigger} Bkg PCG", nptbins,ptmin,ptmax,100,0.,100.);
324 fhBkgSumPtInCone[2] =
new TH2F(
"BkgSumPtInConePCJ",
"Sum P_{T} in cone vs p_{T trigger} Bkg PCJ", nptbins,ptmin,ptmax,100,0.,100.);
325 fhBkgSumPtInCone[3] =
new TH2F(
"BkgSumPtInConeMP",
"Sum P_{T} in cone vs p_{T trigger} Bkg MP", nptbins,ptmin,ptmax,100,0.,100.);
326 fhBkgSumPtInCone[4] =
new TH2F(
"BkgSumPtInConeTest",
"Sum P_{T} in cone vs p_{T trigger} Bkg Test", nptbins,ptmin,ptmax,100,0.,100.);
327 for(
Int_t i=0;i<5;i++){
333 fhBkgSumPtnTracksInCone[0] =
new TH2F(
"BkgSumPtnTracksInConeRC",
"Sum p_{T} / Number of tracks in cone vs p_{T trigger} Bkg RC", nptbins,ptmin,ptmax,100,0.,20.);
334 fhBkgSumPtnTracksInCone[1] =
new TH2F(
"BkgSumPtnTracksInConePCG",
"Sum p_{T} / Number of tracks in cone vs p_{T trigger} Bkg PCG", nptbins,ptmin,ptmax,100,0.,20.);
335 fhBkgSumPtnTracksInCone[2] =
new TH2F(
"BkgSumPtnTracksInConePCJ",
"Sum p_{T} / Number of tracks in cone vs p_{T trigger} Bkg PCJ", nptbins,ptmin,ptmax,100,0.,20.);
336 fhBkgSumPtnTracksInCone[3] =
new TH2F(
"BkgSumPtnTracksInConeMP",
"Sum p_{T} / Number of tracks in cone vs p_{T trigger} Bkg MP", nptbins,ptmin,ptmax,100,0.,20.);
337 fhBkgSumPtnTracksInCone[4] =
new TH2F(
"BkgSumPtnTracksInConeTest",
"Sum p_{T} / Number of tracks in cone vs p_{T trigger} Bkg Test", nptbins,ptmin,ptmax,100,0.,20.);
338 for(
Int_t i=0;i<5;i++){
346 fhNjetsNgammas =
new TH2F(
"NjetsNgammas",
" Number of jets vs number of gammas in event",20,0.,100.,10,0.,80.);
351 fhCuts =
new TH1F(
"Cuts",
" Cuts",10,0.,10.);
352 fhCuts->SetYTitle(
"Counts");
353 fhCuts->SetXTitle(
"Cut number");
354 outputContainer->Add(
fhCuts) ;
356 fhDeltaPhiBefore =
new TH2F(
"DeltaPhiBefore",
"#phi_{trigger} - #phi_{jet} vs p_{T trigger}",nptbins,ptmin,ptmax,100,0,6.5);
361 fhDeltaEtaBefore =
new TH2F(
"DeltaEtaBefore",
"#eta_{trigger} - #eta_{jet} vs p_{T trigger}",nptbins,ptmin,ptmax,100,-2,2);
366 fhDeltaPtBefore =
new TH2F(
"DeltaPtBefore",
"p_{T trigger} - p_{T jet} vs p_{T trigger}",nptbins,ptmin,ptmax,100,-50,50);
371 fhPtRatioBefore =
new TH2F(
"PtRatioBefore",
"p_{T jet} / p_{T trigger} vs p_{T trigger}",nptbins,ptmin,ptmax,200,0,2.);
376 fhPtBefore =
new TH2F(
"PtBefore",
"p_{T jet} vs p_{T trigger}",nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
378 fhPtBefore->SetXTitle(
"p_{T trigger} (GeV/c)");
381 fhDeltaPhi0PiCorrectBefore =
new TH2F(
"DeltaPhi0PiCorrectBefore",
"#phi_{trigger} - #phi_{jet} (0,#pi) vs p_{T trigger}",nptbins,ptmin,ptmax,100,0,3.5);
387 fhJetPtBefore =
new TH1F(
"JetPtBefore",
"JetPtBefore",150,-50,100);
397 fhJetPt =
new TH1F(
"JetPt",
"JetPt",150,-50,100);
399 fhJetPt->SetXTitle(
"p_{T jet}(GeV/c)");
400 outputContainer->Add(
fhJetPt) ;
402 fhJetPtMostEne =
new TH1F(
"JetPtMostEne",
"JetPtMostEne",150,0,150);
407 fhJetPhi =
new TH1F(
"JetPhi",
"JetPhi",130,0,6.5);
412 fhJetEta =
new TH1F(
"JetEta",
"JetEta",100,-1,1);
460 for(
Int_t i=0;i<10;i++){
461 fhJetNjetOverPtCut[i] =
new TH1F(Form(
"JetNjetOverPtCut%d", i),Form(
"JetNjetOverPtCut%d", i),100,0,100);
489 fhJetDeltaEtaDeltaPhi =
new TH2F(
"JetDeltaEtaDeltaPhi",
"#Delta #eta^{jet-track} vs. #Delta #phi^{jet-track} for jet tracks",100,-0.8,0.8,100,-0.8,0.8);
495 fhJetDeltaEtaDeltaPhiAllTracks =
new TH2F(
"JetDeltaEtaDeltaPhiAllTracks",
"#Delta #eta^{jet-track} vs. #Delta #phi^{jet-track} for all tracks",100,-3.2,3.2,100,-3.2,3.2);
507 for(
Int_t i=0;i<6;i++){
508 if(i==0)
fhJetNtracksInJetAboveThr[i] =
new TH2F(Form(
"JetNtracksInJetAboveThr%d", i),Form(
"JetNtracksInJetAboveThr%d", i),100,0,100,100,0,200);
515 for(
Int_t i=0;i<5;i++){
540 for(
Int_t i=0;i<4;i++){
541 fhBkgJetBackground[i] =
new TH1F(Form(
"BkgJetBackground%d", i),Form(
"BkgJetBackground%d", i),100,0,200);
546 fhBkgJetSigma[i] =
new TH1F(Form(
"BkgJetSigma%d", i),Form(
"BkgJetSigma%d", i),100,0,50);
551 fhBkgJetArea[i] =
new TH1F(Form(
"BkgJetArea%d", i),Form(
"BkgJetArea%d", i),100,0,1);
599 for(
Int_t i=0;i<10;i++){
600 fhPhotonNgammaOverPtCut[i] =
new TH1F(Form(
"PhotonNgammaOverPtCut%d",i),Form(
"PhotonNgammaOverPtCut%d",i),100,0,100);
627 fhPhotonPt =
new TH1F(
"PhotonPt",
"PhotonPt",220,-10,100);
628 fhPhotonPt->SetXTitle(
"p_{T,#gamma} (GeV/c)");
715 fhCuts2 =
new TH1F(
"Cuts2",
"Cuts2",10,0.,10.);
717 fhCuts2->SetXTitle(
"Cut number");
731 fhRandomPhiEta[0] =
new TH2F(
"RandomPhiEtaRC",
"RandomPhiEtaRC", 100,0,6.5,100,-1.,1.);
732 fhRandomPhiEta[1] =
new TH2F(
"RandomPhiEtaPCG",
"RandomPhiEtaPerpConePhoton",100,0,6.5,100,-1.,1.);
733 fhRandomPhiEta[2] =
new TH2F(
"RandomPhiEtaPCJ",
"RandomPhiEtaPerpConeJet", 100,0,6.5,100,-1.,1.);
734 fhRandomPhiEta[3] =
new TH2F(
"RandomPhiEtaMP",
"RandomPhiEtaMidPoint", 100,0,6.5,100,-1.,1.);
735 fhRandomPhiEta[4] =
new TH2F(
"RandomPhiEtaTest",
"RandomPhiEtaTest", 100,0,6.5,100,-1.,1.);
736 for(
Int_t i=0;i<5;i++){
744 fhMCPhotonCuts =
new TH1F(
"MCPhotonCuts",
"MCPhotonCuts",10,0.,10.);
749 fhMCPhotonPt =
new TH1F(
"MCPhotonPt",
"MCPhotonPt",100,0.,100.);
759 fhMCJetOrigin =
new TH1F(
"MCJetOrigin",
"MCJetOrigin",35,-10.,25.);
796 fhMCJetRatioCh150Ch->SetXTitle(
"p_{T,charged-jet,pT>150MeV/c}^{gen}/p_{T,charged-jet}^{gen}");
885 return outputContainer;
930 particlePt-=(
fGamRho*particle->GetNCells());
948 Int_t njets = aodRecJets->GetEntriesFast();
949 AliAODJet * jet = 0 ;
952 Double_t particlePhi=particle->Phi();
956 Bool_t photonOnlyOnce=kTRUE;
958 for(
Int_t ijet = 0; ijet < njets ; ijet++)
960 jet =
dynamic_cast<AliAODJet*
>(aodRecJets->At(ijet));
964 AliInfo(
"Jet not in container");
975 if(TMath::Abs(jet->Eta()) > (0.9 -
fJetConeSize) )
continue;
985 jetPt-= (
fJetRho * jet->EffectiveAreaCharged() );
993 Double_t deltaPhi0pi = TMath::Abs(particle->Phi()-jet->Phi());
996 deltaPhi = particlePhi - jet->Phi() ;
997 if ( deltaPhi0pi > TMath::Pi() ) deltaPhi0pi = 2. * TMath::Pi() - deltaPhi0pi ;
998 if(deltaPhi<0) deltaPhi +=(TMath::Pi()*2.);
1009 photonOnlyOnce=kFALSE;
1024 AliDebug(5,Form(
"Jet %d, Ratio pT %2.3f, Delta phi %2.3f",ijet,ratio,deltaPhi));
1028 (TMath::Abs(deltaPhi-TMath::Pi()) < TMath::Abs(dphiprev-TMath::Pi()) )){
1029 dphiprev = deltaPhi;
1060 AliDebug(1,
"There are no jets available for this analysis");
1066 AliFatal(Form(
"No input particles in AOD with name branch < %s > \n",
1071 if(strcmp(
GetInputAODBranch()->GetClass()->GetName(),
"AliAODPWG4ParticleCorrelation"))
1073 AliFatal(Form(
"Wrong type of AOD object, change AOD class name in input AOD: It should be <AliAODPWG4ParticleCorrelation> and not <%s>",
1082 TClonesArray *aodRecJets = 0;
1084 AliDebug(3,Form(
"GetNonStandardJets function (from reader) is called"));
1086 AliDebug(3,Form(
"aodRecJets %p",aodRecJets));
1090 AliFatal(
"List of jets is null");
1093 nJets=aodRecJets->GetEntries();
1094 AliDebug(3,Form(
"nJets %d",nJets));
1106 AliAODJetEventBackground* aodBkgJets = 0;
1108 AliDebug(3,
"GetBackgroundJets function is called");
1110 AliDebug(3,Form(
"aodBkgJets %p",aodBkgJets));
1111 if(aodBkgJets==0x0){
1113 AliFatal(
"No jet background found\n");
1116 if(
GetDebug() > 3) aodBkgJets->Print(
"c");
1122 rhoEvent = aodBkgJets->GetBackground(2);
1130 AliDebug(3,
"Begin jet finder correlation analysis, fill AODs");
1131 AliDebug(3,Form(
"In particle branch aod entries %d\n", ntrig));
1132 AliDebug(3,Form(
"In standard jet branch aod entries %d\n", event->GetNJets()));
1133 AliDebug(3,Form(
"In non standard jet branch aod entries %d\n", nJets));
1153 AliAODPWG4ParticleCorrelation* particlecorr =0;
1154 for(
Int_t iaod = 0; iaod < ntrig ; iaod++){
1155 particlecorr = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iaod));
1156 if(particlecorr->Pt() > maxPt) {
1157 maxPt = particlecorr->Pt();
1165 Int_t numberOfcells=0;
1168 Int_t photonRhoArrayIndex=0;
1169 for(
Int_t iaod = 0; iaod < ntrig ; iaod++){
1170 particlecorr = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iaod));
1171 if(iaod==maxIndex)
continue;
1177 photonRhoArr[photonRhoArrayIndex]=particlecorr->Pt()/ particlecorr->GetNCells();
1178 numberOfcells+=particlecorr->GetNCells();
1180 photonRhoArrayIndex++;
1182 if(photonRhoArrayIndex>0) medianPhotonRho=TMath::Median(photonRhoArrayIndex,photonRhoArr);
1183 delete [] photonRhoArr;
1197 Int_t indexMostEnePhoton=-1;
1198 AliAODPWG4ParticleCorrelation* particle =0;
1201 for(
Int_t iaod = 0; iaod < ntrig ; iaod++){
1209 ptCorrect = particle->Pt() - medianPhotonRho * particle->GetNCells();
1211 if( ptCorrect > mostEnePhotonPt ){
1212 mostEnePhotonPt = ptCorrect;
1213 indexMostEnePhoton = iaod ;
1221 Int_t indexMostEneJet=-1;
1222 AliAODJet * jet = 0 ;
1224 for(
Int_t ijet = 0; ijet < nJets ; ijet++){
1225 jet =
dynamic_cast<AliAODJet*
>(aodRecJets->At(ijet));
1228 if(TMath::Abs(jet->Eta()) > (0.9 -
fJetConeSize) )
continue;
1230 ptCorrect = jet->Pt() - rhoEvent * jet->EffectiveAreaCharged();
1231 if(ptCorrect > mostEneJetPt){
1232 mostEneJetPt = ptCorrect;
1233 indexMostEneJet = ijet;
1241 if(indexMostEneJet>=0 && indexMostEnePhoton>=0){
1242 particle = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(indexMostEnePhoton));
1243 jet =
dynamic_cast<AliAODJet*
>(aodRecJets-> At(indexMostEneJet));
1244 if(jet)particle->SetRefJet(jet);
1251 for(
Int_t iaod = 0; iaod < ntrig ; iaod++){
1252 AliAODPWG4ParticleCorrelation* particle = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iaod));
1258 AliDebug(2,Form(
"Jet with index %d selected",ijet));
1259 AliAODJet *jet =
dynamic_cast<AliAODJet*
>(aodRecJets-> At(ijet));
1260 if(jet)particle->SetRefJet(jet);
1267 AliDebug(1,
" End fill AODs \n");
1275 AliDebug(3,
"I use MakeAnalysisFillHistograms");
1276 AliDebug(3,Form(
"ntracks before iso %d\n",
GetCTSTracks()->GetEntriesFast()));
1296 AliDebug(3,
"There are no jets available for this analysis");
1302 AliFatal(Form(
"No input particles in AOD with name branch < %s >",
1308 TClonesArray *aodRecJets = 0;
1310 AliDebug(3,
"GetNonStandardJets function (from reader) is called");
1315 AliFatal(
"Jets container not found\n");
1318 nJets=aodRecJets->GetEntries();
1325 if(aodRecJets) nJets=aodRecJets->GetEntries();
1333 AliAODJetEventBackground* aodBkgJets = 0;
1335 AliDebug(3,
"GetBackgroundJets function is called");
1337 AliDebug(3,Form(
"aodBkgJets %p",aodBkgJets));
1341 AliFatal(
"No jet background container found");
1344 if(
GetDebug() > 3) aodBkgJets->Print(
"c");
1358 for(
Int_t i=0;i<4;i++)
1371 AliAODTrack *aodtrack;
1376 for(itrack = 0; itrack < nCTSTracks ; itrack++)
1378 aodtrack = dynamic_cast <AliAODTrack*>(
GetCTSTracks()->At(itrack));
1380 if(!aodtrack)
continue;
1384 sumTrackPt+=aodtrack->Pt();
1394 AliAODJet * jettmp = 0 ;
1401 Int_t nJetsOverThreshold[10]={nJets,0,0,0,0,0,0,0,0,0};
1404 Int_t sumNJetTrack=0;
1405 Int_t nTracksInJet=0;
1407 for(
Int_t ijet = 0; ijet < nJets ; ijet++)
1409 jettmp =
dynamic_cast<AliAODJet*
>(aodRecJets->At(ijet));
1411 if(!jettmp)
continue;
1415 jetPttmp = jettmp->Pt() - rhoEvent * jettmp->EffectiveAreaCharged();
1418 AliVTrack* jettrack = 0x0 ;
1420 Int_t nTrackThrGeV[5]={0,0,0,0,0};
1422 nTracksInJet=(jettmp->GetRefTracks())->GetEntriesFast();
1426 if(nTracksInJet==0)
continue;
1428 sumNJetTrack+=nTracksInJet;
1430 for(itrack=0;itrack<nTracksInJet;itrack++)
1432 jettrack=(AliVTrack *) ((jettmp->GetRefTracks())->At(itrack));
1434 if(!jettrack)
continue;
1438 sumJetTrackPt+=jettrack->Pt();
1442 if(jettrack->Pt()>1.) nTrackThrGeV[0]++;
1443 if(jettrack->Pt()>2.) nTrackThrGeV[1]++;
1444 if(jettrack->Pt()>3.) nTrackThrGeV[2]++;
1445 if(jettrack->Pt()>4.) nTrackThrGeV[3]++;
1446 if(jettrack->Pt()>5.) nTrackThrGeV[4]++;
1451 for(itrack = 0; itrack < nCTSTracks ; itrack++)
1453 aodtrack = dynamic_cast <AliAODTrack*>(
GetCTSTracks()->At(itrack));
1463 for(itrk=0;itrk<5;itrk++) {
1468 for(itrk=0;itrk<5;itrk++)
1472 for(itrk=0;itrk<5;itrk++)
1475 if(nTrackThrGeV[4]>0){
1476 for(itrk=0;itrk<5;itrk++)
1489 if(jetPttmp>ptMostEne)
1491 ptMostEne = jetPttmp;
1501 AliDebug(5,Form(
"ChargedBgEnergy %f EffectiveAreaCharged %f\n", jettmp->ChargedBgEnergy(),jettmp->EffectiveAreaCharged()));
1503 for(iCounter=1;iCounter<10;iCounter++)
1505 if(jetPttmp>iCounter) nJetsOverThreshold[iCounter]++;
1508 var1tmp = jettmp->Phi();
1509 var2tmp = jettmp->Eta();
1535 for(iCounter=0;iCounter<10;iCounter++)
1538 nJetsOverThreshold[iCounter]=0;
1548 AliDebug(1,
"Begin jet finder correlation analysis, fill histograms");
1549 AliDebug(1,Form(
"In particle branch aod entries %d\n", ntrig));
1550 AliDebug(1,Form(
"In jet output branch aod entries %d\n", event->GetNJets()));
1564 nJetsOverThreshold[0]=ntrig;
1566 for(
Int_t iaod = 0; iaod < ntrig ; iaod++)
1568 AliAODPWG4ParticleCorrelation* particlecorr = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iaod));
1569 tmpPt = particlecorr->Pt();
1576 for(iCounter=1;iCounter<10;iCounter++)
1578 if(tmpPt>iCounter) nJetsOverThreshold[iCounter]++;
1583 for(iCounter=0;iCounter<10;iCounter++)
1595 Int_t numberOfcells=0;
1607 Int_t counterGamma=0;
1608 Int_t counterGammaMinus1=0;
1610 Int_t photonRhoArrayIndex=0;
1612 for(
Int_t iaod = 0; iaod < ntrig ; iaod++){
1613 AliAODPWG4ParticleCorrelation* particlecorr = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iaod));
1614 if( particlecorr->Pt() > sumPt/ntrig ) counterGamma++;
1615 if( particlecorr->Pt() > (sumPt-maxPt)/(ntrig-1) ) counterGammaMinus1++;
1617 if(iaod==maxIndex)
continue;
1623 photonRhoArr[photonRhoArrayIndex]=particlecorr->Pt()/ particlecorr->GetNCells();
1624 numberOfcells+=particlecorr->GetNCells();
1625 photonRhoArrayIndex++;
1627 if(photonRhoArrayIndex>0) medianPhotonRho=TMath::Median(photonRhoArrayIndex,photonRhoArr);
1628 delete [] photonRhoArr;
1644 AliVTrack* trackTmp = 0x0 ;
1647 for(
Int_t iaod = 0; iaod < ntrig ; iaod++)
1649 AliAODPWG4ParticleCorrelation* particlecorr = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iaod));
1654 Int_t ncells = particlecorr->GetNCells();
1670 for(
Int_t iaod2 = 0; iaod2 < ntrig ; iaod2++)
1672 if(iaod==iaod2)
continue;
1674 AliAODPWG4ParticleCorrelation* particlecorr2 = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iaod2));
1679 photon2Corrected = particlecorr2->Pt() - particlecorr2->GetNCells() * medianPhotonRho;
1682 if( TMath::Sqrt((particlecorr->Eta()-particlecorr2->Eta())*(particlecorr->Eta()-particlecorr2->Eta()) +
1683 (particlecorr->Phi()-particlecorr2->Phi())*(particlecorr->Phi()-particlecorr2->Phi()) )<
fGammaConeSize ){
1684 sumPtTmp+= particlecorr2->Pt();
1685 sumPtCorrectTmp+=photon2Corrected;
1698 p3Tmp.SetXYZ(trackTmp->Px(),trackTmp->Py(),trackTmp->Pz());
1699 if( TMath::Sqrt((particlecorr->Eta()-p3Tmp.Eta())*(particlecorr->Eta()-p3Tmp.Eta()) +
1700 (particlecorr->Phi()-p3Tmp.Phi())*(particlecorr->Phi()-p3Tmp.Phi()) )<
fGammaConeSize ){
1701 sumPtTmp+=p3Tmp.Pt();
1728 for(
Int_t iaod = 0; iaod < ntrig ; iaod++)
1730 AliAODPWG4ParticleCorrelation* particlecorr = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iaod));
1733 AliDebug(1,Form(
"OnlyIsolated %d !particlecorr->IsIsolated() %d \n",
OnlyIsolated(), !particlecorr->IsIsolated()));
1735 if(
OnlyIsolated() && !particlecorr->IsIsolated())
continue;
1746 AliAODJet * jet = particlecorr->GetJet();
1753 AliDebug(1,Form(
"Jet with index %d selected \n",ijet));
1755 jet =
dynamic_cast<AliAODJet*
>(aodRecJets-> At(ijet));
1757 if(jet) particlecorr->SetRefJet(jet);
1762 if (!jet) continue ;
1783 Double_t ptJet = jet->Pt() - rhoEvent * jet->EffectiveAreaCharged();
1784 Double_t phiTrig = particlecorr->Phi();
1786 Double_t etaTrig = particlecorr->Eta();
1789 if(deltaPhi<0)deltaPhi+=(TMath::Pi()*2.);
1797 Double_t deltaPhiCorrect = TMath::Abs( particlecorr->Phi() - jet->Phi() );
1798 if ( deltaPhiCorrect > TMath::Pi() ) deltaPhiCorrect = 2. * TMath::Pi() - deltaPhiCorrect ;
1827 Double_t lambda0=particlecorr->GetM02();
1831 fGamTime = particlecorr->GetTime();
1839 for(
Int_t icalo=0; icalo <clusters->GetEntriesFast(); icalo++){
1840 AliVCluster* calo = (AliVCluster *) clusters->At(icalo);
1847 if( TMath::Sqrt((particlecorr->Eta()-p3Tmp.Eta())*(particlecorr->Eta()-p3Tmp.Eta()) +
1848 (particlecorr->Phi()-p3Tmp.Phi())*(particlecorr->Phi()-p3Tmp.Phi()) )<
fGammaConeSize ){
1863 for(itrack = 0; itrack < nCTSTracks ; itrack++){
1864 aodtrack = dynamic_cast <AliAODTrack*>(
GetCTSTracks()->At(itrack));
1865 if(!aodtrack)
continue;
1869 if(!aodtrack->IsHybridGlobalConstrainedGlobal())
continue;
1870 if(TMath::Sqrt((particlecorr->Phi() - aodtrack->Phi())*(particlecorr->Phi() - aodtrack->Phi()) +
1871 (particlecorr->Eta() - aodtrack->Eta())*(particlecorr->Eta() - aodtrack->Eta()) ) <
fGammaConeSize ) {
1886 TVector3 gammaVector,jetVector;
1887 gammaVector.SetXYZ(particlecorr->Px(),particlecorr->Py(),particlecorr->Pz());
1888 jetVector.SetXYZ(jet->Px(),jet->Py(),jet->Pz());
1894 Double_t angleJetGam = gammaVector.Angle(jetVector);
1900 Float_t rad = 0, pt = 0, eta = 0, phi = 0;
1901 Int_t npartcone = 0;
1907 AliDebug(1,Form(
"jet->GetRefTracks() %p",jet->GetRefTracks()));
1908 AliDebug(1,Form(
"GetCTSTracks() %p" ,
GetCTSTracks() ));
1913 ntracks = (jet->GetRefTracks())->GetEntriesFast();
1915 AliDebug(3,Form(
"ntracks %d\n",ntracks));
1916 AliVTrack* track = 0x0 ;
1917 for(
Int_t ipr = 0;ipr < ntracks ; ipr ++ ){
1921 track = (AliVTrack *) ((jet->GetRefTracks())->At(ipr));
1923 p3.SetXYZ(track->Px(),track->Py(),track->Pz());
1927 if(phi < 0) phi+=TMath::TwoPi();
1930 rad = TMath::Sqrt((eta-etaJet)*(eta-etaJet)+ (phi-phiJet)*(phi-phiJet));
1945 if(TMath::Cos(angleJetGam)<0 && ptJet!=0 && pt!=0 )
1957 fGamNLM = particlecorr->GetNLM();
1971 fJetArea = jet->EffectiveAreaCharged();
1972 fJetNtracks = (jet->GetRefTracks())->GetEntriesFast();
1976 fIso = particlecorr->IsIsolated();
1981 track = (AliVTrack *) ((jet->GetRefTracks())->At(itrack));
1982 if(track->Pt()>1.) nTrk1GeV++;
1983 if(track->Pt()>2.) nTrk2GeV++;
1991 AliDebug(1,
"End fill histograms");
2002 printf(
"**** Print %s %s ****\n", GetName(), GetTitle() ) ;
2007 printf(
"pT Ratio trigger/jet < %3.2f\n",
fRatioMaxCut) ;
2008 printf(
"pT Ratio trigger/jet > %3.2f\n",
fRatioMinCut) ;
2009 printf(
"fConeSize = %3.2f\n",
fConeSize) ;
2014 printf(
"Reconstructed jet cone size = %3.2f\n",
fJetConeSize) ;
2015 printf(
"Reconstructed jet minimum pt before background subtraction = %3.2f\n",
fJetMinPt) ;
2016 printf(
"Reconstructed jet minimum pt after background subtraction = %3.2f\n",
fJetMinPtBkgSub) ;
2017 printf(
"Reconstructed jet minimum area fraction = %3.2f\n",
fJetAreaFraction) ;
2075 Double_t Xz=jx/jz*(vertex[0]-1.)+vertex[1]*jy/jz;
2081 Double_t det = Xx*Yy*jz + Xy*Yz*jx + Xz*Yx*jy - Xx*Yz*jy - Xy*Yx*jz - Xz*Yy*jx;
2082 if(det==0)AliWarning(
"problem det==0\n");
2100 xVar=TMath::Cos(refPhi);
2101 yVar=TMath::Sin(refPhi);
2104 detX = xVar*Yy*jz + Xz*yVar*jy - xVar*Yz*jy - Xy*yVar*jz;
2105 detY = Xx*yVar*jz + xVar*Yz*jx - xVar*Yx*jz - Xz*yVar*jx;
2106 detZ = Xy*yVar*jx + xVar*Yx*jy - Xx*yVar*jy - xVar*Yy*jx;
2112 perp.SetXYZ(newX,newY,newZ);
2113 refEta = perp.Eta();
2114 refPhi = perp.Phi();
2115 if(refPhi<0)refPhi+=2*TMath::Pi();
2116 rad = TMath::Sqrt((gammaEta-refEta)*(gammaEta-refEta) + (gammaPhi-refPhi)*(gammaPhi-refPhi));
2117 rad2 = TMath::Sqrt((jetEta-refEta)*(jetEta-refEta) + (jetPhi-refPhi)*(jetPhi-refPhi));
2130 rad = TMath::Sqrt((gammaEta-refEta)*(gammaEta-refEta) + (gammaPhi-refPhi)*(gammaPhi-refPhi));
2131 rad2 = TMath::Sqrt((jetEta-refEta)*(jetEta-refEta) + (jetPhi-refPhi)*(jetPhi-refPhi));
2152 Double_t Xz=jx/jz*(vertex[0]-1.)+vertex[1]*jy/jz;
2158 Double_t det = Xx*Yy*jz + Xy*Yz*jx + Xz*Yx*jy - Xx*Yz*jy - Xy*Yx*jz - Xz*Yy*jx;
2159 if(det==0)AliWarning(
"problem det==0");
2176 xVar=TMath::Cos(refPhi);
2177 yVar=TMath::Sin(refPhi);
2180 detX = xVar*Yy*jz + Xz*yVar*jy - xVar*Yz*jy - Xy*yVar*jz;
2181 detY = Xx*yVar*jz + xVar*Yz*jx - xVar*Yx*jz - Xz*yVar*jx;
2182 detZ = Xy*yVar*jx + xVar*Yx*jy - Xx*yVar*jy - xVar*Yy*jx;
2188 perp.SetXYZ(newX,newY,newZ);
2189 refEta = perp.Eta();
2190 refPhi = perp.Phi();
2191 if(refPhi<0)refPhi+=2*TMath::Pi();
2192 rad = TMath::Sqrt((gammaEta-refEta)*(gammaEta-refEta) + (gammaPhi-refPhi)*(gammaPhi-refPhi));
2193 rad2 = TMath::Sqrt((jetEta-refEta)*(jetEta-refEta) + (jetPhi-refPhi)*(jetPhi-refPhi));
2209 Double_t cosAlpha=(jx*gx+jy*gy+jz*gz)/(jet.Mag()*gamma.Mag());
2210 Double_t cosinus=TMath::Sqrt((cosAlpha+1.)/2.);
2217 Double_t det = Zx*gy*jz + Zy*gz*jx + Zz*gx*jy - Zz*gy*jx - Zy*gx*jz - Zx*gz*jy;
2223 Double_t detX = -Zy*gz*cosinus +Zz*cosinus*jy + Zz*gy*cosinus - Zy*cosinus*jz;
2224 Double_t detY = Zx*cosinus*jz - Zz*gx*cosinus - Zz*cosinus*jx + Zx*gz*cosinus;
2225 Double_t detZ = -Zx*gy*cosinus + Zy*cosinus*jx + Zy*gx*cosinus - Zx*cosinus*jy;
2233 perp.SetXYZ(newX,newY,newZ);
2234 refEta = perp.Eta();
2235 refPhi = perp.Phi();
2236 if(refPhi<0)refPhi+=2*TMath::Pi();
2237 rad = TMath::Sqrt((gammaEta-refEta)*(gammaEta-refEta) + (gammaPhi-refPhi)*(gammaPhi-refPhi));
2238 rad2 = TMath::Sqrt((jetEta-refEta)*(jetEta-refEta) + (jetPhi-refPhi)*(jetPhi-refPhi));
2259 Double_t Xz=jx/jz*(vertex[0]-1.)+vertex[1]*jy/jz;
2266 Double_t Xlength=TMath::Sqrt(Xx*Xx+Xy*Xy+Xz*Xz);
2267 Double_t Ylength=TMath::Sqrt(Yx*Yx+Yy*Yy+Yz*Yz);
2274 xVar=TMath::Tan(refPhi)/ratio;
2279 perp.SetXYZ(newX,newY,newZ);
2280 refEta = perp.Eta();
2281 refPhi = perp.Phi();
2282 if(refPhi<0)refPhi+=2*TMath::Pi();
2283 rad = TMath::Sqrt((gammaEta-refEta)*(gammaEta-refEta) + (gammaPhi-refPhi)*(gammaPhi-refPhi));
2284 rad2 = TMath::Sqrt((jetEta-refEta)*(jetEta-refEta) + (jetPhi-refPhi)*(jetPhi-refPhi));
2293 AliVTrack* track = 0x0 ;
2297 Int_t npartcone = 0;
2299 for(
Int_t ipr = 0;ipr < ntracks ; ipr ++ ){
2301 p3.SetXYZ(track->Px(),track->Py(),track->Pz());
2309 if(phi < 0) phi+=TMath::TwoPi();
2311 rad = TMath::Sqrt((eta-refEta)*(eta-refEta) + (phi-refPhi)*(phi-refPhi));
2345 if(npartcone!=0) sumOverTracks = sumPt/npartcone;
2393 Bool_t inacceptance = kFALSE;
2394 AliAODMCParticle * primTmp = NULL;
2397 Int_t nParticlesInJet=0;
2398 Int_t nChargedParticlesInJet=0;
2399 Int_t nParticlesInJet150=0;
2400 Int_t nChargedParticlesInJet150=0;
2401 Int_t nChargedParticlesInJet150Cone=0;
2404 Double_t eneChargedParticlesInJet=0.;
2406 Double_t eneChargedParticlesInJet150=0.;
2407 Double_t eneChargedParticlesInJet150Cone=0.;
2410 Double_t pxChargedParticlesInJet=0.;
2412 Double_t pxChargedParticlesInJet150=0.;
2413 Double_t pxChargedParticlesInJet150Cone=0.;
2416 Double_t pyChargedParticlesInJet=0.;
2418 Double_t pyChargedParticlesInJet150=0.;
2419 Double_t pyChargedParticlesInJet150Cone=0.;
2422 Double_t etaChargedParticlesInJet=0.;
2424 Double_t etaChargedParticlesInJet150=0.;
2425 Double_t etaChargedParticlesInJet150Cone=0.;
2428 Double_t phiChargedParticlesInJet=0.;
2430 Double_t phiChargedParticlesInJet150=0.;
2431 Double_t phiChargedParticlesInJet150Cone=0.;
2434 Double_t ptChargedParticlesInJet=0.;
2436 Double_t ptChargedParticlesInJet150=0.;
2437 Double_t ptChargedParticlesInJet150Cone=0.;
2444 std::vector<Int_t> jetParticleIndex;
2447 AliDebug(3,
"I use stack");
2449 else if(
GetReader()->ReadAODMCParticles()) {
2454 primTmp = (AliAODMCParticle *) mcparticles->At(6);
2455 pdg=primTmp->GetPdgCode();
2456 AliDebug(3,Form(
"id 6 pdg %d, pt %f ",pdg,primTmp->Pt() ));
2457 if(TMath::Abs(pdg)<=6 ||pdg==21) {
2461 primTmp = (AliAODMCParticle *) mcparticles->At(7);
2462 pdg=primTmp->GetPdgCode();
2463 AliDebug(3,Form(
"id 7 pdg %d, pt %f",pdg,primTmp->Pt() ));
2464 if(TMath::Abs(pdg)<=6 ||pdg==21) {
2470 Int_t nprim = mcparticles->GetEntriesFast();
2471 for(
Int_t i=0; i < nprim; i++) {
2473 if ( !
GetReader()->AcceptParticleMCLabel( i ) ) continue ;
2475 AliAODMCParticle * prim = (AliAODMCParticle *) mcparticles->At(i);
2476 pdg = prim->GetPdgCode();
2477 mother=prim->GetMother();
2482 if(prim->GetStatus()!=1)
continue;
2486 AliDebug(5,Form(
"id %d, prim %d, physPrim %d, status %d\n",i,prim->IsPrimary(),prim->IsPhysicalPrimary(),prim->GetStatus()));
2489 primTmp = (AliAODMCParticle *) mcparticles->At(mother);
2490 mother=primTmp->GetMother();
2493 if(mother<6)
continue;
2497 primTmp = (AliAODMCParticle *) mcparticles->At(mother);
2499 if(primTmp->GetPdgCode()!=22)
continue;
2504 photonPt = prim->Pt() ;
2505 photonPhi = prim->Phi() ;
2506 if(photonPhi < 0) photonPhi+=TMath::TwoPi();
2507 photonEta = prim->Eta() ;
2513 fMomentum.SetPxPyPzE(prim->Px(),prim->Py(),prim->Pz(),prim->E());
2514 inacceptance = kFALSE;
2523 if(absID >= 0) inacceptance = kTRUE;
2524 AliDebug(3,Form(
"In EMCAL Real acceptance? %d",inacceptance));
2528 AliDebug(1,Form(
"In EMCAL fiducial cut acceptance? %d",inacceptance));
2533 AliWarning(
"not EMCALGeoMatrix set");
2538 AliDebug(5,Form(
"Photon Energy %f, Pt %f",prim->E(),prim->Pt()));
2545 if(prim->GetStatus()!=1)
continue;
2547 AliDebug(5,Form(
"id %d, prim %d, physPrim %d, status %d, pdg %d, E %f",
2548 i,prim->IsPrimary(),prim->IsPhysicalPrimary(),prim->GetStatus(),prim->GetPdgCode(),prim->E()));
2552 primTmp = (AliAODMCParticle *) mcparticles->At(mother);
2553 mother=primTmp->GetMother();
2554 AliDebug(5,Form(
"next mother %d",mother));
2556 if(mother<6)
continue;
2558 primTmp = (AliAODMCParticle *) mcparticles->At(mother);
2559 pdg=primTmp->GetPdgCode();
2560 if( !(TMath::Abs(pdg)<=6 || pdg==21) )
continue;
2563 jetParticleIndex.push_back(i);
2566 eneParticlesInJet+=prim->E();
2567 pxParticlesInJet+=prim->Px();
2568 pyParticlesInJet+=prim->Py();
2569 etaParticlesInJet+=(prim->E()*prim->Eta());
2570 photonPhi = prim->Phi() ;
2571 if(photonPhi < 0) photonPhi+=TMath::TwoPi();
2572 phiParticlesInJet+=(prim->E()*photonPhi);
2574 if(prim->Charge()!=0) {
2575 nChargedParticlesInJet++;
2576 eneChargedParticlesInJet+=prim->E();
2577 pxChargedParticlesInJet+=prim->Px();
2578 pyChargedParticlesInJet+=prim->Py();
2579 etaChargedParticlesInJet+=(prim->E()*prim->Eta());
2580 phiChargedParticlesInJet+=(prim->E()*photonPhi);
2582 if(prim->Pt()>0.150 && TMath::Abs(prim->Eta())<0.9 ) {
2583 nParticlesInJet150++;
2584 eneParticlesInJet150+=prim->E();
2585 pxParticlesInJet150+=prim->Px();
2586 pyParticlesInJet150+=prim->Py();
2587 etaParticlesInJet150+=(prim->E()*prim->Eta());
2588 phiParticlesInJet150+=(prim->E()*photonPhi);
2590 if(prim->Charge()!=0 && prim->Pt()>0.150 && TMath::Abs(prim->Eta())<0.9 ) {
2591 nChargedParticlesInJet150++;
2592 eneChargedParticlesInJet150+=prim->E();
2593 pxChargedParticlesInJet150+=prim->Px();
2594 pyChargedParticlesInJet150+=prim->Py();
2595 etaChargedParticlesInJet150+=(prim->E()*prim->Eta());
2596 phiChargedParticlesInJet150+=(prim->E()*photonPhi);
2602 if(eneParticlesInJet != 0.) {
2603 etaParticlesInJet/=eneParticlesInJet ;
2604 phiParticlesInJet/=eneParticlesInJet ;
2606 if(eneChargedParticlesInJet != 0) {
2607 etaChargedParticlesInJet/=eneChargedParticlesInJet;
2608 phiChargedParticlesInJet/=eneChargedParticlesInJet;
2610 if(eneParticlesInJet150 != 0) {
2611 etaParticlesInJet150/=eneParticlesInJet150;
2612 phiParticlesInJet150/=eneParticlesInJet150;
2614 if(eneChargedParticlesInJet150 != 0) {
2615 etaChargedParticlesInJet150/=eneChargedParticlesInJet150;
2616 phiChargedParticlesInJet150/=eneChargedParticlesInJet150;
2619 ptParticlesInJet=TMath::Sqrt(pxParticlesInJet*pxParticlesInJet+pyParticlesInJet*pyParticlesInJet);
2620 ptChargedParticlesInJet=TMath::Sqrt(pxChargedParticlesInJet*pxChargedParticlesInJet+pyChargedParticlesInJet*pyChargedParticlesInJet);
2621 ptParticlesInJet150=TMath::Sqrt(pxParticlesInJet150*pxParticlesInJet150+pyParticlesInJet150*pyParticlesInJet150);
2622 ptChargedParticlesInJet150=TMath::Sqrt(pxChargedParticlesInJet150*pxChargedParticlesInJet150+pyChargedParticlesInJet150*pyChargedParticlesInJet150);
2628 Int_t mostmostPtChargedId=-1;
2629 std::vector<Int_t>::iterator it;
2630 for( it=jetParticleIndex.begin(); it!=jetParticleIndex.end(); ++it ){
2631 AliAODMCParticle * prim = (AliAODMCParticle *) mcparticles->At(*it);
2634 if(phi < 0) phi+=TMath::TwoPi();
2636 distance=TMath::Sqrt((eta-etaParticlesInJet)*(eta-etaParticlesInJet)+(phi-phiParticlesInJet)*(phi-phiParticlesInJet));
2637 if(distance>coneJet) coneJet=distance;
2639 distance=TMath::Sqrt((eta-etaChargedParticlesInJet)*(eta-etaChargedParticlesInJet)+(phi-phiChargedParticlesInJet)*(phi-phiChargedParticlesInJet));
2640 if(distance>coneChargedJet) coneChargedJet=distance;
2642 distance=TMath::Sqrt((eta-etaParticlesInJet150)*(eta-etaParticlesInJet150)+(phi-phiParticlesInJet150)*(phi-phiParticlesInJet150));
2643 if(distance>coneJet150 && TMath::Abs(eta)<0.9 ) coneJet150=distance;
2645 distance=TMath::Sqrt((eta-etaChargedParticlesInJet150)*(eta-etaChargedParticlesInJet150)+(phi-phiChargedParticlesInJet150)*(phi-phiChargedParticlesInJet150));
2646 if(distance>coneChargedJet150 && TMath::Abs(eta)<0.9) coneChargedJet150=distance;
2648 if(prim->Charge()!=0 && prim->Pt()>0.150 && TMath::Abs(eta)<0.9) {
2649 if(prim->Pt()>mostPtCharged) {
2650 mostPtCharged=prim->Pt();
2651 mostmostPtChargedId=(*it);
2656 if(prim->Charge()!=0 && prim->Pt()>0.150 && TMath::Abs(eta)<0.9) {
2657 nChargedParticlesInJet150Cone++;
2658 eneChargedParticlesInJet150Cone+=prim->E();
2659 pxChargedParticlesInJet150Cone+=prim->Px();
2660 pyChargedParticlesInJet150Cone+=prim->Py();
2661 etaChargedParticlesInJet150Cone+=(prim->E()*eta);
2662 phiChargedParticlesInJet150Cone+=(prim->E()*phi);
2668 if(eneChargedParticlesInJet150Cone != 0) {
2669 etaChargedParticlesInJet150Cone/=eneChargedParticlesInJet150Cone;
2670 phiChargedParticlesInJet150Cone/=eneChargedParticlesInJet150Cone;
2672 ptChargedParticlesInJet150Cone=TMath::Sqrt(pxChargedParticlesInJet150Cone*pxChargedParticlesInJet150Cone+pyChargedParticlesInJet150Cone*pyChargedParticlesInJet150Cone);
2673 if(nChargedParticlesInJet150>0 && nChargedParticlesInJet150Cone<1){
2674 nChargedParticlesInJet150Cone=1;
2675 etaChargedParticlesInJet150Cone=((AliAODMCParticle *)mcparticles->At(mostmostPtChargedId))->Eta();
2676 phiChargedParticlesInJet150Cone=((AliAODMCParticle *)mcparticles->At(mostmostPtChargedId))->Phi();
2677 ptChargedParticlesInJet150Cone=((AliAODMCParticle *)mcparticles->At(mostmostPtChargedId))->Pt();
2684 jetParticleIndex.clear();
2688 AliDebug(3,Form(
"cone full %f, charged %f, full150 %f, charged150 %f",coneJet,coneChargedJet,coneJet150,coneChargedJet150));
2689 AliDebug(3,Form(
"Npart %d, NchPart %d, Npart(pt>150M) %d, NchPart(pt>150M) %d, NchPart(pt>150M)Cone %d\n",nParticlesInJet,nChargedParticlesInJet,nParticlesInJet150,nChargedParticlesInJet150,nChargedParticlesInJet150Cone));
2690 AliDebug(3,Form(
"Etot %f, Ech %f, E(pt>150M) %f, Ech(pt>150M) %f\n",eneParticlesInJet,eneChargedParticlesInJet,eneParticlesInJet150,eneChargedParticlesInJet150));
2691 AliDebug(3,Form(
"pt %f, ptch %f, pt(pt>150M) %f,ptch(pt>150M) %f,ptch(pt>150M)Cone %f\n",ptParticlesInJet,ptChargedParticlesInJet,ptParticlesInJet150,ptChargedParticlesInJet150,ptChargedParticlesInJet150Cone));
2692 AliDebug(3,Form(
"eta/phi tot %f/%f, ch %f/%f, tot150 %f/%f, ch150 %f/%f, ch150cone %f/%f\n",etaParticlesInJet,phiParticlesInJet,etaChargedParticlesInJet,phiChargedParticlesInJet,etaParticlesInJet150,phiParticlesInJet150,etaChargedParticlesInJet150,phiChargedParticlesInJet150,etaChargedParticlesInJet150Cone,phiChargedParticlesInJet150Cone));
Float_t GetHistoPtMax() const
Int_t fMCJetNPart
MC gen number of full jet particles.
TH2F * fhJetNtrackRatioMostEne[5]
! the same for most energetic jet
Int_t fGamNtracks
number of tracks in iso cone
TLorentzVector fMomentum
! momentum
Bool_t fSaveGJTree
flag to save gamma-jet tree
TH2F * fhNjetsNgammas
! Number of jets vs number of photons in the event
Float_t GetHistoPtMin() const
virtual TObjArray * GetCTSTracks() const
Bool_t fMakeCorrelationInHistoMaker
Make particle-jet correlation in histogram maker.
virtual void FillInputNonStandardJets()
Bool_t fSelectIsolated
Select only trigger particles isolated.
TH2F * fhMCJetChNPart150VsPt
! generated N parts (pt>150 MeV/c) vs pt charged jet
Double_t fMCJet150Eta
MC gen full jet eta (pt>150MeV/c)
virtual void AddToHistogramsName(TString add)
Int_t fMCJet150NPart
MC gen number of full jet particles (pt>150MeV/c)
TH2F * fhPhotonPtDiffVsNtracks
! correction vs Ntracks
Bool_t fMostEnergetic
flag to choose gamma-jet pairs most energetic
TH1F * fhMCPhotonCuts
! generated photon cuts
Double_t fJetConeSize
Reconstructed jet cone size.
Double_t fGamRho
background energy for photons per cell in EMCal
Double_t fGamEta
eta photon
void InitParameters()
Initialize the parameters of the analysis.
TH2F * fhMCJetEtaPhi
! generated jet eta vs phi for full jet
TH2F * fhDeltaPhiBefore
! Difference of jet phi and trigger particle phi as function of trigger particle pT ...
TH1F * fhJetPhi
! Phi of all jets
TH1F * fhJetPtMostEne
! Pt of the most energetic jet
virtual TString GetInputAODName() const
TH1F * fhBkgJetSigma[4]
! sigma of jet in backgroud branch
TH2F * fhSelectedPhotonNLMVsPt
! nlm vs pt for selected photons
virtual AliAODJetEventBackground * GetBackgroundJets() const
Double_t fMCJetCh150Eta
MC gen charged jet eta (pt>150MeV/c)
TH2F * fhRandomPhiEta[5]
! eta and phi from random generator
TH2F * fhSelectedTrackPhiVsEta
! Phi vs eta of all chosen tracks in selected events
Bool_t IsHistogramJetBkg() const
virtual AliVEvent * GetInputEvent() const
virtual void SetInputAODName(TString name)
TH1F * fhPhotonAverageEnergyMinus1
! average energy of photon w/o most ene photon
TH2F * fhBkgFFz[5]
! Background fragmentation function, z=ptjet/pttrig
TH2F * fhJetChAreaVsPt
! area of each charged jet vs jet pt
Int_t fJetNtracks2
number of jet tracks with pt>2 GeV/c
TH2F * fhPtRatio
! Ratio of jet pT and trigger particle pT as function of trigger particle pT
virtual TClonesArray * GetNonStandardJets() const
void FindMCgenInfo()
Find information about photon and (quark or gluon) on generated level.
Double_t fMCJet150Phi
MC gen full jet phi (pt>150MeV/c)
TH2F * fhSelectedPhotonLambda0VsPt
! lambda0 vs pt for selected photons
TH2F * fhDeltaPhi0PiCorrect
! Difference of jet phi and trigger particle phi as function of trigger particle pT ...
TH1F * fhJetPt
! Pt of all jets after bkg correction
Int_t fMCJetCh150NPart
MC gen number of charged jet particles (pt>150MeV/c)
Double_t fCentrality
centrality
TH1F * fhPhotonSumPtInCone
! sum pt in cone before correction
TH2F * fhFFz
! Accepted reconstructed jet fragmentation function, z=pt^particle,jet/pttrig
TH2F * fhJetChBkgEnergyVsPt
! background energy of each charged jet vs jet pt
TH1F * fhPhotonSumPtChargedInCone
! sum pt of charged tracks in the cone before correction
Int_t fMCJetCh150ConeNPart
MC gen number of charged jet particles (pt>150MeV/c),R=0.4.
Int_t fNtracks
n tracks in event
Double_t fGamSumPtNeu
energy in isolation cone neutral
TH2F * fhMCJetChEtaPhi
! generated jet eta vs phi for charged jet
TH1F * fhPhotonPt
! pt of gamma before bkg correction
TH1F * fhJetNjetOverPtCut[10]
! number of reconstructed jets in event over pT threshold
virtual Int_t GetEventCentrality() const
Int_t fMCPartonType
MC gen parton type origin of jet.
virtual void GetVertex(Double_t v[3]) const
Double_t fMCJetChPhi
MC gen charged jet phi.
Double_t fJetArea
jet area
TH2F * fhBkgSumPtInCone[5]
! Background sum pt in cone
TH2F * fhPtRatioBefore
! Ratio of jet pT and trigger particle pT as function of trigger particle pT
TH2F * fhMCJetNPartVsPt
! generated N parts vs pt full jet
Int_t fJetNtracks
number of jet tracks
TH2F * fhMCJetNPart150VsPt
! generated N parts (pt>150 MeV/c) vs pt full jet
TH2F * fhJetNtrackRatioJet5GeV[5]
! the same for pt jet above 5 GeV
Double_t fMCGamEta
MC gen eta photon.
TH2F * fhJetRatioNTrkAboveToNTrk[5]
! ratio tracks in jet with pt above 1,2,3,4,5GeV to ntracks
TH2F * fhJetNtrackRatioLead5GeV[5]
! the same for jet with leading particle pt>5GeV
TH1F * fhJetPtBeforeCut
! Pt of all jets after bkg correction, raw jet pt>fJetMinPt
TString fJetBranchName
name of jet branch not set in reader part //new
TH2F * fhDeltaPt
! Difference of jet pT and trigger particle pT as function of trigger particle pT ...
TRandom2 * fGenerator
! pointer to random generator object
TH2F * fhPhotonPtDiffVsNcells
! correction vs Ncells
Double_t fGamPhi
phi photon
TList * GetCreateOutputObjects()
Base class for CaloTrackCorr analysis algorithms.
Double_t fMCJet150Pt
MC gen full jet (pt^particles>150MeV/c) pt.
virtual AliFiducialCut * GetFiducialCut()
AliAnaParticleJetFinderCorrelation()
Default constructor. Initialize parameters.
TH2F * fhDeltaPhi0PiCorrectBefore
! Difference of jet phi and trigger particle phi (0,pi) as function of trigger particle pT ...
TH1F * fhMCJetRatioChFull
! generated ratio pt charged/full jet
virtual TClonesArray * GetInputAODBranch() const
Bool_t fUseHistogramJetTracks
flag to save jet tracks features
void MakeAnalysisFillHistograms()
Particle-Jet Correlation Analysis, fill histograms.
virtual TClonesArray * GetAODMCParticles() const
virtual AliHistogramRanges * GetHistogramRanges()
TH2F * fhPhotonPtDiffVsCentrality
! correction vs centrality
Int_t fEventNumber
event number
TH2F * fhJetDeltaEtaDeltaPhi
! delta eta vs delta phi for (jet-track) <-0.8,0.8>
TH1F * fhGamPtPerTrig
! per trigger normalisation
TH2F * fhJetEtaVsNpartInJetBkg
! Eta vs number of particles in jet for background subtracted jets
void CalculateBkg(TVector3 gamma, TVector3 jet, Double_t *vector, Int_t type)
Bool_t IsHistogramJetTracks() const
virtual AliEMCALGeometry * GetEMCALGeometry() const
TH2F * fhBkgSumPtnTracksInCone[5]
! Background sum pt over ntracks in cone
TH2F * fhSelectedJetPhiVsEta
! phi vs eta of selected jet
TH2F * fhDeltaEta
! Difference of jet eta and trigger particle eta as function of trigger particle pT ...
virtual AliAODEvent * GetOutputEvent() const
TH1F * fhMCJetRatioCh150Ch
! generated ratio pt charged(pt>150MeV/c)/charged jet
Double_t fMCJetCh150Pt
MC gen charged jet (pt^particles>150MeV/c) pt.
Double_t fRatioMaxCut
Jet/particle Ratio cut maximum.
TH1F * fhCuts
! Number of events after cuts
Bool_t fUseHistogramJetBkg
flag to save bkg jet histograms
virtual AliCalorimeterUtils * GetCaloUtils() const
TH1F * fhPhotonNgammaMoreAverageMinus1ToNgamma
! number of gammas with ene. more than average ene (w/o most ene gamma) divided by no...
TH1F * fhPhotonPtCorrectedZoom
! pt of gamma after background correction in +-5 GeV/c
TH2F * fhJetFFz
! Accepted reconstructed jet fragmentation function, z=pt^particle,jet/ptjet
Double_t fZvertex
z vertex
TH2F * fhFFpt
! Jet particle pt distribution in cone
Double_t fJetBkgChEne
bkg energy of jet
TH2F * fhJetChBkgEnergyVsArea
! area of each charged jet vs jet background
TH1F * fhSelectedJetNjet
! number of jets in selected event
TH1F * fhBkgJetArea[4]
! area of jet in bkg branch
TH2F * fhMCJet150EtaPhi
! generated jet eta vs phi full jet (pt>150 MeV/c)
virtual Double_t GetEventWeight() const
Double_t fJetMinPt
Minumum jet pt, default 5GeV/c.
Bool_t fMostOpposite
flag to choose gamma-jet pairs most opposite
Double_t fMCJetPt
MC gen full jet pt.
Bool_t fBackgroundJetFromReader
use background jet from reader //new
TH1F * fhSelectedNtracks
! number of tracks in selected event
TH2F * fhDeltaPtBefore
! Difference of jet pT and trigger particle pT as function of trigger particle pT ...
Double_t fGamAvEne
average energy of photons (without most ene)
virtual ~AliAnaParticleJetFinderCorrelation()
Destructor.
TH2F * fhPhotonBkgRhoVsNclusters
! average energy in one cell vs n clusters
Double_t fMCJetCh150ConePhi
MC gen charged jet phi (pt>150MeV/c),R=0.4.
TH2F * fhJetPhiVsEta
! Phi vs eta of all jets
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
TH2F * fhMCJetCh150EtaPhi
! generated jet eta vs phi charged jet (pt>150 MeV/c)
Double_t fConeSize
Jet cone size to calculate fragmentation function.
Double_t fJetRho
jet rho in event
TH2F * fhFFxi
! Accepted reconstructed jet fragmentation function, xsi = ln(pttrig/pt^particle,jet) ...
TH2F * fhJetNtracksInJetAboveThr[6]
! number of tracks in jet with pt above 0,1,2,3,4,5GeV
TH2F * fhSelectedJetChBkgEnergyVsPtJet
! background energy of selected charged jet vs jet pt
TH1F * fhTrackAveTrackPt
! average track pt in event
Double_t fMCJetCh150Phi
MC gen charged jet phi (pt>150MeV/c)
Int_t fGamNclusters
number of clusters in iso cone
TH2F * fhJetFFzCor
! Accepted reconstructed jet fragmentation function, z=pt^particle,jet*-cos(jet,trig)/ptjet ...
TH1F * fhPhotonPtDiff
! bkg correction = n_cells * median_rho
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
Double_t fMCJetChPt
MC gen charged jet pt.
TH2F * fhJetDeltaEtaDeltaPhiAllTracks
! delta eta vs delta phi for (jet-track) <-pi,pi>
Double_t fMCJetPhi
MC gen full jet phi.
TH1F * fhBkgJetBackground[4]
! background from jet bkg branch
TH2F * fhNTracksInCone
! jet multiplicity in cone
TH2F * fhPt
! jet pT vs trigger particle pT
Int_t GetHistoPtBins() const
Bool_t fMCStudies
flag to use MC methods
TH2F * fhPhotonBkgRhoVsNtracks
! average energy in one cell vs n tracks
TH2F * fhPhotonPtDiffVsNclusters
! correction vs Nclustres
TH2F * fhJetFFxi
! Accepted reconstructed jet fragmentation function, xsi = ln(ptjet/pt^particle,jet) ...
TH1F * fhPhotonPtMostEne
! most pt photon
virtual Int_t GetDebug() const
TH2F * fhMCPhotonEtaPhi
! generated direct photon eta vs phi
TH1F * fhMCPhotonPt
! generated direct photon pt
TH2F * fhSelectedJetChAreaVsPtJet
! area of selected charged jet vs jet pt
TH1F * fhMCJetOrigin
! generated origin of jet
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
TH2F * fhPtGamPtJet
! gamma jet correlation filling
Bool_t fIso
flag isolated or not
Bool_t fUseJetRefTracks
Use track references from JETAN not the AOD tracks to calculate fragmentation function.
Int_t fJetNtracks1
number of jet tracks with pt>1 GeV/c
Bool_t fUseHistogramTracks
flag to save CTS tracks features
TH1F * fhJetEta
! Eta of all jets
Double_t fDeltaPhiMaxCut
Minimum Delta Phi Gamma-Leading.
TH2F * fhJetFFxiCor
! Accepted reconstructed jet fragmentation function, xsi = ln(ptjet/pt^particle*-cos(jet,trig),jet)
Bool_t OnlyIsolated() const
virtual Float_t GetMinPt() const
TH1F * fhPhotonAverageEnergy
! average energy of photon
Double_t fMCGamPt
MC gen pt photon.
TH2F * fhPtBefore
! jet pT vs trigger particle pT
Double_t fGammaConeSize
Isolation cone radius.
TH2F * fhDeltaPhiCorrect
! Difference of jet phi and trigger particle phi as function of trigger particle pT ...
virtual void Print(const Option_t *) const
Print some relevant parameters set for the analysis.
TH1F * fhJetAveTrackPt
! average track from jets pt in event
TH2F * fhJetEtaVsPt
! Eta of all jets vs pt
TH1F * fhJetNparticlesInJet
! number of particles in jets
TH2F * fhBkgFFxi[5]
! Background fragmentation function, xsi = ln(pttrig/ptjet)
TString fBkgJetBranchName
name of background jet branch not set in reader part //new
Double_t fGamLambda0
lambda 0
TH2F * fhBkgFFpt[5]
! Background particle pt distribution in cone
Double_t fJetMinPtBkgSub
Minumum jet pt after bkg subtraction, default -100 GeV/c.
TH2F * fhBkgNTracksInCone[5]
! Background multiplicity in cone
Bool_t IsBackgroundSubtractionGamma() const
Double_t fMCJetCh150ConeEta
MC gen charged jet eta (pt>150MeV/c),R=0.4.
Double_t fGamSumPtCh
energy in isolation cone charged
virtual Int_t GetDataType() const
Double_t fMCGamPhi
MC gen phi photon.
TTree * fTreeGJ
! gamma-jet tree
TH1F * fhPhotonSumPtCorrectInCone
! sum pt in cone afrer correction
Double_t fRatioMinCut
Jet/particle Ratio cut minimum.
Bool_t fUseBackgroundSubtractionGamma
flag to use backgrouind subtraction for photons or not
Double_t fPtThresholdInCone
Jet pT threshold in jet cone.
TH1F * fhPhotonNgammaOverPtCut[10]
! number of photons in event over pT threshold
virtual AliCaloTrackReader * GetReader() const
Bool_t IsEMCALGeoMatrixSet() const
TH2F * fhJetRhoVsCentrality
! jet energy density vs centrality
Bool_t IsBackgroundJetFromReader()
TH2F * fhPhotonBkgRhoVsCentrality
! average energy in one cell vs centrality
Int_t SelectJet(AliAODPWG4Particle *particle, TClonesArray *aodRecJets)
TH1F * fhPhotonPtCorrected
! pt of gamma after background correction
TH1F * fhPhotonRatioAveEneMinus1ToMostEne
! ratio average energy of photon w/o most ene photon to most energetic photon
TH2F * fhJetFFpt
! Jet particle pt distribution in jet cone
virtual TObjArray * GetEMCALClusters() const
Double_t fMCJetChEta
MC gen charged jet eta.
Double_t fDeltaPhiMinCut
Maximum Delta Phi Gamma-Leading.
Int_t fMCJetChNPart
MC gen number of charged jet particles.
TH1F * fhJetPtBefore
! Pt of all jets
TH2F * fhTrackPhiVsEta
! Phi vs eta of all chosen tracks in all events
TH2F * fhJetRhoVsPt
! jet energy density vs jet pt
TH2F * fhDeltaEtaBefore
! Difference of jet eta and trigger particle eta as function of trigger particle pT ...
TH1F * fhPhotonNgammaMoreAverageToNgamma
! number of gammas with ene. more than average ene divided by no. of gammas
Double_t fMCJetEta
MC gen full jet eta.
TH2F * fhMCJetChNPartVsPt
! generated N parts vs pt charged jet
TH1F * fhPhotonRatioAveEneToMostEne
! ratio average energy to most energetic photon
TH2F * fhJetEtaVsNpartInJet
! Eta vs number of particles in jet for all jets
Double_t fJetAreaFraction
Jet area fraction X in X*pi*R^2, default 0.6.
TH2F * fhPhotonBkgRhoVsNcells
! average energy in one cell vs n cells
Double_t fMCJetCh150ConePt
MC gen charged jet (pt^particles>150MeV/c),R=0.4 pt.
TH2F * fhMCJetCh150ConeEtaPhi
! generated jet eta vs phi charged jet (pt>150 MeV/c) R=0.4
TH1F * fhCuts2
! efficienct cuts
Bool_t IsHistogramTracks() const
void MakeAnalysisFillAOD()
Particle-Jet Correlation Analysis, fill AODs.
TH2F * fhMCJetChNPart150ConeVsPt
! generated N parts (pt>150 MeV/c) vs pt charged jet R=0.4