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),
87 fHist_Event_count(NULL),
88 fPileUpMultSelCount(NULL),
90 fTaskConfigParm(NULL),
100 fHV0AEventPlaneVsCent(NULL),
101 fHV0CEventPlaneVsCent(NULL),
102 fHTPCEventPlaneVsCent(NULL),
103 fHEnergyZNCvsCent(NULL),
104 fHEnergyZNAvsCent(NULL),
105 fHEnergyZPCvsCent(NULL),
106 fHEnergyZPAvsCent(NULL),
107 fHEnergyZNCvsCentRun(NULL),
108 fHEnergyZNAvsCentRun(NULL),
109 fHEnergyZPCvsCentRun(NULL),
110 fHEnergyZPAvsCentRun(NULL),
111 fHEnergyZPCvsZPA(NULL),
112 fHEnergyZNCvsZNA(NULL),
113 hUnderOverBinNUApos(NULL),
114 hUnderOverBinNUAneg(NULL),
115 fHCentBinTrkRecenter(NULL),
117 fV0AQ2xVsCentRun(NULL),
118 fV0AQ2yVsCentRun(NULL),
119 fV0CQ2xVsCentRun(NULL),
120 fV0CQ2yVsCentRun(NULL),
121 fV0AQ3xVsCentRun(NULL),
122 fV0AQ3yVsCentRun(NULL),
123 fV0CQ3xVsCentRun(NULL),
124 fV0CQ3yVsCentRun(NULL),
125 fTPCQ2xVsCentRun(NULL),
126 fTPCQ2yVsCentRun(NULL),
127 fTPCQ3xVsCentRun(NULL),
128 fTPCQ3yVsCentRun(NULL),
133 fAvgMultCentRun(NULL),
134 fAvgWgtMultCentRun(NULL),
135 fAvgPOIposCentRun(NULL),
136 fAvgPOInegCentRun(NULL),
137 fAvgPOIPPCentRun(NULL),
138 fAvgPOINNCentRun(NULL),
139 fAvgPOIOSCentRun(NULL),
140 fV0MultChVsRun(NULL),
141 fEventStatvsRun(NULL),
142 fEtaBinFinderForQA(NULL),
143 fVzBinFinderForNUA(NULL),
144 fHistVtxZvsRun(NULL),
145 fHistVtxXvsRun(NULL),
146 fHistVtxYvsRun(NULL),
147 fRejectRatioVsCR(NULL),
148 fCentDistvsRun(NULL),
150 fCentV0MvsVzRun(NULL),
151 fCent3pvsVzRun(NULL),
152 fTPCvsGlobalTrk(NULL),
153 fTPCuncutvsGlobal(NULL),
157 fTPCFEvsITSfb96(NULL),
158 fCentCL1vsVzRun(NULL),
162 for(
int i=0;i<5;i++){
163 fHCorrectNUApos[i] = NULL;
164 fHCorrectNUAneg[i] = NULL;
166 for(
int i=0;i<90;i++){
168 for(
int j=0;j<5;j++){
169 fHist3DEtaPhiVz_Pos_Run[j][i] = NULL;
170 fHist3DEtaPhiVz_Neg_Run[j][i] = NULL;
173 for(
int i=0;i<10;i++){
174 fFB_Efficiency_Cent[i] = NULL;
175 fFB_Efficiency_Pos[i] = NULL;
176 fFB_Efficiency_Neg[i] = NULL;
178 for(
int i=0;i<2;i++){
179 for(
int j=0;j<3;j++){
180 fHist_Corr3p_SP_Norm_PN[i][j] = NULL;
181 fHist_Corr3p_SP_Norm_PP[i][j] = NULL;
182 fHist_Corr3p_SP_Norm_NN[i][j] = NULL;
183 fHist_Reso2n_SP_Norm_Det[i][j] = NULL;
186 for(
int i=0;i<2;i++){
187 for(
int j=0;j<3;j++){
188 fHist_Corr3p_EP_Norm_PN[i][j] = NULL;
189 fHist_Corr3p_EP_Norm_PP[i][j] = NULL;
190 fHist_Corr3p_EP_Norm_NN[i][j] = NULL;
191 fHist_Reso2n_EP_Norm_Det[i][j] = NULL;
194 for(
int i=0;i<2;i++){
195 fHist_Corr3p_vsRun_EP_PN[i] = NULL;
196 fHist_Corr3p_vsRun_EP_PP[i] = NULL;
197 fHist_Corr3p_vsRun_EP_NN[i] = NULL;
199 for(
int i=0;i<3;i++){
200 fHist_Corr3p_ZDN_SP_PN[i] = NULL;
201 fHist_Corr3p_ZDN_SP_PP[i] = NULL;
202 fHist_Corr3p_ZDN_SP_NN[i] = NULL;
203 fHist_Reso2n_ZDN_SP_Det[i] = NULL;
205 for(
int i=0;i<2;i++){
206 for(
int j=0;j<6;j++){
207 fHist_Corr3p_pTSum_EP_V0A_PN[i][j] = NULL;
208 fHist_Corr3p_pTSum_EP_V0A_PP[i][j] = NULL;
209 fHist_Corr3p_pTSum_EP_V0A_NN[i][j] = NULL;
210 fHist_Corr3p_pTSum_EP_V0C_PN[i][j] = NULL;
211 fHist_Corr3p_pTSum_EP_V0C_PP[i][j] = NULL;
212 fHist_Corr3p_pTSum_EP_V0C_NN[i][j] = NULL;
214 fHist_Corr3p_pTDiff_EP_V0A_PN[i][j] = NULL;
215 fHist_Corr3p_pTDiff_EP_V0A_PP[i][j] = NULL;
216 fHist_Corr3p_pTDiff_EP_V0A_NN[i][j] = NULL;
217 fHist_Corr3p_pTDiff_EP_V0C_PN[i][j] = NULL;
218 fHist_Corr3p_pTDiff_EP_V0C_PP[i][j] = NULL;
219 fHist_Corr3p_pTDiff_EP_V0C_NN[i][j] = NULL;
221 fHist_Corr3p_EtaDiff_EP_V0A_PN[i][j] = NULL;
222 fHist_Corr3p_EtaDiff_EP_V0A_PP[i][j] = NULL;
223 fHist_Corr3p_EtaDiff_EP_V0A_NN[i][j] = NULL;
224 fHist_Corr3p_EtaDiff_EP_V0C_PN[i][j] = NULL;
225 fHist_Corr3p_EtaDiff_EP_V0C_PP[i][j] = NULL;
226 fHist_Corr3p_EtaDiff_EP_V0C_NN[i][j] = NULL;
229 for(
int i=0;i<10;i++){
230 fHistChPosvsEtaPtRun[i] = NULL;
231 fHistChNegvsEtaPtRun[i] = NULL;
233 for(
int i=0;i<2;i++){
234 fHist_Corr3p_QAEta_SP_V0A_PN[i] = NULL;
235 fHist_Corr3p_QAEta_SP_V0A_PP[i] = NULL;
236 fHist_Corr3p_QAEta_SP_V0A_NN[i] = NULL;
238 for(
int i=0;i<2;i++){
239 fHist_Corr3p_QAEta_SP_V0C_PN[i] = NULL;
240 fHist_Corr3p_QAEta_SP_V0C_PP[i] = NULL;
241 fHist_Corr3p_QAEta_SP_V0C_NN[i] = NULL;
243 for(
int i=0;i<4;i++){
244 fHCos1nPosChEtaVz[i] = NULL;
245 fHCos2nPosChEtaVz[i] = NULL;
246 fHCos3nPosChEtaVz[i] = NULL;
247 fHCos4nPosChEtaVz[i] = NULL;
248 fHSin1nPosChEtaVz[i] = NULL;
249 fHSin2nPosChEtaVz[i] = NULL;
250 fHSin3nPosChEtaVz[i] = NULL;
251 fHSin4nPosChEtaVz[i] = NULL;
253 fHCos1nNegChEtaVz[i] = NULL;
254 fHCos2nNegChEtaVz[i] = NULL;
255 fHCos3nNegChEtaVz[i] = NULL;
256 fHCos4nNegChEtaVz[i] = NULL;
257 fHSin1nNegChEtaVz[i] = NULL;
258 fHSin2nNegChEtaVz[i] = NULL;
259 fHSin3nNegChEtaVz[i] = NULL;
260 fHSin4nNegChEtaVz[i] = NULL;
262 fHCos2nDWPosChEtaVz[i] = NULL;
263 fHSin2nDWPosChEtaVz[i] = NULL;
264 fHCos2nDWNegChEtaVz[i] = NULL;
265 fHSin2nDWNegChEtaVz[i] = NULL;
267 for(
int i=0;i<2;i++){
268 fHist_NonIso_SP_PP_Mag0[i] = NULL;
269 fHist_NonIso_SP_NN_Mag0[i] = NULL;
270 fHist_NonIso_SP_PP_Mag1[i] = NULL;
271 fHist_NonIso_SP_NN_Mag1[i] = NULL;
273 for(
int i=0;i<2;i++){
274 fHist_Corr2p_EP_Norm_PN[i] = NULL;
275 fHist_Corr2p_EP_Norm_PP[i] = NULL;
276 fHist_Corr2p_EP_Norm_NN[i] = NULL;
279 DefineInput(1, AliFlowEventSimple::Class());
281 DefineOutput(1,TList::Class());
282 DefineOutput(2,TList::Class());
283 DefineOutput(3,TList::Class());
289 fMultSelection(NULL),
298 fRejectPileUp(kTRUE),
299 fRejectPileUpTight(kTRUE),
300 bFillAvgTPCQn(kFALSE),
301 bFillEtaPhiNUA(kFALSE),
302 bApplyNUACorr(kFALSE),
303 bApplyZDCCorr(kFALSE),
304 bApplyNUAforEP(kFALSE),
305 bFillZDCinfo(kFALSE),
306 bSkipNestedTrk(kFALSE),
307 bRemNegTrkRndm(kFALSE),
308 bApplyV0MCorr(kFALSE),
310 sAnalysisSet(
"DoGainEq"),
311 sCentEstimator(
"V0"),
321 fPileUpSlopeParm(3.43),
322 fPileUpConstParm(43),
323 fHist_Event_count(NULL),
324 fPileUpMultSelCount(NULL),
326 fTaskConfigParm(NULL),
336 fHV0AEventPlaneVsCent(NULL),
337 fHV0CEventPlaneVsCent(NULL),
338 fHTPCEventPlaneVsCent(NULL),
339 fHEnergyZNCvsCent(NULL),
340 fHEnergyZNAvsCent(NULL),
341 fHEnergyZPCvsCent(NULL),
342 fHEnergyZPAvsCent(NULL),
343 fHEnergyZNCvsCentRun(NULL),
344 fHEnergyZNAvsCentRun(NULL),
345 fHEnergyZPCvsCentRun(NULL),
346 fHEnergyZPAvsCentRun(NULL),
347 fHEnergyZPCvsZPA(NULL),
348 fHEnergyZNCvsZNA(NULL),
349 hUnderOverBinNUApos(NULL),
350 hUnderOverBinNUAneg(NULL),
351 fHCentBinTrkRecenter(NULL),
353 fV0AQ2xVsCentRun(NULL),
354 fV0AQ2yVsCentRun(NULL),
355 fV0CQ2xVsCentRun(NULL),
356 fV0CQ2yVsCentRun(NULL),
357 fV0AQ3xVsCentRun(NULL),
358 fV0AQ3yVsCentRun(NULL),
359 fV0CQ3xVsCentRun(NULL),
360 fV0CQ3yVsCentRun(NULL),
361 fTPCQ2xVsCentRun(NULL),
362 fTPCQ2yVsCentRun(NULL),
363 fTPCQ3xVsCentRun(NULL),
364 fTPCQ3yVsCentRun(NULL),
369 fAvgMultCentRun(NULL),
370 fAvgWgtMultCentRun(NULL),
371 fAvgPOIposCentRun(NULL),
372 fAvgPOInegCentRun(NULL),
373 fAvgPOIPPCentRun(NULL),
374 fAvgPOINNCentRun(NULL),
375 fAvgPOIOSCentRun(NULL),
376 fV0MultChVsRun(NULL),
377 fEventStatvsRun(NULL),
378 fEtaBinFinderForQA(NULL),
379 fVzBinFinderForNUA(NULL),
380 fHistVtxZvsRun(NULL),
381 fHistVtxXvsRun(NULL),
382 fHistVtxYvsRun(NULL),
383 fRejectRatioVsCR(NULL),
384 fCentDistvsRun(NULL),
386 fCentV0MvsVzRun(NULL),
387 fCent3pvsVzRun(NULL),
388 fTPCvsGlobalTrk(NULL),
389 fTPCuncutvsGlobal(NULL),
393 fTPCFEvsITSfb96(NULL),
394 fCentCL1vsVzRun(NULL),
398 for(
int i=0;i<5;i++){
402 for(
int i=0;i<90;i++){
404 for(
int j=0;j<5;j++){
409 for(
int i=0;i<10;i++){
414 for(
int i=0;i<2;i++){
415 for(
int j=0;j<3;j++){
422 for(
int i=0;i<2;i++){
423 for(
int j=0;j<3;j++){
430 for(
int i=0;i<2;i++){
435 for(
int i=0;i<3;i++){
441 for(
int i=0;i<2;i++){
442 for(
int j=0;j<6;j++){
465 for(
int i=0;i<10;i++){
469 for(
int i=0;i<2;i++){
474 for(
int i=0;i<2;i++){
479 for(
int i=0;i<4;i++){
503 for(
int i=0;i<2;i++){
509 for(
int i=0;i<2;i++){
531 for(
int i=0;i<10;i++) {
536 Int_t centFB[11] = {0,5,10,20,30,40,50,60,70,80,90};
537 for(
int i=0;i<10;i++) {
543 printf(
"\n\n!!***** Warning *****!!\n Enter correct Dimention !!\n\n"); exit(1);
547 printf(
"\n\n!!***** Warning *****!!\n FilterBit efficiency not found, use = 1.0 !!\n\n");
548 for(
int i=0;i<10;i++){
551 fFB_Efficiency_Pos[i] =
new TH3F(Form(
"eff_unbiased_Pos_%d",i),
"",1,-0.9,0.9,1,0,50,1,0,7);
553 fFB_Efficiency_Neg[i] =
new TH3F(Form(
"eff_unbiased_Neg_%d",i),
"",1,-0.9,0.9,1,0,50,1,0,7);
609 for(
int i=0;i<5;i++){
613 for(
int i=0;i<10;i++){
637 printf(
"\n ... ::UserExec = no AOD or Flow Event, \n.... EXIT ..... \n");
647 Bool_t kPileupEvent = kFALSE;
651 if(kPileupEvent)
return;
668 centrV0M = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"V0M");
669 centrCL1 = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL1");
670 centrCL0 = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL0");
671 centrTRK = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"TRK");
674 fMultSelection = (AliMultSelection*) InputEvent()->FindListObject(
"MultSelection");
676 printf(
"\n\n **WARNING** ::UserExec() AliMultSelection object not found.\n\n");
695 Int_t iCentSPD = centrCL1;
697 if(iCentSPD > 90)
return;
720 cIndex = abs(
EvtCent/10.0) + 1;
738 Int_t runindex = -111;
739 Int_t runNumber = aod->GetRunNumber();
765 Double_t fMagField = aod->GetMagneticField();
768 Int_t bSign = (fMagField > 0) ? 1 : -1;
778 const AliAODVZERO *fAODV0 = aod->GetVZEROData();
781 Double_t QyanCor = 0., QycnCor = 0.;
782 Double_t QxanCor = 0., QxcnCor = 0.;
793 QyanCor = (Qyan2 -
fQynmV0A->GetBinContent(iCentSPD+1))/
fQynsV0A->GetBinContent(iCentSPD+1);
794 QycnCor = (Qycn2 -
fQynmV0C->GetBinContent(iCentSPD+1))/
fQynsV0C->GetBinContent(iCentSPD+1);
800 QxanCor = (Qxan2 -
fQxnmV0A->GetBinContent(iCentSPD+1))/
fQxnsV0A->GetBinContent(iCentSPD+1);
801 QxcnCor = (Qxcn2 -
fQxnmV0C->GetBinContent(iCentSPD+1))/
fQxnsV0C->GetBinContent(iCentSPD+1);
808 Qxan2 = 0., Qyan2 = 0.;
809 Qxcn2 = 0., Qycn2 = 0.;
811 for(
int iV0 = 0; iV0 < 64; iV0++) {
813 fMultv0 = fAODV0->GetMultiplicity(iV0);
821 phiV0 = TMath::PiOver4()*(0.5 + iV0 % 8);
824 Qxcn2 += TMath::Cos(2*phiV0) * fMultv0;
825 Qycn2 += TMath::Sin(2*phiV0) * fMultv0;
826 Qxcn3 += TMath::Cos(3*phiV0) * fMultv0;
827 Qycn3 += TMath::Sin(3*phiV0) * fMultv0;
831 Qxan2 += TMath::Cos(2*phiV0) * fMultv0;
832 Qyan2 += TMath::Sin(2*phiV0) * fMultv0;
833 Qxan3 += TMath::Cos(3*phiV0) * fMultv0;
834 Qyan3 += TMath::Sin(3*phiV0) * fMultv0;
882 if(sumMa <= 0 || sumMc <= 0)
return;
887 AliAODVertex *pVertex = aod->GetPrimaryVertex();
896 if(VtxZ < 1.e-4 && VtxX < 1.e-4 && VtxY < 1.e-4)
906 Double_t energyZNC=0.,energyZNA=0.,energyZPC=0.,energyZPA=0.;
908 energyZNC = ((AliVAODHeader*)aod->GetHeader())->GetZDCN1Energy();
909 energyZNA = ((AliVAODHeader*)aod->GetHeader())->GetZDCN2Energy();
910 energyZPC = ((AliVAODHeader*)aod->GetHeader())->GetZDCP1Energy();
911 energyZPA = ((AliVAODHeader*)aod->GetHeader())->GetZDCP2Energy();
940 Int_t BadRuns[10] = {246871,246870,246867,246865,246864,246859,246858,246676,246675,246540};
944 for(
int ib=0;ib<iBadrun;ib++){
945 if(runNumber==BadRuns[ib]){
971 Double_t QxAutoPosQAEta[80] = {0.,};
972 Double_t QyAutoPosQAEta[80] = {0.,};
973 Double_t QxAutoNegQAEta[80] = {0.,};
974 Double_t QyAutoNegQAEta[80] = {0.,};
981 Double_t AvgDWCos2n=0.,AvgDWSin2n=0.;
1015 Double_t Psi2V0C = 1./psiN*TMath::ATan2(QycnCor,QxcnCor);
1016 if(Psi2V0C<0.) Psi2V0C += 2*pi/psiN;
1018 Double_t Psi2V0A = 1./psiN*TMath::ATan2(QyanCor,QxanCor);
1019 if(Psi2V0A<0.) Psi2V0A += 2*pi/psiN;
1056 for(
int i=0; i<iTracks; i++) {
1058 if(!pTrack1)
continue;
1059 dPhi1 = pTrack1->
Phi();
1060 dPt1 = pTrack1-> Pt();
1061 dEta1 = pTrack1->
Eta();
1062 dChrg1 = pTrack1->
Charge();
1113 if(
sFileNUA==
"OldJ") w1NUA = 1./w1NUA;
1125 if(w1NUA > 1e3 ) w1NUA = 1.0;
1154 if (ptw1>1e3) ptw1 = 1.0;
1160 if(VtxZ>0 && dEta1>=0){
1186 else if(VtxZ>0 && dEta1<0){
1212 else if(VtxZ<0 && dEta1>=0){
1239 else if(VtxZ<0 && dEta1<0){
1275 QxPos[0] += (ptw1*w1NUA*TMath::Cos(n*dPhi1) - AvgCos1n);
1276 QyPos[0] += (ptw1*w1NUA*TMath::Sin(n*dPhi1) - AvgSin1n);
1277 QxAutoPos[0] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Cos(2.*n*dPhi1) - AvgDWCos2n);
1278 QyAutoPos[0] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Sin(2.*n*dPhi1) - AvgDWSin2n);
1279 MPOIpos += w1NUA*ptw1;
1280 McorrPos += w1NUA*ptw1*w1NUA*ptw1;
1283 QxPosQAEta[iEtaQA] += (ptw1*w1NUA*TMath::Cos(n*dPhi1) - AvgCos1n);
1284 QyPosQAEta[iEtaQA] += (ptw1*w1NUA*TMath::Sin(n*dPhi1) - AvgSin1n);
1285 QxAutoPosQAEta[iEtaQA] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Cos(2.*n*dPhi1) - AvgDWCos2n);
1286 QyAutoPosQAEta[iEtaQA] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Sin(2.*n*dPhi1) - AvgDWSin2n);
1287 MPOIposQAEta[iEtaQA] += ptw1*w1NUA;
1291 QxNeg[0] += (ptw1*w1NUA*TMath::Cos(n*dPhi1) - AvgCos1n);
1292 QyNeg[0] += (ptw1*w1NUA*TMath::Sin(n*dPhi1) - AvgSin1n);
1293 QxAutoNeg[0] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Cos(2.*n*dPhi1) - AvgDWCos2n);
1294 QyAutoNeg[0] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Sin(2.*n*dPhi1) - AvgDWSin2n);
1295 MPOIneg += w1NUA*ptw1;
1296 McorrNeg += w1NUA*ptw1*w1NUA*ptw1;
1299 QxNegQAEta[iEtaQA] += (ptw1*w1NUA*TMath::Cos(n*dPhi1) - AvgCos1n);
1300 QyNegQAEta[iEtaQA] += (ptw1*w1NUA*TMath::Sin(n*dPhi1) - AvgSin1n);
1301 QxAutoNegQAEta[iEtaQA] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Cos(2.*n*dPhi1) - AvgDWCos2n);
1302 QyAutoNegQAEta[iEtaQA] += (ptw1*ptw1*w1NUA*w1NUA*TMath::Sin(2.*n*dPhi1) - AvgDWSin2n);
1303 MPOInegQAEta[iEtaQA] += ptw1*w1NUA;
1309 QxTPC[1] += ptw1*w1NUA*TMath::Cos(2*dPhi1);
1310 QyTPC[1] += ptw1*w1NUA*TMath::Sin(2*dPhi1);
1312 QxTPC[2] += ptw1*w1NUA*TMath::Cos(3*dPhi1);
1313 QyTPC[2] += ptw1*w1NUA*TMath::Sin(3*dPhi1);
1316 nRefMultWgt += ptw1*w1NUA;
1325 for(
int j=0; j<iTracks; j++) {
1330 if(!pTrack2)
continue;
1331 dPhi2 = pTrack2->
Phi();
1332 dPt2 = pTrack2-> Pt();
1333 dEta2 = pTrack2->
Eta();
1334 dChrg2 = pTrack2->
Charge();
1360 if (ptw2>1e3) ptw1 = 1.0;
1384 if(
sFileNUA==
"OldJ") w2NUA = 1./w2NUA;
1396 if(w2NUA > 1e3 ) w2NUA = 1.0;
1399 WgtEP = ptw1*ptw2*w1NUA*w2NUA;
1411 else if(dChrg1>0 && dChrg2>0){
1415 else if(dChrg1<0 && dChrg2<0){
1420 if(dChrg1==dChrg2) {
1429 deltaEta = dEta1 - dEta2;
1430 deltaPhi = dPhi1 - dPhi2;
1432 if(TMath::Abs(deltaEta) < fHBTCutValue * 2.5 * 3)
1438 Float_t dphistar1 =
GetDPhiStar(phi1rad, dPt1, dChrg1, phi2rad, dPt2, dChrg2, 0.8, bSign);
1439 Float_t dphistar2 =
GetDPhiStar(phi1rad, dPt1, dChrg1, phi2rad, dPt2, dChrg2, 2.5, bSign);
1441 const Float_t kLimit = fHBTCutValue * 3;
1446 if(TMath::Abs(dphistar1) < kLimit || TMath::Abs(dphistar2) < kLimit || dphistar1 * dphistar2 < 0 ) {
1448 for(
Double_t rad=0.8; rad<2.51; rad+=0.01) {
1449 Float_t dphistar =
GetDPhiStar(phi1rad, dPt1, dChrg1, phi2rad, dPt2, dChrg2, rad, bSign);
1450 Float_t dphistarabs = TMath::Abs(dphistar);
1452 if(dphistarabs < dphistarminabs) {
1453 dphistarmin = dphistar;
1454 dphistarminabs = dphistarabs;
1459 if(dphistarminabs < fHBTCutValue && TMath::Abs(deltaEta) < fHBTCutValue) {
1461 if(dChrg1==dChrg2) {
1491 fCent3pvsVzRun->Fill(VtxZ,runindex,TMath::Cos(n*dPhi1 + m*dPhi2 - p*Psi2V0A));
1511 else if(dChrg1>0 && dChrg2>0){
1532 else if(dChrg1<0 && dChrg2<0){
1570 Double_t Psi2TPC = 1./2*(TMath::ATan2(QTPCIm,QTPCRe));
1571 if(Psi2TPC < 0.) Psi2TPC += TMath::Pi();
1579 Double_t Psi3TPC = 1./3*(TMath::ATan2(QTPCIm3,QTPCRe3));
1580 if(Psi3TPC < 0.) Psi3TPC += 2./3*TMath::Pi();
1592 if(QTPCRe==0 && QTPCIm==0)
return;
1597 if(isBadRun)
return;
1603 Float_t fNegTracks = iTracks*0.5;
1633 Double_t uPRe=0.,uNRe=0.,uPIm=0.,uNIm=0.,uN2Re=0.,uN2Im=0.,uP2Re=0.,uP2Im=0.;
1638 uPM = MPOIpos; uNM = MPOIneg;
1640 uPRe = QxPos[0]; uNRe = QxNeg[0];
1641 uPIm = QyPos[0]; uNIm = QyNeg[0];
1643 uP2Re = QxAutoPos[0]; uP2Im = QyAutoPos[0];
1644 uN2Re = QxAutoNeg[0]; uN2Im = QyAutoNeg[0];
1646 Double_t TwoQpQnV = 0.,TwoQpQpV=0.,TwoQnQnV=0.;
1648 if(uPM > 1 && uNM > 1) {
1650 TwoQpQnV = ((uPRe*uNRe-uPIm*uNIm)*QxanCor + (uPRe*uNIm+uPIm*uNRe)*QyanCor) / (uPM*uNM) ;
1651 TwoQpQpV = ((uPRe*uPRe-uPIm*uPIm-uP2Re)*QxanCor + (2.*uPRe*uPIm-uP2Im)*QyanCor) / (uPM*(uPM-1)) ;
1652 TwoQnQnV = ((uNRe*uNRe-uNIm*uNIm-uN2Re)*QxanCor + (2.*uNRe*uNIm-uN2Im)*QyanCor) / (uNM*(uNM-1)) ;
1661 Double_t QnNonIsoRe = 0.,QnNonIsoIm=0.;
1668 QnNonIsoRe = (uPRe*QxanCor + uPIm*QyanCor)/uPM;
1669 QnNonIsoIm = (uPIm*QxanCor - uPRe*QyanCor)/uPM;
1673 QnNonIsoRe = (uPRe*uPRe-uPIm*uPIm-uP2Re)/(uPM*(uPM-1));
1674 QnNonIsoIm = (2.*uPRe*uPIm-uP2Im)/(uPM*(uPM-1));
1678 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1679 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1690 QnNonIsoRe = (uNRe*QxanCor + uNIm*QyanCor)/uNM;
1691 QnNonIsoIm = (uNIm*QxanCor - uNRe*QyanCor)/uNM;
1695 QnNonIsoRe = (uNRe*uNRe-uNIm*uNIm-uN2Re)/(uNM*(uNM-1));
1696 QnNonIsoIm = (2.*uNRe*uNIm-uN2Im)/(uNM*(uNM-1));
1700 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1701 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1708 else if(QAindex==1){
1713 QnNonIsoRe = (uPRe*QxanCor + uPIm*QyanCor)/uPM;
1714 QnNonIsoIm = (uPIm*QxanCor - uPRe*QyanCor)/uPM;
1718 QnNonIsoRe = (uPRe*uPRe-uPIm*uPIm-uP2Re)/(uPM*(uPM-1));
1719 QnNonIsoIm = (2.*uPRe*uPIm-uP2Im)/(uPM*(uPM-1));
1723 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1724 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1735 QnNonIsoRe = (uNRe*QxanCor + uNIm*QyanCor)/uNM;
1736 QnNonIsoIm = (uNIm*QxanCor - uNRe*QyanCor)/uNM;
1740 QnNonIsoRe = (uNRe*uNRe-uNIm*uNIm-uN2Re)/(uNM*(uNM-1));
1741 QnNonIsoIm = (2.*uNRe*uNIm-uN2Im)/(uNM*(uNM-1));
1745 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1746 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1803 TwoQpQnV = 0.; TwoQpQpV = 0.; TwoQnQnV = 0.;
1804 TwoQpQnV = ((uPRe*uNRe-uPIm*uNIm)*QxcnCor + (uPRe*uNIm+uPIm*uNRe)*QycnCor) / (uPM*uNM) ;
1805 TwoQpQpV = ((uPRe*uPRe-uPIm*uPIm-uP2Re)*QxcnCor + (2.*uPRe*uPIm-uP2Im)*QycnCor) / (uPM*(uPM-1)) ;
1806 TwoQnQnV = ((uNRe*uNRe-uNIm*uNIm-uN2Re)*QxcnCor + (2.*uNRe*uNIm-uN2Im)*QycnCor) / (uNM*(uNM-1)) ;
1820 QnNonIsoRe = (uPRe*QxcnCor + uPIm*QycnCor)/uPM;
1821 QnNonIsoIm = (uPIm*QxcnCor - uPRe*QycnCor)/uPM;
1825 QnNonIsoRe = (uPRe*uPRe-uPIm*uPIm-uP2Re)/(uPM*(uPM-1));
1826 QnNonIsoIm = (2.*uPRe*uPIm-uP2Im)/(uPM*(uPM-1));
1830 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1831 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1842 QnNonIsoRe = (uNRe*QxcnCor + uNIm*QycnCor)/uNM;
1843 QnNonIsoIm = (uNIm*QxcnCor - uNRe*QycnCor)/uNM;
1847 QnNonIsoRe = (uNRe*uNRe-uNIm*uNIm-uN2Re)/(uNM*(uNM-1));
1848 QnNonIsoIm = (2.*uNRe*uNIm-uN2Im)/(uNM*(uNM-1));
1852 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1853 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1860 else if(QAindex==1) {
1865 QnNonIsoRe = (uPRe*QxcnCor + uPIm*QycnCor)/uPM;
1866 QnNonIsoIm = (uPIm*QxcnCor - uPRe*QycnCor)/uPM;
1870 QnNonIsoRe = (uPRe*uPRe-uPIm*uPIm-uP2Re)/(uPM*(uPM-1));
1871 QnNonIsoIm = (2.*uPRe*uPIm-uP2Im)/(uPM*(uPM-1));
1875 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1876 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1887 QnNonIsoRe = (uNRe*QxcnCor + uNIm*QycnCor)/uNM;
1888 QnNonIsoIm = (uNIm*QxcnCor - uNRe*QycnCor)/uNM;
1892 QnNonIsoRe = (uNRe*uNRe-uNIm*uNIm-uN2Re)/(uNM*(uNM-1));
1893 QnNonIsoIm = (2.*uNRe*uNIm-uN2Im)/(uNM*(uNM-1));
1897 QnNonIsoRe = (uPRe*uNRe-uPIm*uNIm)/(uPM*uNM);
1898 QnNonIsoIm = (uPRe*uNIm+uPIm*uNRe)/(uPM*uNM);
1967 for(
int ie=0; ie<nBinsX; ie++){
1969 uPM = MPOIposQAEta[ie];
1970 uNM = MPOInegQAEta[ie];
1974 uPRe = QxPosQAEta[ie];
1975 uNRe = QxNegQAEta[ie];
1976 uPIm = QyPosQAEta[ie];
1977 uNIm = QyNegQAEta[ie];
1979 uP2Re = QxAutoPosQAEta[ie];
1980 uP2Im = QyAutoPosQAEta[ie];
1981 uN2Re = QxAutoNegQAEta[ie];
1982 uN2Im = QyAutoNegQAEta[ie];
1988 TwoQpQnV = 0.; TwoQpQpV = 0.; TwoQnQnV = 0.;
1989 TwoQpQnV = ((uPRe*uNRe-uPIm*uNIm)*QxanCor + (uPRe*uNIm+uPIm*uNRe)*QyanCor) / (uPM*uNM) ;
1990 TwoQpQpV = ((uPRe*uPRe-uPIm*uPIm-uP2Re)*QxanCor + (2.*uPRe*uPIm-uP2Im)*QyanCor) / (uPM*(uPM-1.)) ;
1991 TwoQnQnV = ((uNRe*uNRe-uNIm*uNIm-uN2Re)*QxanCor + (2.*uNRe*uNIm-uN2Im)*QyanCor) / (uNM*(uNM-1.)) ;
1998 TwoQpQnV = 0.; TwoQpQpV = 0.; TwoQnQnV = 0.;
1999 TwoQpQnV = ((uPRe*uNRe-uPIm*uNIm)*QxcnCor + (uPRe*uNIm+uPIm*uNRe)*QycnCor) / (uPM*uNM) ;
2000 TwoQpQpV = ((uPRe*uPRe-uPIm*uPIm-uP2Re)*QxcnCor + (2.*uPRe*uPIm-uP2Im)*QycnCor) / (uPM*(uPM-1.)) ;
2001 TwoQnQnV = ((uNRe*uNRe-uNIm*uNIm-uN2Re)*QxcnCor + (2.*uNRe*uNIm-uN2Im)*QycnCor) / (uNM*(uNM-1.)) ;
2013 if(MPOIpos>1 && MPOIneg>1){
2072 AliDebug(2,
"\n ... AliAnalysisTaskCMEV0::Terminate() is being called ... \n");
2089 for(
Int_t iV0 = 0; iV0 < 64; iV0++) {
2094 Double_t phiV0 = TMath::PiOver4()*(0.5 + iV0 % 8);
2095 Float_t multv0 = aodV0->GetMultiplicity(iV0);
2101 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(1);
2102 else if(iV0 >= 8 && iV0 < 16)
2103 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(9);
2104 else if(iV0 >= 16 && iV0 < 24)
2105 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(17);
2106 else if(iV0 >= 24 && iV0 < 32)
2107 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(25);
2110 cout<<
"Problem with multiplicity in V0C"<<endl;
2113 Qxcn += TMath::Cos(fHarmonic*phiV0) * multCorC;
2114 Qycn += TMath::Sin(fHarmonic*phiV0) * multCorC;
2116 sumMc = sumMc + multCorC;
2121 if(iV0 >= 32 && iV0 < 40)
2122 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(33);
2123 else if(iV0 >= 40 && iV0 < 48)
2124 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(41);
2125 else if(iV0 >= 48 && iV0 < 56)
2126 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(49);
2127 else if(iV0 >= 56 && iV0 < 64)
2128 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(57);
2131 cout<<
"Problem with multiplicity in V0A"<<endl;
2134 Qxan += TMath::Cos(fHarmonic*phiV0) * multCorA;
2135 Qyan += TMath::Sin(fHarmonic*phiV0) * multCorA;
2137 sumMa = sumMa + multCorA;
2149 for(
int i=1;i<=100;i++){
2150 for(
int j=1;j<=4;j++){
2175 for(
int i=0;i<5;i++){
2182 for(
int i=0;i<4;i++){
2188 else if(sfileNUA==
"NewPt"|| sfileNUA==
"NewpT"){
2190 for(
int i=0;i<4;i++){
2196 else if(sfileNUA==
"OldJ") {
2198 TGrid::Connect(
"alien://");
2201 fileNUApos = TFile::Open(
"alien:///alice/cern.ch/user/m/mhaque/calib_files/15oHI_FB768_PosCh_CenPhiEtaWeights_VtxRbR.root");
2205 fileNUAneg = TFile::Open(
"alien:///alice/cern.ch/user/m/mhaque/calib_files/15oHI_FB768_NegCh_CenPhiEtaWeights_VtxRbR.root");
2209 for(
int i=0;i<4;i++){
2214 for(
int i=0;i<4;i++){
2222 printf(
"\n\n ******** could not open NUA Histograms for run %d, Use Wgt = 1.0 *********\n\n",run);
2223 if(sfileNUA==
"New2018"){
2224 for(
int i=0;i<5;i++){
2225 fHCorrectNUApos[i] =
new TH3D(Form(
"fHCorrectNUApos_cent%d",i),
"",1,-10,10,1,0,6.284,1,-0.9,0.9);
2226 fHCorrectNUAneg[i] =
new TH3D(Form(
"fHCorrectNUAneg_cent%d",i),
"",1,-10,10,1,0,6.284,1,-0.9,0.9);
2232 else if(sfileNUA==
"OldJ"|| sfileNUA==
"NewR"){
2233 for(
int i=0;i<4;i++){
2234 fHCorrectNUApos[i] =
new TH3D(Form(
"fHCorrectNUApos_cent%d",i),
"",1,-10,10,1,0,6.284,1,-0.9,0.9);
2235 fHCorrectNUAneg[i] =
new TH3D(Form(
"fHCorrectNUAneg_cent%d",i),
"",1,-10,10,1,0,6.284,1,-0.9,0.9);
2241 else if(sfileNUA==
"NewPt"|| sfileNUA==
"NewpT"){
2242 for(
int i=0;i<4;i++){
2243 fHCorrectNUApos[i] =
new TH3D(Form(
"fHCorrectNUApos_cent%d",i),
"",1,0,10,1,0,6.284,1,-0.9,0.9);
2244 fHCorrectNUAneg[i] =
new TH3D(Form(
"fHCorrectNUAneg_cent%d",i),
"",1,0,10,1,0,6.284,1,-0.9,0.9);
2258 TGrid::Connect(
"alien://");
2263 foadb = TFile::Open(
"alien:///alice/cern.ch/user/a/adobrin/calibV0HIR.root");
2268 printf(
"OADB V0 calibration file cannot be opened\n");
2272 AliOADBContainer* cont = (AliOADBContainer*) foadb->Get(
"hMultV0BefCorPfpx");
2274 printf(
"OADB object hMultV0BefCorr is not available in the file\n");
2277 if(!(cont->GetObject(run))){
2278 printf(
"OADB object hMultV0BefCorPfpx is not available for run %i\n", run);
2283 AliOADBContainer* contQxnam = 0;
2284 if (fHarmonic == 2.)
2285 contQxnam = (AliOADBContainer*) foadb->Get(
"fqxa2m");
2287 contQxnam = (AliOADBContainer*) foadb->Get(
"fqxa3m");
2290 printf(
"OADB object fqxanm is not available in the file\n");
2293 if(!(contQxnam->GetObject(run))){
2294 printf(
"OADB object fqxanm is not available for run %i\n", run);
2299 AliOADBContainer* contQynam = 0;
2300 if (fHarmonic == 2.)
2301 contQynam = (AliOADBContainer*) foadb->Get(
"fqya2m");
2302 else if (fHarmonic == 3.)
2303 contQynam = (AliOADBContainer*) foadb->Get(
"fqya3m");
2304 else if (fHarmonic == 4.)
2305 contQynam = (AliOADBContainer*) foadb->Get(
"fqya4m");
2308 printf(
"OADB object fqyanm is not available in the file\n");
2311 if(!(contQynam->GetObject(run))){
2312 printf(
"OADB object fqyanm is not available for run %i\n", run);
2317 AliOADBContainer* contQxnas = 0;
2318 if (fHarmonic == 2.)
2319 contQxnas = (AliOADBContainer*) foadb->Get(
"fqxa2s");
2321 contQxnas = (AliOADBContainer*) foadb->Get(
"fqxa3s");
2324 printf(
"OADB object fqxans is not available in the file\n");
2327 if(!(contQxnas->GetObject(run))){
2328 printf(
"OADB object fqxans is not available for run %i\n", run);
2333 AliOADBContainer* contQynas = 0;
2334 if (fHarmonic == 2.)
2335 contQynas = (AliOADBContainer*) foadb->Get(
"fqya2s");
2336 else if (fHarmonic == 3.)
2337 contQynas = (AliOADBContainer*) foadb->Get(
"fqya3s");
2338 else if (fHarmonic == 4.)
2339 contQynas = (AliOADBContainer*) foadb->Get(
"fqya4s");
2342 printf(
"OADB object fqyans is not available in the file\n");
2345 if(!(contQynas->GetObject(run))){
2346 printf(
"OADB object fqyans is not available for run %i\n", run);
2353 AliOADBContainer* contQxncm = 0;
2354 if (fHarmonic == 2.)
2355 contQxncm = (AliOADBContainer*) foadb->Get(
"fqxc2m");
2357 contQxncm = (AliOADBContainer*) foadb->Get(
"fqxc3m");
2360 printf(
"OADB object fqxcnm is not available in the file\n");
2363 if(!(contQxncm->GetObject(run))){
2364 printf(
"OADB object fqxcnm is not available for run %i\n", run);
2371 AliOADBContainer* contQyncm = 0;
2372 if (fHarmonic == 2.)
2373 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc2m");
2374 else if (fHarmonic == 3.)
2375 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc3m");
2376 else if (fHarmonic == 4.)
2377 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc4m");
2380 printf(
"OADB object fqyc2m is not available in the file\n");
2383 if(!(contQyncm->GetObject(run))){
2384 printf(
"OADB object fqyc2m is not available for run %i\n", run);
2390 AliOADBContainer* contQxncs = 0;
2391 if (fHarmonic == 2.)
2392 contQxncs = (AliOADBContainer*) foadb->Get(
"fqxc2s");
2394 contQxncs = (AliOADBContainer*) foadb->Get(
"fqxc3s");
2397 printf(
"OADB object fqxc2s is not available in the file\n");
2400 if(!(contQxncs->GetObject(run))){
2401 printf(
"OADB object fqxc2s is not available for run %i\n", run);
2407 AliOADBContainer* contQyncs = 0;
2408 if (fHarmonic == 2.)
2409 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc2s");
2410 else if (fHarmonic == 3.)
2411 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc3s");
2412 else if (fHarmonic == 4.)
2413 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc4s");
2416 printf(
"OADB object fqycnm is not available in the file\n");
2419 if(!(contQyncs->GetObject(run))){
2420 printf(
"OADB object fqycns is not available for run %i\n", run);
2433 AliDebug(2,
"\n\n ::GetWDist => One of vertices is not valid\n\n");
2436 static TMatrixDSym vVb(3);
2438 double dx = v0->GetX()-v1->GetX();
2439 double dy = v0->GetY()-v1->GetY();
2440 double dz = v0->GetZ()-v1->GetZ();
2441 double cov0[6],cov1[6];
2442 v0->GetCovarianceMatrix(cov0);
2443 v1->GetCovarianceMatrix(cov1);
2444 vVb(0,0) = cov0[0]+cov1[0];
2445 vVb(1,1) = cov0[2]+cov1[2];
2446 vVb(2,2) = cov0[5]+cov1[5];
2447 vVb(1,0) = vVb(0,1) = cov0[1]+cov1[1];
2448 vVb(0,2) = vVb(1,2) = vVb(2,0) = vVb(2,1) = 0.;
2450 if (!vVb.IsValid()) {
2451 AliDebug(2,
"Singular Matrix\n");
2454 dist = vVb(0,0)*dx*dx + vVb(1,1)*dy*dy + vVb(2,2)*dz*dz
2455 + 2*vVb(0,1)*dx*dy + 2*vVb(0,2)*dx*dz + 2*vVb(1,2)*dy*dz;
2456 return dist>0 ? TMath::Sqrt(dist) : -1;
2461 const int kMinPlpContrib = 5;
2462 const double kMaxPlpChi2 = 5.0;
2463 const double kMinWDist = 15;
2465 const AliVVertex* vtPrm = 0;
2466 const AliVVertex* vtPlp = 0;
2470 if(!(nPlp=faod->GetNumberOfPileupVerticesTracks()))
2473 vtPrm = faod->GetPrimaryVertex();
2474 if(vtPrm == faod->GetPrimaryVertexSPD())
2479 for(
int ipl=0;ipl<nPlp;ipl++) {
2480 vtPlp = (
const AliVVertex*)faod->GetPileupVertexTracks(ipl);
2481 if (vtPlp->GetNContributors() < kMinPlpContrib)
continue;
2482 if (vtPlp->GetChi2perNDF() > kMaxPlpChi2)
continue;
2487 double wDst =
GetWDist(vtPrm,vtPlp);
2488 if (wDst<kMinWDist)
continue;
2520 for(
int i=1;i<=64;i++){
2545 centrV0M = ((AliVAODHeader*)faod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"V0M");
2546 centrCL1 = ((AliVAODHeader*)faod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL1");
2547 centrCL0 = ((AliVAODHeader*)faod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL0");
2548 centrTRK = ((AliVAODHeader*)faod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"TRK");
2551 fMultSelection = (AliMultSelection*) InputEvent()->FindListObject(
"MultSelection");
2553 printf(
"\n\n **WARNING** ::UserExec() AliMultSelection object not found.\n\n");
2570 Int_t isPileup = faod->IsPileupFromSPD(3);
2575 if(((AliAODHeader*)faod->GetHeader())->GetRefMultiplicityComb08() < 0) {
2579 if(faod->IsIncompleteDAQ()) {
2585 const AliAODVertex* vtTrc = faod->GetPrimaryVertex();
2586 const AliAODVertex* vtSPD = faod->GetPrimaryVertexSPD();
2588 if(vtTrc->GetNContributors() < 2 || vtSPD->GetNContributors()<1) {
2593 double covTrc[6], covSPD[6];
2594 vtTrc->GetCovarianceMatrix(covTrc);
2595 vtSPD->GetCovarianceMatrix(covSPD);
2597 double dz = vtTrc->GetZ() - vtSPD->GetZ();
2599 double errTot = TMath::Sqrt(covTrc[5]+covSPD[5]);
2600 double errTrc = TMath::Sqrt(covTrc[5]);
2601 double nsigTot = dz/errTot;
2602 double nsigTrc = dz/errTrc;
2604 if(TMath::Abs(dz)>0.2 || TMath::Abs(nsigTot)>10 || TMath::Abs(nsigTrc)>20) {
2639 Int_t isPileup = faod->IsPileupFromSPD(3);
2644 if(((AliAODHeader*)faod->GetHeader())->GetRefMultiplicityComb08() < 0) {
2648 if(faod->IsIncompleteDAQ()) {
2652 if(fabs(centrV0M-centrCL1)> 5.0) {
2658 const AliAODVertex* vtTrc = faod->GetPrimaryVertex();
2659 const AliAODVertex* vtSPD = faod->GetPrimaryVertexSPD();
2661 if(vtTrc->GetNContributors() < 2 || vtSPD->GetNContributors()<1) {
2666 double covTrc[6], covSPD[6];
2667 vtTrc->GetCovarianceMatrix(covTrc);
2668 vtSPD->GetCovarianceMatrix(covSPD);
2670 double dz = vtTrc->GetZ() - vtSPD->GetZ();
2672 double errTot = TMath::Sqrt(covTrc[5]+covSPD[5]);
2673 double errTrc = TMath::Sqrt(covTrc[5]);
2674 double nsigTot = dz/errTot;
2675 double nsigTrc = dz/errTrc;
2677 if(TMath::Abs(dz)>0.2 || TMath::Abs(nsigTot)>10 || TMath::Abs(nsigTrc)>20) {
2688 Int_t multITSfb96 = 0;
2689 Int_t multITSfb32 = 0;
2691 Int_t multTPCFE = 0;
2692 Int_t multGlobal = 0;
2693 Int_t multTPCuncut = 0;
2695 Int_t multEsd = ((AliAODHeader*)faod->GetHeader())->GetNumberOfESDTracks();
2697 const Int_t nTracks = faod->GetNumberOfTracks();
2699 for(
Int_t iTracks = 0; iTracks < nTracks; iTracks++) {
2701 AliAODTrack* track = (AliAODTrack*)faod->GetTrack(iTracks);
2702 if(!track)
continue;
2704 if(track->TestFilterBit(128))
2706 if(track->TestFilterBit(96))
2709 if(track->TestFilterBit(1)) multTPCuncut++;
2710 if(track->TestFilterBit(32)) multITSfb32++;
2713 if(track->Pt()<0.2 || track->Pt()>5.0 || TMath::Abs(track->Eta())>0.8 || track->GetTPCNcls()<70 || track->GetTPCsignal()<10.0)
2715 if(track->TestFilterBit(1) && track->Chi2perNDF()>0.2) multTPCFE++;
2716 if(!track->TestFilterBit(16) || track->Chi2perNDF()<0.1)
continue;
2719 Double_t bCov[3] = {-99., -99., -99.};
2721 AliAODTrack copy(*track);
2722 Double_t magField = faod->GetMagneticField();
2725 if(track->PropagateToDCA(faod->GetPrimaryVertex(), magField, 100., b, bCov) && TMath::Abs(b[0]) < 0.3 && TMath::Abs(b[1]) < 0.3) multGlobal++;
2786 if(BisPileup==kFALSE) {
2788 if(!
fMultSelection->GetThisEventIsNotPileupMV()) BisPileup=kTRUE;
2789 if(!
fMultSelection->GetThisEventIsNotPileupInMultBins()) BisPileup=kTRUE;
2790 if(!
fMultSelection->GetThisEventHasNoInconsistentVertices()) BisPileup=kTRUE;
2791 if(!
fMultSelection->GetThisEventPassesTrackletVsCluster()) BisPileup=kTRUE;
2792 if(!
fMultSelection->GetThisEventIsNotIncompleteDAQ()) BisPileup=kTRUE;
2793 if(!
fMultSelection->GetThisEventHasGoodVertex2016()) BisPileup=kTRUE;
2807 static const Double_t kPi = TMath::Pi();
2809 Float_t dphistar = phi1 - phi2 - charge1 * bSign * TMath::ASin(0.075 * radius / pt1) + charge2 * bSign * TMath::ASin(0.075 * radius / pt2);
2812 dphistar = -kPi * 2 - dphistar;
2815 dphistar = kPi * 2 - dphistar;
2838 printf(
"\n ... **WARNING** \n::UserExec() runnumber not listed.\n EXIT..\n");
2847 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};
2849 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};
2851 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};
2853 Int_t runArray_2015LI[13] = {244917, 244918, 244975, 244980, 244982, 244983, 245061, 245064, 245066, 245068, 246390, 246391, 246392};
2857 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};
2862 if(sPeriod==
"2010"){
2865 runNums[i] = runArray_2010[i];
2867 else if(sPeriod==
"2011"){
2870 runNums[i] = runArray_2011[i];
2872 else if(sPeriod==
"2015" || sPeriod==
"2015PbPb"){
2875 runNums[i] = runArray_2015[i];
2877 else if(sPeriod==
"2015pPb" || sPeriod==
"pPb"){
2880 runNums[i] = runArray_pPb_16q_pass1[i];
2882 else if(sPeriod==
"2015LI"){
2885 runNums[i] = runArray_2015LI[i];
2890 printf(
"\n\n ***** Run Number not defined for this data set. *******\n\n Please modify code..\n\n");
2913 fPileUpMultSelCount =
new TH1F(
"fPileUpMultSelCount",
"fPileUpMultSelCount", 10, 0., 10.);
2924 fPileUpCount =
new TH1F(
"fPileUpCount",
"fPileUpCount", 12, 0., 12.);
2927 fPileUpCount->GetXaxis()->SetBinLabel(3,
"RefMultiplicityComb08");
2928 fPileUpCount->GetXaxis()->SetBinLabel(4,
"IncompleteDAQ");
2929 fPileUpCount->GetXaxis()->SetBinLabel(5,
"abs(V0M-CL1)>5.0");
2931 fPileUpCount->GetXaxis()->SetBinLabel(7,
"inconsistentVtx");
2933 fPileUpCount->GetXaxis()->SetBinLabel(8,Form(
"multESDTPCDif>%d",puConst));
2934 fPileUpCount->GetXaxis()->SetBinLabel(9,Form(
"multGlobTPCDif>%d",puConst));
2935 fPileUpCount->GetXaxis()->SetBinLabel(10,
"extraPileUpMultSel");
2939 fTaskConfigParm =
new TH1F(
"fTaskConfigParm",
"Connfig Values", 20, 0., 20.);
2970 for(
int i=0;i<3;i++){
2972 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,
"");
2975 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,
"");
2978 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,
"");
2983 for(
int i=0;i<3;i++){
2985 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,
"");
2991 Double_t centRange[11] = {0,5,10,20,30,40,50,60,70,80,90};
3000 for(
int i=0;i<2;i++){
3001 for(
int j=0;j<3;j++){
3003 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,
"");
3006 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,
"");
3009 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,
"");
3014 for(
int j=0;j<3;j++){
3016 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,
"");
3025 for(
int i=0;i<2;i++){
3026 for(
int j=0;j<3;j++){
3028 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,
"");
3031 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,
"");
3034 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,
"");
3039 for(
int j=0;j<3;j++){
3041 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,
"");
3071 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};
3073 for(
int i=0;i<2;i++){
3074 for(
int j=0;j<6;j++){
3075 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0A_PN_Mag%d_Cent%d",i,j);
3076 sprintf(title,
"PN 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3081 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0A_PP_Mag%d_Cent%d",i,j);
3082 sprintf(title,
"PP 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3087 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0A_NN_Mag%d_Cent%d",i,j);
3088 sprintf(title,
"NN 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3093 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0C_PN_Mag%d_Cent%d",i,j);
3094 sprintf(title,
"PN 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3099 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0C_PP_Mag%d_Cent%d",i,j);
3100 sprintf(title,
"PP 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3105 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0C_NN_Mag%d_Cent%d",i,j);
3106 sprintf(title,
"NN 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3113 for(
int i=0;i<2;i++){
3114 for(
int j=0;j<6;j++){
3115 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0A_PN_Mag%d_Cent%d",i,j);
3116 sprintf(title,
"PN 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3121 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0A_PP_Mag%d_Cent%d",i,j);
3122 sprintf(title,
"PP 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3127 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0A_NN_Mag%d_Cent%d",i,j);
3128 sprintf(title,
"NN 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3133 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0C_PN_Mag%d_Cent%d",i,j);
3134 sprintf(title,
"PN 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3139 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0C_PP_Mag%d_Cent%d",i,j);
3140 sprintf(title,
"PP 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3145 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0C_NN_Mag%d_Cent%d",i,j);
3146 sprintf(title,
"NN 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3156 for(
int i=0;i<2;i++){
3157 for(
int j=0;j<6;j++){
3158 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0A_PN_Mag%d_Cent%d",i,j);
3159 sprintf(title,
"PN 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3164 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0A_PP_Mag%d_Cent%d",i,j);
3165 sprintf(title,
"PP 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3170 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0A_NN_Mag%d_Cent%d",i,j);
3171 sprintf(title,
"NN 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3176 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0C_PN_Mag%d_Cent%d",i,j);
3177 sprintf(title,
"PN 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3182 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0C_PP_Mag%d_Cent%d",i,j);
3183 sprintf(title,
"PP 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3188 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0C_NN_Mag%d_Cent%d",i,j);
3189 sprintf(title,
"NN 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3200 for(
int i=0;i<2;i++){
3201 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,
"");
3203 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,
"");
3206 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,
"");
3208 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,
"");
3212 for(
int i=0;i<2;i++){
3213 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,
"");
3215 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,
"");
3217 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,
"");
3235 fdPhiFemtoCut =
new TH1F(
"fdPhiFemtoCut",
" total comb ",5,0,5);
3242 fVzDistribuion =
new TH1F(
"fVzDistribuion",
"Vz (cm)",100,-10,10);
3258 fCentCL1vsVzRun =
new TH3F(
"fCentCL1vsVzRun",
"",80,-10,10,
fRunFlag,0,
fRunFlag,20,-10,10);
3263 fTPCvsGlobalTrk =
new TH2F(
"fTPCvsGlobalTrk",
"ESDTrk vs TPC(FB128)",500,0,5000,500,0,5000);
3269 fTPCvsITSfb96 =
new TH2F(
"fTPCvsITSfb96",
"FB96 vs TPC(FB128)",500,0,5000,500,0,5000);
3272 fTPCvsITSfb32 =
new TH2F(
"fTPCvsITSfb32",
"FB32 vs TPC(FB128)",500,0,5000,500,0,5000);
3278 fGlobalTracks =
new TH1F(
"fGlobalTracks",
"Global Multiplilcity",5000,0,5000);
3288 Double_t fCentBinQvect[16] = {0.,2.5,5,10,15,20,25,30,35,40,45,50,60,70,80,90};
3290 fHEnergyZNCvsCent =
new TH2F(
"fHEnergyZNCvsCent",
"ZNC Energy vs cent",15,fCentBinQvect,4000,0,200000);
3292 fHEnergyZNAvsCent =
new TH2F(
"fHEnergyZNAvsCent",
"ZNA Energy vs cent",15,fCentBinQvect,4000,0,200000);
3294 fHEnergyZPCvsCent =
new TH2F(
"fHEnergyZPCvsCent",
"ZPC Energy vs cent",15,fCentBinQvect,2000,0,50000);
3296 fHEnergyZPAvsCent =
new TH2F(
"fHEnergyZPAvsCent",
"ZPA Energy vs cent",15,fCentBinQvect,2000,0,50000);
3310 fHEnergyZNCvsZNA =
new TH2F(
"fHEnergyZNCvsZNA",
"ZNC Energy vs cent",500,50000,150000,500,50000,150000);
3318 Int_t magField[2] = {0,1};
3320 for(
int i=0;i<2;i++){
3321 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,
"");
3324 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,
"");
3327 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,
"");
3331 for(
int i=0;i<2;i++){
3332 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,
"");
3335 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,
"");
3338 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,
"");
3351 Int_t suffixEta[4] = {1,0,1,0};
3352 Int_t suffixVz[4] = {1,1,0,0};
3355 for(
int i=0;i<4;i++){
3405 for(
int i=0;i<4;i++){
3502 for(
int i=0;i<10;i++){
3503 sprintf(name,
"fHistChPosvsEtaPtRun_Cent%d",i);
3504 sprintf(title,
"Pos Ch, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3505 fHistChPosvsEtaPtRun[i] =
new TH3F(name,title,25,0.2,5.2,16,-0.8,0.8,
fRunFlag,0,
fRunFlag);
3507 sprintf(name,
"fHistChNegvsEtaPtRun_Cent%d",i);
3508 sprintf(title,
"Neg Ch, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
3509 fHistChNegvsEtaPtRun[i] =
new TH3F(name,title,25,0.2,5.2,16,-0.8,0.8,
fRunFlag,0,
fRunFlag);
3514 Int_t gCentForNUA[6] = {0,5,10,20,40,90};
3517 for(
int i=0;i<5;i++){
3519 sprintf(name,
"fHistEtaPhiVz_Pos_Cent%d_Run%d",i,
runNums[j]);
3520 sprintf(title,
"eta,phi,Vz Pos Cent%d-%d%%",gCentForNUA[i],gCentForNUA[i+1]);
3521 fHist3DEtaPhiVz_Pos_Run[i][j] =
new TH3F(name,title,10,-10,10,50,0,6.283185,16,-0.8,0.8);
3524 sprintf(name,
"fHistEtaPhiVz_Neg_Cent%d_Run%d",i,
runNums[j]);
3525 sprintf(title,
"eta,phi,Vz Pos Cent%d-%d%%",gCentForNUA[i],gCentForNUA[i+1]);
3526 fHist3DEtaPhiVz_Neg_Run[i][j] =
new TH3F(name,title,10,-10,10,50,0,6.283185,16,-0.8,0.8);
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)
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_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
for V0-Mult Gain Correction per channel.
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)
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]
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]
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
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
virtual void UserExec(Option_t *option)
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.