10 #include <TMatrixDSym.h> 15 #include <THnSparse.h> 18 #include "AliAnalysisManager.h" 19 #include "AliInputEventHandler.h" 21 #include "AliAODEvent.h" 22 #include "AliAODVertex.h" 23 #include "AliAODTrack.h" 24 #include "AliAODHeader.h" 25 #include "AliAODVZERO.h" 26 #include "AliVHeader.h" 27 #include "AliVVertex.h" 28 #include "AliVEvent.h" 29 #include "AliVTrack.h" 30 #include "AliESDtrack.h" 31 #include "AliESDEvent.h" 32 #include "AliAODMCParticle.h" 33 #include "AliCentrality.h" 34 #include "AliOADBContainer.h" 73 fVtx(0), fVtxBeforeCuts(0), fVtxAfterCuts(0), fMultCorBeforeCuts(0), fMultCorAfterCuts(0), fPercqc2(0), fAllQA(0),
74 fQxavsV0Bef(0), fQyavsV0Bef(0), fQxcvsV0Bef(0), fQycvsV0Bef(0),
75 fQxavsVtxZBef(0), fQyavsVtxZBef(0), fQxcvsVtxZBef(0), fQycvsVtxZBef(0),
76 fQxavsV0Aft(0), fQyavsV0Aft(0), fQxcvsV0Aft(0), fQycvsV0Aft(0),
77 fQxavsVtxZAft(0), fQyavsVtxZAft(0), fQxcvsVtxZAft(0), fQycvsVtxZAft(0),
78 fV2A(0), fV0AV0Cv2(0), fV0ATPCv2(0), fV0CTPCv2(0),
79 fCMESameQPos(0), fCMESameQNeg(0), fCMEOppQ(0), fCMESameQPosCos(0), fCMESameQPosSin(0), fCMESameQPosv1(0), fCMESameQNegCos(0), fCMESameQNegSin(0), fCMESameQNegv1(0), fCMEOppQCos(0), fCMEOppQSin(0), fCMEOppQv1(0)
82 for (
Int_t i = 0; i < 90; i++){
92 fCMESameQPosqc2[i] = 0;
93 fCMESameQNegqc2[i] = 0;
95 fCMESameQPosCosqc2[i] = 0;
96 fCMESameQPosSinqc2[i] = 0;
97 fCMESameQPosv1qc2[i] = 0;
98 fCMESameQNegCosqc2[i] = 0;
99 fCMESameQNegSinqc2[i] = 0;
100 fCMESameQNegv1qc2[i] = 0;
101 fCMEOppQCosqc2[i] = 0;
102 fCMEOppQSinqc2[i] = 0;
103 fCMEOppQv1qc2[i] = 0;
110 fCMESameQPosEta[i] = 0;
111 fCMESameQPosPtDif[i] = 0;
112 fCMESameQPosPtSum[i] = 0;
114 fCMESameQNegEta[i] = 0;
115 fCMESameQNegPtDif[i] = 0;
116 fCMESameQNegPtSum[i] = 0;
119 fCMEOppQPtDif[i] = 0;
120 fCMEOppQPtSum[i] = 0;
127 for (
Int_t j = 0; j < 10; j++){
131 fCMESameQPosEtaqc2[i][j] = 0;
132 fCMESameQPosPtDifqc2[i][j] = 0;
133 fCMESameQPosPtSumqc2[i][j] = 0;
135 fCMESameQNegEtaqc2[i][j] = 0;
136 fCMESameQNegPtDifqc2[i][j] = 0;
137 fCMESameQNegPtSumqc2[i][j] = 0;
139 fCMEOppQEtaqc2[i][j] = 0;
140 fCMEOppQPtDifqc2[i][j] = 0;
141 fCMEOppQPtSumqc2[i][j] = 0;
179 fVtx(0), fVtxBeforeCuts(0), fVtxAfterCuts(0), fMultCorBeforeCuts(0), fMultCorAfterCuts(0), fPercqc2(0), fAllQA(0),
180 fQxavsV0Bef(0), fQyavsV0Bef(0), fQxcvsV0Bef(0), fQycvsV0Bef(0),
181 fQxavsVtxZBef(0), fQyavsVtxZBef(0), fQxcvsVtxZBef(0), fQycvsVtxZBef(0),
182 fQxavsV0Aft(0), fQyavsV0Aft(0), fQxcvsV0Aft(0), fQycvsV0Aft(0),
183 fQxavsVtxZAft(0), fQyavsVtxZAft(0), fQxcvsVtxZAft(0), fQycvsVtxZAft(0),
184 fV2A(0), fV0AV0Cv2(0), fV0ATPCv2(0), fV0CTPCv2(0),
185 fCMESameQPos(0), fCMESameQNeg(0), fCMEOppQ(0), fCMESameQPosCos(0), fCMESameQPosSin(0), fCMESameQPosv1(0), fCMESameQNegCos(0), fCMESameQNegSin(0), fCMESameQNegv1(0), fCMEOppQCos(0), fCMEOppQSin(0), fCMEOppQv1(0)
188 for (
Int_t i = 0; i < 90; i++){
233 for (
Int_t j = 0; j < 10; j++){
255 DefineOutput(1, TList::Class());
273 TGrid::Connect(
"alien://");
277 TFile* fRecEf = TFile::Open(
"alien:///alice/cern.ch/user/a/adobrin/hist_recEff_pbpb_run1.root");
279 printf(
"Rec eff file cannot be opened \n");
287 TFile* fSpl = TFile::Open(
"alien:///alice/cern.ch/user/a/adobrin/calibSpV0CRun1.root");
289 printf(
"Spline file cannot be opened \n");
292 for (
Int_t isp = 0; isp < 90; isp++)
293 fSplQ2c[isp] = (TSpline3*)fSpl->Get(Form(
"hqc2Int_%d", isp));
299 Int_t randomSeed = a.tv_usec;
310 fVtx =
new TH1I(
"fVtx",
"Vtx info (0=no, 1=yes); Vtx; Counts", 2, -0.5, 1.5);
313 fVtxBeforeCuts =
new TH1F(
"fVtxBeforeCuts",
"Vtx distribution (before cuts); Vtx z [cm]; Counts", 120, -30, 30);
316 fVtxAfterCuts =
new TH1F(
"fVtxAfterCuts",
"Vtx distribution (after cuts); Vtx z [cm]; Counts", 120, -30, 30);
319 fMultCorBeforeCuts =
new TH2F(
"fMultCorBeforeCuts",
"TPC vs Global multiplicity (Before cuts); Global multiplicity; TPC multiplicity", 100, 0, 3000, 100, 0, 3000);
322 fMultCorAfterCuts =
new TH2F(
"fMultCorAfterCuts",
"TPC vs Global multiplicity (After cuts); Global multiplicity; TPC multiplicity", 100, 0, 3000, 100, 0, 3000);
326 fPercqc2 =
new TH2D(
"fPercqc2",
"; centrality percentile; q_{2} percentile", 100, 0, 100, 100, 0, 100);
331 const Int_t nCenB = 9;
332 Float_t cenBins[nCenB+1] = {0, 5., 10., 20., 30., 40., 50., 60., 70., 80.};
334 const Int_t nPtB = 23;
335 Double_t ptBins[nPtB+1] = {0., 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.25, 2.5, 2.75, 3.0, 3.25, 3.5, 4.0, 4.5, 5.0};
340 Int_t binsAll[5] = { nCenB, nPtB, 3, 18, 72};
341 Double_t xminAll[5] = { -0.5, 0, -1.5, -0.9, 0};
342 Double_t xmaxAll[5] = { nCenB-0.5, 5., 1.5, 0.9, 2.*TMath::Pi()};
344 fAllQA =
new THnSparseF(
"fAllQA",
"cent:pT:q:eta:phi", 5, binsAll, xminAll, xmaxAll);
345 fAllQA->SetBinEdges(1, ptBins);
346 fAllQA->GetAxis(0)->SetTitle(
"centrality");
347 fAllQA->GetAxis(1)->SetTitle(
"p_{T} (Gev/c");
348 fAllQA->GetAxis(2)->SetTitle(
"q");
349 fAllQA->GetAxis(3)->SetTitle(
"#eta");
350 fAllQA->GetAxis(4)->SetTitle(
"#varphi");
359 fQxavsV0Bef =
new TH2D(
"fQxavsV0Bef",
" ; centrality (V0); Q_{x} (V0A)", 100, 0, 100, 1400, -1400., 1400.);
362 fQyavsV0Bef =
new TH2D(
"fQyavsV0Bef",
" ; centrality (V0); Q_{y} (V0A)", 100, 0, 100, 1400, -1400., 1400.);
365 fQxcvsV0Bef =
new TH2D(
"fQxcvsV0Bef",
" ; centrality (V0); Q_{x} (V0C)", 100, 0, 100, 1400, -1400., 1400.);
368 fQycvsV0Bef =
new TH2D(
"fQycvsV0Bef",
" ; centrality (V0); Q_{y} (V0C)", 100, 0, 100, 1400, -1400., 1400.);
372 fQxavsVtxZBef =
new TH2D(
"fQxavsVtxZBef",
" ; vertexZ; Q_{x} (V0A)", 20, -10., 10., 1400, -1400., 1400.);
375 fQyavsVtxZBef =
new TH2D(
"fQyavsVtxZBef",
" ; vertexZ; Q_{y} (V0A)", 20, -10., 10., 1400, -1400., 1400.);
378 fQxcvsVtxZBef =
new TH2D(
"fQxcvsVtxZBef",
" ; vertexZ; Q_{x} (V0C)", 20, -10., 10., 1400, -1400., 1400.);
381 fQycvsVtxZBef =
new TH2D(
"fQycvsVtxZBef",
" ; vertexZ; Q_{y} (V0C)", 20, -10., 10., 1400, -1400., 1400.);
385 fQxavsV0Aft =
new TH2D(
"fQxavsV0Aft",
" ; centrality (V0); Q_{x} (V0A)", 100, 0, 100, 200, -10., 10.);
388 fQyavsV0Aft =
new TH2D(
"fQyavsV0Aft",
" ; centrality (V0); Q_{y} (V0A)", 100, 0, 100, 200, -10., 10.);
391 fQxcvsV0Aft =
new TH2D(
"fQxcvsV0Aft",
" ; centrality (V0); Q_{x} (V0C)", 100, 0, 100, 200, -10., 10.);
394 fQycvsV0Aft =
new TH2D(
"fQycvsV0Aft",
" ; centrality (V0); Q_{y} (V0C)", 100, 0, 100, 200, -10., 10.);
398 fQxavsVtxZAft =
new TH2D(
"fQxavsVtxZAft",
" ; vertexZ; Q_{x} (V0A)", 20, -10., 10., 200, -10., 10);
401 fQyavsVtxZAft =
new TH2D(
"fQyavsVtxZAft",
" ; vertexZ; Q_{y} (V0A)", 20, -10., 10., 200, -10., 10);
404 fQxcvsVtxZAft =
new TH2D(
"fQxcvsVtxZAft",
" ; vertexZ; Q_{x} (V0C)", 20, -10., 10., 200, -10., 10);
407 fQycvsVtxZAft =
new TH2D(
"fQycvsVtxZAft",
" ; vertexZ; Q_{y} (V0C)", 20, -10., 10., 200, -10., 10);
414 fV2A =
new TProfile(
"fV2A",
"; centrality percentile; v_{2}{EP V0A}", nCenB, cenBins);
417 fV0AV0Cv2 =
new TProfile(
"fV0AV0Cv2",
"; centrality percentile; V0A-V0C correlations", nCenB, cenBins);
420 fV0ATPCv2 =
new TProfile(
"fV0ATPCv2",
"; centrality percentile; V0A-TPC correlations", nCenB, cenBins);
423 fV0CTPCv2 =
new TProfile(
"fV0CTPCv2",
"; centrality percentile; V0C-TPC correlations", nCenB, cenBins);
427 fCMESameQPos =
new TProfile(
"fCMESameQPos",
"; centrality percentile; #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", nCenB, cenBins);
430 fCMESameQNeg =
new TProfile(
"fCMESameQNeg",
"; centrality percentile; #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", nCenB, cenBins);
433 fCMEOppQ =
new TProfile(
"fCMEOppQ",
"; centrality percentile; #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", nCenB, cenBins);
437 fCMESameQPosCos =
new TProfile(
"fCMESameQPosCos",
"; centrality percentile; #LT cos(#varphi_1)cos(#varphi_2) #GT", nCenB, cenBins);
440 fCMESameQPosSin =
new TProfile(
"fCMESameQPosSin",
"; centrality percentile; #LT sin(#varphi_{1})sin(#varphi_{2}) #GT", nCenB, cenBins);
443 fCMESameQPosv1 =
new TProfile(
"fCMESameQPosv1",
"; centrality percentile; #LT cos(#varphi_{1} - #varphi_{2}) #GT", nCenB, cenBins);
447 fCMESameQNegCos =
new TProfile(
"fCMESameQNegCos",
"; centrality percentile; #LT cos(#varphi_{1})cos(#varphi_{2}) #GT", nCenB, cenBins);
450 fCMESameQNegSin =
new TProfile(
"fCMESameQNegSin",
"; centrality percentile; #LT sin(#varphi_{1})sin(#varphi_{2}) #GT", nCenB, cenBins);
453 fCMESameQNegv1 =
new TProfile(
"fCMESameQNegv1",
"; centrality percentile; #LT cos(#varphi_{1} - #varphi_{2}) #GT", nCenB, cenBins);
457 fCMEOppQCos =
new TProfile(
"fCMEOppQCos",
"; centrality percentile; #LT cos(#varphi_{1})cos(#varphi_{2}) #GT", nCenB, cenBins);
460 fCMEOppQSin =
new TProfile(
"fCMEOppQSin",
"; centrality percentile; #LT sin(#varphi_{1})sin(#varphi_{2}) #GT", nCenB, cenBins);
463 fCMEOppQv1 =
new TProfile(
"fCMEOppQv1",
"; centrality percentile; #LT cos(#varphi_{1} - #varphi_{2}) #GT", nCenB, cenBins);
467 for (
Int_t i = 0 ; i < 10; i++){
469 fV2Aqc2[i] =
new TProfile(Form(
"fV2Aqc2_%d", i),
"; centrality percentile; v_{2}{EP V0A}", nCenB, cenBins);
472 fV0AV0Cv2qc2[i] =
new TProfile(Form(
"fV0AV0Cv2qc2_%d", i),
"; centrality percentile; V0A-V0C correlations", nCenB, cenBins);
475 fV0ATPCv2qc2[i] =
new TProfile(Form(
"fV0ATPCv2qc2_%d", i),
"; centrality percentile; V0A-TPC correlations", nCenB, cenBins);
478 fV0CTPCv2qc2[i] =
new TProfile(Form(
"fV0CTPCv2qc2_%d", i),
"; centrality percentile; V0C-TPC correlations", nCenB, cenBins);
483 fCMESameQPosqc2[i] =
new TProfile(Form(
"fCMESameQPosqc2_%d", i),
"; centrality percentile; #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", nCenB, cenBins);
486 fCMESameQNegqc2[i] =
new TProfile(Form(
"fCMESameQNegqc2_%d", i),
"; centrality percentile; #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", nCenB, cenBins);
489 fCMEOppQqc2[i] =
new TProfile(Form(
"fCMEOppQqc2_%d", i),
"; centrality percentile; #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", nCenB, cenBins);
493 fCMESameQPosCosqc2[i] =
new TProfile(Form(
"fCMESameQPosCosqc2_%d", i),
"; centrality percentile; #LT cos(#varphi_{1})cos(#varphi_{2}) #GT", nCenB, cenBins);
496 fCMESameQPosSinqc2[i] =
new TProfile(Form(
"fCMESameQPosSinqc2_%d", i),
"; centrality percentile; #LT sin(#varphi_{1})sin(#varphi_{2}) #GT", nCenB, cenBins);
499 fCMESameQPosv1qc2[i] =
new TProfile(Form(
"fCMESameQPosv1qc2_%d", i),
"; centrality percentile; #LT cos(#varphi_{1} - #varphi_{2}) #GT", nCenB, cenBins);
503 fCMESameQNegCosqc2[i] =
new TProfile(Form(
"fCMESameQNegCosqc2_%d", i),
"; centrality percentile; #LT cos(#varphi_{1})cos(#varphi_{2}) #GT", nCenB, cenBins);
506 fCMESameQNegSinqc2[i] =
new TProfile(Form(
"fCMESameQNegSinqc2_%d", i),
"; centrality percentile; #LT sin(#varphi_{1})sin(#varphi_{2}) #GT", nCenB, cenBins);
509 fCMESameQNegv1qc2[i] =
new TProfile(Form(
"fCMESameQNegv1qc2_%d", i),
"; centrality percentile; #LT cos(#varphi_{1} - #varphi_{2}) #GT", nCenB, cenBins);
513 fCMEOppQCosqc2[i] =
new TProfile(Form(
"fCMEOppQCosqc2_%d", i),
"; centrality percentile; #LT cos(#varphi_{1})cos(#varphi_{2}) #GT", nCenB, cenBins);
516 fCMEOppQSinqc2[i] =
new TProfile(Form(
"fCMEOppQSinqc2_%d", i),
"; centrality percentile; #LT sin(#varphi_{1})sin(#varphi_{2}) #GT", nCenB, cenBins);
519 fCMEOppQv1qc2[i] =
new TProfile(Form(
"fCMEOppQv1qc2_%d", i),
"; centrality percentile; #LT cos(#varphi_{1} - #varphi_{2}) #GT", nCenB, cenBins);
526 fV2Pt[i] =
new TProfile(Form(
"fV2Pt_%d", i),
"; p_{T} (GeV/c); v_{2}", nPtB, ptBins);
529 fCMESameQPosEta[i] =
new TProfile(Form(
"fCMESameQPosEta_%d", i),
"; #Delta#eta = |#eta_{1} - #eta_{2}|; #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 8, 0, 1.6);
532 fCMESameQPosPtDif[i] =
new TProfile(Form(
"fCMESameQPosPtDif_%d", i),
"; |p_{T}^{1} - p_{T}^{2}| (GeV/c); #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 7, 0, 2.8);
535 fCMESameQPosPtSum[i] =
new TProfile(Form(
"fCMESameQPosPtSum_%d", i),
"; (p_{T}^{1} + p_{T}^{2})/2 (GeV/c); #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 7, 0, 2.8);
539 fCMESameQNegEta[i] =
new TProfile(Form(
"fCMESameQNegEta_%d", i),
"; #Delta#eta = |#eta_{1} - #eta_{2}|; #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 8, 0, 1.6);
542 fCMESameQNegPtDif[i] =
new TProfile(Form(
"fCMESameQNegPtDif_%d", i),
"; |p_{T}^{1} - p_{T}^{2}| (GeV/c); #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 7, 0, 2.8);
545 fCMESameQNegPtSum[i] =
new TProfile(Form(
"fCMESameQNegPtSum_%d", i),
"; (p_{T}^{1} + p_{T}^{2})/2 (GeV/c); #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 7, 0, 2.8);
549 fCMEOppQEta[i] =
new TProfile(Form(
"fCMEOppQEta_%d", i),
"; #Delta#eta = |#eta_{1} - #eta_{2}|; #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 8, 0, 1.6);
552 fCMEOppQPtDif[i] =
new TProfile(Form(
"fCMEOppQPtDif_%d", i),
"; |p_{T}^{1} - p_{T}^{2}| (GeV/c); #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 7, 0, 2.8);
555 fCMEOppQPtSum[i] =
new TProfile(Form(
"fCMEOppQPtSum_%d", i),
"; (p_{T}^{1} + p_{T}^{2})/2 (GeV/c); #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 7, 0, 2.8);
561 fPsiA[i] =
new TH1D(Form(
"fPsiA_%d", i),
"; #Psi_{n} (V0A); Counts", 80, -2., 2.);
564 fPsiC[i] =
new TH1D(Form(
"fPsiC_%d", i),
"; #Psi_{n} (V0C); Counts", 80, -2., 2.);
567 fPsiAvsPsiC[i] =
new TH2D(Form(
"fPsiAvsPsiC_%d", i),
"; #Psi_{n} (V0A); #Psi_{n} (V0C)", 36, -1.8, 1.8, 36, -1.8, 1.8);
574 for (
Int_t j = 0; j < 10; j++){
576 fV2Ptqc2[i][j] =
new TProfile(Form(
"fV2Ptqc2_%d_%d", i, j),
"; p_{T} (GeV/c); v_{2}", nPtB, ptBins);
579 fCMESameQPosEtaqc2[i][j] =
new TProfile(Form(
"fCMESameQPosEtaqc2_%d_%d", i, j),
"; #Delta#eta = |#eta_{1} - #eta_{2}|; #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 8, 0, 1.6);
582 fCMESameQPosPtDifqc2[i][j] =
new TProfile(Form(
"fCMESameQPosPtDifqc2_%d_%d", i, j),
"; |p_{T}^{1} - p_{T}^{2}| (GeV/c); #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 7, 0, 2.8);
585 fCMESameQPosPtSumqc2[i][j] =
new TProfile(Form(
"fCMESameQPosPtSumqc2_%d_%d", i, j),
"; (p_{T}^{1} + p_{T}^{2})/2 (GeV/c); #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 7, 0, 2.8);
589 fCMESameQNegEtaqc2[i][j] =
new TProfile(Form(
"fCMESameQNegEtaqc2_%d_%d", i, j),
"; #Delta#eta = |#eta_{1} - #eta_{2}|; #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 8, 0, 1.6);
592 fCMESameQNegPtDifqc2[i][j] =
new TProfile(Form(
"fCMESameQNegPtDifqc2_%d_%d", i, j),
"; |p_{T}^{1} - p_{T}^{2}| (GeV/c); #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 7, 0, 2.8);
595 fCMESameQNegPtSumqc2[i][j] =
new TProfile(Form(
"fCMESameQNegPtSumqc2_%d_%d", i, j),
"; (p_{T}^{1} + p_{T}^{2})/2 (GeV/c); #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 7, 0, 2.8);
599 fCMEOppQEtaqc2[i][j] =
new TProfile(Form(
"fCMEOppQEtaqc2_%d_%d", i, j),
"; #Delta#eta = |#eta_{1} - #eta_{2}|; #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 8, 0, 1.6);
602 fCMEOppQPtDifqc2[i][j] =
new TProfile(Form(
"fCMEOppQPtDifqc2_%d_%d", i, j),
"; |p_{T}^{1} - p_{T}^{2}| (GeV/c); #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 7, 0, 2.8);
605 fCMEOppQPtSumqc2[i][j] =
new TProfile(Form(
"fCMEOppQPtSumqc2_%d_%d", i, j),
"; (p_{T}^{1} + p_{T}^{2})/2 (GeV/c); #LT cos(#varphi_{1} + #varphi_{2} - 2*#Psi_{2}) #GT", 7, 0, 2.8);
626 Printf(
"%s:%d AODEvent not found in Input Manager",(
char*)__FILE__,__LINE__);
645 if (TMath::Abs(zvtx) <
fVtxCut) {
653 if (((AliAODHeader*)
fAOD->GetHeader())->GetRefMultiplicityComb08() < 0)
681 AliCentrality*
centrality = ((AliAODHeader*)aod->GetHeader())->GetCentralityP();
686 Double_t centTrk = centrality->GetCentralityPercentile(
"TRK");
687 Double_t centV0 = centrality->GetCentralityPercentile(
"V0M");
688 Double_t centSPD = centrality->GetCentralityPercentile(
"CL1");
690 if (TMath::Abs(centV0 - centTrk) > 7.5 || centV0 >= 80 || centV0 <= 0)
706 if ((centV0 > 0) && (centV0 < 5.))
708 else if ((centV0 >= 5.) && (centV0 < 10.))
710 else if ((centV0 >= 10.) && (centV0 < 20.))
712 else if ((centV0 >= 20.) && (centV0 < 30.))
714 else if ((centV0 >= 30.) && (centV0 < 40.))
716 else if ((centV0 >= 40.) && (centV0 < 50.))
718 else if ((centV0 >= 50.) && (centV0 < 60.))
720 else if ((centV0 >= 60.) && (centV0 < 70.))
722 else if ((centV0 >= 70.) && (centV0 < 80.))
734 AliAODVZERO* aodV0 = aod->GetVZEROData();
736 for (
Int_t iV0 = 0; iV0 < 64; iV0++) {
738 Double_t phiV0 = TMath::PiOver4()*(0.5 + iV0 % 8);
740 Float_t multv0 = aodV0->GetMultiplicity(iV0);
747 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(1);
748 else if (iV0 >= 8 && iV0 < 16)
749 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(9);
750 else if (iV0 >= 16 && iV0 < 24)
751 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(17);
752 else if (iV0 >= 24 && iV0 < 32)
753 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(25);
760 Qxc2 += TMath::Cos(2.*phiV0) * multCorC;
761 Qyc2 += TMath::Sin(2.*phiV0) * multCorC;
763 sumMc = sumMc + multCorC;
769 if (iV0 >= 32 && iV0 < 40)
770 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(33);
771 else if (iV0 >= 40 && iV0 < 48)
772 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(41);
773 else if (iV0 >= 48 && iV0 < 56)
774 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(49);
775 else if (iV0 >= 56 && iV0 < 64)
776 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(57);
783 Qxa2 += TMath::Cos(2.*phiV0) * multCorA;
784 Qya2 += TMath::Sin(2.*phiV0) * multCorA;
786 sumMa = sumMa + multCorA;
792 if (sumMa <= 0 || sumMc <= 0)
801 Double_t evPlAngV0A = TMath::ATan2(Qya2Cor, Qxa2Cor)/2.;
802 Double_t evPlAngV0C = TMath::ATan2(Qyc2Cor, Qxc2Cor)/2.;
807 fPsiA[centrCode]->Fill(evPlAngV0A);
808 fPsiC[centrCode]->Fill(evPlAngV0C);
809 fPsiAvsPsiC[centrCode]->Fill(evPlAngV0A, evPlAngV0C);
837 Double_t qc2 = TMath::Sqrt((Qxc2Corese*Qxc2Corese + Qyc2Corese*Qyc2Corese)/sumMc);
849 const Int_t nAODTracks = aod->GetNumberOfTracks();
851 AliAODTrack* trkV[nAODTracks];
856 for (
Int_t it1 = 0; it1 < nAODTracks; it1++) {
858 AliAODTrack* aodTrk1 = (AliAODTrack*)aod->GetTrack(it1);
868 if ((TMath::Abs(aodTrk1->Eta()) >
fEtaCut) || (aodTrk1->GetTPCNcls() <
fNoClus) || (aodTrk1->Pt() <
fMinPt) || (aodTrk1->Pt() >
fMaxPt))
875 if (aodTrk1->Pt() < 3.5)
881 cout<<
"Problem with reconstruction efficiency"<<endl;
888 if (rnd > minRec/eff){
896 trkV[sumMt] = aodTrk1;
898 Qxt2 += TMath::Cos(2.*aodTrk1->Phi());
899 Qyt2 += TMath::Sin(2.*aodTrk1->Phi());
903 Double_t v2a = TMath::Cos(2.*(aodTrk1->Phi() - evPlAngV0A));
904 fV2A->Fill(centV0, v2a);
905 fV2Pt[centrCode]->Fill(aodTrk1->Pt(), v2a);
906 fV2Aqc2[percCqc2]->Fill(centV0, v2a);
907 fV2Ptqc2[centrCode][percCqc2]->Fill(aodTrk1->Pt(), v2a);
922 Double_t evPlAngTPC = TMath::ATan2(Qyt2, Qxt2)/2.;
925 fV0AV0Cv2->Fill(centV0, TMath::Cos(2.*(evPlAngV0A - evPlAngV0C)));
926 fV0ATPCv2->Fill(centV0, TMath::Cos(2.*(evPlAngV0A - evPlAngTPC)));
927 fV0CTPCv2->Fill(centV0, TMath::Cos(2.*(evPlAngV0C - evPlAngTPC)));
929 fV0AV0Cv2qc2[percCqc2]->Fill(centV0, TMath::Cos(2.*(evPlAngV0A - evPlAngV0C)));
930 fV0ATPCv2qc2[percCqc2]->Fill(centV0, TMath::Cos(2.*(evPlAngV0A - evPlAngTPC)));
931 fV0CTPCv2qc2[percCqc2]->Fill(centV0, TMath::Cos(2.*(evPlAngV0C - evPlAngTPC)));
935 for (
Int_t it = 0; it < sumMt-1; it++){
937 for (
Int_t jt = it+1; jt < sumMt; jt++){
939 if (trkV[it]->Charge() > 0 && trkV[jt]->Charge() > 0){
941 fCMESameQPos->Fill(centV0, TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
942 fCMESameQPosqc2[percCqc2]->Fill(centV0, TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
944 fCMESameQPosCos->Fill(centV0, TMath::Cos(trkV[it]->Phi() - evPlAngV0A)*TMath::Cos(trkV[jt]->Phi() - evPlAngV0A));
945 fCMESameQPosCosqc2[percCqc2]->Fill(centV0, TMath::Cos(trkV[it]->Phi() - evPlAngV0A)*TMath::Cos(trkV[jt]->Phi() - evPlAngV0A));
947 fCMESameQPosSin->Fill(centV0, TMath::Sin(trkV[it]->Phi() - evPlAngV0A)*TMath::Sin(trkV[jt]->Phi() - evPlAngV0A));
948 fCMESameQPosSinqc2[percCqc2]->Fill(centV0, TMath::Sin(trkV[it]->Phi() - evPlAngV0A)*TMath::Sin(trkV[jt]->Phi() - evPlAngV0A));
950 fCMESameQPosv1->Fill(centV0, TMath::Cos(trkV[it]->Phi() - trkV[jt]->Phi()));
951 fCMESameQPosv1qc2[percCqc2]->Fill(centV0, TMath::Cos(trkV[it]->Phi() - trkV[jt]->Phi()));
954 fCMESameQPosEta[centrCode]->Fill(TMath::Abs(trkV[it]->Eta() - trkV[jt]->Eta()), TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
955 fCMESameQPosPtDif[centrCode]->Fill(TMath::Abs(trkV[it]->Pt() - trkV[jt]->Pt()), TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
956 fCMESameQPosPtSum[centrCode]->Fill((trkV[it]->Pt() + trkV[jt]->Pt())/2., TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
959 fCMESameQPosEtaqc2[centrCode][percCqc2]->Fill(TMath::Abs(trkV[it]->Eta() - trkV[jt]->Eta()), TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
960 fCMESameQPosPtDifqc2[centrCode][percCqc2]->Fill(TMath::Abs(trkV[it]->Pt() - trkV[jt]->Pt()), TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
961 fCMESameQPosPtSumqc2[centrCode][percCqc2]->Fill((trkV[it]->Pt() + trkV[jt]->Pt())/2., TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
966 if (trkV[it]->Charge() < 0 && trkV[jt]->Charge() < 0){
968 fCMESameQNeg->Fill(centV0, TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
969 fCMESameQNegqc2[percCqc2]->Fill(centV0, TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
971 fCMESameQNegCos->Fill(centV0, TMath::Cos(trkV[it]->Phi() - evPlAngV0A)*TMath::Cos(trkV[jt]->Phi() - evPlAngV0A));
972 fCMESameQNegCosqc2[percCqc2]->Fill(centV0, TMath::Cos(trkV[it]->Phi() - evPlAngV0A)*TMath::Cos(trkV[jt]->Phi() - evPlAngV0A));
974 fCMESameQNegSin->Fill(centV0, TMath::Sin(trkV[it]->Phi() - evPlAngV0A)*TMath::Sin(trkV[jt]->Phi() - evPlAngV0A));
975 fCMESameQNegSinqc2[percCqc2]->Fill(centV0, TMath::Sin(trkV[it]->Phi() - evPlAngV0A)*TMath::Sin(trkV[jt]->Phi() - evPlAngV0A));
977 fCMESameQNegv1->Fill(centV0, TMath::Cos(trkV[it]->Phi() - trkV[jt]->Phi()));
978 fCMESameQNegv1qc2[percCqc2]->Fill(centV0, TMath::Cos(trkV[it]->Phi() - trkV[jt]->Phi()));
981 fCMESameQNegEta[centrCode]->Fill(TMath::Abs(trkV[it]->Eta() - trkV[jt]->Eta()), TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
982 fCMESameQNegPtDif[centrCode]->Fill(TMath::Abs(trkV[it]->Pt() - trkV[jt]->Pt()), TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
983 fCMESameQNegPtSum[centrCode]->Fill((trkV[it]->Pt() + trkV[jt]->Pt())/2., TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
986 fCMESameQNegEtaqc2[centrCode][percCqc2]->Fill(TMath::Abs(trkV[it]->Eta() - trkV[jt]->Eta()), TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
987 fCMESameQNegPtDifqc2[centrCode][percCqc2]->Fill(TMath::Abs(trkV[it]->Pt() - trkV[jt]->Pt()), TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
988 fCMESameQNegPtSumqc2[centrCode][percCqc2]->Fill((trkV[it]->Pt() + trkV[jt]->Pt())/2., TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
994 if ((trkV[it]->Charge() < 0 && trkV[jt]->Charge() > 0) || (trkV[it]->Charge() > 0 && trkV[jt]->Charge() < 0)){
996 fCMEOppQ->Fill(centV0, TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
997 fCMEOppQqc2[percCqc2]->Fill(centV0, TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
999 fCMEOppQCos->Fill(centV0, TMath::Cos(trkV[it]->Phi() - evPlAngV0A)*TMath::Cos(trkV[jt]->Phi() - evPlAngV0A));
1000 fCMEOppQCosqc2[percCqc2]->Fill(centV0, TMath::Cos(trkV[it]->Phi() - evPlAngV0A)*TMath::Cos(trkV[jt]->Phi() - evPlAngV0A));
1002 fCMEOppQSin->Fill(centV0, TMath::Sin(trkV[it]->Phi() - evPlAngV0A)*TMath::Sin(trkV[jt]->Phi() - evPlAngV0A));
1003 fCMEOppQSinqc2[percCqc2]->Fill(centV0, TMath::Sin(trkV[it]->Phi() - evPlAngV0A)*TMath::Sin(trkV[jt]->Phi() - evPlAngV0A));
1005 fCMEOppQv1->Fill(centV0, TMath::Cos(trkV[it]->Phi() - trkV[jt]->Phi()));
1006 fCMEOppQv1qc2[percCqc2]->Fill(centV0, TMath::Cos(trkV[it]->Phi() - trkV[jt]->Phi()));
1009 fCMEOppQEta[centrCode]->Fill(TMath::Abs(trkV[it]->Eta() - trkV[jt]->Eta()), TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
1010 fCMEOppQPtDif[centrCode]->Fill(TMath::Abs(trkV[it]->Pt() - trkV[jt]->Pt()), TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
1011 fCMEOppQPtSum[centrCode]->Fill((trkV[it]->Pt() + trkV[jt]->Pt())/2., TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
1014 fCMEOppQEtaqc2[centrCode][percCqc2]->Fill(TMath::Abs(trkV[it]->Eta() - trkV[jt]->Eta()), TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
1015 fCMEOppQPtDifqc2[centrCode][percCqc2]->Fill(TMath::Abs(trkV[it]->Pt() - trkV[jt]->Pt()), TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
1016 fCMEOppQPtSumqc2[centrCode][percCqc2]->Fill((trkV[it]->Pt() + trkV[jt]->Pt())/2., TMath::Cos(trkV[it]->Phi() + trkV[jt]->Phi() - 2.*evPlAngV0A));
1030 TGrid::Connect(
"alien://");
1033 TFile* foadb = TFile::Open(
"alien:///alice/cern.ch/user/a/adobrin/calibV0Run1.root");
1036 printf(
"OADB V0 calibration file cannot be opened\n");
1040 AliOADBContainer* cont = (AliOADBContainer*) foadb->Get(
"hMultV0BefCorPfpx");
1042 printf(
"OADB object hMultV0BefCorr is not available in the file\n");
1045 if(!(cont->GetObject(run))){
1046 printf(
"OADB object hMultV0BefCorPfpx is not available for run %i\n", run);
1053 AliOADBContainer* contQx2am = (AliOADBContainer*) foadb->Get(
"fqxa2m");
1055 printf(
"OADB object fqxa2m is not available in the file\n");
1058 if(!(contQx2am->GetObject(run))){
1059 printf(
"OADB object fqxa2m is not available for run %i\n", run);
1065 AliOADBContainer* contQy2am = (AliOADBContainer*) foadb->Get(
"fqya2m");
1067 printf(
"OADB object fqya2m is not available in the file\n");
1070 if(!(contQy2am->GetObject(run))){
1071 printf(
"OADB object fqya2m is not available for run %i\n", run);
1077 AliOADBContainer* contQx2as = (AliOADBContainer*) foadb->Get(
"fqxa2s");
1079 printf(
"OADB object fqxa2s is not available in the file\n");
1082 if(!(contQx2as->GetObject(run))){
1083 printf(
"OADB object fqxa2s is not available for run %i\n", run);
1089 AliOADBContainer* contQy2as = (AliOADBContainer*) foadb->Get(
"fqya2s");
1091 printf(
"OADB object fqya2s is not available in the file\n");
1094 if(!(contQy2as->GetObject(run))){
1095 printf(
"OADB object fqya2s is not available for run %i\n", run);
1102 AliOADBContainer* contQx2cm = (AliOADBContainer*) foadb->Get(
"fqxc2m");
1104 printf(
"OADB object fqxc2m is not available in the file\n");
1107 if(!(contQx2cm->GetObject(run))){
1108 printf(
"OADB object fqxc2m is not available for run %i\n", run);
1114 AliOADBContainer* contQy2cm = (AliOADBContainer*) foadb->Get(
"fqyc2m");
1116 printf(
"OADB object fqyc2m is not available in the file\n");
1119 if(!(contQy2cm->GetObject(run))){
1120 printf(
"OADB object fqyc2m is not available for run %i\n", run);
1127 AliOADBContainer* contQx2cs = (AliOADBContainer*) foadb->Get(
"fqxc2s");
1129 printf(
"OADB object fqxc2s is not available in the file\n");
1132 if(!(contQx2cs->GetObject(run))){
1133 printf(
"OADB object fqxc2s is not available for run %i\n", run);
1139 AliOADBContainer* contQy2cs = (AliOADBContainer*) foadb->Get(
"fqyc2s");
1141 printf(
"OADB object fqyc2m is not available in the file\n");
1144 if(!(contQy2cs->GetObject(run))){
1145 printf(
"OADB object fqyc2s is not available for run %i\n", run);
1161 const Int_t nGoodTracks = aod->GetNumberOfTracks();
1163 for(
Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
1165 AliAODTrack* trackAOD = (AliAODTrack*)aod->GetTrack(iTracks);
1172 if (!(trackAOD->TestFilterBit(1)))
1175 if ((trackAOD->Pt() <
fMinPt) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) >
fEtaCut) || (trackAOD->GetTPCNcls() < 70) || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0))
1190 Int_t multGlobal = 0;
1194 const Int_t nGoodTracks = aod->GetNumberOfTracks();
1196 for(
Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
1198 AliAODTrack* trackAOD = (AliAODTrack*)aod->GetTrack(iTracks);
1205 if (!(trackAOD->TestFilterBit(16)))
1208 if ((trackAOD->Pt() <
fMinPt) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) >
fEtaCut) || (trackAOD->GetTPCNcls() < 70) || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) )
1214 Double_t bCov[3] = { -99., -99., -99.};
1216 AliAODTrack* trackAODC =
new AliAODTrack(*trackAOD);
1218 AliWarning(
"Clone of AOD track failed.");
1223 if (!trackAODC->PropagateToDCA(aod->GetPrimaryVertex(), aod->GetMagneticField(), 100., b, bCov)){
1231 if ((TMath::Abs(b[0]) > 0.3) || (TMath::Abs(b[1]) > 0.3))
1249 const AliAODVertex* trkVtx = aod->GetPrimaryVertex();
1250 if (!trkVtx || trkVtx->GetNContributors()<=0)
1252 TString vtxTtl = trkVtx->GetTitle();
1253 if (!vtxTtl.Contains(
"VertexerTracks"))
1255 const AliAODVertex* spdVtx = aod->GetPrimaryVertexSPD();
1256 if (!spdVtx || spdVtx->GetNContributors()<=0)
1258 TString vtxTyp = spdVtx->GetTitle();
1260 spdVtx->GetCovarianceMatrix(cov);
1261 Double_t zRes = TMath::Sqrt(cov[5]);
1262 if (vtxTyp.Contains(
"vertexer:Z") && (zRes>0.25))
1264 if (TMath::Abs(spdVtx->GetZ() - trkVtx->GetZ())>0.5)
1267 vtxz = trkVtx->GetZ();
1278 if ((perc >= 0) && (perc <= 10.0))
1280 else if ((perc > 10.0) && (perc <= 20.0))
1282 else if ((perc > 20.0) && (perc <= 30.0))
1284 else if ((perc > 30.0) && (perc <= 40.0))
1286 else if ((perc > 40.0) && (perc <= 50.0))
1288 else if ((perc > 50.0) && (perc <= 60.0))
1290 else if ((perc > 60.0) && (perc <= 70.0))
1292 else if ((perc > 70.0) && (perc <= 80.0))
1294 else if ((perc > 80.0) && (perc <= 90.0))
1296 else if (perc > 90.0)
1309 printf(
"One of vertices is not valid\n");
1312 static TMatrixDSym vVb(3);
1314 double dx = v0->GetX()-v1->GetX();
1315 double dy = v0->GetY()-v1->GetY();
1316 double dz = v0->GetZ()-v1->GetZ();
1317 double cov0[6],cov1[6];
1318 v0->GetCovarianceMatrix(cov0);
1319 v1->GetCovarianceMatrix(cov1);
1320 vVb(0,0) = cov0[0]+cov1[0];
1321 vVb(1,1) = cov0[2]+cov1[2];
1322 vVb(2,2) = cov0[5]+cov1[5];
1323 vVb(1,0) = vVb(0,1) = cov0[1]+cov1[1];
1324 vVb(0,2) = vVb(1,2) = vVb(2,0) = vVb(2,1) = 0.;
1326 if (!vVb.IsValid()) {printf(
"Singular Matrix\n");
return dist;}
1327 dist = vVb(0,0)*dx*dx + vVb(1,1)*dy*dy + vVb(2,2)*dz*dz
1328 + 2*vVb(0,1)*dx*dy + 2*vVb(0,2)*dx*dz + 2*vVb(1,2)*dy*dz;
1329 return dist>0 ? TMath::Sqrt(dist) : -1;
1341 const int kMinPlpContrib = 5;
1342 const double kMaxPlpChi2 = 5.0;
1343 const double kMinWDist = 15;
1346 printf(
"Event is neither of AOD nor ESD\n");
1350 const AliVVertex* vtPrm = 0;
1351 const AliVVertex* vtPlp = 0;
1355 if ( !(nPlp=aod->GetNumberOfPileupVerticesTracks()) )
return kFALSE;
1356 vtPrm = aod->GetPrimaryVertex();
1357 if (vtPrm == aod->GetPrimaryVertexSPD())
return kTRUE;
1360 if ( !(nPlp=esd->GetNumberOfPileupVerticesTracks()))
return kFALSE;
1361 vtPrm = esd->GetPrimaryVertexTracks();
1362 if (((AliESDVertex*)vtPrm)->GetStatus()!=1)
return kTRUE;
1367 for (
int ipl=0;ipl<nPlp;ipl++) {
1368 vtPlp = aod ? (
const AliVVertex*)aod->GetPileupVertexTracks(ipl) : (
const AliVVertex*)esd->GetPileupVertexTracks(ipl);
1370 if (vtPlp->GetNContributors() < kMinPlpContrib)
continue;
1371 if (vtPlp->GetChi2perNDF() > kMaxPlpChi2)
continue;
1375 double wDst =
GetWDist(vtPrm,vtPlp);
1376 if (wDst<kMinWDist)
continue;
1389 Printf(
"Terminate()");
TProfile * fCMESameQNegEta[9]
cme same charge pos pt sum
TProfile * fCMESameQPosEta[9]
v2 pt unbiased
TH1F * fVtxAfterCuts
Vertex z dist before cuts.
TProfile * fCMESameQNeg
cme same charge pos
TProfile * fV2Pt[9]
cme opp charge v1
TH2D * fQxavsV0Aft
corrected Qx V0C vtx
virtual Int_t GetGlobalMult(AliVEvent *ev) const
TH1D * fPsiA[10]
cme opp charge pt sum
TProfile * fV2A
corrected Qx V0C vtx
TProfile * fCMESameQNegPtDif[9]
cme same charge neg eta
TProfile * fCMEOppQSin
cme opp charge <cos*cos>
TProfile * fCMESameQNegPtDifqc2[9][10]
cme same charge neg ESE
virtual Float_t GetVertex(AliAODEvent *aod) const
TProfile * fCMESameQPosSin
cme same charge pos <cos*cos>
TProfile * fV0CTPCv2
correlation V0A-TPC for resolution
TProfile * fCMEOppQCos
cme same charge neg v1
TProfile * fCMEOppQv1qc2[10]
cme opp charge <sin*sin>
TProfile * fCMESameQNegCosqc2[10]
cme same charge pos v1
TProfile * fCMESameQNegSin
cme same charge neg <cos*cos>
TProfile * fCMEOppQPtSumqc2[9][10]
cme opp charge ESE
TProfile * fCMEOppQPtDifqc2[9][10]
cme opp charge ESE
TProfile * fCMESameQPosPtSumqc2[9][10]
cme same charge pos ESE
virtual void UserCreateOutputObjects()
void OpenInfoCalbration(Int_t run)
TH2D * fQycvsVtxZBef
corrected Qx V0C vtx
Bool_t plpMV(const AliVEvent *event)
TH2D * fQycvsV0Bef
corrected Qx V0C cent
TProfile * fCMEOppQEtaqc2[9][10]
cme same charge neg ESE
TProfile * fCMESameQPosqc2[10]
correlation V0C-TPC for resolution ESE
TProfile * fCMESameQPos
correlation V0C-TPC for resolution
TProfile * fCMEOppQPtSum[9]
cme opp charge pt dif
TH1F * fVtxBeforeCuts
Event vertex info.
TProfile * fCMEOppQ
cme same charge neg
TH2D * fQxcvsVtxZAft
corrected Qy V0A vtx
THnSparseF * fAllQA
percentile distribution
TProfile * fCMEOppQCosqc2[10]
cme same charge neg v1
TH2D * fQycvsVtxZAft
corrected Qx V0C vtx
TProfile * fV0AV0Cv2
v2 V0A
TProfile * fV0ATPCv2qc2[10]
correlation V0A-V0C for resolution ESE
TProfile * fCMESameQNegCos
cme same charge pos v1
TProfile * fCMEOppQPtDif[9]
cme opp charge eta
virtual Int_t GetTPCMult(AliVEvent *ev) const
TH2D * fQyavsVtxZAft
corrected Qx V0A vtx
TH2D * fPsiAvsPsiC[10]
Psi V0C.
TH2D * fQycvsV0Aft
corrected Qx V0C cent
TProfile * fV0CTPCv2qc2[10]
correlation V0A-TPC for resolution ESE
TH2D * fQxcvsV0Aft
corrected Qy V0A cent
TProfile * fCMESameQPosPtDifqc2[9][10]
cme same charge pos ESE
TProfile * fCMESameQPosSinqc2[10]
cme same charge pos <cos*cos>
TProfile * fV0AV0Cv2qc2[10]
v2 V0A ESE
TH2D * fQxavsVtxZBef
corrected Qx V0C cent
TProfile * fCMESameQPosEtaqc2[9][10]
v2 pt ESE
virtual void Analyze(AliAODEvent *aod, Float_t vtxZ)
TH2D * fPercqc2
correlation between TPC and global track multiplicity after cuts
TProfile * fCMESameQPosPtSum[9]
cme same charge pos pt dif
virtual void UserExec(Option_t *option)
TProfile * fV0ATPCv2
correlation V0A-V0C for resolution
TProfile * fCMESameQPosPtDif[9]
cme same charge pos eta
TProfile * fCMESameQPosv1
cme same charge pos <sin*sin>
TH2D * fQxavsVtxZAft
corrected Qx V0C cent
TH2D * fQxavsV0Bef
qa histo for tracks
TProfile * fCMEOppQv1
cme opp charge <sin*sin>
TProfile * fCMESameQPosCosqc2[10]
cme opp charge ESE
TH1I * fVtx
Output list of objects.
TProfile * fCMESameQNegv1
cme same charge neg <sin*sin>
virtual ~AliAnalysisTaskCmeEse()
TProfile * fCMEOppQSinqc2[10]
cme opp charge <cos*cos>
TProfile * fCMESameQNegPtSum[9]
cme same charge neg pt dif
TH2D * fQxcvsV0Bef
corrected Qy V0A cent
TProfile * fCMESameQNegqc2[10]
cme same charge pos ESE
TProfile * fV2Aqc2[10]
cme opp charge v1
Double_t GetWDist(const AliVVertex *v0, const AliVVertex *v1)
TH2F * fMultCorAfterCuts
correlation between TPC and global track multiplicity before cuts
TProfile * fCMESameQNegSinqc2[10]
cme same charge neg <cos*cos>
TProfile * fCMEOppQEta[9]
cme same charge neg pt sum
TH2D * fQxcvsVtxZBef
corrected Qy V0A vtx
Short_t GetPercCode(Double_t perc) const
TProfile * fCMESameQNegv1qc2[10]
cme same charge neg <sin*sin>
TH2D * fQyavsV0Bef
corrected Qx V0A cent
TProfile * fCMESameQNegPtSumqc2[9][10]
cme same charge neg ESE
TProfile * fCMESameQPosv1qc2[10]
cme same charge pos <sin*sin>
TProfile * fCMEOppQqc2[10]
cme same charge neg ESE
TProfile * fV2Ptqc2[9][10]
correlation PsiA-PsiC
virtual void Terminate(Option_t *)
TH2D * fQyavsV0Aft
corrected Qx V0A cent
TProfile * fCMESameQPosCos
cme opp charge
TProfile * fCMESameQNegEtaqc2[9][10]
cme same charge pos ESE
TH2D * fQyavsVtxZBef
corrected Qx V0A vtx
TH2F * fMultCorBeforeCuts
Vertex z dist after cuts.
TList * OpenFile(const char *fname)