26 #include "TMatrixDSym.h" 27 #include "Riostream.h" 28 #include "AliAnalysisManager.h" 29 #include "AliInputEventHandler.h" 30 #include "AliOADBContainer.h" 31 #include "AliMultSelection.h" 32 #include "AliMultiplicity.h" 33 #include "AliAnalysisUtils.h" 34 #include "AliVVertex.h" 35 #include "AliAODTrack.h" 36 #include "AliAODEvent.h" 37 #include "AliAODHeader.h" 38 #include "AliAODVertex.h" 39 #include "AliAODVZERO.h" 40 #include "AliAODZDC.h" 63 fRejectPileUpTight(kTRUE),
64 bFillAvgTPCQn(kFALSE),
65 bFillEtaPhiNUA(kFALSE),
66 bApplyNUACorr(kFALSE),
67 bApplyZDCCorr(kFALSE),
68 bApplyNUAforEP(kFALSE),
70 bSkipNestedTrk(kFALSE),
71 bRemNegTrkRndm(kFALSE),
72 bApplyV0MCorr(kFALSE),
74 sAnalysisSet("DoGainEq"),
85 fPileUpSlopeParm(3.43),
91 fHist_Event_count(NULL),
92 fPileUpMultSelCount(NULL),
94 fTaskConfigParm(NULL),
104 fHV0AEventPlaneVsCent(NULL),
105 fHV0CEventPlaneVsCent(NULL),
106 fHTPCEventPlaneVsCent(NULL),
107 fHEnergyZNCvsCent(NULL),
108 fHEnergyZNAvsCent(NULL),
109 fHEnergyZPCvsCent(NULL),
110 fHEnergyZPAvsCent(NULL),
111 fHEnergyZNCvsCentRun(NULL),
112 fHEnergyZNAvsCentRun(NULL),
113 fHEnergyZPCvsCentRun(NULL),
114 fHEnergyZPAvsCentRun(NULL),
115 fHEnergyZPCvsZPA(NULL),
116 fHEnergyZNCvsZNA(NULL),
117 hUnderOverBinNUApos(NULL),
118 hUnderOverBinNUAneg(NULL),
119 fHCentBinTrkRecenter(NULL),
121 fV0AQ2xVsCentRun(NULL),
122 fV0AQ2yVsCentRun(NULL),
123 fV0CQ2xVsCentRun(NULL),
124 fV0CQ2yVsCentRun(NULL),
125 fV0AQ3xVsCentRun(NULL),
126 fV0AQ3yVsCentRun(NULL),
127 fV0CQ3xVsCentRun(NULL),
128 fV0CQ3yVsCentRun(NULL),
129 fTPCQ2xVsCentRun(NULL),
130 fTPCQ2yVsCentRun(NULL),
131 fTPCQ3xVsCentRun(NULL),
132 fTPCQ3yVsCentRun(NULL),
137 fAvgMultCentRun(NULL),
138 fAvgWgtMultCentRun(NULL),
139 fAvgPOIposCentRun(NULL),
140 fAvgPOInegCentRun(NULL),
141 fAvgPOIPPCentRun(NULL),
142 fAvgPOINNCentRun(NULL),
143 fAvgPOIOSCentRun(NULL),
144 fV0MultChVsRun(NULL),
145 fEventStatvsRun(NULL),
146 fEtaBinFinderForQA(NULL),
147 fVzBinFinderForNUA(NULL),
148 fHistVtxZvsRun(NULL),
149 fHistVtxXvsRun(NULL),
150 fHistVtxYvsRun(NULL),
151 fRejectRatioVsCR(NULL),
152 fCentDistvsRun(NULL),
154 fHAvgerageQnV0A(NULL),
155 fHAvgerageQnV0C(NULL),
156 fCentV0MvsVzRun(NULL),
157 fCent3pvsVzRun(NULL),
158 fRefMultCorrvsRaw(NULL),
159 fTPCvsGlobalTrk(NULL),
160 fTPCuncutvsGlobal(NULL),
164 fTPCFEvsITSfb96(NULL),
165 fCentCL1vsVzRun(NULL),
169 for(
int i=0;i<5;i++){
170 fHCorrectNUApos[i] = NULL;
171 fHCorrectNUAneg[i] = NULL;
173 for(
int i=0;i<90;i++){
175 for(
int j=0;j<5;j++){
176 fHist3DEtaPhiVz_Pos_Run[j][i] = NULL;
177 fHist3DEtaPhiVz_Neg_Run[j][i] = NULL;
180 for(
int i=0;i<10;i++){
181 fFB_Efficiency_Cent[i] = NULL;
182 fFB_Efficiency_Pos[i] = NULL;
183 fFB_Efficiency_Neg[i] = NULL;
185 for(
int i=0;i<2;i++){
186 for(
int j=0;j<3;j++){
187 fHist_Corr3p_SP_Norm_PN[i][j] = NULL;
188 fHist_Corr3p_SP_Norm_PP[i][j] = NULL;
189 fHist_Corr3p_SP_Norm_NN[i][j] = NULL;
190 fHist_Reso2n_SP_Norm_Det[i][j] = NULL;
193 for(
int i=0;i<2;i++){
194 for(
int j=0;j<3;j++){
195 fHist_Corr3p_EP_Norm_PN[i][j] = NULL;
196 fHist_Corr3p_EP_Norm_PP[i][j] = NULL;
197 fHist_Corr3p_EP_Norm_NN[i][j] = NULL;
198 fHist_Reso2n_EP_Norm_Det[i][j] = NULL;
200 for(
int j=0;j<3;j++){
201 fHist_Corr3p_EP_Refm_PN[i][j] = NULL;
202 fHist_Corr3p_EP_Refm_PP[i][j] = NULL;
203 fHist_Corr3p_EP_Refm_NN[i][j] = NULL;
204 fHist_Reso2n_EP_Refm_Det[i][j] = NULL;
207 for(
int i=0;i<2;i++){
208 fHist_Corr3p_vsRun_EP_PN[i] = NULL;
209 fHist_Corr3p_vsRun_EP_PP[i] = NULL;
210 fHist_Corr3p_vsRun_EP_NN[i] = NULL;
212 for(
int i=0;i<3;i++){
213 fHist_Corr3p_ZDN_SP_PN[i] = NULL;
214 fHist_Corr3p_ZDN_SP_PP[i] = NULL;
215 fHist_Corr3p_ZDN_SP_NN[i] = NULL;
216 fHist_Reso2n_ZDN_SP_Det[i] = NULL;
218 for(
int i=0;i<2;i++){
219 for(
int j=0;j<6;j++){
220 fHist_Corr3p_pTSum_EP_V0A_PN[i][j] = NULL;
221 fHist_Corr3p_pTSum_EP_V0A_PP[i][j] = NULL;
222 fHist_Corr3p_pTSum_EP_V0A_NN[i][j] = NULL;
223 fHist_Corr3p_pTSum_EP_V0C_PN[i][j] = NULL;
224 fHist_Corr3p_pTSum_EP_V0C_PP[i][j] = NULL;
225 fHist_Corr3p_pTSum_EP_V0C_NN[i][j] = NULL;
227 fHist_Corr3p_pTDiff_EP_V0A_PN[i][j] = NULL;
228 fHist_Corr3p_pTDiff_EP_V0A_PP[i][j] = NULL;
229 fHist_Corr3p_pTDiff_EP_V0A_NN[i][j] = NULL;
230 fHist_Corr3p_pTDiff_EP_V0C_PN[i][j] = NULL;
231 fHist_Corr3p_pTDiff_EP_V0C_PP[i][j] = NULL;
232 fHist_Corr3p_pTDiff_EP_V0C_NN[i][j] = NULL;
234 fHist_Corr3p_EtaDiff_EP_V0A_PN[i][j] = NULL;
235 fHist_Corr3p_EtaDiff_EP_V0A_PP[i][j] = NULL;
236 fHist_Corr3p_EtaDiff_EP_V0A_NN[i][j] = NULL;
237 fHist_Corr3p_EtaDiff_EP_V0C_PN[i][j] = NULL;
238 fHist_Corr3p_EtaDiff_EP_V0C_PP[i][j] = NULL;
239 fHist_Corr3p_EtaDiff_EP_V0C_NN[i][j] = NULL;
242 for(
int i=0;i<10;i++){
243 fHistChPosvsEtaPtRun[i] = NULL;
244 fHistChNegvsEtaPtRun[i] = NULL;
246 for(
int i=0;i<2;i++){
247 fHist_Corr3p_QAEta_SP_V0A_PN[i] = NULL;
248 fHist_Corr3p_QAEta_SP_V0A_PP[i] = NULL;
249 fHist_Corr3p_QAEta_SP_V0A_NN[i] = NULL;
251 for(
int i=0;i<2;i++){
252 fHist_Corr3p_QAEta_SP_V0C_PN[i] = NULL;
253 fHist_Corr3p_QAEta_SP_V0C_PP[i] = NULL;
254 fHist_Corr3p_QAEta_SP_V0C_NN[i] = NULL;
256 for(
int i=0;i<4;i++){
257 fHCos1nPosChEtaVz[i] = NULL;
258 fHCos2nPosChEtaVz[i] = NULL;
259 fHCos3nPosChEtaVz[i] = NULL;
260 fHCos4nPosChEtaVz[i] = NULL;
261 fHSin1nPosChEtaVz[i] = NULL;
262 fHSin2nPosChEtaVz[i] = NULL;
263 fHSin3nPosChEtaVz[i] = NULL;
264 fHSin4nPosChEtaVz[i] = NULL;
266 fHCos1nNegChEtaVz[i] = NULL;
267 fHCos2nNegChEtaVz[i] = NULL;
268 fHCos3nNegChEtaVz[i] = NULL;
269 fHCos4nNegChEtaVz[i] = NULL;
270 fHSin1nNegChEtaVz[i] = NULL;
271 fHSin2nNegChEtaVz[i] = NULL;
272 fHSin3nNegChEtaVz[i] = NULL;
273 fHSin4nNegChEtaVz[i] = NULL;
275 fHCos2nDWPosChEtaVz[i] = NULL;
276 fHSin2nDWPosChEtaVz[i] = NULL;
277 fHCos2nDWNegChEtaVz[i] = NULL;
278 fHSin2nDWNegChEtaVz[i] = NULL;
280 for(
int i=0;i<2;i++){
281 fHist_NonIso_SP_PP_Mag0[i] = NULL;
282 fHist_NonIso_SP_NN_Mag0[i] = NULL;
283 fHist_NonIso_SP_PP_Mag1[i] = NULL;
284 fHist_NonIso_SP_NN_Mag1[i] = NULL;
286 for(
int i=0;i<2;i++){
287 fHist_Corr2p_EP_Norm_PN[i] = NULL;
288 fHist_Corr2p_EP_Norm_PP[i] = NULL;
289 fHist_Corr2p_EP_Norm_NN[i] = NULL;
291 for(
int i=0;i<2;i++){
292 fHist_Corr2p_EP_Refm_PN[i] = NULL;
293 fHist_Corr2p_EP_Refm_PP[i] = NULL;
294 fHist_Corr2p_EP_Refm_NN[i] = NULL;
297 DefineInput(1, AliFlowEventSimple::Class());
299 DefineOutput(1,TList::Class());
300 DefineOutput(2,TList::Class());
301 DefineOutput(3,TList::Class());
307 fMultSelection(NULL),
316 fRejectPileUp(kTRUE),
317 fRejectPileUpTight(kTRUE),
318 bFillAvgTPCQn(kFALSE),
319 bFillEtaPhiNUA(kFALSE),
320 bApplyNUACorr(kFALSE),
321 bApplyZDCCorr(kFALSE),
322 bApplyNUAforEP(kFALSE),
323 bFillZDCinfo(kFALSE),
324 bSkipNestedTrk(kFALSE),
325 bRemNegTrkRndm(kFALSE),
326 bApplyV0MCorr(kFALSE),
328 sAnalysisSet(
"DoGainEq"),
329 sCentEstimator(
"V0"),
339 fPileUpSlopeParm(3.43),
340 fPileUpConstParm(43),
345 fHist_Event_count(NULL),
346 fPileUpMultSelCount(NULL),
348 fTaskConfigParm(NULL),
358 fHV0AEventPlaneVsCent(NULL),
359 fHV0CEventPlaneVsCent(NULL),
360 fHTPCEventPlaneVsCent(NULL),
361 fHEnergyZNCvsCent(NULL),
362 fHEnergyZNAvsCent(NULL),
363 fHEnergyZPCvsCent(NULL),
364 fHEnergyZPAvsCent(NULL),
365 fHEnergyZNCvsCentRun(NULL),
366 fHEnergyZNAvsCentRun(NULL),
367 fHEnergyZPCvsCentRun(NULL),
368 fHEnergyZPAvsCentRun(NULL),
369 fHEnergyZPCvsZPA(NULL),
370 fHEnergyZNCvsZNA(NULL),
371 hUnderOverBinNUApos(NULL),
372 hUnderOverBinNUAneg(NULL),
373 fHCentBinTrkRecenter(NULL),
375 fV0AQ2xVsCentRun(NULL),
376 fV0AQ2yVsCentRun(NULL),
377 fV0CQ2xVsCentRun(NULL),
378 fV0CQ2yVsCentRun(NULL),
379 fV0AQ3xVsCentRun(NULL),
380 fV0AQ3yVsCentRun(NULL),
381 fV0CQ3xVsCentRun(NULL),
382 fV0CQ3yVsCentRun(NULL),
383 fTPCQ2xVsCentRun(NULL),
384 fTPCQ2yVsCentRun(NULL),
385 fTPCQ3xVsCentRun(NULL),
386 fTPCQ3yVsCentRun(NULL),
391 fAvgMultCentRun(NULL),
392 fAvgWgtMultCentRun(NULL),
393 fAvgPOIposCentRun(NULL),
394 fAvgPOInegCentRun(NULL),
395 fAvgPOIPPCentRun(NULL),
396 fAvgPOINNCentRun(NULL),
397 fAvgPOIOSCentRun(NULL),
398 fV0MultChVsRun(NULL),
399 fEventStatvsRun(NULL),
400 fEtaBinFinderForQA(NULL),
401 fVzBinFinderForNUA(NULL),
402 fHistVtxZvsRun(NULL),
403 fHistVtxXvsRun(NULL),
404 fHistVtxYvsRun(NULL),
405 fRejectRatioVsCR(NULL),
406 fCentDistvsRun(NULL),
408 fHAvgerageQnV0A(NULL),
409 fHAvgerageQnV0C(NULL),
410 fCentV0MvsVzRun(NULL),
411 fCent3pvsVzRun(NULL),
412 fRefMultCorrvsRaw(NULL),
413 fTPCvsGlobalTrk(NULL),
414 fTPCuncutvsGlobal(NULL),
418 fTPCFEvsITSfb96(NULL),
419 fCentCL1vsVzRun(NULL),
423 for(
int i=0;i<5;i++){
427 for(
int i=0;i<90;i++){
429 for(
int j=0;j<5;j++){
434 for(
int i=0;i<10;i++){
439 for(
int i=0;i<2;i++){
440 for(
int j=0;j<3;j++){
447 for(
int i=0;i<2;i++){
448 for(
int j=0;j<3;j++){
454 for(
int j=0;j<3;j++){
461 for(
int i=0;i<2;i++){
466 for(
int i=0;i<3;i++){
472 for(
int i=0;i<2;i++){
473 for(
int j=0;j<6;j++){
496 for(
int i=0;i<10;i++){
500 for(
int i=0;i<2;i++){
505 for(
int i=0;i<2;i++){
510 for(
int i=0;i<4;i++){
534 for(
int i=0;i<2;i++){
540 for(
int i=0;i<2;i++){
545 for(
int i=0;i<2;i++){
568 for(
int i=0;i<10;i++) {
573 Int_t centFB[11] = {0,5,10,20,30,40,50,60,70,80,90};
574 for(
int i=0;i<10;i++) {
580 printf(
"\n\n!!***** Warning *****!!\n Enter correct Dimention !!\n\n"); exit(1);
584 printf(
"\n\n!!***** Warning *****!!\n FilterBit efficiency not found, use = 1.0 !!\n\n");
585 for(
int i=0;i<10;i++){
588 fFB_Efficiency_Pos[i] =
new TH3F(Form(
"eff_unbiased_Pos_%d",i),
"",1,-0.9,0.9,1,0,50,1,0,7);
590 fFB_Efficiency_Neg[i] =
new TH3F(Form(
"eff_unbiased_Neg_%d",i),
"",1,-0.9,0.9,1,0,50,1,0,7);
629 printf(
"\n ======================== Info::UserCreateOutPutObject Called ======================== \n");
652 for(
int i=0;i<5;i++){
656 for(
int i=0;i<10;i++){
681 printf(
"\n ... ::UserExec = no AOD or Flow Event, \n.... EXIT ..... \n");
691 Bool_t kPileupEvent = kFALSE;
695 if(kPileupEvent)
return;
712 centrV0M = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"V0M");
713 centrCL1 = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL1");
714 centrCL0 = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL0");
715 centrTRK = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"TRK");
718 fMultSelection = (AliMultSelection*) InputEvent()->FindListObject(
"MultSelection");
720 printf(
"\n\n **WARNING** ::UserExec() AliMultSelection object not found.\n\n");
739 Int_t iCentSPD = centrCL1;
741 if(iCentSPD > 90)
return;
764 cIndex = abs(
EvtCent/10.0) + 1;
782 Int_t runindex = -111;
783 Int_t runNumber = aod->GetRunNumber();
809 Double_t fMagField = aod->GetMagneticField();
814 Int_t bSign = (fMagField > 0) ? 1 : -1;
825 const AliAODVZERO *fAODV0 = aod->GetVZEROData();
828 Double_t QyanCor = 0., QycnCor = 0.;
829 Double_t QxanCor = 0., QxcnCor = 0.;
840 QyanCor = (Qyan2 -
fQynmV0A->GetBinContent(iCentSPD+1))/
fQynsV0A->GetBinContent(iCentSPD+1);
841 QycnCor = (Qycn2 -
fQynmV0C->GetBinContent(iCentSPD+1))/
fQynsV0C->GetBinContent(iCentSPD+1);
847 QxanCor = (Qxan2 -
fQxnmV0A->GetBinContent(iCentSPD+1))/
fQxnsV0A->GetBinContent(iCentSPD+1);
848 QxcnCor = (Qxcn2 -
fQxnmV0C->GetBinContent(iCentSPD+1))/
fQxnsV0C->GetBinContent(iCentSPD+1);
855 Qxan2 = 0., Qyan2 = 0.;
856 Qxcn2 = 0., Qycn2 = 0.;
858 for(
int iV0 = 0; iV0 < 64; iV0++) {
860 fMultv0 = fAODV0->GetMultiplicity(iV0);
868 phiV0 = TMath::PiOver4()*(0.5 + iV0 % 8);
871 Qxcn2 += TMath::Cos(2*phiV0) * fMultv0;
872 Qycn2 += TMath::Sin(2*phiV0) * fMultv0;
873 Qxcn3 += TMath::Cos(3*phiV0) * fMultv0;
874 Qycn3 += TMath::Sin(3*phiV0) * fMultv0;
878 Qxan2 += TMath::Cos(2*phiV0) * fMultv0;
879 Qyan2 += TMath::Sin(2*phiV0) * fMultv0;
880 Qxan3 += TMath::Cos(3*phiV0) * fMultv0;
881 Qyan3 += TMath::Sin(3*phiV0) * fMultv0;
897 Int_t icentV0Qn = centrCL1;
944 if(sumMa <= 0 || sumMc <= 0)
return;
949 AliAODVertex *pVertex = aod->GetPrimaryVertex();
958 if(VtxZ < 1.e-4 && VtxX < 1.e-4 && VtxY < 1.e-4)
968 Double_t energyZNC=0.,energyZNA=0.,energyZPC=0.,energyZPA=0.;
970 energyZNC = ((AliVAODHeader*)aod->GetHeader())->GetZDCN1Energy();
971 energyZNA = ((AliVAODHeader*)aod->GetHeader())->GetZDCN2Energy();
972 energyZPC = ((AliVAODHeader*)aod->GetHeader())->GetZDCP1Energy();
973 energyZPA = ((AliVAODHeader*)aod->GetHeader())->GetZDCP2Energy();
1002 Int_t BadRuns[10] = {246871,246870,246867,246865,246864,246859,246858,246676,246675,246540};
1006 for(
int ib=0;ib<iBadrun;ib++){
1007 if(runNumber==BadRuns[ib]){
1033 Double_t QxAutoPosQAEta[80] = {0.,};
1034 Double_t QyAutoPosQAEta[80] = {0.,};
1035 Double_t QxAutoNegQAEta[80] = {0.,};
1036 Double_t QyAutoNegQAEta[80] = {0.,};
1043 Double_t AvgDWCos2n=0.,AvgDWSin2n=0.;
1063 Int_t skipPairHBT = 0;
1075 Double_t Psi2V0C = 1./psiN*TMath::ATan2(QycnCor,QxcnCor);
1076 if(Psi2V0C<0.) Psi2V0C += 2*pi/psiN;
1078 Double_t Psi2V0A = 1./psiN*TMath::ATan2(QyanCor,QxanCor);
1079 if(Psi2V0A<0.) Psi2V0A += 2*pi/psiN;
1117 for(
int i=0; i<iTracks; i++) {
1119 if(!pTrack1)
continue;
1120 dPhi1 = pTrack1->
Phi();
1121 dPt1 = pTrack1-> Pt();
1122 dEta1 = pTrack1->
Eta();
1123 dChrg1 = pTrack1->
Charge();
1174 if(
sFileNUA==
"OldJ") w1NUA = 1./w1NUA;
1186 if(w1NUA > 1e3 ) w1NUA = 1.0;
1215 if (ptw1>1e3) ptw1 = 1.0;
1219 if(VtxZ>0 && dEta1>=0){
1245 else if(VtxZ>0 && dEta1<0){
1271 else if(VtxZ<0 && dEta1>=0){
1298 else if(VtxZ<0 && dEta1<0){
1334 QxPos[0] += (ptw1*w1NUA*TMath::Cos(n*dPhi1) - AvgCos1n);
1335 QyPos[0] += (ptw1*w1NUA*TMath::Sin(n*dPhi1) - AvgSin1n);
1336 QxAutoPos[0] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Cos(2.*n*dPhi1) - AvgDWCos2n);
1337 QyAutoPos[0] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Sin(2.*n*dPhi1) - AvgDWSin2n);
1338 MPOIpos += w1NUA*ptw1;
1339 McorrPos += w1NUA*ptw1*w1NUA*ptw1;
1342 QxPosQAEta[iEtaQA] += (ptw1*w1NUA*TMath::Cos(n*dPhi1) - AvgCos1n);
1343 QyPosQAEta[iEtaQA] += (ptw1*w1NUA*TMath::Sin(n*dPhi1) - AvgSin1n);
1344 QxAutoPosQAEta[iEtaQA] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Cos(2.*n*dPhi1) - AvgDWCos2n);
1345 QyAutoPosQAEta[iEtaQA] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Sin(2.*n*dPhi1) - AvgDWSin2n);
1346 MPOIposQAEta[iEtaQA] += ptw1*w1NUA;
1350 QxNeg[0] += (ptw1*w1NUA*TMath::Cos(n*dPhi1) - AvgCos1n);
1351 QyNeg[0] += (ptw1*w1NUA*TMath::Sin(n*dPhi1) - AvgSin1n);
1352 QxAutoNeg[0] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Cos(2.*n*dPhi1) - AvgDWCos2n);
1353 QyAutoNeg[0] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Sin(2.*n*dPhi1) - AvgDWSin2n);
1354 MPOIneg += w1NUA*ptw1;
1355 McorrNeg += w1NUA*ptw1*w1NUA*ptw1;
1358 QxNegQAEta[iEtaQA] += (ptw1*w1NUA*TMath::Cos(n*dPhi1) - AvgCos1n);
1359 QyNegQAEta[iEtaQA] += (ptw1*w1NUA*TMath::Sin(n*dPhi1) - AvgSin1n);
1360 QxAutoNegQAEta[iEtaQA] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Cos(2.*n*dPhi1) - AvgDWCos2n);
1361 QyAutoNegQAEta[iEtaQA] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Sin(2.*n*dPhi1) - AvgDWSin2n);
1362 MPOInegQAEta[iEtaQA] += ptw1*w1NUA;
1368 QxTPC[1] += ptw1*w1NUA*TMath::Cos(2*dPhi1);
1369 QyTPC[1] += ptw1*w1NUA*TMath::Sin(2*dPhi1);
1371 QxTPC[2] += ptw1*w1NUA*TMath::Cos(3*dPhi1);
1372 QyTPC[2] += ptw1*w1NUA*TMath::Sin(3*dPhi1);
1375 nRefMultWgt += ptw1*w1NUA;
1384 for(
int j=0; j<iTracks; j++) {
1389 if(!pTrack2)
continue;
1390 dPhi2 = pTrack2->
Phi();
1391 dPt2 = pTrack2-> Pt();
1392 dEta2 = pTrack2->
Eta();
1393 dChrg2 = pTrack2->
Charge();
1419 if (ptw2>1e3) ptw1 = 1.0;
1443 if(
sFileNUA==
"OldJ") w2NUA = 1./w2NUA;
1455 if(w2NUA > 1e3 ) w2NUA = 1.0;
1458 WgtEP = ptw1*ptw2*w1NUA*w2NUA;
1470 else if(dChrg1>0 && dChrg2>0){
1474 else if(dChrg1<0 && dChrg2<0){
1479 if(dChrg1==dChrg2) {
1488 deltaEta = dEta1 - dEta2;
1489 deltaPhi = dPhi1 - dPhi2;
1498 Float_t dphistar1 =
GetDPhiStar(phi1rad, dPt1, dChrg1, phi2rad, dPt2, dChrg2, 0.8, bSign);
1499 Float_t dphistar2 =
GetDPhiStar(phi1rad, dPt1, dChrg1, phi2rad, dPt2, dChrg2, 2.5, bSign);
1506 if(TMath::Abs(dphistar1) < kLimit || TMath::Abs(dphistar2) < kLimit || dphistar1 * dphistar2 < 0 ) {
1508 for(
Double_t rad=0.8; rad<2.51; rad+=0.01) {
1509 Float_t dphistar =
GetDPhiStar(phi1rad, dPt1, dChrg1, phi2rad, dPt2, dChrg2, rad, bSign);
1510 Float_t dphistarabs = TMath::Abs(dphistar);
1512 if(dphistarabs < dphistarminabs) {
1513 dphistarmin = dphistar;
1514 dphistarminabs = dphistarabs;
1520 if(dChrg1==dChrg2) {
1545 if(dChrg1!=dChrg2) {
1558 fCent3pvsVzRun->Fill(VtxZ,runindex,TMath::Cos(n*dPhi1 + m*dPhi2 - p*Psi2V0A));
1587 else if(dChrg1>0 && dChrg2>0 && skipPairHBT==0) {
1625 else if(dChrg1<0 && dChrg2<0 && skipPairHBT==0){
1686 Psi2TPC = 1./2*(TMath::ATan2(QTPCIm,QTPCRe));
1687 if(Psi2TPC < 0.) Psi2TPC += TMath::Pi();
1693 Psi2TPC = 1./psiN*(TMath::ATan2(QTPCIm3,QTPCRe3));
1694 if(Psi2TPC < 0.) Psi2TPC += 2./psiN*TMath::Pi();
1706 if(QTPCRe==0 && QTPCIm==0)
return;
1711 if(isBadRun)
return;
1717 Float_t fNegTracks = iTracks*0.5;
1755 Double_t uPRe=0.,uNRe=0.,uPIm=0.,uNIm=0.,uN2Re=0.,uN2Im=0.,uP2Re=0.,uP2Im=0.;
1760 uPM = MPOIpos; uNM = MPOIneg;
1762 uPRe = QxPos[0]; uNRe = QxNeg[0];
1763 uPIm = QyPos[0]; uNIm = QyNeg[0];
1765 uP2Re = QxAutoPos[0]; uP2Im = QyAutoPos[0];
1766 uN2Re = QxAutoNeg[0]; uN2Im = QyAutoNeg[0];
1768 Double_t TwoQpQnV = 0.,TwoQpQpV=0.,TwoQnQnV=0.;
1770 if(uPM > 1 && uNM > 1) {
1772 TwoQpQnV = ((uPRe*uNRe-uPIm*uNIm)*QxanCor + (uPRe*uNIm+uPIm*uNRe)*QyanCor) / (uPM*uNM) ;
1773 TwoQpQpV = ((uPRe*uPRe-uPIm*uPIm-uP2Re)*QxanCor + (2.*uPRe*uPIm-uP2Im)*QyanCor) / (uPM*(uPM-1)) ;
1774 TwoQnQnV = ((uNRe*uNRe-uNIm*uNIm-uN2Re)*QxanCor + (2.*uNRe*uNIm-uN2Im)*QyanCor) / (uNM*(uNM-1)) ;
1783 Double_t QnNonIsoRe = 0.,QnNonIsoIm=0.;
1790 QnNonIsoRe = (uPRe*QxanCor + uPIm*QyanCor)/uPM;
1791 QnNonIsoIm = (uPIm*QxanCor - uPRe*QyanCor)/uPM;
1795 QnNonIsoRe = (uPRe*uPRe-uPIm*uPIm-uP2Re)/(uPM*(uPM-1));
1796 QnNonIsoIm = (2.*uPRe*uPIm-uP2Im)/(uPM*(uPM-1));
1800 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1801 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1812 QnNonIsoRe = (uNRe*QxanCor + uNIm*QyanCor)/uNM;
1813 QnNonIsoIm = (uNIm*QxanCor - uNRe*QyanCor)/uNM;
1817 QnNonIsoRe = (uNRe*uNRe-uNIm*uNIm-uN2Re)/(uNM*(uNM-1));
1818 QnNonIsoIm = (2.*uNRe*uNIm-uN2Im)/(uNM*(uNM-1));
1822 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1823 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1830 else if(QAindex==1){
1835 QnNonIsoRe = (uPRe*QxanCor + uPIm*QyanCor)/uPM;
1836 QnNonIsoIm = (uPIm*QxanCor - uPRe*QyanCor)/uPM;
1840 QnNonIsoRe = (uPRe*uPRe-uPIm*uPIm-uP2Re)/(uPM*(uPM-1));
1841 QnNonIsoIm = (2.*uPRe*uPIm-uP2Im)/(uPM*(uPM-1));
1845 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1846 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1857 QnNonIsoRe = (uNRe*QxanCor + uNIm*QyanCor)/uNM;
1858 QnNonIsoIm = (uNIm*QxanCor - uNRe*QyanCor)/uNM;
1862 QnNonIsoRe = (uNRe*uNRe-uNIm*uNIm-uN2Re)/(uNM*(uNM-1));
1863 QnNonIsoIm = (2.*uNRe*uNIm-uN2Im)/(uNM*(uNM-1));
1867 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1868 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1925 TwoQpQnV = 0.; TwoQpQpV = 0.; TwoQnQnV = 0.;
1926 TwoQpQnV = ((uPRe*uNRe-uPIm*uNIm)*QxcnCor + (uPRe*uNIm+uPIm*uNRe)*QycnCor) / (uPM*uNM) ;
1927 TwoQpQpV = ((uPRe*uPRe-uPIm*uPIm-uP2Re)*QxcnCor + (2.*uPRe*uPIm-uP2Im)*QycnCor) / (uPM*(uPM-1)) ;
1928 TwoQnQnV = ((uNRe*uNRe-uNIm*uNIm-uN2Re)*QxcnCor + (2.*uNRe*uNIm-uN2Im)*QycnCor) / (uNM*(uNM-1)) ;
1942 QnNonIsoRe = (uPRe*QxcnCor + uPIm*QycnCor)/uPM;
1943 QnNonIsoIm = (uPIm*QxcnCor - uPRe*QycnCor)/uPM;
1947 QnNonIsoRe = (uPRe*uPRe-uPIm*uPIm-uP2Re)/(uPM*(uPM-1));
1948 QnNonIsoIm = (2.*uPRe*uPIm-uP2Im)/(uPM*(uPM-1));
1952 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1953 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1964 QnNonIsoRe = (uNRe*QxcnCor + uNIm*QycnCor)/uNM;
1965 QnNonIsoIm = (uNIm*QxcnCor - uNRe*QycnCor)/uNM;
1969 QnNonIsoRe = (uNRe*uNRe-uNIm*uNIm-uN2Re)/(uNM*(uNM-1));
1970 QnNonIsoIm = (2.*uNRe*uNIm-uN2Im)/(uNM*(uNM-1));
1974 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1975 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1982 else if(QAindex==1) {
1987 QnNonIsoRe = (uPRe*QxcnCor + uPIm*QycnCor)/uPM;
1988 QnNonIsoIm = (uPIm*QxcnCor - uPRe*QycnCor)/uPM;
1992 QnNonIsoRe = (uPRe*uPRe-uPIm*uPIm-uP2Re)/(uPM*(uPM-1));
1993 QnNonIsoIm = (2.*uPRe*uPIm-uP2Im)/(uPM*(uPM-1));
1997 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1998 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
2009 QnNonIsoRe = (uNRe*QxcnCor + uNIm*QycnCor)/uNM;
2010 QnNonIsoIm = (uNIm*QxcnCor - uNRe*QycnCor)/uNM;
2014 QnNonIsoRe = (uNRe*uNRe-uNIm*uNIm-uN2Re)/(uNM*(uNM-1));
2015 QnNonIsoIm = (2.*uNRe*uNIm-uN2Im)/(uNM*(uNM-1));
2019 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
2020 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
2089 for(
int ie=0; ie<nBinsX; ie++){
2091 uPM = MPOIposQAEta[ie];
2092 uNM = MPOInegQAEta[ie];
2096 uPRe = QxPosQAEta[ie];
2097 uNRe = QxNegQAEta[ie];
2098 uPIm = QyPosQAEta[ie];
2099 uNIm = QyNegQAEta[ie];
2101 uP2Re = QxAutoPosQAEta[ie];
2102 uP2Im = QyAutoPosQAEta[ie];
2103 uN2Re = QxAutoNegQAEta[ie];
2104 uN2Im = QyAutoNegQAEta[ie];
2110 TwoQpQnV = 0.; TwoQpQpV = 0.; TwoQnQnV = 0.;
2111 TwoQpQnV = ((uPRe*uNRe-uPIm*uNIm)*QxanCor + (uPRe*uNIm+uPIm*uNRe)*QyanCor) / (uPM*uNM) ;
2112 TwoQpQpV = ((uPRe*uPRe-uPIm*uPIm-uP2Re)*QxanCor + (2.*uPRe*uPIm-uP2Im)*QyanCor) / (uPM*(uPM-1.)) ;
2113 TwoQnQnV = ((uNRe*uNRe-uNIm*uNIm-uN2Re)*QxanCor + (2.*uNRe*uNIm-uN2Im)*QyanCor) / (uNM*(uNM-1.)) ;
2120 TwoQpQnV = 0.; TwoQpQpV = 0.; TwoQnQnV = 0.;
2121 TwoQpQnV = ((uPRe*uNRe-uPIm*uNIm)*QxcnCor + (uPRe*uNIm+uPIm*uNRe)*QycnCor) / (uPM*uNM) ;
2122 TwoQpQpV = ((uPRe*uPRe-uPIm*uPIm-uP2Re)*QxcnCor + (2.*uPRe*uPIm-uP2Im)*QycnCor) / (uPM*(uPM-1.)) ;
2123 TwoQnQnV = ((uNRe*uNRe-uNIm*uNIm-uN2Re)*QxcnCor + (2.*uNRe*uNIm-uN2Im)*QycnCor) / (uNM*(uNM-1.)) ;
2135 if(MPOIpos>1 && MPOIneg>1){
2194 AliDebug(2,
"\n ... AliAnalysisTaskCMEV0::Terminate() is being called ... \n");
2211 for(
Int_t iV0 = 0; iV0 < 64; iV0++) {
2216 Double_t phiV0 = TMath::PiOver4()*(0.5 + iV0 % 8);
2217 Float_t multv0 = aodV0->GetMultiplicity(iV0);
2223 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(1);
2224 else if(iV0 >= 8 && iV0 < 16)
2225 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(9);
2226 else if(iV0 >= 16 && iV0 < 24)
2227 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(17);
2228 else if(iV0 >= 24 && iV0 < 32)
2229 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(25);
2232 cout<<
"Problem with multiplicity in V0C"<<endl;
2235 Qxcn += TMath::Cos(fHarmonic*phiV0) * multCorC;
2236 Qycn += TMath::Sin(fHarmonic*phiV0) * multCorC;
2238 sumMc = sumMc + multCorC;
2243 if(iV0 >= 32 && iV0 < 40)
2244 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(33);
2245 else if(iV0 >= 40 && iV0 < 48)
2246 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(41);
2247 else if(iV0 >= 48 && iV0 < 56)
2248 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(49);
2249 else if(iV0 >= 56 && iV0 < 64)
2250 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(57);
2253 cout<<
"Problem with multiplicity in V0A"<<endl;
2256 Qxan += TMath::Cos(fHarmonic*phiV0) * multCorA;
2257 Qyan += TMath::Sin(fHarmonic*phiV0) * multCorA;
2259 sumMa = sumMa + multCorA;
2271 for(
int i=1;i<=100;i++){
2272 for(
int j=1;j<=4;j++){
2297 for(
int i=0;i<5;i++){
2304 for(
int i=0;i<4;i++){
2310 else if(sfileNUA==
"NewPt"|| sfileNUA==
"NewpT"){
2312 for(
int i=0;i<4;i++){
2318 else if(sfileNUA==
"OldJ") {
2320 TGrid::Connect(
"alien://");
2323 fileNUApos = TFile::Open(
"alien:///alice/cern.ch/user/m/mhaque/calib_files/15oHI_FB768_PosCh_CenPhiEtaWeights_VtxRbR.root");
2327 fileNUAneg = TFile::Open(
"alien:///alice/cern.ch/user/m/mhaque/calib_files/15oHI_FB768_NegCh_CenPhiEtaWeights_VtxRbR.root");
2331 for(
int i=0;i<4;i++){
2336 for(
int i=0;i<4;i++){
2344 printf(
"\n\n ******** could not open NUA Histograms for run %d, Use Wgt = 1.0 *********\n\n",run);
2345 if(sfileNUA==
"New2018"){
2346 for(
int i=0;i<5;i++){
2347 fHCorrectNUApos[i] =
new TH3D(Form(
"fHCorrectNUApos_cent%d",i),
"",1,-10,10,1,0,6.284,1,-0.9,0.9);
2348 fHCorrectNUAneg[i] =
new TH3D(Form(
"fHCorrectNUAneg_cent%d",i),
"",1,-10,10,1,0,6.284,1,-0.9,0.9);
2354 else if(sfileNUA==
"OldJ"|| sfileNUA==
"NewR"){
2355 for(
int i=0;i<4;i++){
2356 fHCorrectNUApos[i] =
new TH3D(Form(
"fHCorrectNUApos_cent%d",i),
"",1,-10,10,1,0,6.284,1,-0.9,0.9);
2357 fHCorrectNUAneg[i] =
new TH3D(Form(
"fHCorrectNUAneg_cent%d",i),
"",1,-10,10,1,0,6.284,1,-0.9,0.9);
2363 else if(sfileNUA==
"NewPt"|| sfileNUA==
"NewpT"){
2364 for(
int i=0;i<4;i++){
2365 fHCorrectNUApos[i] =
new TH3D(Form(
"fHCorrectNUApos_cent%d",i),
"",1,0,10,1,0,6.284,1,-0.9,0.9);
2366 fHCorrectNUAneg[i] =
new TH3D(Form(
"fHCorrectNUAneg_cent%d",i),
"",1,0,10,1,0,6.284,1,-0.9,0.9);
2380 TGrid::Connect(
"alien://");
2385 foadb = TFile::Open(
"alien:///alice/cern.ch/user/a/adobrin/calibV0HIR.root");
2390 printf(
"OADB V0 calibration file cannot be opened\n");
2394 AliOADBContainer* cont = (AliOADBContainer*) foadb->Get(
"hMultV0BefCorPfpx");
2396 printf(
"OADB object hMultV0BefCorr is not available in the file\n");
2399 if(!(cont->GetObject(run))){
2400 printf(
"OADB object hMultV0BefCorPfpx is not available for run %i\n", run);
2405 AliOADBContainer* contQxnam = 0;
2406 if (fHarmonic == 2.)
2407 contQxnam = (AliOADBContainer*) foadb->Get(
"fqxa2m");
2409 contQxnam = (AliOADBContainer*) foadb->Get(
"fqxa3m");
2412 printf(
"OADB object fqxanm is not available in the file\n");
2415 if(!(contQxnam->GetObject(run))){
2416 printf(
"OADB object fqxanm is not available for run %i\n", run);
2421 AliOADBContainer* contQynam = 0;
2422 if (fHarmonic == 2.)
2423 contQynam = (AliOADBContainer*) foadb->Get(
"fqya2m");
2424 else if (fHarmonic == 3.)
2425 contQynam = (AliOADBContainer*) foadb->Get(
"fqya3m");
2426 else if (fHarmonic == 4.)
2427 contQynam = (AliOADBContainer*) foadb->Get(
"fqya4m");
2430 printf(
"OADB object fqyanm is not available in the file\n");
2433 if(!(contQynam->GetObject(run))){
2434 printf(
"OADB object fqyanm is not available for run %i\n", run);
2439 AliOADBContainer* contQxnas = 0;
2440 if (fHarmonic == 2.)
2441 contQxnas = (AliOADBContainer*) foadb->Get(
"fqxa2s");
2443 contQxnas = (AliOADBContainer*) foadb->Get(
"fqxa3s");
2446 printf(
"OADB object fqxans is not available in the file\n");
2449 if(!(contQxnas->GetObject(run))){
2450 printf(
"OADB object fqxans is not available for run %i\n", run);
2455 AliOADBContainer* contQynas = 0;
2456 if (fHarmonic == 2.)
2457 contQynas = (AliOADBContainer*) foadb->Get(
"fqya2s");
2458 else if (fHarmonic == 3.)
2459 contQynas = (AliOADBContainer*) foadb->Get(
"fqya3s");
2460 else if (fHarmonic == 4.)
2461 contQynas = (AliOADBContainer*) foadb->Get(
"fqya4s");
2464 printf(
"OADB object fqyans is not available in the file\n");
2467 if(!(contQynas->GetObject(run))){
2468 printf(
"OADB object fqyans is not available for run %i\n", run);
2475 AliOADBContainer* contQxncm = 0;
2476 if (fHarmonic == 2.)
2477 contQxncm = (AliOADBContainer*) foadb->Get(
"fqxc2m");
2479 contQxncm = (AliOADBContainer*) foadb->Get(
"fqxc3m");
2482 printf(
"OADB object fqxcnm is not available in the file\n");
2485 if(!(contQxncm->GetObject(run))){
2486 printf(
"OADB object fqxcnm is not available for run %i\n", run);
2493 AliOADBContainer* contQyncm = 0;
2494 if (fHarmonic == 2.)
2495 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc2m");
2496 else if (fHarmonic == 3.)
2497 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc3m");
2498 else if (fHarmonic == 4.)
2499 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc4m");
2502 printf(
"OADB object fqyc2m is not available in the file\n");
2505 if(!(contQyncm->GetObject(run))){
2506 printf(
"OADB object fqyc2m is not available for run %i\n", run);
2512 AliOADBContainer* contQxncs = 0;
2513 if (fHarmonic == 2.)
2514 contQxncs = (AliOADBContainer*) foadb->Get(
"fqxc2s");
2516 contQxncs = (AliOADBContainer*) foadb->Get(
"fqxc3s");
2519 printf(
"OADB object fqxc2s is not available in the file\n");
2522 if(!(contQxncs->GetObject(run))){
2523 printf(
"OADB object fqxc2s is not available for run %i\n", run);
2529 AliOADBContainer* contQyncs = 0;
2530 if (fHarmonic == 2.)
2531 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc2s");
2532 else if (fHarmonic == 3.)
2533 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc3s");
2534 else if (fHarmonic == 4.)
2535 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc4s");
2538 printf(
"OADB object fqycnm is not available in the file\n");
2541 if(!(contQyncs->GetObject(run))){
2542 printf(
"OADB object fqycns is not available for run %i\n", run);
2555 AliDebug(2,
"\n\n ::GetWDist => One of vertices is not valid\n\n");
2558 static TMatrixDSym vVb(3);
2560 double dx = v0->GetX()-v1->GetX();
2561 double dy = v0->GetY()-v1->GetY();
2562 double dz = v0->GetZ()-v1->GetZ();
2563 double cov0[6],cov1[6];
2564 v0->GetCovarianceMatrix(cov0);
2565 v1->GetCovarianceMatrix(cov1);
2566 vVb(0,0) = cov0[0]+cov1[0];
2567 vVb(1,1) = cov0[2]+cov1[2];
2568 vVb(2,2) = cov0[5]+cov1[5];
2569 vVb(1,0) = vVb(0,1) = cov0[1]+cov1[1];
2570 vVb(0,2) = vVb(1,2) = vVb(2,0) = vVb(2,1) = 0.;
2572 if (!vVb.IsValid()) {
2573 AliDebug(2,
"Singular Matrix\n");
2576 dist = vVb(0,0)*dx*dx + vVb(1,1)*dy*dy + vVb(2,2)*dz*dz
2577 + 2*vVb(0,1)*dx*dy + 2*vVb(0,2)*dx*dz + 2*vVb(1,2)*dy*dz;
2578 return dist>0 ? TMath::Sqrt(dist) : -1;
2583 const int kMinPlpContrib = 5;
2584 const double kMaxPlpChi2 = 5.0;
2585 const double kMinWDist = 15;
2587 const AliVVertex* vtPrm = 0;
2588 const AliVVertex* vtPlp = 0;
2592 if(!(nPlp=faod->GetNumberOfPileupVerticesTracks()))
2595 vtPrm = faod->GetPrimaryVertex();
2596 if(vtPrm == faod->GetPrimaryVertexSPD())
2601 for(
int ipl=0;ipl<nPlp;ipl++) {
2602 vtPlp = (
const AliVVertex*)faod->GetPileupVertexTracks(ipl);
2603 if (vtPlp->GetNContributors() < kMinPlpContrib)
continue;
2604 if (vtPlp->GetChi2perNDF() > kMaxPlpChi2)
continue;
2609 double wDst =
GetWDist(vtPrm,vtPlp);
2610 if (wDst<kMinWDist)
continue;
2640 for(
int i=1;i<=64;i++){
2643 fHAvgerageQnV0A =
new TH2D(
"fHAvgerageQnV0A_empty",
"<Cos2>,<Sin2>,<Cos3>,<Sin3> V0A",90,0,90,8,0,8);
2644 fHAvgerageQnV0C =
new TH2D(
"fHAvgerageQnV0C_empty",
"<Cos2>,<Sin2>,<Cos3>,<Sin3> V0A",90,0,90,8,0,8);
2645 for(
int i=1;i<=90;i++){
2646 for(
int j=1;j<=8;j++){
2667 centrV0M = ((AliVAODHeader*)faod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"V0M");
2668 centrCL1 = ((AliVAODHeader*)faod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL1");
2669 centrCL0 = ((AliVAODHeader*)faod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL0");
2670 centrTRK = ((AliVAODHeader*)faod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"TRK");
2673 fMultSelection = (AliMultSelection*) InputEvent()->FindListObject(
"MultSelection");
2675 printf(
"\n\n **WARNING** ::UserExec() AliMultSelection object not found.\n\n");
2694 Int_t isPileup = faod->IsPileupFromSPD(3);
2699 if(((AliAODHeader*)faod->GetHeader())->GetRefMultiplicityComb08() < 0) {
2703 if(faod->IsIncompleteDAQ()) {
2709 const AliAODVertex* vtTrc = faod->GetPrimaryVertex();
2710 const AliAODVertex* vtSPD = faod->GetPrimaryVertexSPD();
2712 if(vtTrc->GetNContributors() < 2 || vtSPD->GetNContributors()<1) {
2717 double covTrc[6], covSPD[6];
2718 vtTrc->GetCovarianceMatrix(covTrc);
2719 vtSPD->GetCovarianceMatrix(covSPD);
2721 double dz = vtTrc->GetZ() - vtSPD->GetZ();
2723 double errTot = TMath::Sqrt(covTrc[5]+covSPD[5]);
2724 double errTrc = TMath::Sqrt(covTrc[5]);
2725 double nsigTot = dz/errTot;
2726 double nsigTrc = dz/errTrc;
2728 if(TMath::Abs(dz)>0.2 || TMath::Abs(nsigTot)>10 || TMath::Abs(nsigTrc)>20) {
2764 Int_t isPileup = faod->IsPileupFromSPD(3);
2769 if(((AliAODHeader*)faod->GetHeader())->GetRefMultiplicityComb08() < 0) {
2773 if(faod->IsIncompleteDAQ()) {
2777 if(fabs(centrV0M-centrCL1)> 5.0) {
2783 const AliAODVertex* vtTrc = faod->GetPrimaryVertex();
2784 const AliAODVertex* vtSPD = faod->GetPrimaryVertexSPD();
2786 if(vtTrc->GetNContributors() < 2 || vtSPD->GetNContributors()<1) {
2791 double covTrc[6], covSPD[6];
2792 vtTrc->GetCovarianceMatrix(covTrc);
2793 vtSPD->GetCovarianceMatrix(covSPD);
2795 double dz = vtTrc->GetZ() - vtSPD->GetZ();
2797 double errTot = TMath::Sqrt(covTrc[5]+covSPD[5]);
2798 double errTrc = TMath::Sqrt(covTrc[5]);
2799 double nsigTot = dz/errTot;
2800 double nsigTrc = dz/errTrc;
2802 if(TMath::Abs(dz)>0.2 || TMath::Abs(nsigTot)>10 || TMath::Abs(nsigTrc)>20) {
2815 Int_t multITSfb96 = 0;
2816 Int_t multITSfb32 = 0;
2818 Int_t multTPCFE = 0;
2819 Int_t multGlobal = 0;
2820 Int_t multTPCuncut = 0;
2821 Float_t dEta1,dPt1,dPhi1,ptw1;
2824 Int_t multEsd = ((AliAODHeader*)faod->GetHeader())->GetNumberOfESDTracks();
2826 const Int_t nTracks = faod->GetNumberOfTracks();
2842 cIndex = abs(
EvtCent/10.0) + 1;
2846 for(
Int_t iTracks = 0; iTracks < nTracks; iTracks++) {
2848 AliAODTrack* track = (AliAODTrack*)faod->GetTrack(iTracks);
2849 if(!track)
continue;
2851 if(track->TestFilterBit(128))
2853 if(track->TestFilterBit(96))
2856 if(track->TestFilterBit(1)) multTPCuncut++;
2857 if(track->TestFilterBit(32)) multITSfb32++;
2859 dEta1 = track->Eta();
2861 dPhi1 = track->Phi();
2862 dChrg1 = track->Charge();
2864 if(dPt1<0.2 || dPt1>5.0 || TMath::Abs(dEta1)>0.8 || track->GetTPCNcls()<70 || track->GetTPCsignal()<10.0)
2883 if (ptw1>1e3) ptw1 = 1.0;
2887 if(track->TestFilterBit(
gFilterBit) && dPt1>=0.2 && TMath::Abs(dEta1) < 0.8) {
2893 if(track->TestFilterBit(1) && track->Chi2perNDF()>0.2) multTPCFE++;
2894 if(!track->TestFilterBit(16) || track->Chi2perNDF()<0.1)
continue;
2898 Double_t bCov[3] = {-99., -99., -99.};
2900 AliAODTrack copy(*track);
2901 Double_t magField = faod->GetMagneticField();
2904 if(track->PropagateToDCA(faod->GetPrimaryVertex(), magField, 100., b, bCov) && TMath::Abs(b[0]) < 0.3 && TMath::Abs(b[1]) < 0.3) multGlobal++;
2968 if(BisPileup==kFALSE) {
2970 if(!
fMultSelection->GetThisEventIsNotPileupMV()) BisPileup=kTRUE;
2971 if(!
fMultSelection->GetThisEventIsNotPileupInMultBins()) BisPileup=kTRUE;
2972 if(!
fMultSelection->GetThisEventHasNoInconsistentVertices()) BisPileup=kTRUE;
2973 if(!
fMultSelection->GetThisEventPassesTrackletVsCluster()) BisPileup=kTRUE;
2974 if(!
fMultSelection->GetThisEventIsNotIncompleteDAQ()) BisPileup=kTRUE;
2975 if(!
fMultSelection->GetThisEventHasGoodVertex2016()) BisPileup=kTRUE;
2989 static const Double_t kPi = TMath::Pi();
2991 Float_t dphistar = phi1 - phi2 - charge1 * bSign * TMath::ASin(0.075 * radius / pt1) + charge2 * bSign * TMath::ASin(0.075 * radius / pt2);
2994 dphistar = -kPi * 2 - dphistar;
2997 dphistar = kPi * 2 - dphistar;
3020 printf(
"\n ... **WARNING** \n::UserExec() runnumber not listed.\n EXIT..\n");
3029 Int_t runArray_2010[89] = {139510, 139507, 139505, 139503, 139465, 139438, 139437, 139360, 139329, 139328, 139314, 139310, 139309, 139173, 139107, 139105, 139038, 139037, 139036, 139029, 139028, 138872, 138871, 138870, 138837, 138732, 138730, 138666, 138662, 138653, 138652, 138638, 138624, 138621, 138583, 138582, 138579, 138578, 138534, 138469, 138442, 138439, 138438, 138396, 138364, 138275, 138225, 138201, 138197, 138192, 138190, 137848, 137844, 137752, 137751, 137724, 137722, 137718, 137704, 137693, 137692, 137691, 137686, 137685, 137639, 137638, 137608, 137595, 137549, 137546, 137544, 137541, 137539, 137531, 137530, 137443, 137441, 137440, 137439, 137434, 137432, 137431, 137243, 137236, 137235, 137232, 137231, 137162, 137161};
3031 Int_t runArray_2011[68] = {167915, 168115, 168460, 169035, 169238, 169859, 170228, 167920, 168310, 168464, 169091, 169411, 169923, 170230, 167985, 168311, 168467, 169094, 169415, 170027, 170268, 167987, 168322, 168511, 169138, 169417, 170081, 170269, 167988, 168325, 168512, 169144, 169835, 170155, 170270, 168069, 168341, 168514, 169145, 169837, 170159, 170306, 168076, 168342, 168777, 169148, 169838, 170163, 170308, 168105, 168361, 168826, 169156, 169846, 170193, 170309, 168107, 168362, 168988, 169160, 169855, 170203, 168108, 168458, 168992, 169167, 169858, 170204};
3033 Int_t runArray_2015[90] = {246994, 246991, 246989, 246984, 246982, 246980, 246948, 246945, 246928, 246871, 246870, 246867, 246865, 246864, 246859, 246858, 246851, 246847, 246846, 246845, 246844, 246810, 246809, 246808, 246807, 246805, 246804, 246766, 246765, 246763, 246760, 246759, 246758, 246757, 246751, 246750, 246676, 246675, 246540, 246495, 246493, 246488, 246487, 246434, 246431, 246428, 246424, 246276, 246275, 246272, 246271, 246225, 246222, 246217, 246185, 246182, 246181, 246180, 246178, 246153, 246152, 246151, 246148, 246115, 246113, 246089, 246087, 246053, 246052, 246049, 246048, 246042, 246037, 246036, 246012, 246003, 246001, 245963, 245954, 245952, 245949, 245923, 245833, 245831, 245829, 245705, 245702, 245700, 245692, 245683};
3035 Int_t runArray_2015LI[13] = {244917, 244918, 244975, 244980, 244982, 244983, 245061, 245064, 245066, 245068, 246390, 246391, 246392};
3039 Int_t runArray_pPb_16q_pass1[32] = {265309, 265332, 265334, 265335, 265336, 265338, 265339, 265342, 265343, 265344, 265377, 265378, 265381, 265383, 265384, 265385, 265387, 265388, 265419, 265420, 265421, 265422, 265424, 265425, 265426, 265427, 265435, 265499, 265500, 265501, 265521, 265525};
3044 if(sPeriod==
"2010"){
3047 runNums[i] = runArray_2010[i];
3049 else if(sPeriod==
"2011"){
3052 runNums[i] = runArray_2011[i];
3054 else if(sPeriod==
"2015" || sPeriod==
"2015PbPb"){
3057 runNums[i] = runArray_2015[i];
3059 else if(sPeriod==
"2015pPb" || sPeriod==
"pPb"){
3062 runNums[i] = runArray_pPb_16q_pass1[i];
3064 else if(sPeriod==
"2015LI"){
3067 runNums[i] = runArray_2015LI[i];
3072 printf(
"\n\n ***** Run Number not defined for this data set. *******\n\n Please modify code..\n\n");
3095 fPileUpMultSelCount =
new TH1F(
"fPileUpMultSelCount",
"fPileUpMultSelCount", 10, 0., 10.);
3106 fPileUpCount =
new TH1F(
"fPileUpCount",
"fPileUpCount", 12, 0., 12.);
3109 fPileUpCount->GetXaxis()->SetBinLabel(3,
"RefMultiplicityComb08");
3110 fPileUpCount->GetXaxis()->SetBinLabel(4,
"IncompleteDAQ");
3111 fPileUpCount->GetXaxis()->SetBinLabel(5,
"abs(V0M-CL1)>5.0");
3113 fPileUpCount->GetXaxis()->SetBinLabel(7,
"inconsistentVtx");
3115 fPileUpCount->GetXaxis()->SetBinLabel(8,Form(
"multESDTPCDif>%d",puConst));
3116 fPileUpCount->GetXaxis()->SetBinLabel(9,Form(
"multGlobTPCDif>%d",puConst));
3117 fPileUpCount->GetXaxis()->SetBinLabel(10,
"extraPileUpMultSel");
3121 fTaskConfigParm =
new TH1F(
"fTaskConfigParm",
"Connfig Values", 20, 0., 20.);
3152 for(
int i=0;i<3;i++){
3154 fHist_Corr3p_ZDN_SP_PN[i] =
new TProfile2D(Form(
"fHist_Corr3p_ZDN_SP_PosNeg_Det%d",i+1),
"opposit charge correlator",90,0,90,15,0,15,
"");
3157 fHist_Corr3p_ZDN_SP_PP[i] =
new TProfile2D(Form(
"fHist_Corr3p_ZDN_SP_PosPos_Det%d",i+1),
"pos-pos charge correlator",90,0,90,15,0,15,
"");
3160 fHist_Corr3p_ZDN_SP_NN[i] =
new TProfile2D(Form(
"fHist_Corr3p_ZDN_SP_NegNeg_Det%d",i+1),
"neg-neg charge correlator",90,0,90,15,0,15,
"");
3165 for(
int i=0;i<3;i++){
3167 fHist_Reso2n_ZDN_SP_Det[i] =
new TProfile2D(Form(
"fHist_Reso2n_ZDN_SP_DetComb%d",i+1),
"Event plane Resolution",90,0,90,8,0,8,
"");
3173 Double_t centRange[11] = {0,5,10,20,30,40,50,60,70,80,90};
3182 for(
int i=0;i<2;i++){
3183 for(
int j=0;j<3;j++){
3185 fHist_Corr3p_SP_Norm_PN[i][j] =
new TProfile(Form(
"fHist_Corr3p_SP_Norm_PosNeg_Mag%d_Det%d",i,j+1),
"opposit charge correlator",10,centRange,
"");
3188 fHist_Corr3p_SP_Norm_PP[i][j] =
new TProfile(Form(
"fHist_Corr3p_SP_Norm_PosPos_Mag%d_Det%d",i,j+1),
"pos-pos charge correlator",10,centRange,
"");
3191 fHist_Corr3p_SP_Norm_NN[i][j] =
new TProfile(Form(
"fHist_Corr3p_SP_Norm_NegNeg_Mag%d_Det%d",i,j+1),
"neg-neg charge correlator",10,centRange,
"");
3196 for(
int j=0;j<3;j++){
3198 fHist_Reso2n_SP_Norm_Det[i][j] =
new TProfile(Form(
"fHist_Reso2n_SP_Norm_Mag%d_DetComb%d",i,j+1),
"Event plane Resolution",10,centRange,
"");
3204 Int_t gMaxRefMult = 4000;
3211 for(
int i=0;i<2;i++){
3212 for(
int j=0;j<3;j++){
3214 fHist_Corr3p_EP_Norm_PN[i][j] =
new TProfile(Form(
"fHist_Corr3p_EP_Norm_PosNeg_Mag%d_Det%d",i,j+1),
"opposit charge correlator",10,centRange,
"");
3217 fHist_Corr3p_EP_Norm_PP[i][j] =
new TProfile(Form(
"fHist_Corr3p_EP_Norm_PosPos_Mag%d_Det%d",i,j+1),
"pos-pos charge correlator",10,centRange,
"");
3220 fHist_Corr3p_EP_Norm_NN[i][j] =
new TProfile(Form(
"fHist_Corr3p_EP_Norm_NegNeg_Mag%d_Det%d",i,j+1),
"neg-neg charge correlator",10,centRange,
"");
3225 for(
int j=0;j<3;j++){
3227 fHist_Reso2n_EP_Norm_Det[i][j] =
new TProfile(Form(
"fHist_Reso2n_EP_Norm_Mag%d_DetComb%d",i,j+1),
"Event plane Resolution",10,centRange,
"");
3233 for(
int j=0;j<3;j++){
3235 fHist_Corr3p_EP_Refm_PN[i][j] =
new TProfile(Form(
"fHist_Corr3p_EP_Refm_PosNeg_Mag%d_Det%d",i,j+1),
"opposit charge correlator",800,0,gMaxRefMult,
"");
3238 fHist_Corr3p_EP_Refm_PP[i][j] =
new TProfile(Form(
"fHist_Corr3p_EP_Refm_PosPos_Mag%d_Det%d",i,j+1),
"pos-pos charge correlator",800,0,gMaxRefMult,
"");
3241 fHist_Corr3p_EP_Refm_NN[i][j] =
new TProfile(Form(
"fHist_Corr3p_EP_Refm_NegNeg_Mag%d_Det%d",i,j+1),
"neg-neg charge correlator",800,0,gMaxRefMult,
"");
3245 for(
int j=0;j<3;j++){
3247 fHist_Reso2n_EP_Refm_Det[i][j] =
new TProfile(Form(
"fHist_Reso2n_EP_Refm_Mag%d_DetComb%d",i,j+1),
"Event plane Resolution",800,0,gMaxRefMult,
"");
3260 for(
int i=0;i<2;i++){
3261 fHist_Corr2p_EP_Norm_PN[i] =
new TProfile2D(Form(
"fHist_Corr2p_EP_Norm_PN_Mag%d",i),
"<cos(n(phiA-phiB))>",10,centRange,4,0,4,
"");
3263 fHist_Corr2p_EP_Norm_PP[i] =
new TProfile2D(Form(
"fHist_Corr2p_EP_Norm_PP_Mag%d",i),
"<cos(n(phiA-phiB))>",10,centRange,4,0,4,
"");
3265 fHist_Corr2p_EP_Norm_NN[i] =
new TProfile2D(Form(
"fHist_Corr2p_EP_Norm_NN_Mag%d",i),
"<cos(n(phiA-phiB))>",10,centRange,4,0,4,
"");
3268 for(
int i=0;i<2;i++){
3269 fHist_Corr2p_EP_Refm_PN[i] =
new TProfile2D(Form(
"fHist_Corr2p_EP_Refm_PN_Mag%d",i),
"<cos(n(phiA-phiB))>",800,0,gMaxRefMult,4,0,4,
"");
3271 fHist_Corr2p_EP_Refm_PP[i] =
new TProfile2D(Form(
"fHist_Corr2p_EP_Refm_PP_Mag%d",i),
"<cos(n(phiA-phiB))>",800,0,gMaxRefMult,4,0,4,
"");
3273 fHist_Corr2p_EP_Refm_NN[i] =
new TProfile2D(Form(
"fHist_Corr2p_EP_Refm_NN_Mag%d",i),
"<cos(n(phiA-phiB))>",800,0,gMaxRefMult,4,0,4,
"");
3301 Double_t pTRange[21] = {0.0,0.2,0.4,0.6,0.8,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};
3303 for(
int i=0;i<2;i++){
3304 for(
int j=0;j<6;j++){
3305 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0A_PN_Mag%d_Cent%d",i,j);
3306 sprintf(title,
"PN 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3311 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0A_PP_Mag%d_Cent%d",i,j);
3312 sprintf(title,
"PP 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3317 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0A_NN_Mag%d_Cent%d",i,j);
3318 sprintf(title,
"NN 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3323 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0C_PN_Mag%d_Cent%d",i,j);
3324 sprintf(title,
"PN 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3329 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0C_PP_Mag%d_Cent%d",i,j);
3330 sprintf(title,
"PP 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3335 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0C_NN_Mag%d_Cent%d",i,j);
3336 sprintf(title,
"NN 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3343 for(
int i=0;i<2;i++){
3344 for(
int j=0;j<6;j++){
3345 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0A_PN_Mag%d_Cent%d",i,j);
3346 sprintf(title,
"PN 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3351 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0A_PP_Mag%d_Cent%d",i,j);
3352 sprintf(title,
"PP 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3357 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0A_NN_Mag%d_Cent%d",i,j);
3358 sprintf(title,
"NN 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3363 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0C_PN_Mag%d_Cent%d",i,j);
3364 sprintf(title,
"PN 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3369 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0C_PP_Mag%d_Cent%d",i,j);
3370 sprintf(title,
"PP 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3375 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0C_NN_Mag%d_Cent%d",i,j);
3376 sprintf(title,
"NN 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3386 for(
int i=0;i<2;i++){
3387 for(
int j=0;j<6;j++){
3388 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0A_PN_Mag%d_Cent%d",i,j);
3389 sprintf(title,
"PN 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3394 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0A_PP_Mag%d_Cent%d",i,j);
3395 sprintf(title,
"PP 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3400 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0A_NN_Mag%d_Cent%d",i,j);
3401 sprintf(title,
"NN 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3406 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0C_PN_Mag%d_Cent%d",i,j);
3407 sprintf(title,
"PN 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3412 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0C_PP_Mag%d_Cent%d",i,j);
3413 sprintf(title,
"PP 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3418 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0C_NN_Mag%d_Cent%d",i,j);
3419 sprintf(title,
"NN 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3431 for(
int i=0;i<2;i++){
3432 fHist_NonIso_SP_PP_Mag0[i] =
new TProfile2D(Form(
"fHist_NonIso_SP_PP_Mag0_Det%d",i),
"Non Isotropic terms",10,centRange,10,0,10,
"");
3434 fHist_NonIso_SP_NN_Mag0[i] =
new TProfile2D(Form(
"fHist_NonIso_SP_NN_Mag0_Det%d",i),
"Non Isotropic terms",10,centRange,10,0,10,
"");
3437 fHist_NonIso_SP_PP_Mag1[i] =
new TProfile2D(Form(
"fHist_NonIso_SP_PP_Mag1_Det%d",i),
"Non Isotropic terms",10,centRange,10,0,10,
"");
3439 fHist_NonIso_SP_NN_Mag1[i] =
new TProfile2D(Form(
"fHist_NonIso_SP_NN_Mag1_Det%d",i),
"Non Isotropic terms",10,centRange,10,0,10,
"");
3458 fdPhiFemtoCut =
new TH1F(
"fdPhiFemtoCut",
" total comb ",5,0,5);
3465 fVzDistribuion =
new TH1F(
"fVzDistribuion",
"Vz (cm)",100,-10,10);
3481 fCentCL1vsVzRun =
new TH3F(
"fCentCL1vsVzRun",
"",80,-10,10,
fRunFlag,0,
fRunFlag,20,-10,10);
3490 fTPCvsGlobalTrk =
new TH2F(
"fTPCvsGlobalTrk",
"ESDTrk vs TPC(FB128)",400,0,gMaxRefMult,400,0,gMaxRefMult);
3493 fTPCuncutvsGlobal =
new TH2F(
"fTPCuncutvsGlobal",
"ESDTrk vs ITS(FB96) ",400,0,gMaxRefMult,400,0,gMaxRefMult);
3496 fTPCvsITSfb96 =
new TH2F(
"fTPCvsITSfb96",
"FB96 vs TPC(FB128)",400,0,gMaxRefMult,400,0,gMaxRefMult);
3499 fTPCvsITSfb32 =
new TH2F(
"fTPCvsITSfb32",
"FB32 vs TPC(FB128)",400,0,gMaxRefMult,400,0,gMaxRefMult);
3502 fTPCFEvsITSfb96 =
new TH2F(
"fTPCFEvsITSfb96",
"FB96 vs TPC(FB1)",400,0,gMaxRefMult,400,0,gMaxRefMult);
3505 fGlobalTracks =
new TH1F(
"fGlobalTracks",
"Global Multiplilcity",gMaxRefMult,0,gMaxRefMult);
3515 Double_t fCentBinQvect[16] = {0.,2.5,5,10,15,20,25,30,35,40,45,50,60,70,80,90};
3517 fHEnergyZNCvsCent =
new TH2F(
"fHEnergyZNCvsCent",
"ZNC Energy vs cent",15,fCentBinQvect,4000,0,200000);
3519 fHEnergyZNAvsCent =
new TH2F(
"fHEnergyZNAvsCent",
"ZNA Energy vs cent",15,fCentBinQvect,4000,0,200000);
3521 fHEnergyZPCvsCent =
new TH2F(
"fHEnergyZPCvsCent",
"ZPC Energy vs cent",15,fCentBinQvect,2000,0,50000);
3523 fHEnergyZPAvsCent =
new TH2F(
"fHEnergyZPAvsCent",
"ZPA Energy vs cent",15,fCentBinQvect,2000,0,50000);
3537 fHEnergyZNCvsZNA =
new TH2F(
"fHEnergyZNCvsZNA",
"ZNC Energy vs cent",500,50000,150000,500,50000,150000);
3545 Int_t magField[2] = {0,1};
3547 for(
int i=0;i<2;i++){
3548 fHist_Corr3p_QAEta_SP_V0A_PN[i] =
new TProfile(Form(
"fHist_Corr3p_QAEta_SP_V0A_PN_Mag%d",magField[i]),
"PN, Cent 10-20%",80,-0.8,0.8,
"");
3551 fHist_Corr3p_QAEta_SP_V0A_PP[i] =
new TProfile(Form(
"fHist_Corr3p_QAEta_SP_V0A_PP_Mag%d",magField[i]),
"PP, Cent 10-20%",80,-0.8,0.8,
"");
3554 fHist_Corr3p_QAEta_SP_V0A_NN[i] =
new TProfile(Form(
"fHist_Corr3p_QAEta_SP_V0A_NN_Mag%d",magField[i]),
"NN, Cent 10-20%",80,-0.8,0.8,
"");
3558 for(
int i=0;i<2;i++){
3559 fHist_Corr3p_QAEta_SP_V0C_PN[i] =
new TProfile(Form(
"fHist_Corr3p_QAEta_SP_V0C_PN_Mag%d",magField[i]),
"PN, Cent 10-20%",80,-0.8,0.8,
"");
3562 fHist_Corr3p_QAEta_SP_V0C_PP[i] =
new TProfile(Form(
"fHist_Corr3p_QAEta_SP_V0C_PP_Mag%d",magField[i]),
"PP, Cent 10-20%",80,-0.8,0.8,
"");
3565 fHist_Corr3p_QAEta_SP_V0C_NN[i] =
new TProfile(Form(
"fHist_Corr3p_QAEta_SP_V0C_NN_Mag%d",magField[i]),
"NN, Cent 10-20%",80,-0.8,0.8,
"");
3578 Int_t suffixEta[4] = {1,0,1,0};
3579 Int_t suffixVz[4] = {1,1,0,0};
3582 for(
int i=0;i<4;i++){
3632 for(
int i=0;i<4;i++){
3729 for(
int i=0;i<10;i++){
3730 sprintf(name,
"fHistChPosvsEtaPtRun_Cent%d",i);
3731 sprintf(title,
"Pos Ch, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3732 fHistChPosvsEtaPtRun[i] =
new TH3F(name,title,25,0.2,5.2,16,-0.8,0.8,
fRunFlag,0,
fRunFlag);
3734 sprintf(name,
"fHistChNegvsEtaPtRun_Cent%d",i);
3735 sprintf(title,
"Neg Ch, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3736 fHistChNegvsEtaPtRun[i] =
new TH3F(name,title,25,0.2,5.2,16,-0.8,0.8,
fRunFlag,0,
fRunFlag);
3741 Int_t gCentForNUA[6] = {0,5,10,20,40,90};
3744 for(
int i=0;i<5;i++){
3746 sprintf(name,
"fHistEtaPhiVz_Pos_Cent%d_Run%d",i,
runNums[j]);
3747 sprintf(title,
"eta,phi,Vz Pos Cent%d-%d%%",gCentForNUA[i],gCentForNUA[i+1]);
3748 fHist3DEtaPhiVz_Pos_Run[i][j] =
new TH3F(name,title,10,-10,10,50,0,6.283185,16,-0.8,0.8);
3751 sprintf(name,
"fHistEtaPhiVz_Neg_Cent%d_Run%d",i,
runNums[j]);
3752 sprintf(title,
"eta,phi,Vz Pos Cent%d-%d%%",gCentForNUA[i],gCentForNUA[i+1]);
3753 fHist3DEtaPhiVz_Neg_Run[i][j] =
new TH3F(name,title,10,-10,10,50,0,6.283185,16,-0.8,0.8);
TProfile * fHist_Corr3p_EP_Refm_PN[2][3]
virtual void Terminate(Option_t *)
Bool_t CheckEventIsPileUp(AliAODEvent *faod)
TProfile2D * fHEnergyZNCvsCentRun
TProfile2D * fHist_Corr3p_ZDN_SP_NN[3]
TH2F * fHTPCEventPlaneVsCent
TProfile * fHist_Corr3p_EtaDiff_EP_V0C_NN[2][6]
Float_t GetDPhiStar(Float_t phi1, Float_t pt1, Float_t charge1, Float_t phi2, Float_t pt2, Float_t charge2, Float_t radius, Float_t bSign)
TProfile2D * fTPCQ2xVsCentRun
TProfile * fHist_Reso2n_EP_Norm_Det[2][3]
TProfile * fHist_Corr3p_EtaDiff_EP_V0A_NN[2][6]
TProfile2D * fHist_Corr3p_ZDN_SP_PP[3]
Norm = 10 centrality bins along X.
TProfile2D * fHSin3nPosChEtaVz[4]
TProfile2D * fHEnergyZPCvsCentRun
TH1D * fQynsV0C
sigma Qx2 V0C
Int_t fOldRunNum
number of total run
Bool_t PileUpMultiVertex(const AliAODEvent *faod)
TProfile2D * fHist_Corr2p_EP_Refm_PN[2]
TProfile * fHist_Corr3p_pTSum_EP_V0A_PP[2][6]
TProfile2D * fV0AQ3yVsCentRun
TProfile2D * fHCos4nPosChEtaVz[4]
TH1D * fQxnmV0A
profile from V0 multiplicity
AliFlowTrackSimple * GetTrack(Int_t i)
TList * fListHistos
Event selection.
TProfile2D * fAvgWgtMultCentRun
TProfile2D * fHist_Corr2p_EP_Norm_NN[2]
virtual ~AliAnalysisTaskCMEV0()
AliAnalysisUtils * fAnalysisUtil
MultSelection (RUN2 centrality estimator)
TProfile * fHist_Corr3p_QAEta_SP_V0C_PP[2]
Pos and Neg Mag field.
TProfile2D * fHCos2nNegChEtaVz[4]
TProfile * fHist_Corr3p_pTDiff_EP_V0C_PN[2][6]
TProfile2D * fAvgPOIPPCentRun
TProfile2D * fHSin1nNegChEtaVz[4]
TH2F * fHV0CEventPlaneVsCent
TList * fListFBHijing
collection of NUA Histograms
TProfile * fHist_Corr3p_QAEta_SP_V0A_PP[2]
Pos and Neg Mag field.
Int_t GetCurrentRunIndex(Int_t run)
TProfile2D * fHEnergyZPAvsCentRun
TProfile * fHist_Corr3p_EP_Norm_PP[2][3]
TProfile2D * fHSin3nNegChEtaVz[4]
TProfile2D * fHSin2nPosChEtaVz[4]
TList * fListCalibs
collection of output
TProfile * fHist_Corr3p_EP_Norm_PN[2][3]
TH3F * fFB_Efficiency_Neg[10]
3d correction Map
TProfile * fHist_Corr3p_pTDiff_EP_V0A_NN[2][6]
TH1F * fVzBinFinderForNUA
TProfile2D * fV0CQ2yVsCentRun
TProfile2D * fHist_Corr2p_EP_Refm_PP[2]
Two magnetic fields.
TProfile2D * fHist_Corr3p_ZDN_SP_PN[3]
TH3D * fHCorrectNUApos[5]
TProfile2D * fHCos1nPosChEtaVz[4]
TH1F * hUnderOverBinNUAneg
//temporary Debug, remove for stable code
TProfile * fHist_Corr3p_EP_Norm_NN[2][3]
TProfile2D * fHist_Corr3p_vsRun_EP_PN[2]
TProfile2D * fCentV0MvsVzRun
V0C Average <Qn>, n=2,3.
AliMultSelection * fMultSelection
input event
TH1F * fPileUpMultSelCount
event count with different cuts
TProfile * fHist_Corr3p_pTSum_EP_V0A_PN[2][6]
TProfile2D * fHist_NonIso_SP_PP_Mag0[2]
TProfile * fHist_Corr3p_EtaDiff_EP_V0A_PN[2][6]
TProfile2D * fHCos4nNegChEtaVz[4]
TH3F * fHist3DEtaPhiVz_Neg_Run[5][90]
5 centrality bin 90 Bins for Run. NUA
TProfile * fHist_Corr3p_QAEta_SP_V0A_PN[2]
TProfile2D * fHCos3nPosChEtaVz[4]
void OpenInfoCalbration(Int_t run, Float_t fHarmonic)
TProfile * fHist_Reso2n_EP_Refm_Det[2][3]
TProfile2D * fAvgPOIposCentRun
TProfile2D * fHist_Reso2n_ZDN_SP_Det[3]
TH1D * fQynsV0A
sigma Qx2 V0A
TProfile2D * fHCos2nDWPosChEtaVz[4]
TList * fListNUAHist
collection of Calib Histos
TH1D * fMultV0
Cut parameters which were used.
TProfile2D * fHSin2nNegChEtaVz[4]
TProfile * fHist_Corr3p_SP_Norm_PP[2][3]
Norm = 10 centrality bins along X.
void GetNUACorrectionHist(Int_t run, TString sfileNUA)
TProfile2D * fCent3pvsVzRun
TProfile2D * fTPCQ2yVsCentRun
TProfile * fHist_Corr3p_pTSum_EP_V0A_NN[2][6]
TProfile * fHist_Corr3p_pTDiff_EP_V0A_PN[2][6]
TProfile * fHist_Corr3p_pTSum_EP_V0C_PN[2][6]
TProfile2D * fHSin2nDWPosChEtaVz[4]
TH2F * fHV0AEventPlaneVsCent
TProfile2D * fAvgPOInegCentRun
TProfile2D * fHCos2nDWNegChEtaVz[4]
TProfile2D * fHCos3nNegChEtaVz[4]
TProfile2D * fTPCQ3xVsCentRun
TH3F * fHistChNegvsEtaPtRun[10]
10 Centrality Bin
TProfile2D * fHist_NonIso_SP_NN_Mag1[2]
Mag1 = B > 0.
TProfile2D * fHCos2nPosChEtaVz[4]
Int_t fRunFlag
array of runnumbers
TProfile * fHist_Corr3p_QAEta_SP_V0C_NN[2]
TProfile * fHist_Corr3p_EP_Refm_NN[2][3]
AliFlowEventSimple * fEvent
TProfile * fHist_Reso2n_SP_Norm_Det[2][3]
TH3F * fHistChPosvsEtaPtRun[10]
TProfile2D * fV0CQ2xVsCentRun
TProfile2D * fHist_Corr2p_EP_Norm_PN[2]
virtual void UserCreateOutputObjects()
TProfile * fHist_Corr3p_pTDiff_EP_V0C_PP[2][6]
TProfile2D * fV0MultChVsRun
opposite sign pairs
void InitializeRunArray(TString sPeriod)
TProfile * fHist_Corr3p_QAEta_SP_V0A_NN[2]
void GetV0MCorrectionHist(Int_t run)
TH1F * fHCentBinTrkRecenter
//temporary Debug, remove for stable code
TProfile2D * fHSin4nNegChEtaVz[4]
TProfile2D * fHist_Corr2p_EP_Refm_NN[2]
TProfile * fHist_Corr3p_pTSum_EP_V0C_NN[2][6]
TProfile2D * fHist_NonIso_SP_PP_Mag1[2]
TProfile2D * fV0CQ3yVsCentRun
TProfile * fHist_Corr3p_SP_Norm_PN[2][3]
TProfile2D * fHSin4nPosChEtaVz[4]
TProfile * fHist_Corr3p_EtaDiff_EP_V0C_PP[2][6]
void GetV0QvectAndMult(const AliAODVZERO *aodV0, Float_t fHarmonic, Double_t &Qxan, Double_t &Qyan, Double_t &sumMa, Double_t &Qxcn, Double_t &Qycn, Double_t &sumMc)
TProfile2D * fV0AQ2xVsCentRun
TProfile * fHist_Corr3p_EtaDiff_EP_V0A_PP[2][6]
Float_t EvtCent
counter of event for cout
TH2D * fHAvgerageQnV0C
V0A Average <Qn>, n=2,3.
TProfile * fHist_Corr3p_QAEta_SP_V0C_PN[2]
TProfile2D * fHist_Corr3p_vsRun_EP_NN[2]
Int_t fHarmonicN
Event centrality.
TProfile2D * fHist_NonIso_SP_NN_Mag0[2]
Mag0 = B < 0.
TProfile * fHist_Corr3p_EtaDiff_EP_V0C_PN[2][6]
TProfile2D * fRejectRatioVsCR
void GetZDCCorrectionHist(Int_t run)
TH1F * fEtaBinFinderForQA
TProfile2D * fAvgPOIOSCentRun
same sign Neg-Neg pairs
Bool_t InPOISelection(Int_t poiType=1) const
TH1D * fQxnmV0C
sigma Qy2 V0A
TProfile2D * fV0AQ3xVsCentRun
TProfile2D * fHEnergyZNAvsCentRun
TProfile2D * fHist_Corr3p_vsRun_EP_PP[2]
TProfile * fHist_Corr3p_SP_Norm_NN[2][3]
TProfile2D * fHSin1nPosChEtaVz[4]
TH3D * fHCorrectNUAneg[5]
5 centrality bin
TProfile * fHist_Corr3p_EP_Refm_PP[2][3]
virtual void UserExec(Option_t *option)
TH2D * fHAvgerageQnV0A
for V0-Mult Gain Correction per channel.
TProfile2D * fV0CQ3xVsCentRun
TH3F * fFB_Efficiency_Pos[10]
TH1F * hUnderOverBinNUApos
Bool_t fRejectPileUpTight
TProfile * fHist_Corr3p_pTDiff_EP_V0C_NN[2][6]
TH1D * fFB_Efficiency_Cent[10]
5 centrality bin 90 Bins for Run. NUA
TProfile2D * fTPCQ3yVsCentRun
TProfile2D * fV0AQ2yVsCentRun
double GetWDist(const AliVVertex *v0, const AliVVertex *v1)
TProfile2D * fHSin2nDWNegChEtaVz[4]
TProfile2D * fAvgPOINNCentRun
same sign Pos-Pos pairs
TH3F * fHist3DEtaPhiVz_Pos_Run[5][90]
5 centrality bin
TProfile * fHist_Corr3p_pTSum_EP_V0C_PP[2][6]
TProfile2D * fHCos1nNegChEtaVz[4]
TProfile2D * fAvgMultCentRun
Int_t NumberOfTracks() const
TProfile * fHist_Corr3p_pTDiff_EP_V0A_PP[2][6]
TProfile2D * fHist_Corr2p_EP_Norm_PP[2]
Two magnetic fields.