32 #include <TClonesArray.h>
40 #include <THnSparse.h>
42 #include <TLorentzVector.h>
43 #include <TParameter.h>
44 #include <TParticle.h>
47 #include <TObjArray.h>
50 #include "AliAODEvent.h"
51 #include "AliESDEvent.h"
52 #include "AliAnalysisManager.h"
53 #include "AliAnalysisTask.h"
54 #include "AliCentrality.h"
56 #include "AliAODJet.h"
57 #include "AliVCluster.h"
58 #include "AliVTrack.h"
59 #include <AliVEvent.h>
60 #include <AliVParticle.h>
69 #include <AliInputEventHandler.h>
70 #include <AliVEventHandler.h>
71 #include "AliESDInputHandler.h"
72 #include "AliESDCaloCluster.h"
74 #include "AliEventPoolManager.h"
75 #include "AliESDtrackCuts.h"
78 #include "AliPIDResponse.h"
79 #include "AliTPCPIDResponse.h"
80 #include "AliESDpid.h"
83 #include "TGeoGlobalMagField.h"
100 fPhimin(-10), fPhimax(10),
101 fEtamin(-0.9), fEtamax(0.9),
102 fAreacut(0.0), fTrkBias(5), fClusBias(5), fTrkEta(0.9),
103 fJetPtcut(15.0), fJetRad(0.4), fConstituentCut(3.0),
105 fDetectorType(kVZEROComb),
106 fSoftTrackMinPt_ep(0.15), fSoftTrackMaxPt_ep(5.),
107 fNAcceptedTracks(0), fLeadingJet(0), fExcludeLeadingJetsFromFit(1.),
108 fCentralityClasses(0), fInCentralitySelection(-1),
109 fDoEventMixing(0), fMixingTracks(50000), fNMIXtracks(5000), fNMIXevents(5),
110 fCentBinSize(1), fReduceStatsCent(0),
111 fTriggerEventType(AliVEvent::kAny), fMixingEventType(AliVEvent::kAny),
112 fDoEffCorr(0), fcorrJetPt(0),
113 doPlotGlobalRho(0), doVariableBinning(0), dovarbinTHnSparse(0),
114 makeQAhistos(0), makeBIAShistos(0), makeextraCORRhistos(0), makeoldJEThadhistos(0),
115 allpidAXIS(0), fcutType("EMCAL"), doPID(0), doPIDtrackBIAS(0), doaltPIDbinning(0),
118 doFlavourJetAnalysis(0), fJetFlavTag(3),
119 douseOLDtrackFramework(kFALSE),
122 fTracksName(""), fTracksNameME(""), fJetsName(""), fCaloClustersName(""), fRhoName(""),
124 isPItpc(0), isKtpc(0), isPtpc(0),
125 isPIits(0), isKits(0), isPits(0),
126 isPItof(0), isKtof(0), isPtof(0),
128 fPIDResponse(0x0), fTPCResponse(),
129 fESD(0), fAOD(0), fVevent(0),
130 fHistEventQA(0), fHistEventSelectionQA(0), fHistEventSelectionQAafterCuts(0),
131 fHistCentZvertGA(0), fHistCentZvertJE(0), fHistCentZvertMB(0), fHistCentZvertAny(0),
132 fHistTPCdEdX(0), fHistITSsignal(0),
133 fHistRhovsCent(0), fHistNjetvsCent(0),
134 fHistNTrackPtNEW(0), fHistNTrackPhiNEW(0), fHistNTrackEtaNEW(0), fHistNTrackPhiEtaNEW(0),
135 fHistNTrackPt(0), fHistNTrackPhi(0), fHistNTrackEta(0), fHistNTrackPhiEta(0),
136 fHistNJetPt(0), fHistNJetPhi(0), fHistNJetEta(0), fHistNJetPhiEta(0),
138 fHistJetPhi(0), fHistTrackPhi(0),
139 fHistLocalRhoJetpt(0),
140 fHistJetHaddPhiIN(0), fHistJetHaddPhiOUT(0), fHistJetHaddPhiMID(0),
141 fHistJetHaddPhiBias(0), fHistJetHaddPhiINBias(0), fHistJetHaddPhiOUTBias(0), fHistJetHaddPhiMIDBias(0),
143 fHistTrackPtallcent(0),
144 fHistJetEtaPhi(0), fHistJetHEtaPhi(0),
145 fHistSEphieta(0), fHistMEphieta(0),
147 fHistClusEtaPhiEnergy(0), fHistClusEnergy(0), fHistClusofJetEnergy(0),
148 fHistJetNClusterConstit(0), fHistJetNTrackConstit(0), fHistJetNConstit(0),
150 fhnPID(0x0), fhnMixedEvents(0x0), fhnJH(0x0), fhnCorr(0x0),
151 fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0), fUseChiWeightForVZERO(kTRUE),
152 fTracksFromContainer(0),
153 fJetsCont(0), fTracksCont(0), fCaloClustersCont(0),
154 fContainerAllJets(0), fContainerPIDJets(1)
157 for(
Int_t ilab=0; ilab<4; ilab++){
158 for(
Int_t ipta=0; ipta<7; ipta++){
163 for(
Int_t cen = 0; cen<10; cen++){
164 fProfV2Resolution[cen]=0;
165 fProfV3Resolution[cen]=0;
166 fProfV4Resolution[cen]=0;
167 fProfV5Resolution[cen]=0;
170 for(
Int_t itrackpt=0; itrackpt<9; itrackpt++){
171 fHistJetHadbindPhi[itrackpt]=0;
172 fHistJetHadbindPhiIN[itrackpt]=0;
173 fHistJetHadbindPhiMID[itrackpt]=0;
174 fHistJetHadbindPhiOUT[itrackpt]=0;
177 for(
Int_t icent = 0; icent<6; ++icent){
178 for(
Int_t iptjet = 0; iptjet<5; ++iptjet){
179 for(
Int_t ieta = 0; ieta<3; ++ieta){
180 fHistJetH[icent][iptjet][ieta]=0;
181 fHistJetHBias[icent][iptjet][ieta]=0;
182 fHistJetHTT[icent][iptjet][ieta]=0;
188 for (
Int_t i = 0;i<6;++i){
190 fHistJetPtBias[i] = 0;
192 fHistAreavsRawPt[i] = 0;
193 fHistJetPtvsTrackPt[i] = 0;
199 fHistJetPtcorrGlRho[i] = 0;
200 fHistJetPtvsdEP[i] = 0;
201 fHistJetPtvsdEPBias[i] = 0;
202 fHistRhovsdEP[i] = 0;
203 fHistJetEtaPhiPt[i] = 0;
204 fHistJetEtaPhiPtBias[i] = 0;
205 fHistJetPtArea[i] = 0;
206 fHistJetPtAreaBias[i] = 0;
207 fHistJetPtNcon[i] = 0;
208 fHistJetPtNconBias[i] = 0;
209 fHistJetPtNconCh[i] = 0;
210 fHistJetPtNconBiasCh[i] = 0;
211 fHistJetPtNconEm[i] = 0;
212 fHistJetPtNconBiasEm[i] = 0;
213 fHistJetHaddPhiINcent[i] = 0;
214 fHistJetHaddPhiOUTcent[i] = 0;
215 fHistJetHaddPhiMIDcent[i] = 0;
218 SetMakeGeneralHistograms(kTRUE);
225 fPhimin(-10), fPhimax(10),
226 fEtamin(-0.9), fEtamax(0.9),
227 fAreacut(0.0), fTrkBias(5), fClusBias(5), fTrkEta(0.9),
228 fJetPtcut(15.0), fJetRad(0.4), fConstituentCut(3.0),
230 fDetectorType(kVZEROComb),
231 fSoftTrackMinPt_ep(0.15), fSoftTrackMaxPt_ep(5.),
232 fNAcceptedTracks(0), fLeadingJet(0), fExcludeLeadingJetsFromFit(1.),
233 fCentralityClasses(0), fInCentralitySelection(-1),
234 fDoEventMixing(0), fMixingTracks(50000), fNMIXtracks(5000), fNMIXevents(5),
235 fCentBinSize(1), fReduceStatsCent(0),
236 fTriggerEventType(AliVEvent::kAny), fMixingEventType(AliVEvent::kAny),
237 fDoEffCorr(0), fcorrJetPt(0),
238 doPlotGlobalRho(0), doVariableBinning(0), dovarbinTHnSparse(0),
239 makeQAhistos(0), makeBIAShistos(0), makeextraCORRhistos(0), makeoldJEThadhistos(0),
240 allpidAXIS(0), fcutType(
"EMCAL"), doPID(0), doPIDtrackBIAS(0), doaltPIDbinning(0),
243 doFlavourJetAnalysis(0), fJetFlavTag(3),
244 douseOLDtrackFramework(kFALSE),
247 fTracksName(
""), fTracksNameME(
""), fJetsName(
""), fCaloClustersName(
""), fRhoName(
""),
249 isPItpc(0), isKtpc(0), isPtpc(0),
250 isPIits(0), isKits(0), isPits(0),
251 isPItof(0), isKtof(0), isPtof(0),
253 fPIDResponse(0x0), fTPCResponse(),
254 fESD(0), fAOD(0), fVevent(0),
255 fHistEventQA(0), fHistEventSelectionQA(0), fHistEventSelectionQAafterCuts(0),
256 fHistCentZvertGA(0), fHistCentZvertJE(0), fHistCentZvertMB(0), fHistCentZvertAny(0),
257 fHistTPCdEdX(0), fHistITSsignal(0),
258 fHistRhovsCent(0), fHistNjetvsCent(0),
259 fHistNTrackPtNEW(0), fHistNTrackPhiNEW(0), fHistNTrackEtaNEW(0), fHistNTrackPhiEtaNEW(0),
260 fHistNTrackPt(0), fHistNTrackPhi(0), fHistNTrackEta(0), fHistNTrackPhiEta(0),
261 fHistNJetPt(0), fHistNJetPhi(0), fHistNJetEta(0), fHistNJetPhiEta(0),
263 fHistJetPhi(0), fHistTrackPhi(0),
264 fHistLocalRhoJetpt(0),
265 fHistJetHaddPhiIN(0), fHistJetHaddPhiOUT(0), fHistJetHaddPhiMID(0),
266 fHistJetHaddPhiBias(0), fHistJetHaddPhiINBias(0), fHistJetHaddPhiOUTBias(0), fHistJetHaddPhiMIDBias(0),
268 fHistTrackPtallcent(0),
269 fHistJetEtaPhi(0), fHistJetHEtaPhi(0),
270 fHistSEphieta(0), fHistMEphieta(0),
272 fHistClusEtaPhiEnergy(0), fHistClusEnergy(0), fHistClusofJetEnergy(0),
273 fHistJetNClusterConstit(0), fHistJetNTrackConstit(0), fHistJetNConstit(0),
275 fhnPID(0x0), fhnMixedEvents(0x0), fhnJH(0x0), fhnCorr(0x0),
276 fChi2A(0x0), fChi2C(0x0), fChi3A(0x0), fChi3C(0x0), fUseChiWeightForVZERO(kTRUE),
277 fTracksFromContainer(0),
278 fJetsCont(0), fTracksCont(0), fCaloClustersCont(0),
279 fContainerAllJets(0), fContainerPIDJets(1)
282 for(
Int_t ilab=0; ilab<4; ilab++){
283 for(
Int_t ipta=0; ipta<7; ipta++){
288 for(
Int_t cen = 0; cen<10; cen++){
295 for(
Int_t itrackpt=0; itrackpt<9; itrackpt++){
302 for(
Int_t icent = 0; icent<6; ++icent){
303 for(
Int_t iptjet = 0; iptjet<5; ++iptjet){
304 for(
Int_t ieta = 0; ieta<3; ++ieta){
313 for (
Int_t i = 0;i<6;++i){
375 fHistCentZvertGA =
new TH2F(
"fHistCentZvertGA",
"Centrality - Z-vertex distribution for GA trigger", 20, 0, 100, 10, -10, 10);
377 fHistCentZvertJE =
new TH2F(
"fHistCentZvertJE",
"Centrality - Z-vertex distribution for JE trigger", 20, 0, 100, 10, -10, 10);
379 fHistCentZvertMB =
new TH2F(
"fHistCentZvertMB",
"Centrality - Z-vertex distribution for MB trigger", 20, 0, 100, 10, -10, 10);
381 fHistCentZvertAny =
new TH2F(
"fHistCentZvertAny",
"Centrality - Z-vertex distribution for kAny trigger", 20, 0, 100, 10, -10, 10);
385 fHistEventQA =
new TH1F(
"fHistEventQA",
"Event Counter at checkpoints in code", 20, 0.5, 20.5);
390 fHistEventSelectionQA =
new TH1F(
"fHistEventSelectionQA",
"Trigger Selection Counter", 20, 0.5, 20.5);
401 fHistJetHaddPHI =
new TH1F(
"fHistJetHaddPHI",
"Jet-Hadron #Delta#varphi", 72,-0.5*TMath::Pi(),1.5*TMath::Pi());
402 fHistJetHaddPhiIN =
new TH1F(
"fHistJetHaddPhiIN",
"Jet-Hadron #Delta#varphi IN PLANE", 72,-0.5*TMath::Pi(), 1.5*TMath::Pi());
403 fHistJetHaddPhiOUT =
new TH1F(
"fHistJetHaddPhiOUT",
"Jet-Hadron #Delta#varphi OUT PLANE", 72,-0.5*TMath::Pi(), 1.5*TMath::Pi());
404 fHistJetHaddPhiMID =
new TH1F(
"fHistJetHaddPhiMID",
"Jet-Hadron #Delta#varphi MIDDLE of PLANE", 72,-0.5*TMath::Pi(), 1.5*TMath::Pi());
405 fHistLocalRhoJetpt =
new TH1F(
"fHistLocalRhoJetpt",
"Local Rho corrected Jet p_{T}", 50, -50, 200);
420 fHistNTrackPhiNEW =
new TH1F(
"fHistNTrackPhiNEW",
"NTrack vs #Psi (new framework)", 144, 0, 2*TMath::Pi());
421 fHistNTrackPtNEW =
new TH1F(
"fHistNTrackPtNEW",
"NTrack vs p_T (new framework)", 500, 0, 50);
422 fHistNTrackEtaNEW =
new TH1F(
"fHistNTrackEtaNEW",
"NTrack vs #eta (new framework)", 180, -0.9, 0.9);
423 fHistNTrackPhiEtaNEW =
new TH2F(
"fHistNTrackPhiEtaNEW",
"NTrack vs #phi vs #eta (new framework)", 72, 0, 2*TMath::Pi(), 90, -0.9, 0.9);
431 fHistNTrackPt =
new TH1F(
"fHistNTrackPt",
"NTrack vs p_T", 500, 0, 50);
432 fHistNTrackPhi =
new TH1F(
"fHistNTrackPhi",
"NTrack vs #phi", 144, 0, 2*TMath::Pi());
433 fHistNTrackEta =
new TH1F(
"fHistNTrackEta",
"NTrack vs #eta", 180, -0.9, 0.9);
434 fHistNTrackPhiEta =
new TH2F(
"fHistNTrackPhiEta",
"NTrack vs #phi vs #eta", 72, 0, 2*TMath::Pi(), 90, -0.9, 0.9);
441 fHistNJetPt =
new TH1F(
"fHistNJetPt",
"NJet vs p_T", 500, 0, 250);
442 fHistNJetPhi =
new TH1F(
"fHistNJetPhi",
"NJet vs #phi", 144, 0, 2*TMath::Pi());
443 fHistNJetEta =
new TH1F(
"fHistNJetEta",
"NJet vs #eta", 180, -0.9, 0.9);
444 fHistNJetPhiEta =
new TH2F(
"fHistNJetPhiEta",
"NJet vs #phi vs #eta", 72, 0, 2*TMath::Pi(), 90, -0.9, 0.9);
452 for (
Int_t i = 0; i<10; ++i){
453 fProfV2Resolution[i] =
new TProfile(Form(
"fProfV2Resolution_%i", i), Form(
"fProfV2Resolution_%i", i), 11, -0.5, 10.5);
454 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(3,
"<cos(2(#Psi_{VZEROA} - #Psi_{VZEROC}))>");
455 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(4,
"<cos(2(#Psi_{VZEROC} - #Psi_{VZEROA}))>");
456 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(5,
"<cos(2(#Psi_{VZEROA} - #Psi_{TPC}))>");
457 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(6,
"<cos(2(#Psi_{TPC} - #Psi_{VZEROA}))>");
458 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(7,
"<cos(2(#Psi_{VZEROC} - #Psi_{TPC}))>");
459 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(8,
"<cos(2(#Psi_{TPC} - #Psi_{VZEROC}))>");
460 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(9,
"<cos(2(#Psi_{VZERO} - #Psi_{TPC_A}))>");
461 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(10,
"<cos(2(#Psi_{VZERO} - #Psi_{TPC_B}))>");
462 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(11,
"<cos(2(#Psi_{TPC_A} - #Psi_{TPC_B}))>");
464 fProfV3Resolution[i] =
new TProfile(Form(
"fProfV3Resolution_%i", i), Form(
"fProfV3Resolution_%i", i), 11, -0.5, 10.5);
465 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(3,
"<cos(3(#Psi_{VZEROA} - #Psi_{VZEROC}))>");
466 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(4,
"<cos(3(#Psi_{VZEROC} - #Psi_{VZEROA}))>");
467 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(5,
"<cos(3(#Psi_{VZEROA} - #Psi_{TPC}))>");
468 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(6,
"<cos(3(#Psi_{TPC} - #Psi_{VZEROA}))>");
469 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(7,
"<cos(3(#Psi_{VZEROC} - #Psi_{TPC}))>");
470 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(8,
"<cos(3(#Psi_{TPC} - #Psi_{VZEROC}))>");
471 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(9,
"<cos(3(#Psi_{VZERO} - #Psi_{TPC_A}))>");
472 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(10,
"<cos(3(#Psi_{VZERO} - #Psi_{TPC_B}))>");
473 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(11,
"<cos(3(#Psi_{TPC_A} - #Psi_{TPC_B}))>");
475 fProfV4Resolution[i] =
new TProfile(Form(
"fProfV4Resolution_%i", i), Form(
"fProfV4Resolution_%i", i), 11, -0.5, 10.5);
476 fProfV4Resolution[i]->GetXaxis()->SetBinLabel(3,
"<cos(4(#Psi_{VZEROA} - #Psi_{VZEROC}))>");
477 fProfV4Resolution[i]->GetXaxis()->SetBinLabel(4,
"<cos(4(#Psi_{VZEROC} - #Psi_{VZEROA}))>");
478 fProfV4Resolution[i]->GetXaxis()->SetBinLabel(5,
"<cos(4(#Psi_{VZEROA} - #Psi_{TPC}))>");
479 fProfV4Resolution[i]->GetXaxis()->SetBinLabel(6,
"<cos(4(#Psi_{TPC} - #Psi_{VZEROA}))>");
480 fProfV4Resolution[i]->GetXaxis()->SetBinLabel(7,
"<cos(4(#Psi_{VZEROC} - #Psi_{TPC}))>");
481 fProfV4Resolution[i]->GetXaxis()->SetBinLabel(8,
"<cos(4(#Psi_{TPC} - #Psi_{VZEROC}))>");
482 fProfV4Resolution[i]->GetXaxis()->SetBinLabel(9,
"<cos(4(#Psi_{VZERO} - #Psi_{TPC_A}))>");
483 fProfV4Resolution[i]->GetXaxis()->SetBinLabel(10,
"<cos(4(#Psi_{VZERO} - #Psi_{TPC_B}))>");
484 fProfV4Resolution[i]->GetXaxis()->SetBinLabel(11,
"<cos(4(#Psi_{TPC_A} - #Psi_{TPC_B}))>");
486 fProfV5Resolution[i] =
new TProfile(Form(
"fProfV5Resolution_%i", i), Form(
"fProfV5Resolution_%i", i), 11, -0.5, 10.5);
487 fProfV5Resolution[i]->GetXaxis()->SetBinLabel(3,
"<cos(5(#Psi_{VZEROA} - #Psi_{VZEROC}))>");
488 fProfV5Resolution[i]->GetXaxis()->SetBinLabel(4,
"<cos(5(#Psi_{VZEROC} - #Psi_{VZEROA}))>");
489 fProfV5Resolution[i]->GetXaxis()->SetBinLabel(5,
"<cos(5(#Psi_{VZEROA} - #Psi_{TPC}))>");
490 fProfV5Resolution[i]->GetXaxis()->SetBinLabel(6,
"<cos(5(#Psi_{TPC} - #Psi_{VZEROA}))>");
491 fProfV5Resolution[i]->GetXaxis()->SetBinLabel(7,
"<cos(5(#Psi_{VZEROC} - #Psi_{TPC}))>");
492 fProfV5Resolution[i]->GetXaxis()->SetBinLabel(8,
"<cos(5(#Psi_{TPC} - #Psi_{VZEROC}))>");
493 fProfV5Resolution[i]->GetXaxis()->SetBinLabel(9,
"<cos(5(#Psi_{VZERO} - #Psi_{TPC_A}))>");
494 fProfV5Resolution[i]->GetXaxis()->SetBinLabel(10,
"<cos(5(#Psi_{VZERO} - #Psi_{TPC_B}))>");
495 fProfV5Resolution[i]->GetXaxis()->SetBinLabel(11,
"<cos(5(#Psi_{TPC_A} - #Psi_{TPC_B}))>");
505 fHistJetPhi =
new TH1F(
"fHistJetPhi",
"Jet #phi Distribution", 72, 0., 1.0*TMath::Pi());
506 fHistTrackPhi =
new TH1F(
"fHistTrackPhi",
"Track #phi Distribution", 72, 0., 2.0*TMath::Pi());
508 fHistTrackPtallcent =
new TH1F(
"fHistTrackPtallcent",
"p_{T} distribution", 1000, 0.0, 100.0);
509 fHistJetEtaPhi =
new TH2F(
"fHistJetEtaPhi",
"Jet #eta-#phi",512,-1.8,1.8,512,-3.2,3.2);
510 fHistJetHEtaPhi =
new TH2F(
"fHistJetHEtaPhi",
"Jet-Hadron #Delta#eta-#Delta#phi", 72, -1.8, 1.8, 72, -1.6, 4.8);
511 fHistSEphieta =
new TH2F(
"fHistSEphieta",
"Single Event #phi-#eta distribution", 64,-0.5*TMath::Pi(), 1.5*TMath::Pi(), 64,-1.8,1.8);
512 fHistMEphieta =
new TH2F(
"fHistMEphieta",
"Mixed Event #phi-#eta distribution", 64, -0.5*TMath::Pi(), 1.5*TMath::Pi(), 64,-1.8,1.8);
514 fHistClusEtaPhiEnergy =
new TH3F(
"fHistClusEtaPhiEnergy",
"Cluster eta-phi-energy", 900, -1.8, 1.8, 720, -3.2, 3.2, 20, 0, 20);
515 fHistClusEnergy =
new TH1F(
"fHistClusEnergy",
"Cluster Energy distribution", 200, 0, 20);
516 fHistClusofJetEnergy =
new TH1F(
"fHistClusofJetEnergy",
"Cluster of Jet Energy distribution", 200, 0, 20);
517 fHistJetNClusterConstit =
new TH1F(
"fHistJetNClusterConstit",
"Number of Cluster Constituents in Jet", 25, 0, 25);
518 fHistJetNTrackConstit =
new TH1F(
"fHistJetNTrackConstit",
"Number of Track Constituents in Jet", 25, 0, 25);
519 fHistJetNConstit =
new TH1F(
"fHistJetNConstit",
"Number of Total Constituents in Jet", 25, 0, 25);
548 for (
Int_t i = 0;i<6;++i){
549 name1 =
TString(Form(
"EP0_%i",i));
550 title1 =
TString(Form(
"EP V0 cent bin %i",i));
551 fHistEP0[i] =
new TH1F(name1,title1,144,-TMath::Pi(),TMath::Pi());
554 name1 =
TString(Form(
"EP0A_%i",i));
555 title1 =
TString(Form(
"EP V0A cent bin %i",i));
556 fHistEP0A[i] =
new TH1F(name1,title1,144,-TMath::Pi(),TMath::Pi());
559 name1 =
TString(Form(
"EP0C_%i",i));
560 title1 =
TString(Form(
"EP V0C cent bin %i",i));
561 fHistEP0C[i] =
new TH1F(name1,title1,144,-TMath::Pi(),TMath::Pi());
564 name1 =
TString(Form(
"EPAvsC_%i",i));
565 title1 =
TString(Form(
"EP V0A vs V0C cent bin %i",i));
566 fHistEPAvsC[i] =
new TH2F(name1,title1,144,-TMath::Pi(),TMath::Pi(),144,-TMath::Pi(),TMath::Pi());
569 name1 =
TString(Form(
"JetPtvsTrackPt_%i",i));
570 title1 =
TString(Form(
"Jet p_{T} vs Leading Track p_{T} cent bin %i",i));
574 name1 =
TString(Form(
"TrackPt_%i",i));
575 title1 =
TString(Form(
"Track p_{T} cent bin %i",i));
579 name1 =
TString(Form(
"JetPtcorrGLrho_%i",i));
580 title1 =
TString(Form(
"Jet p_{T} corrected with Global #rho cent bin %i",i));
584 name1 =
TString(Form(
"JetPtvsdEP_%i",i));
585 title1 =
TString(Form(
"Jet p_{T} vs #DeltaEP cent bin %i",i));
589 name1 =
TString(Form(
"RhovsdEP_%i",i));
590 title1 =
TString(Form(
"#rho vs #DeltaEP cent bin %i",i));
591 fHistRhovsdEP[i] =
new TH2F(name1,title1,500,0,500,288,-2*TMath::Pi(),2*TMath::Pi());
594 name1 =
TString(Form(
"JetEtaPhiPt_%i",i));
595 title1 =
TString(Form(
"Jet #eta-#phi p_{T} cent bin %i",i));
596 fHistJetEtaPhiPt[i] =
new TH3F(name1,title1,250,-50,200,100,-1,1,64,-3.2,3.2);
599 name1 =
TString(Form(
"JetPtArea_%i",i));
600 title1 =
TString(Form(
"Jet p_{T} Area cent bin %i",i));
604 snprintf(name, nchar,
"fHistAreavsRawPt_%i",i);
612 fHistJetHaddPhiBias =
new TH1F(
"fHistJetHaddPhiBias",
"Jet-Hadron #Delta#varphi with bias",128,-0.5*TMath::Pi(), 1.5*TMath::Pi());
613 fHistJetHaddPhiINBias =
new TH1F(
"fHistJetHaddPhiINBias",
"Jet-Hadron #Delta#varphi IN PLANE with bias", 128,-0.5*TMath::Pi(), 1.5*TMath::Pi());
614 fHistJetHaddPhiOUTBias =
new TH1F(
"fHistJetHaddPhiOUTBias",
"Jet-Hadron #Delta#varphi OUT PLANE with bias",128,-0.5*TMath::Pi(), 1.5*TMath::Pi());
615 fHistJetHaddPhiMIDBias =
new TH1F(
"fHistJetHaddPhiMIDBias",
"Jet-Hadron #Delta#varphi MIDDLE of PLANE with bias",128,-0.5*TMath::Pi(), 1.5*TMath::Pi());
623 for (
Int_t i = 0;i<6;++i){
624 name1 =
TString(Form(
"JetPtvsdEPBias_%i",i));
625 title1 =
TString(Form(
"Bias Jet p_{T} vs #DeltaEP cent bin %i",i));
629 name1 =
TString(Form(
"JetEtaPhiPtBias_%i",i));
630 title1 =
TString(Form(
"Jet #eta-#phi p_{T} Bias cent bin %i",i));
631 fHistJetEtaPhiPtBias[i] =
new TH3F(name1,title1,250,-50,200,100,-1,1,64,-3.2,3.2);
634 name1 =
TString(Form(
"JetPtAreaBias_%i",i));
635 title1 =
TString(Form(
"Jet p_{T} Area Bias cent bin %i",i));
642 for(
Int_t icent = 0; icent<6; ++icent){
643 snprintf(name, nchar,
"fHistJetPtTT_%i",icent);
647 snprintf(name, nchar,
"fHistJetPt_%i",icent);
648 fHistJetPt[icent] =
new TH1F(name,name,200,0,200);
651 snprintf(name, nchar,
"fHistJetPtBias_%i",icent);
655 for(
Int_t iptjet = 0; iptjet<5; ++iptjet){
656 for(
Int_t ieta = 0; ieta<3; ++ieta){
657 snprintf(name, nchar,
"fHistJetH_%i_%i_%i",icent,iptjet,ieta);
658 fHistJetH[icent][iptjet][ieta]=
new TH2F(name,name,64,-0.5*TMath::Pi(),1.5*TMath::Pi(),300,0,30);
661 snprintf(name, nchar,
"fHistJetHBias_%i_%i_%i",icent,iptjet,ieta);
662 fHistJetHBias[icent][iptjet][ieta]=
new TH2F(name,name,64,-0.5*TMath::Pi(),1.5*TMath::Pi(),300,0,30);
665 snprintf(name, nchar,
"fHistJetHTT_%i_%i_%i",icent,iptjet,ieta);
666 fHistJetHTT[icent][iptjet][ieta]=
new TH2F(name,name,64,-0.5*TMath::Pi(),1.5*TMath::Pi(),300,0,30);
674 for(
Int_t itrackpt=0; itrackpt<9; itrackpt++){
675 snprintf(name, nchar,
"fHistJetHadbindPhi_%i",itrackpt);
676 fHistJetHadbindPhi[itrackpt] =
new TH1F(name,name,128,-0.5*TMath::Pi(), 1.5*TMath::Pi());
679 snprintf(name, nchar,
"fHistJetHadbindPhiIN_%i",itrackpt);
683 snprintf(name, nchar,
"fHistJetHadbindPhiMID_%i",itrackpt);
687 snprintf(name, nchar,
"fHistJetHadbindPhiOUT_%i",itrackpt);
692 for (
Int_t i = 0;i<6;++i){
693 name1 =
TString(Form(
"JetHaddPhiINcent_%i",i));
694 title1 =
TString(Form(
"Jet Hadron #Delta#varphi Distribution IN PLANE cent bin %i",i));
698 name1 =
TString(Form(
"JetHaddPhiOUTcent_%i",i));
699 title1 =
TString(Form(
"Jet Hadron #Delta#varphi Distribution OUT PLANE cent bin %i",i));
703 name1 =
TString(Form(
"JetHaddPhiMIDcent_%i",i));
704 title1 =
TString(Form(
"Jet Hadron #Delta#varphi Distribution MIDDLE of PLANE cent bin %i",i));
708 name1 =
TString(Form(
"JetPtNcon_%i",i));
709 title1 =
TString(Form(
"Jet p_{T} Ncon cent bin %i",i));
713 name1 =
TString(Form(
"JetPtNconBias_%i",i));
714 title1 =
TString(Form(
"Jet p_{T} NconBias cent bin %i",i));
718 name1 =
TString(Form(
"JetPtNconCh_%i",i));
719 title1 =
TString(Form(
"Jet p_{T} NconCh cent bin %i",i));
723 name1 =
TString(Form(
"JetPtNconBiasCh_%i",i));
724 title1 =
TString(Form(
"Jet p_{T} NconBiasCh cent bin %i",i));
728 name1 =
TString(Form(
"JetPtNconEm_%i",i));
729 title1 =
TString(Form(
"Jet p_{T} NconEm cent bin %i",i));
733 name1 =
TString(Form(
"JetPtNconBiasEm_%i",i));
734 title1 =
TString(Form(
"Jet p_{T} NconBiasEm cent bin %i",i));
741 Double_t xlowjetPT[] = {15, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 45, 50, 55, 60, 65, 70, 75, 80, 100, 150, 200, 300};
742 Double_t xlowtrPT[] = {0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.6,0.7,0.8,0.9,1.0,1.2,1.4,1.6,1.8,2.0,2.2,2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0,4.2,4.4,4.6,4.8,5.0,5.5,6.0,6.5,7.0,7.5,8.0,9.0,10.0,12.0,14.0,16.0,18.0,20.0,25.0,30.0,40.0,50.0,75.0};
755 bitcodeMESE = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6;
760 fhnJH->GetAxis(1)->Set(nbinsjetPT, xlowjetPT);
761 fhnJH->GetAxis(2)->Set(nbinstrPT, xlowtrPT);
767 bitcodeCorr = 1<<0 | 1<<1 | 1<<2 | 1<<3;
782 Int_t nCentralityBinspp = 8;
784 Double_t centralityBinspp[9] = {0.0, 4., 9, 15, 25, 35, 55, 100.0, 500.0};
787 Int_t nCentralityBinsPbPb = 100;
790 nCentralityBinsPbPb = 100;
793 nCentralityBinsPbPb = 50;
796 nCentralityBinsPbPb = 20;
799 nCentralityBinsPbPb = 10;
803 Double_t centralityBinsPbPb[nCentralityBinsPbPb];
804 for(
Int_t ic=0; ic<nCentralityBinsPbPb; ic++){
805 centralityBinsPbPb[ic]=mult*ic;
816 if(
fBeam == 0)
fHistMult =
new TH1F(
"fHistMult",
"multiplicity",nCentralityBinspp,centralityBinspp);
817 if(
fBeam == 1)
fHistMult =
new TH1F(
"fHistMult",
"multiplicity",nCentralityBinsPbPb,centralityBinsPbPb);
822 Int_t poolsize = 1000;
823 Int_t nZvtxBins = 5+1+5;
824 Double_t vertexBins[] = {-10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10};
826 if(
fBeam == 0)
fPoolMgr =
new AliEventPoolManager(poolsize, trackDepth, nCentralityBinspp, centralityBinspp, nZvtxBins, zvtxbin);
827 if(
fBeam == 1)
fPoolMgr =
new AliEventPoolManager(poolsize, trackDepth, nCentralityBinsPbPb, centralityBinsPbPb, nZvtxBins, zvtxbin);
831 bitcodeMESE = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6;
848 AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
850 AliFatal(
"Input handler needed");
857 AliError(
"PIDResponse object was not created");
863 fHistPID =
new TH1F(
"fHistPID",
"PID Counter", 15, 0.5, 25.5);
868 bitcodePID = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7 | 1<<8 | 1<<9 |
869 1<<10 | 1<<11 | 1<<12 | 1<<13 | 1<<14 | 1<<15 | 1<<16 | 1<<17 | 1<<18;
872 bitcodePID = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7 | 1<<8 | 1<<9 |
879 fhnPID->GetAxis(1)->Set(nbinstrPT, xlowtrPT);
880 fhnPID->GetAxis(8)->Set(nbinsjetPT, xlowjetPT);
903 THnSparse *hn =
dynamic_cast<THnSparse*
>(
fOutput->At(i));
941 UInt_t trig = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
949 AliError(Form(
"Couldn't get fLocalRho object, try to get it from Event based on name\n"));
956 AliError(Form(
"No fTracks object!!\n"));
968 if (dynamic_cast<AliAODEvent*>(InputEvent())) useAOD = kTRUE;
969 else useAOD = kFALSE;
975 AliError(Form(
"ERROR: fESD not available\n"));
984 AliError(Form(
"ERROR: fAOD not available\n"));
1022 if(
fCent>90)
return kTRUE;
1027 if(
GetBeamType() == 0)
if (centbin == -1) centbin = 0;
1028 if(
GetBeamType() == 1)
if (centbin == -1)
return kTRUE;
1034 InputEvent()->GetPrimaryVertex()->GetXYZ(fvertex);
1041 if(fabs(zVtx)>10.0)
return kTRUE;
1048 AliError(Form(
"ERROR: list not attached\n"));
1053 fJets =
dynamic_cast<TClonesArray*
>(list->FindObject(
fJetsName.Data()));
1055 if(!
fJets) AliError(Form(
"No fJets object!!\n"));
1067 TClonesArray *jets = 0;
1068 TClonesArray *tracks = 0;
1069 TClonesArray *tracksME = 0;
1070 TClonesArray *clusters = 0;
1075 AliError(Form(
"Pointer to tracks: %s == 0", fTracksCont2->GetName()));
1086 fTracksCont2->ResetCurrentID();
1090 (*fTracksFromContainer)[tacc] = track;
1094 if(TMath::Abs(track->Eta())>
fTrkEta)
continue;
1095 if (track->Pt()<0.15)
continue;
1116 tracks =
dynamic_cast<TClonesArray*
>(list->FindObject(
fTracks));
1119 AliError(Form(
"Pointer to tracks: %s == 0", tracks->GetName()));
1127 tracksME =
dynamic_cast<TClonesArray*
>(list->FindObject(
fTracks));
1130 AliError(Form(
"Pointer to ME tracks: %s == 0", tracksME->GetName()));
1144 jets =
dynamic_cast<TClonesArray*
>(list->FindObject(
fJets));
1146 AliError(Form(
"Pointer to jets: %s == 0",
fJets->GetName()));
1149 Njets = jets->GetEntries();
1159 const Int_t Ntracks = tracks->GetEntries();
1175 const Int_t Nclusters = clusters->GetEntries();
1176 for (
Int_t iclus = 0; iclus < Nclusters; iclus++){
1177 AliVCluster* cluster =
static_cast<AliVCluster*
>(clusters->At(iclus));
1179 AliError(Form(
"Couldn't get AliVCluster %d\n", iclus));
1184 TLorentzVector nPart;
1185 cluster->GetMomentum(nPart, fvertex);
1191 fVevent =
dynamic_cast<AliVEvent*
>(InputEvent());
1193 AliError(Form(
"ERROR: AliVEvent (fVevent) not available! \n"));
1206 Int_t NtrackAcc = 0;
1209 for (
Int_t iTracks = 0; iTracks < Ntracks; iTracks++){
1210 AliVTrack *track =
dynamic_cast<AliVTrack*
>(tracks->At(iTracks));
1212 AliError(Form(
"Couldn't get AliVTrack %d\n", iTracks));
1217 if(TMath::Abs(track->Eta())>
fTrkEta)
continue;
1218 if (track->Pt()<0.15)
continue;
1223 if(track->Pt()>
ptmax){
1271 AliError(Form(
"Couldn't get fRho named %s\n",
fRhoName.Data()));
1287 Int_t passedTTcut = 0;
1295 for (
Int_t ijet = 0; ijet < Njets; ijet++){
1321 if(highestjetpt<jet->Pt()){
1323 highestjetpt=jet->
Pt();
1335 for (
Int_t ijet = 0; ijet < Njets; ++ijet) {
1343 if (jet->
Pt()<0.1)
continue;
1354 if (ijet==ijethi) leadjet=1;
1363 if (ijet==ijethi) maxtrackpt = jet->
MaxTrackPt();
1416 AliVTrack* TT =
static_cast<AliVTrack*
>(tracks->At(iTT));
1417 if(TMath::Abs(jet->
Phi()-TT->Phi()-TMath::Pi())<0.6) passedTTcut=1;
1437 }
else fhnCorr->Fill(CorrEntries);
1442 }
else fhnCorr->Fill(CorrEntries);
1451 for (
Int_t iclus = 0; iclus < Nclusters; iclus++){
1452 AliVCluster* clusterofJet =
static_cast<AliVCluster*
>(clusters->At(iclus));
1454 AliError(Form(
"Couldn't get AliVCluster %d\n", iclus));
1459 TLorentzVector nPart;
1460 clusterofJet->GetMomentum(nPart, fvertex);
1468 for (
Int_t iTracks = 0; iTracks < Ntracks; ++iTracks) {
1469 AliVTrack *track =
dynamic_cast<AliVTrack*
>(tracks->At(iTracks));
1471 AliError(Form(
"Couldn't get AliVtrack %d\n", iTracks));
1476 if(TMath::Abs(track->Eta())>
fTrkEta)
continue;
1477 if (track->Pt()<0.15)
continue;
1483 trCharge = track->Charge();
1496 if(ieta<0)
continue;
1498 if(iptjet<0)
continue;
1516 Double_t triggerEntries[9] = {
fCent, jetPtLocal, track->Pt(), deta, dphijh, dEP, zVtx, trCharge, leadjet};
1520 }
else fhnJH->Fill(triggerEntries, 1.0/trefficiency);
1523 Double_t triggerEntries[9] = {
fCent, jet->
Pt(), track->Pt(), deta, dphijh, dEP, zVtx, trCharge, leadjet};
1527 }
else fhnJH->Fill(triggerEntries, 1.0/trefficiency);
1539 if( dEP>0 && dEP<=(TMath::Pi()/6) ){
1542 }
else if( dEP>(TMath::Pi()/3) && dEP<=(TMath::Pi()/2) ){
1545 }
else if( dEP>(TMath::Pi()/6) && dEP<=(TMath::Pi()/3) ){
1558 if(leadhadronPT <
fTrkBias)
continue;
1562 Double_t pt = -999, dEdx = -999, ITSsig = -999, TOFsig = -999,
charge = -999;
1565 Double_t nSigmaPion_TPC, nSigmaProton_TPC, nSigmaKaon_TPC;
1566 Double_t nSigmaPion_TOF, nSigmaProton_TOF, nSigmaKaon_TOF;
1567 Double_t nSigmaPion_ITS, nSigmaProton_ITS, nSigmaKaon_ITS;
1573 charge = track->Charge();
1581 dEdx = track->GetTPCsignal();
1582 ITSsig = track->GetITSsignal();
1583 TOFsig = track->GetTOFsignal();
1586 nSigmaPion_TPC =
fPIDResponse->NumberOfSigmasTPC(track,AliPID::kPion);
1587 nSigmaKaon_TPC =
fPIDResponse->NumberOfSigmasTPC(track,AliPID::kKaon);
1591 nSigmaPion_TOF =
fPIDResponse->NumberOfSigmasTOF(track,AliPID::kPion);
1592 nSigmaKaon_TOF =
fPIDResponse->NumberOfSigmasTOF(track,AliPID::kKaon);
1596 nSigmaPion_ITS =
fPIDResponse->NumberOfSigmasITS(track,AliPID::kPion);
1597 nSigmaKaon_ITS =
fPIDResponse->NumberOfSigmasITS(track,AliPID::kKaon);
1610 if (pt<0.900 && dEdx>0) {
1615 if (TMath::Abs(nSigmaPion_TPC)<2 && TMath::Abs(nSigmaKaon_TPC)>2 && TMath::Abs(nSigmaProton_TPC)>2 ){
1622 if (TMath::Abs(nSigmaKaon_TPC)<2 && TMath::Abs(nSigmaPion_TPC)>3 && TMath::Abs(nSigmaProton_TPC)>2 ){
1629 if (TMath::Abs(nSigmaProton_TPC)<2 && TMath::Abs(nSigmaPion_TPC)>3 && TMath::Abs(nSigmaKaon_TPC)>2 ){
1637 if (pt<0.500 && ITSsig>0) {
1642 if (TMath::Abs(nSigmaPion_ITS)<2 && TMath::Abs(nSigmaKaon_ITS)>2 && TMath::Abs(nSigmaProton_ITS)>2 ){
1649 if (TMath::Abs(nSigmaKaon_ITS)<2 && TMath::Abs(nSigmaPion_ITS)>3 && TMath::Abs(nSigmaProton_ITS)>2 ){
1656 if (TMath::Abs(nSigmaProton_ITS)<2 && TMath::Abs(nSigmaPion_ITS)>3 && TMath::Abs(nSigmaKaon_ITS)>2 ){
1664 if (pt>0.900 && pt<2.500 && TOFsig>0) {
1669 if (TMath::Abs(nSigmaPion_TOF)<2 && TMath::Abs(nSigmaKaon_TOF)>2 && TMath::Abs(nSigmaProton_TOF)>2 ){
1676 if (TMath::Abs(nSigmaKaon_TOF)<2 && TMath::Abs(nSigmaPion_TOF)>3 && TMath::Abs(nSigmaProton_TOF)>2 ){
1683 if (TMath::Abs(nSigmaProton_TOF)<2 && TMath::Abs(nSigmaPion_TOF)>3 && TMath::Abs(nSigmaKaon_TOF)>2 ){
1691 if (nPID == -99) nPID = 14;
1698 if((pt > 0.4) && (pt <=1.2) && (nSigmaPion_TOF >= -5.0) && (nSigmaPion_TOF <= 5.0)) nPID = 21;
1699 if((pt > 1.2) && (pt <=1.6) && (nSigmaPion_TOF >= -4.0) && (nSigmaPion_TOF <= 4.0)) nPID = 21;
1700 if((pt > 1.6) && (pt <=2.0) && (nSigmaPion_TOF >= -4.0) && (nSigmaPion_TOF <= 2.0)) nPID = 21;
1701 if((pt > 2.0) && (pt <=3.6) && (nSigmaPion_TOF >= -4.0) && (nSigmaPion_TOF <= 0.0)) nPID = 21;
1703 if((pt > 0.4) && (pt <=0.9) && (nSigmaProton_TOF >= -3.0) && (nSigmaPion_TOF <= 3.0)) nPID = 22;
1704 if((pt > 0.9) && (pt <=1.4) && (nSigmaProton_TOF >= -4.0) && (nSigmaPion_TOF <= 4.0)) nPID = 22;
1705 if((pt > 1.4) && (pt <=2.2) && (nSigmaProton_TOF >= -5.0) && (nSigmaPion_TOF <= 5.0)) nPID = 22;
1706 if((pt > 2.2) && (pt <=2.4) && (nSigmaProton_TOF >= -4.0) && (nSigmaPion_TOF <= 5.0)) nPID = 22;
1707 if((pt > 2.4) && (pt <=3.0) && (nSigmaProton_TOF >= -2.0) && (nSigmaPion_TOF <= 5.0)) nPID = 22;
1708 if((pt > 3.0) && (pt <=3.6) && (nSigmaProton_TOF >= 0.0) && (nSigmaPion_TOF <= 5.0)) nPID = 22;
1710 if((pt > 0.4) && (pt <=0.8) && (nSigmaKaon_TOF >= -5.0) && (nSigmaPion_TOF <= 5.0)) nPID = 23;
1711 if((pt > 0.8) && (pt <=1.2) && (nSigmaKaon_TOF >= -4.0) && (nSigmaPion_TOF <= 4.0)) nPID = 23;
1712 if((pt > 1.2) && (pt <=1.7) && (nSigmaKaon_TOF >= -3.0) && (nSigmaPion_TOF <= 4.0)) nPID = 23;
1713 if((pt > 1.7) && (pt <=2.3) && (nSigmaKaon_TOF >= 0.0) && (nSigmaPion_TOF <= 5.0)) nPID = 23;
1714 if((pt > 2.3) && (pt <=2.6) && (nSigmaKaon_TOF >= 0.0) && (nSigmaPion_TOF <= 3.0)) nPID = 23;
1715 if((pt > 2.6) && (pt <=3.6) && (nSigmaKaon_TOF >= 0.0) && (nSigmaPion_TOF <= 2.0)) nPID = 23;
1722 nSigmaPion_TPC, nSigmaPion_TOF,
1724 nSigmaProton_TPC, nSigmaKaon_TPC,
1725 nSigmaPion_ITS, nSigmaProton_ITS, nSigmaKaon_ITS,
1726 nSigmaProton_TOF, nSigmaKaon_TOF,
1730 }
else fhnPID->Fill(pid_EntriesALL, 1.0/trefficiency);
1734 nSigmaPion_TPC, nSigmaPion_TOF,
1739 }
else fhnPID->Fill(pid_Entries, 1.0/trefficiency);
1744 nSigmaPion_TPC, nSigmaPion_TOF,
1746 nSigmaProton_TPC, nSigmaKaon_TPC,
1747 nSigmaPion_ITS, nSigmaProton_ITS, nSigmaKaon_ITS,
1748 nSigmaProton_TOF, nSigmaKaon_TOF,
1752 }
else fhnPID->Fill(pid_EntriesALL, 1.0/trefficiency);
1756 nSigmaPion_TPC, nSigmaPion_TOF,
1761 }
else fhnPID->Fill(pid_Entries, 1.0/trefficiency);
1767 Int_t itrackpt = -500;
1774 if( dEP>0 && dEP<=(TMath::Pi()/6) ){
1779 }
else if( dEP>(TMath::Pi()/3) && dEP<=(TMath::Pi()/2) ){
1784 }
else if( dEP>(TMath::Pi()/6) && dEP<=(TMath::Pi()/3) ){
1828 UInt_t trigger = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
1830 if (trigger==0)
return kTRUE;
1833 AliEventPool* pool = 0x0;
1834 AliEventPool* poolpp = 0x0;
1841 poolpp =
fPoolMgr->GetEventPool(Ntrks, zVtx);
1848 if (!pool && !poolpp){
1849 if(
GetBeamType() == 1) AliFatal(Form(
"No pool found for centrality = %f, zVtx = %f",
fCent, zVtx));
1850 if(
GetBeamType() == 0) AliFatal(Form(
"No pool found for multiplicity = %f, zVtx = %f", Ntrks, zVtx));
1864 if (pool->IsReady() || pool->NTracksInPool() >
fNMIXtracks || pool->GetCurrentNEvents() >=
fNMIXevents) {
1867 for (
Int_t ijet = 0; ijet < Njets; ijet++) {
1869 if (ijet==ijethi) leadjet=1;
1876 if (jet->
Pt()<0.1)
continue;
1891 Int_t nMix = pool->GetCurrentNEvents();
1896 for (
Int_t jMix=0; jMix<nMix; jMix++) {
1900 bgTracks = pool->GetEvent(jMix);
1901 const Int_t Nbgtrks = bgTracks->GetEntries();
1902 for(
Int_t ibg=0; ibg<Nbgtrks; ibg++) {
1905 if(TMath::Abs(part->
Eta())>0.9)
continue;
1906 if(part->
Pt()<0.15)
continue;
1920 Double_t triggerEntries[9] = {
fCent,jetPtLocalmix,part->
Pt(),DEta,DPhi,dEP,zVtx, mixcharge, leadjet};
1923 }
else fhnMixedEvents->Fill(triggerEntries,1./(nMix*mixefficiency));
1925 Double_t triggerEntries[9] = {
fCent,jet->
Pt(),part->
Pt(),DEta,DPhi,dEP,zVtx, mixcharge, leadjet};
1928 }
else fhnMixedEvents->Fill(triggerEntries,1./(nMix*mixefficiency));
1946 if (poolpp->IsReady() || poolpp->NTracksInPool() >
fNMIXtracks || poolpp->GetCurrentNEvents() >=
fNMIXevents) {
1949 for (
Int_t ijet = 0; ijet < Njets; ijet++) {
1951 if (ijet==ijethi) leadjet=1;
1958 if (jet->
Pt()<0.1)
continue;
1967 Int_t nMix = poolpp->GetCurrentNEvents();
1972 for (
Int_t jMix=0; jMix<nMix; jMix++) {
1976 bgTracks = poolpp->GetEvent(jMix);
1977 const Int_t Nbgtrks = bgTracks->GetEntries();
1978 for(
Int_t ibg=0; ibg<Nbgtrks; ibg++) {
1981 if(TMath::Abs(part->
Eta())>0.9)
continue;
1982 if(part->
Pt()<0.15)
continue;
1991 Double_t triggerEntries[9] = {
fCent,jet->
Pt(),part->
Pt(),DEta,DPhi,dEP,zVtx, mixcharge, leadjet};
2013 poolpp->UpdatePool(tracksClone);
2028 pool->UpdatePool(tracksClone);
2043 cout<<
"# of jets: "<<Njets<<
" NjetAcc: "<<NjetAcc<<
" Highest jet pt: "<<highestjetpt<<
" leading hadron pt: "<<leadhadronPT<<endl;
2044 cout<<
"# tracks: "<<Ntracks<<
" NtrackAcc: "<<NtrackAcc<<
" Highest track pt: "<<ptmax<<endl;
2045 cout<<
"maxcluster pt = "<<maxclusterpt<<
" maxtrack pt = "<<maxtrackpt<<endl;
2046 cout<<
" =============================================== "<<endl;
2056 if (cent>=0 && cent<10) centbin = 0;
2057 else if (cent>=10 && cent<20) centbin = 1;
2058 else if (cent>=20 && cent<30) centbin = 2;
2059 else if (cent>=30 && cent<40) centbin = 3;
2060 else if (cent>=40 && cent<50) centbin = 4;
2061 else if (cent>=50 && cent<90) centbin = 5;
2069 double dphi = mphi-vphi;
2072 if(dphi<-0.5*TMath::Pi()) dphi+=2.*TMath::Pi();
2073 if(dphi>3./2.*TMath::Pi()) dphi-=2.*TMath::Pi();
2076 if( dphi < -1.*TMath::Pi()/2 || dphi > 3.*TMath::Pi()/2 )
2077 AliWarning(Form(
"%s: dPHI not in range [-0.5*Pi, 1.5*Pi]!", GetName()));
2088 if( dphi<-1*TMath::Pi() ){
2089 dphi = dphi + 1*TMath::Pi();
2092 if( (dphi>0) && (dphi<1*TMath::Pi()/2) ){
2094 }
else if( (dphi>1*TMath::Pi()/2) && (dphi<1*TMath::Pi()) ){
2095 dphi = 1*TMath::Pi() - dphi;
2096 }
else if( (dphi<0) && (dphi>-1*TMath::Pi()/2) ){
2098 }
else if( (dphi<-1*TMath::Pi()/2) && (dphi>-1*TMath::Pi()) ){
2099 dphi = dphi + 1*TMath::Pi();
2103 if( dphi < 0 || dphi > TMath::Pi()/2 )
2104 AliWarning(Form(
"%s: dPHI not in range [0, 0.5*Pi]!", GetName()));
2115 if (TMath::Abs(eta)<=0.4) etabin = 0;
2116 else if (TMath::Abs(eta)>0.4 && TMath::Abs(eta)<0.8) etabin = 1;
2117 else if (TMath::Abs(eta)>=0.8) etabin = 2;
2127 if (pt>=15 && pt<20) ptbin = 0;
2128 else if (pt>=20 && pt<25) ptbin = 1;
2129 else if (pt>=25 && pt<40) ptbin = 2;
2130 else if (pt>=40 && pt<60) ptbin = 3;
2131 else if (pt>=60) ptbin = 4;
2143 if (pt < 0.5) ptbin = 0;
2144 else if (pt>=0.5 && pt<1.0) ptbin = 1;
2145 else if (pt>=1.0 && pt<1.5) ptbin = 2;
2146 else if (pt>=1.5 && pt<2.0) ptbin = 3;
2147 else if (pt>=2.0 && pt<2.5) ptbin = 4;
2148 else if (pt>=2.5 && pt<3.0) ptbin = 5;
2149 else if (pt>=3.0 && pt<4.0) ptbin = 6;
2150 else if (pt>=4.0 && pt<5.0) ptbin = 7;
2151 else if (pt>=5.0) ptbin = 8;
2161 if (zVtx>=-10 && zVtx<-8) zVbin = 0;
2162 else if (zVtx>=-8 && zVtx<-6) zVbin = 1;
2163 else if (zVtx>=-6 && zVtx<-4) zVbin = 2;
2164 else if (zVtx>=-4 && zVtx<-2) zVbin = 3;
2165 else if (zVtx>=-2 && zVtx<0) zVbin = 4;
2166 else if (zVtx>=0 && zVtx<2) zVbin = 5;
2167 else if (zVtx>=2 && zVtx<4) zVbin = 6;
2168 else if (zVtx>=4 && zVtx<6) zVbin = 7;
2169 else if (zVtx>=6 && zVtx<8) zVbin = 8;
2170 else if (zVtx>=8 && zVtx<10) zVbin = 9;
2188 const Int_t dim = count;
2195 while(c<dim && i<32){
2199 hnTitle += Form(
";%s",label.Data());
2207 return new THnSparseF(name, hnTitle.Data(), dim,
nbins, xmin, xmax);
2218 label =
"V0 centrality (%)";
2226 label =
"Jet Corrected p_{T}";
2231 label =
"Jet p_{T}";
2245 label =
"Track p_{T}";
2258 label =
"Relative Eta";
2265 label =
"Relative Phi";
2272 label =
"Relative angle of Jet and Reaction Plane";
2286 label =
"track charge";
2293 label =
"leading jet";
2301 label =
"leading track";
2317 tracksClone->SetOwner(kTRUE);
2324 for (
Int_t i=0; i<tracksME->GetEntriesFast(); i++) {
2325 AliVParticle* particle = (AliVParticle*) tracksME->At(i);
2326 if(TMath::Abs(particle->Eta())>
fTrkEta)
continue;
2327 if(particle->Pt()<0.15)
continue;
2354 tracksClone->Add(
new AliPicoTrack(particle->Pt(), particle->Eta(), particle->Phi(), particle->Charge(), 0, 0, 0, 0));
2372 const Int_t dim = count;
2379 while(c<dim && i<32){
2383 hnTitle += Form(
";%s",label.Data());
2391 return new THnSparseF(name, hnTitle.Data(), dim,
nbins, xmin, xmax);
2403 label =
"V0 centrality (%)";
2410 label =
"Track p_{T}";
2423 label =
"Charge of Track";
2430 label =
"Relative Eta of Track and Jet";
2437 label =
"Relative Phi of Track and Jet";
2444 label =
"leading jet";
2459 label =
"Relative angle: Jet and Reaction Plane";
2467 label =
"Jet Corrected p_{T}";
2472 label =
"Jet p_{T}";
2486 label =
"N-Sigma of pions in TPC";
2494 label =
"N-Sigma of pions in TOF";
2507 label =
"PID determination TPC 1-15, TOF 21-25";
2530 label =
"N-Sigma of protons in TPC";
2538 label =
"N-Sigma of kaons in TPC";
2546 label =
"N-Sigma of pions in ITS";
2554 label =
"N-Sigma of protons in ITS";
2562 label =
"N-Sigma of kaons in ITS";
2570 label =
"N-Sigma of protons in TOF";
2583 label =
"N-Sigma of kaons in TOF";
2599 cout<<
"#########################"<<endl;
2600 cout<<
"#### DONE RUNNING!!! ####"<<endl;
2601 cout<<
"#########################"<<endl;
2611 if (jet->
Area()==0)
return 0;
2623 h->GetXaxis()->SetBinLabel(1,
"TPC: Unidentified");
2624 h->GetXaxis()->SetBinLabel(2,
"TPC: Pion");
2625 h->GetXaxis()->SetBinLabel(3,
"TPC: Kaon");
2626 h->GetXaxis()->SetBinLabel(4,
"TPC: Proton");
2627 h->GetXaxis()->SetBinLabel(5,
"ITS: Unidentified");
2628 h->GetXaxis()->SetBinLabel(6,
"ITS: Pion");
2629 h->GetXaxis()->SetBinLabel(7,
"ITS: Kaon");
2630 h->GetXaxis()->SetBinLabel(8,
"ITS: Proton");
2631 h->GetXaxis()->SetBinLabel(9,
"TOF: Unidentified");
2632 h->GetXaxis()->SetBinLabel(10,
"TOF: Pion");
2633 h->GetXaxis()->SetBinLabel(11,
"TOF: Kaon");
2634 h->GetXaxis()->SetBinLabel(12,
"TOF: Proton");
2635 h->GetXaxis()->SetBinLabel(14,
"Unidentified tracks");
2638 h->LabelsOption(
"v");
2645 h->GetXaxis()->SetBinLabel(1,
"All events started");
2646 h->GetXaxis()->SetBinLabel(2,
"object check");
2647 h->GetXaxis()->SetBinLabel(3,
"aod/esd check");
2648 h->GetXaxis()->SetBinLabel(4,
"centrality check");
2649 h->GetXaxis()->SetBinLabel(5,
"zvertex check");
2650 h->GetXaxis()->SetBinLabel(6,
"list check");
2651 h->GetXaxis()->SetBinLabel(7,
"track/jet pointer check");
2652 h->GetXaxis()->SetBinLabel(8,
"tracks & jets < than 1 check");
2653 h->GetXaxis()->SetBinLabel(9,
"after track/jet loop to get highest pt");
2654 h->GetXaxis()->SetBinLabel(10,
"accepted jets");
2655 h->GetXaxis()->SetBinLabel(11,
"jets meeting pt threshold");
2656 h->GetXaxis()->SetBinLabel(12,
"accepted tracks in events w/ trigger jet");
2657 h->GetXaxis()->SetBinLabel(13,
"after AliVEvent & fPIDResponse");
2658 h->GetXaxis()->SetBinLabel(14,
"events before event mixing");
2659 h->GetXaxis()->SetBinLabel(15,
"mixed events w/ pool");
2660 h->GetXaxis()->SetBinLabel(16,
"event mixing: jets");
2661 h->GetXaxis()->SetBinLabel(17,
"event mixing: nMix");
2662 h->GetXaxis()->SetBinLabel(18,
"event mixing: nbackground tracks");
2663 h->GetXaxis()->SetBinLabel(19,
"event mixing: THE END");
2666 h->LabelsOption(
"v");
2672 h->GetXaxis()->SetBinLabel(1,
"no trigger");
2673 h->GetXaxis()->SetBinLabel(2,
"kAny");
2674 h->GetXaxis()->SetBinLabel(3,
"kAnyINT");
2675 h->GetXaxis()->SetBinLabel(4,
"kMB");
2676 h->GetXaxis()->SetBinLabel(5,
"kINT7");
2677 h->GetXaxis()->SetBinLabel(6,
"kEMC1");
2678 h->GetXaxis()->SetBinLabel(7,
"kEMC7");
2679 h->GetXaxis()->SetBinLabel(8,
"kEMC8");
2680 h->GetXaxis()->SetBinLabel(9,
"kEMCEJE");
2681 h->GetXaxis()->SetBinLabel(10,
"kEMCEGA");
2682 h->GetXaxis()->SetBinLabel(11,
"kCentral");
2683 h->GetXaxis()->SetBinLabel(12,
"kSemiCentral");
2684 h->GetXaxis()->SetBinLabel(13,
"kINT8");
2685 h->GetXaxis()->SetBinLabel(14,
"kEMCEJE or kMB");
2686 h->GetXaxis()->SetBinLabel(15,
"kEMCEGA or kMB");
2687 h->GetXaxis()->SetBinLabel(16,
"kAnyINT or kMB");
2688 h->GetXaxis()->SetBinLabel(17,
"kEMCEJE & (kMB or kCentral or kSemiCentral)");
2689 h->GetXaxis()->SetBinLabel(18,
"kEMCEGA & (kMB or kCentral or kSemiCentral)");
2690 h->GetXaxis()->SetBinLabel(19,
"kAnyINT & (kMB or kCentral or kSemiCentral)");
2693 h->LabelsOption(
"v");
2708 const Int_t dim = count;
2715 while(c<dim && i<32){
2719 hnTitle += Form(
";%s",label.Data());
2727 return new THnSparseF(name, hnTitle.Data(), dim,
nbins, xmin, xmax);
2739 label =
"V0 centrality (%)";
2747 label =
"Jet Corrected p_{T}";
2752 label =
"Jet p_{T}";
2766 label =
"Relative angle: Jet and Reaction Plane";
2780 label =
"Jet p_{T} corrected with Local Rho";
2794 label =
"Jet p_{T} corrected with Global Rho";
2816 AliError(Form(
"%s:Jet not found",GetName()));
2820 Int_t flavNUM = -99;
2842 if(flav < 1)
return 0;
2846 if(flav != flavNUM)
return 0;
2850 if(flav == flavNUM)
return 1;
2871 Int_t runNUM = fCurrentRunNumber;
2872 Int_t runSwitchGood = -999;
2873 Int_t centbin = -99;
2884 if ((runNUM == 169975 || runNUM == 169981 || runNUM == 170038 || runNUM == 170040 || runNUM == 170083 || runNUM == 170084 || runNUM == 170085 || runNUM == 170088 || runNUM == 170089 || runNUM == 170091 || runNUM == 170152 || runNUM == 170155 || runNUM == 170159 || runNUM == 170163 || runNUM == 170193 || runNUM == 170195 || runNUM == 170203 || runNUM == 170204 || runNUM == 170228 || runNUM == 170230 || runNUM == 170268 || runNUM == 170269 || runNUM == 170270 || runNUM == 170306 || runNUM == 170308 || runNUM == 170309)) runSwitchGood = 0;
2887 if ((runNUM == 167902 || runNUM == 167903 || runNUM == 167915 || runNUM == 167920 || runNUM == 167987 || runNUM == 167988 || runNUM == 168066 || runNUM == 168068 || runNUM == 168069 || runNUM == 168076 || runNUM == 168104 || runNUM == 168107 || runNUM == 168108 || runNUM == 168115 || runNUM == 168212 || runNUM == 168310 || runNUM == 168311 || runNUM == 168322 || runNUM == 168325 || runNUM == 168341 || runNUM == 168342 || runNUM == 168361 || runNUM == 168362 || runNUM == 168458 || runNUM == 168460 || runNUM == 168461 || runNUM == 168464 || runNUM == 168467 || runNUM == 168511 || runNUM == 168512 || runNUM == 168777 || runNUM == 168826 || runNUM == 168984 || runNUM == 168988 || runNUM == 168992 || runNUM == 169035 || runNUM == 169091 || runNUM == 169094 || runNUM == 169138 || runNUM == 169143 || runNUM == 169144 || runNUM == 169145 || runNUM == 169148 || runNUM == 169156 || runNUM == 169160 || runNUM == 169167 || runNUM == 169238 || runNUM == 169411 || runNUM == 169415 || runNUM == 169417 || runNUM == 169835 || runNUM == 169837 || runNUM == 169838 || runNUM == 169846 || runNUM == 169855 || runNUM == 169858 || runNUM == 169859 || runNUM == 169923 || runNUM == 169956 || runNUM == 170027 || runNUM == 170036 || runNUM == 170081)) runSwitchGood = 1;
2894 if(runSwitchGood == 0 && centbin == 0) effSwitch = 2;
2895 if(runSwitchGood == 0 && centbin == 1) effSwitch = 3;
2896 if(runSwitchGood == 0 && centbin == 2) effSwitch = 4;
2897 if(runSwitchGood == 0 && centbin == 3) effSwitch = 5;
2898 if(runSwitchGood == 1 && centbin == 0) effSwitch = 6;
2899 if(runSwitchGood == 1 && centbin == 1) effSwitch = 7;
2900 if(runSwitchGood == 1 && centbin == 2) effSwitch = 8;
2901 if(runSwitchGood == 1 && centbin == 3) effSwitch = 9;
2905 Double_t p0_10SG[17] = {0.906767, 0.0754127, 1.11638, -0.0233078, 0.795454, 0.00935385, -0.000327857, 1.08903, 0.0107272, 0.443252, -0.143411, 0.965822, 0.359156, -0.581221, 1.0739, 0.00632828, 0.706356};
2907 Double_t p10_30SG[17] = {0.908011, 0.0769254, 1.11912, -0.0249449, 0.741488, 0.0361252, -0.00367954, 1.10424, 0.011472, 0.452059, -0.133282, 0.980633, 0.358222, -0.620256, 1.06871, 0.00564449, 0.753168};
2909 Double_t p30_50SG[17] = {0.958708, 0.0799197, 1.10817, -0.0357678, 0.75051, 0.0607808, -0.00929713, 0.998801, 0.00692244, 0.615452, -0.0480328, 0.968431, 0.321634, -0.619066, 1.03412, 0.00656201, 0.798666};
2911 Double_t p50_90SG[17] = {0.944565, 0.0807258, 1.12709, -0.0324746, 0.666452, 0.0842476, -0.00963837, 1.02829, 0.00666852, 0.549625, -0.0603107, 0.981374, 0.309374, -0.619181, 1.05367, 0.005925, 0.744887};
2914 Double_t p0_10G[17] = {0.971679, 0.0767571, 1.13355, -0.0274484, 0.856652, 0.00536795, 3.90795e-05, 1.06889, 0.011007, 0.447046, -0.146626, 0.919777, 0.192601, -0.268515, 1.00243, 0.00620849, 0.709477};
2916 Double_t p10_30G[17] = {0.97929, 0.0776039, 1.12213, -0.0300645, 0.844722, 0.0134788, -0.0012333, 1.07955, 0.0116835, 0.456608, -0.132743, 0.930964, 0.174175, -0.267154, 0.993118, 0.00574892, 0.765256};
2918 Double_t p30_50G[17] = {0.997696, 0.0816769, 1.14341, -0.0353734, 0.752151, 0.0744259, -0.0102926, 1.01561, 0.00713274, 0.57203, -0.0640248, 0.947747, 0.102007, -0.194698, 0.999164, 0.00568476, 0.7237};
2920 Double_t p50_90G[17] = {0.97041, 0.0813559, 1.12151, -0.0368797, 0.709327, 0.0701501, -0.00784043, 1.06276, 0.00676173, 0.53607, -0.0703117, 0.982534, 0.0947881, -0.18073, 1.03229, 0.00580109, 0.737801};
2931 ptaxis = (x<2.9)*(p0_10SG[0]*exp(-pow(p0_10SG[1]/x,p0_10SG[2])) + p0_10SG[3]*x) + (x>=2.9)*(p0_10SG[4] + p0_10SG[5]*x + p0_10SG[6]*x*x);
2932 etaaxis = (y<-0.07)*(p0_10SG[7]*exp(-pow(p0_10SG[8]/TMath::Abs(y+0.91),p0_10SG[9])) + p0_10SG[10]*y) + (y>=-0.07 && y<=0.4)*(p0_10SG[11] + p0_10SG[12]*y + p0_10SG[13]*y*y) + (y>0.4)*(p0_10SG[14]*exp(-pow(p0_10SG[15]/TMath::Abs(-y+0.91),p0_10SG[16])));
2933 TRefficiency = ptaxis*etaaxis;
2938 ptaxis = (x<2.9)*(p10_30SG[0]*exp(-pow(p10_30SG[1]/x,p10_30SG[2])) + p10_30SG[3]*x) + (x>=2.9)*(p10_30SG[4] + p10_30SG[5]*x + p10_30SG[6]*x*x);
2939 etaaxis = (y<-0.07)*(p10_30SG[7]*exp(-pow(p10_30SG[8]/TMath::Abs(y+0.91),p10_30SG[9])) + p10_30SG[10]*y) + (y>=-0.07 && y<=0.4)*(p10_30SG[11] + p10_30SG[12]*y + p10_30SG[13]*y*y) + (y>0.4)*(p10_30SG[14]*exp(-pow(p10_30SG[15]/TMath::Abs(-y+0.91),p10_30SG[16])));
2940 TRefficiency = ptaxis*etaaxis;
2945 ptaxis = (x<2.9)*(p30_50SG[0]*exp(-pow(p30_50SG[1]/x,p30_50SG[2])) + p30_50SG[3]*x) + (x>=2.9)*(p30_50SG[4] + p30_50SG[5]*x + p30_50SG[6]*x*x);
2946 etaaxis = (y<-0.07)*(p30_50SG[7]*exp(-pow(p30_50SG[8]/TMath::Abs(y+0.91),p30_50SG[9])) + p30_50SG[10]*y) + (y>=-0.07 && y<=0.4)*(p30_50SG[11] + p30_50SG[12]*y + p30_50SG[13]*y*y) + (y>0.4)*(p30_50SG[14]*exp(-pow(p30_50SG[15]/TMath::Abs(-y+0.91),p30_50SG[16])));
2947 TRefficiency = ptaxis*etaaxis;
2952 ptaxis = (x<2.9)*(p50_90SG[0]*exp(-pow(p50_90SG[1]/x,p50_90SG[2])) + p50_90SG[3]*x) + (x>=2.9)*(p50_90SG[4] + p50_90SG[5]*x + p50_90SG[6]*x*x);
2953 etaaxis = (y<-0.07)*(p50_90SG[7]*exp(-pow(p50_90SG[8]/TMath::Abs(y+0.91),p50_90SG[9])) + p50_90SG[10]*y) + (y>=-0.07 && y<=0.4)*(p50_90SG[11] + p50_90SG[12]*y + p50_90SG[13]*y*y) + (y>0.4)*(p50_90SG[14]*exp(-pow(p50_90SG[15]/TMath::Abs(-y+0.91),p50_90SG[16])));
2954 TRefficiency = ptaxis*etaaxis;
2959 ptaxis = (x<2.9)*(p0_10G[0]*exp(-pow(p0_10G[1]/x,p0_10G[2])) + p0_10G[3]*x) + (x>=2.9)*(p0_10G[4] + p0_10G[5]*x + p0_10G[6]*x*x);
2960 etaaxis = (y<0.0)*(p0_10G[7]*exp(-pow(p0_10G[8]/TMath::Abs(y+0.91),p0_10G[9])) + p0_10G[10]*y) + (y>=0.0 && y<=0.4)*(p0_10G[11] + p0_10G[12]*y + p0_10G[13]*y*y) + (y>0.4)*(p0_10G[14]*exp(-pow(p0_10G[15]/TMath::Abs(-y+0.91),p0_10G[16])));
2961 TRefficiency = ptaxis*etaaxis;
2966 ptaxis = (x<2.9)*(p10_30G[0]*exp(-pow(p10_30G[1]/x,p10_30G[2])) + p10_30G[3]*x) + (x>=2.9)*(p10_30G[4] + p10_30G[5]*x + p10_30G[6]*x*x);
2967 etaaxis = (y<0.0)*(p10_30G[7]*exp(-pow(p10_30G[8]/TMath::Abs(y+0.91),p10_30G[9])) + p10_30G[10]*y) + (y>=0.0 && y<=0.4)*(p10_30G[11] + p10_30G[12]*y + p10_30G[13]*y*y) + (y>0.4)*(p10_30G[14]*exp(-pow(p10_30G[15]/TMath::Abs(-y+0.91),p10_30G[16])));
2968 TRefficiency = ptaxis*etaaxis;
2973 ptaxis = (x<2.9)*(p30_50G[0]*exp(-pow(p30_50G[1]/x,p30_50G[2])) + p30_50G[3]*x) + (x>=2.9)*(p30_50G[4] + p30_50G[5]*x + p30_50G[6]*x*x);
2974 etaaxis = (y<0.0)*(p30_50G[7]*exp(-pow(p30_50G[8]/TMath::Abs(y+0.91),p30_50G[9])) + p30_50G[10]*y) + (y>=0.0 && y<=0.4)*(p30_50G[11] + p30_50G[12]*y + p30_50G[13]*y*y) + (y>0.4)*(p30_50G[14]*exp(-pow(p30_50G[15]/TMath::Abs(-y+0.91),p30_50G[16])));
2975 TRefficiency = ptaxis*etaaxis;
2980 ptaxis = (x<2.9)*(p50_90G[0]*exp(-pow(p50_90G[1]/x,p50_90G[2])) + p50_90G[3]*x) + (x>=2.9)*(p50_90G[4] + p50_90G[5]*x + p50_90G[6]*x*x);
2981 etaaxis = (y<0.0)*(p50_90G[7]*exp(-pow(p50_90G[8]/TMath::Abs(y+0.91),p50_90G[9])) + p50_90G[10]*y) + (y>=0.0 && y<=0.4)*(p50_90G[11] + p50_90G[12]*y + p50_90G[13]*y*y) + (y>0.4)*(p50_90G[14]*exp(-pow(p50_90G[15]/TMath::Abs(-y+0.91),p50_90G[16])));
2982 TRefficiency = ptaxis*etaaxis;
2993 return TRefficiency;
3000 Double_t a(0), b(0),
c(0), d(0), e(0), f(0), g(0), h(0);
3001 vzero[0][0] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 2, a, b);
3002 vzero[1][0] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 2,
c, d);
3003 vzero[0][1] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 3, e, f);
3004 vzero[1][1] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 3, g, h);
3019 Double_t qx2a(0), qy2a(0), qx2c(0), qy2c(0), qx3a(0), qy3a(0), qx3c(0), qy3c(0);
3021 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 2, qx2a, qy2a);
3022 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 2, qx2c, qy2c);
3023 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 3, qx3a, qy3a);
3024 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 3, qx3c, qy3c);
3035 Q2[0] = chi2A*chi2A*qx2a+chi2C*chi2C*qx2c;
3036 Q2[1] = chi2A*chi2A*qy2a+chi2C*chi2C*qy2c;
3037 Q3[0] = chi3A*chi3A*qx3a+chi3C*chi3C*qx3c;
3038 Q3[1] = chi3A*chi3A*qy3a+chi3C*chi3C*qy3c;
3040 comb[0] = .5*TMath::ATan2(Q2[1], Q2[0]);
3041 comb[1] = (1./3.)*TMath::ATan2(Q3[1], Q3[0]);
3068 if(TMath::Abs(track->Eta())>0.9)
continue;
3069 if(track->Pt()<0.15)
continue;
3084 qx2+= TMath::Cos(2.*track->Phi());
3085 qy2+= TMath::Sin(2.*track->Phi());
3086 qx3+= TMath::Cos(3.*track->Phi());
3087 qy3+= TMath::Sin(3.*track->Phi());
3090 tpc[0] = .5*TMath::ATan2(qy2, qx2);
3091 tpc[1] = (1./3.)*TMath::ATan2(qy3, qx3);
3146 for(
Int_t iTPC(0); iTPC < iTracks; iTPC++) {
3151 if(TMath::Abs(track->Eta())>0.9)
continue;
3152 if(track->Pt()<0.15)
continue;
3154 if(track->Eta() < 0 ) {
3156 qx2a+= TMath::Cos(2.*track->Phi());
3157 qy2a+= TMath::Sin(2.*track->Phi());
3158 qx3a+= TMath::Cos(3.*track->Phi());
3159 qy3a+= TMath::Sin(3.*track->Phi());
3160 qx4a+= TMath::Cos(4.*track->Phi());
3161 qy4a+= TMath::Sin(4.*track->Phi());
3162 qx5a+= TMath::Cos(5.*track->Phi());
3163 qy5a+= TMath::Sin(5.*track->Phi());
3164 }
else if (track->Eta() > 0) {
3166 qx2b+= TMath::Cos(2.*track->Phi());
3167 qy2b+= TMath::Sin(2.*track->Phi());
3168 qx3b+= TMath::Cos(3.*track->Phi());
3169 qy3b+= TMath::Sin(3.*track->Phi());
3170 qx4b+= TMath::Cos(4.*track->Phi());
3171 qy4b+= TMath::Sin(4.*track->Phi());
3172 qx5b+= TMath::Cos(5.*track->Phi());
3173 qy5b+= TMath::Sin(5.*track->Phi());
3179 Double_t tpca2(.5*TMath::ATan2(qy2a, qx2a));
3180 Double_t tpcb2(.5*TMath::ATan2(qy2b, qx2b));
3226 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
3227 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
3228 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
3229 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
3233 for(
Int_t i(0); i < 9; i++) {
3251 Float_t v0Centr(InputEvent()->GetCentrality()->GetCentralityPercentile(
"V0M"));
3252 if(v0Centr < 5)
return 0;
3253 else if(v0Centr < 10)
return 1;
3254 else if(v0Centr < 20)
return 2;
3255 else if(v0Centr < 30)
return 3;
3256 else if(v0Centr < 40)
return 4;
3257 else if(v0Centr < 50)
return 5;
3258 else if(v0Centr < 60)
return 6;
3259 else if(v0Centr < 70)
return 7;
3273 for(
Int_t i(0); i < iJets; i++) {
3276 if(jet->
Pt() > pt) {
3278 pt = leadingJet->
Pt();
3285 for(
Int_t i(0); i < iJets; i++) {
3290 if((jet->
Pt()-jet->
Area()*rho) > pt) {
3292 pt = (leadingJet->
Pt()-jet->
Area()*rho);
3308 Double_t chi(2.), delta(1.), con((TMath::Sqrt(TMath::Pi()))/(2.*TMath::Sqrt(2)));
3309 for (
Int_t i(0); i < 15; i++) {
3310 chi = ((con*chi*TMath::Exp(-chi*chi/4.)*(TMath::BesselI0(chi*chi/4.)+TMath::BesselI1(chi*chi/4.))) < res) ? chi + delta : chi - delta;
3318 if(trig == 0) h->Fill(1);
3319 if(trig & AliVEvent::kAny) h->Fill(2);
3320 if(trig & AliVEvent::kAnyINT) h->Fill(3);
3321 if(trig & AliVEvent::kMB) h->Fill(4);
3322 if(trig & AliVEvent::kINT7) h->Fill(5);
3323 if(trig & AliVEvent::kEMC1) h->Fill(6);
3324 if(trig & AliVEvent::kEMC7) h->Fill(7);
3325 if(trig & AliVEvent::kEMC8) h->Fill(8);
3326 if(trig & AliVEvent::kEMCEJE) h->Fill(9);
3327 if(trig & AliVEvent::kEMCEGA) h->Fill(10);
3328 if(trig & AliVEvent::kCentral) h->Fill(11);
3329 if(trig & AliVEvent::kSemiCentral) h->Fill(12);
3330 if(trig & AliVEvent::kINT8) h->Fill(13);
3332 if(trig & (AliVEvent::kEMCEJE | AliVEvent::kMB)) h->Fill(14);
3333 if(trig & (AliVEvent::kEMCEGA | AliVEvent::kMB)) h->Fill(15);
3334 if(trig & (AliVEvent::kAnyINT | AliVEvent::kMB)) h->Fill(16);
3336 if(trig & (AliVEvent::kEMCEJE & (AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral))) h->Fill(17);
3337 if(trig & (AliVEvent::kEMCEGA & (AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral))) h->Fill(18);
3338 if(trig & (AliVEvent::kAnyINT & (AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral))) h->Fill(19);
3341 h->GetXaxis()->SetBinLabel(1,
"no trigger");
3342 h->GetXaxis()->SetBinLabel(2,
"kAny");
3343 h->GetXaxis()->SetBinLabel(3,
"kAnyINT");
3344 h->GetXaxis()->SetBinLabel(4,
"kMB");
3345 h->GetXaxis()->SetBinLabel(5,
"kINT7");
3346 h->GetXaxis()->SetBinLabel(6,
"kEMC1");
3347 h->GetXaxis()->SetBinLabel(7,
"kEMC7");
3348 h->GetXaxis()->SetBinLabel(8,
"kEMC8");
3349 h->GetXaxis()->SetBinLabel(9,
"kEMCEJE");
3350 h->GetXaxis()->SetBinLabel(10,
"kEMCEGA");
3351 h->GetXaxis()->SetBinLabel(11,
"kCentral");
3352 h->GetXaxis()->SetBinLabel(12,
"kSemiCentral");
3353 h->GetXaxis()->SetBinLabel(13,
"kINT8");
3354 h->GetXaxis()->SetBinLabel(14,
"kEMCEJE or kMB");
3355 h->GetXaxis()->SetBinLabel(15,
"kEMCEGA or kMB");
3356 h->GetXaxis()->SetBinLabel(16,
"kAnyINT or kMB");
3357 h->GetXaxis()->SetBinLabel(17,
"kEMCEJE & (kMB or kCentral or kSemiCentral)");
3358 h->GetXaxis()->SetBinLabel(18,
"kEMCEGA & (kMB or kCentral or kSemiCentral)");
3359 h->GetXaxis()->SetBinLabel(19,
"kAnyINT & (kMB or kCentral or kSemiCentral)");
3362 h->LabelsOption(
"v");
TObjArray * CloneAndReduceTrackList(TObjArray *tracks)
TH3 * fHistJetEtaPhiPt[6]
TH1 * fHistJetHadbindPhiIN[9]
virtual Int_t GetpTtrackBin(Double_t pt) const
Double_t RelativeEPJET(Double_t jetAng, Double_t EPAng) const
TProfile * fProfV5Resolution[10]
resolution parameters for v4
AliEmcalJet * GetLeadingJet(AliLocalRhoParameter *localRho=0x0)
TH1 * fHistClusofJetEnergy
THnSparse * fhnJH
// mixed events matrix
THnSparse * fhnMixedEvents
// PID sparse
void SetfHistQAcounterLabels(TH1 *h) const
AliEmcalJet * fLeadingJet
number of accepted tracks
Bool_t makeextraCORRhistos
ULong_t GetTriggerList()
Get list of selected triggers of the given event.
void CalculateEventPlaneTPC(Double_t *tpc)
AliAODEvent * fAOD
// ESD object
static Double_t CalculateEventPlaneChi(Double_t res)
TArrayD * fChi2A
resolution parameters for v5
TH2F * fHistJetPtNconCh[6]
Double_t fSoftTrackMinPt_ep
Int_t GetNParticles() const
Container with name, TClonesArray and cuts for particles.
virtual Int_t AcceptMyJet(AliEmcalJet *jet)
Double_t GetLocalVal(Double_t phi, Double_t r, Double_t n) const
TArrayD * fCentralityClasses
Double_t fEPV0
!event plane V0
TList * list
TDirectory file where lists per trigger are stored in train ouput.
TH1 * fHistJetNClusterConstit
TH1 * fHistTrackPtallcent
// phi distrubtion of mixed events
AliJetContainer * fJetsCont
tracks from AliTrackContainer
TH3 * fHistClusEtaPhiEnergy
Double_t GetLeadingHadronPt(AliEmcalJet *jet, Int_t c=0)
virtual Int_t GetEtaBin(Double_t eta) const
TH1 * fHistJetHaddPhiOUTBias
AliJetContainer * AddJetContainer(const char *n, TString defaultCutType, Float_t jetRadius=0.4)
TH1F * fHistEventQA
// Vevent object
TH1F * fHistJetHaddPhiOUTcent[6]
TProfile * fProfV4Resolution[10]
resolution parameters for v3
Int_t fDoEventMixing
centrality bin
AliLocalRhoParameter * GetLocalRhoFromEvent(const char *name)
TH2 * fHistJetHBias[6][5][3]
TH1 * FillEventTriggerQA(TH1 *h, UInt_t t)
virtual void Terminate(Option_t *)
void CalculateEventPlaneResolution(Double_t vzero[2][2], Double_t *vzeroComb, Double_t *tpc)
virtual void GetDimParams(Int_t iEntry, TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax)
AliTrackContainer * fTracksCont
Jets.
virtual Int_t GetpTjetBin(Double_t pt) const
AliAnalysisTaskEmcalJetHadEPpid()
Double_t fEPV0C
!event plane V0C
UShort_t GetNumberOfConstituents() const
TString fCaloClustersName
UShort_t GetNumberOfTracks() const
AliVEvent * fVevent
// AOD object
virtual void UserCreateOutputObjects()
TH2 * fHistNTrackPhiEtaNEW
virtual void GetDimParamsPID(Int_t iEntry, TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax)
TString fLocalRhoName
name for local rho
Double_t fSoftTrackMaxPt_ep
Int_t fInCentralitySelection
AliRhoParameter * GetRhoFromEvent(const char *name)
virtual THnSparse * NewTHnSparseFCorr(const char *name, UInt_t entries)
UShort_t GetNumberOfClusters() const
TH1F * fHistJetHaddPHI
// mixed events phi-eta distributions
TProfile * fProfV3Resolution[10]
resolution parameters for v2
virtual void GetDimParamsCorr(Int_t iEntry, TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax)
TH2F * fHistJetPtvsTrackPt[6]
number of jets versus Centrality
TH1 * fHistJetHadbindPhiMID[9]
Float_t fExcludeLeadingJetsFromFit
leading jet
TH2F * fHistJetPtNconBiasEm[6]
TH1 * fHistJetHadbindPhiOUT[9]
AliRhoParameter * fRho
! event rho
TH1F * fHistJetHaddPhiMIDcent[6]
virtual THnSparse * NewTHnSparseF(const char *name, UInt_t entries)
TH2F * fHistJetPtNconBias[6]
TH1 * fHistJetHaddPhiINBias
TH1 * fHistJetHadbindPhi[9]
void SetfHistPIDcounterLabels(TH1 *fHistPID) const
BeamType GetBeamType() const
Get beam type.
Double_t MaxTrackPt() const
TH2 * fHistAreavsRawPt[6]
TH1F * fHistJetHaddPhiINcent[6]
AliPIDResponse * fPIDResponse
// event pool Manager object
Double_t fCent
!event centrality
virtual THnSparse * NewTHnSparseFPID(const char *name, UInt_t entries)
AliLocalRhoParameter * fLocalRho
! local event rho
TH2F * fHistJetPtNconEm[6]
void SetfHistEvtSelQALabels(TH1 *h) const
TH2 * fHistJetHTT[6][5][3]
Bool_t Run()
Run function. This is the core function of the analysis and contains the user code. Therefore users have to implement this function.
AliClusterContainer * fCaloClustersCont
Tracks - Need this for applying track quality cuts.
Double_t RelativePhi(Double_t mphi, Double_t vphi) const
Int_t GetVZEROCentralityBin() const
AliEventPoolManager * fPoolMgr
virtual Int_t GetzVertexBin(Double_t zVtx) const
TH2F * fHistJetPtvsdEP[6]
TClonesArray * fJets
! jets
Bool_t fUseChiWeightForVZERO
void ExecOnce()
Perform steps needed to initialize the analysis.
TH2F * fHistJetPtvsdEPBias[6]
TH1F * fHistEventSelectionQA
TClonesArray * fTracksFromContainer
Double_t EffCorrection(Double_t trkETA, Double_t trkPT, Int_t effswitch) const
TH1 * fHistJetHaddPhiMIDBias
AliEmcalList * fOutput
!output list
TH1 * fHistJetNTrackConstit
Bool_t doFlavourJetAnalysis
virtual Int_t AcceptFlavourJet(AliEmcalJet *jet, Int_t NUM)
TClonesArray * fTracks
!tracks
TH1F * fHistEventSelectionQAafterCuts
TProfile * fProfV2Resolution[10]
// sparse to get # jet triggers
AliTrackContainer * GetTrackContainer(Int_t i=0) const
Bool_t fCreateHisto
whether or not create histograms
void CalculateEventPlaneCombinedVZERO(Double_t *comb) const
void SetMakeGeneralHistograms(Bool_t g)
TH2F * fHistJetPtNconBiasCh[6]
Base task in the EMCAL jet framework.
Double_t fEPV0A
!event plane V0A
Double_t MaxClusterPt() const
Represent a jet reconstructed using the EMCal jet framework.
void ReadVZEROCalibration2011h()
void UserCreateOutputObjects()
Main initialization function on the worker.
virtual AliVParticle * GetNextAcceptParticle()
THnSparse * fhnCorr
// jet hadron events matrix
TH2F * fHistMEphieta
// single events phi-eta distributions
Int_t GetNAcceptedParticles() const
TH1F * fHistJetPtcorrGlRho[6]
Double_t fRhoVal
! event rho value, same for local rho
TH3 * fHistJetEtaPhiPtBias[6]
Bool_t douseOLDtrackFramework
virtual Int_t GetCentBin(Double_t cent) const
void CalculateEventPlaneVZERO(Double_t vzero[2][2]) const
virtual ~AliAnalysisTaskEmcalJetHadEPpid()
Bool_t makeoldJEThadhistos
TH1 * fHistJetHaddPhiBias
TList * OpenFile(const char *fname)
TH2F * fHistJetPtAreaBias[6]