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"
60 fRejectPileUpTight(kTRUE),
61 bFillAvgTPCQn(kFALSE),
62 bFillEtaPhiNUA(kFALSE),
63 bApplyNUACorr(kFALSE),
64 bApplyZDCCorr(kFALSE),
65 bApplyNUAforEP(kFALSE),
67 sAnalysisSet("DoGainEq"),
74 fHist_Event_count(NULL),
75 fPileUpMultSelCount(NULL),
86 fHCos1nEtaPosVzPos(NULL),
87 fHCos1nEtaNegVzPos(NULL),
88 fHCos1nEtaPosVzNeg(NULL),
89 fHCos1nEtaNegVzNeg(NULL),
90 fHSin1nEtaPosVzPos(NULL),
91 fHSin1nEtaNegVzPos(NULL),
92 fHSin1nEtaPosVzNeg(NULL),
93 fHSin1nEtaNegVzNeg(NULL),
94 fHCos2nEtaPosVzPos(NULL),
95 fHCos2nEtaNegVzPos(NULL),
96 fHCos2nEtaPosVzNeg(NULL),
97 fHCos2nEtaNegVzNeg(NULL),
98 fHSin2nEtaPosVzPos(NULL),
99 fHSin2nEtaNegVzPos(NULL),
100 fHSin2nEtaPosVzNeg(NULL),
101 fHSin2nEtaNegVzNeg(NULL),
102 fHV0AEventPlaneVsCent(NULL),
103 fHV0CEventPlaneVsCent(NULL),
104 fHTPCEventPlaneVsCent(NULL),
105 fHCorrectNUApos(NULL),
106 fHCorrectNUAneg(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),
122 for(
int i=0;i<90;i++){
124 for(
int j=0;j<4;j++){
125 fHist3DEtaPhiVz_Pos_Run[j][i] = NULL;
126 fHist3DEtaPhiVz_Neg_Run[j][i] = NULL;
129 for(
int i=0;i<10;i++){
130 fFB_Efficiency_Cent[i] = NULL;
132 for(
int i=0;i<3;i++){
133 fHist_Corr3p_SP_Norm_PN[i] = NULL;
134 fHist_Corr3p_SP_Norm_PP[i] = NULL;
135 fHist_Corr3p_SP_Norm_NN[i] = NULL;
136 fHist_Reso2n_SP_Norm_Det[i] = NULL;
138 for(
int i=0;i<3;i++){
139 fHist_Corr3p_EP_Norm_PN[i] = NULL;
140 fHist_Corr3p_EP_Norm_PP[i] = NULL;
141 fHist_Corr3p_EP_Norm_NN[i] = NULL;
142 fHist_Reso2n_EP_Norm_Det[i] = NULL;
144 for(
int i=0;i<3;i++){
145 fHist_Corr3p_ZDN_SP_PN[i] = NULL;
146 fHist_Corr3p_ZDN_SP_PP[i] = NULL;
147 fHist_Corr3p_ZDN_SP_NN[i] = NULL;
148 fHist_Reso2n_ZDN_SP_Det[i] = NULL;
150 for(
int i=0;i<6;i++){
151 fHist_Corr3p_pTSum_EP_V0A_PN[i] = NULL;
152 fHist_Corr3p_pTSum_EP_V0A_PP[i] = NULL;
153 fHist_Corr3p_pTSum_EP_V0A_NN[i] = NULL;
154 fHist_Corr3p_pTSum_EP_V0C_PN[i] = NULL;
155 fHist_Corr3p_pTSum_EP_V0C_PP[i] = NULL;
156 fHist_Corr3p_pTSum_EP_V0C_NN[i] = NULL;
158 for(
int i=0;i<6;i++){
159 fHist_Corr3p_pTDiff_EP_V0A_PN[i] = NULL;
160 fHist_Corr3p_pTDiff_EP_V0A_PP[i] = NULL;
161 fHist_Corr3p_pTDiff_EP_V0A_NN[i] = NULL;
162 fHist_Corr3p_pTDiff_EP_V0C_PN[i] = NULL;
163 fHist_Corr3p_pTDiff_EP_V0C_PP[i] = NULL;
164 fHist_Corr3p_pTDiff_EP_V0C_NN[i] = NULL;
166 for(
int i=0;i<6;i++){
167 fHist_Corr3p_EtaDiff_EP_V0A_PN[i] = NULL;
168 fHist_Corr3p_EtaDiff_EP_V0A_PP[i] = NULL;
169 fHist_Corr3p_EtaDiff_EP_V0A_NN[i] = NULL;
170 fHist_Corr3p_EtaDiff_EP_V0C_PN[i] = NULL;
171 fHist_Corr3p_EtaDiff_EP_V0C_PP[i] = NULL;
172 fHist_Corr3p_EtaDiff_EP_V0C_NN[i] = NULL;
176 DefineInput(1, AliFlowEventSimple::Class());
178 DefineOutput(1,TList::Class());
179 DefineOutput(2,TList::Class());
184 fMultSelection(NULL),
191 fRejectPileUp(kTRUE),
192 fRejectPileUpTight(kTRUE),
193 bFillAvgTPCQn(kFALSE),
194 bFillEtaPhiNUA(kFALSE),
195 bApplyNUACorr(kFALSE),
196 bApplyZDCCorr(kFALSE),
197 bApplyNUAforEP(kFALSE),
199 sAnalysisSet(
"DoGainEq"),
200 sCentEstimator(
"V0"),
206 fHist_Event_count(NULL),
207 fPileUpMultSelCount(NULL),
218 fHCos1nEtaPosVzPos(NULL),
219 fHCos1nEtaNegVzPos(NULL),
220 fHCos1nEtaPosVzNeg(NULL),
221 fHCos1nEtaNegVzNeg(NULL),
222 fHSin1nEtaPosVzPos(NULL),
223 fHSin1nEtaNegVzPos(NULL),
224 fHSin1nEtaPosVzNeg(NULL),
225 fHSin1nEtaNegVzNeg(NULL),
226 fHCos2nEtaPosVzPos(NULL),
227 fHCos2nEtaNegVzPos(NULL),
228 fHCos2nEtaPosVzNeg(NULL),
229 fHCos2nEtaNegVzNeg(NULL),
230 fHSin2nEtaPosVzPos(NULL),
231 fHSin2nEtaNegVzPos(NULL),
232 fHSin2nEtaPosVzNeg(NULL),
233 fHSin2nEtaNegVzNeg(NULL),
234 fHV0AEventPlaneVsCent(NULL),
235 fHV0CEventPlaneVsCent(NULL),
236 fHTPCEventPlaneVsCent(NULL),
237 fHCorrectNUApos(NULL),
238 fHCorrectNUAneg(NULL),
239 fHEnergyZNCvsCent(NULL),
240 fHEnergyZNAvsCent(NULL),
241 fHEnergyZPCvsCent(NULL),
242 fHEnergyZPAvsCent(NULL),
243 fHEnergyZNCvsCentRun(NULL),
244 fHEnergyZNAvsCentRun(NULL),
245 fHEnergyZPCvsCentRun(NULL),
246 fHEnergyZPAvsCentRun(NULL),
247 fHEnergyZPCvsZPA(NULL),
248 fHEnergyZNCvsZNA(NULL),
249 hUnderOverBinNUApos(NULL),
250 hUnderOverBinNUAneg(NULL),
251 fHCentBinTrkRecenter(NULL),
254 for(
int i=0;i<90;i++){
256 for(
int j=0;j<4;j++){
261 for(
int i=0;i<10;i++){
264 for(
int i=0;i<3;i++){
270 for(
int i=0;i<3;i++){
276 for(
int i=0;i<3;i++){
282 for(
int i=0;i<6;i++){
290 for(
int i=0;i<6;i++){
298 for(
int i=0;i<6;i++){
323 for(
int i=0;i<10;i++) {
328 printf(
"\n\n!!***** Warning *****!!\n FilterBit efficiency not found, use = 1.0 !!\n\n");
329 for(
int i=0;i<10;i++){
381 printf(
"\n ... ::UserExec = no AOD or Flow Event, \n.... EXIT ..... \n");
393 if(kPileupEvent)
return;
407 centrV0M = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"V0M");
408 centrCL1 = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL1");
409 centrCL0 = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL0");
410 centrTRK = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"TRK");
413 fMultSelection = (AliMultSelection*) InputEvent()->FindListObject(
"MultSelection");
415 printf(
"\n\n **WARNING** ::UserExec() AliMultSelection object not found.\n\n");
435 Int_t iCentSPD = centrCL1;
437 if(iCentSPD >= 90)
return;
455 cIndex = abs(
EvtCent/10.0) + 1;
466 Int_t runindex = -111;
467 Int_t runNumber = aod->GetRunNumber();
483 const AliAODVZERO *fAODV0 = aod->GetVZEROData();
499 QxanCor = (Qxan -
fQxnmV0A->GetBinContent(iCentSPD+1))/
fQxnsV0A->GetBinContent(iCentSPD+1);
500 QxcnCor = (Qxcn -
fQxnmV0C->GetBinContent(iCentSPD+1))/
fQxnsV0C->GetBinContent(iCentSPD+1);
503 if(sumMa < 0 || sumMc < 0)
return;
507 AliAODVertex *pVertex = aod->GetPrimaryVertex();
513 Double_t energyZNC=0.,energyZNA=0.,energyZPC=0.,energyZPA=0.;
515 energyZNC = ((AliVAODHeader*)aod->GetHeader())->GetZDCN1Energy();
516 energyZNA = ((AliVAODHeader*)aod->GetHeader())->GetZDCN2Energy();
517 energyZPC = ((AliVAODHeader*)aod->GetHeader())->GetZDCP1Energy();
518 energyZPA = ((AliVAODHeader*)aod->GetHeader())->GetZDCP2Energy();
580 Double_t Psi2V0C = 0.5*TMath::ATan2(QycnCor,QxcnCor);
581 if(Psi2V0C<0.) Psi2V0C +=
pi;
583 Double_t Psi2V0A = 0.5*TMath::ATan2(QyanCor,QxanCor);
584 if(Psi2V0A<0.) Psi2V0A +=
pi;
600 for(
int i=0; i<iTracks; i++) {
602 if(!pTrack1)
continue;
603 dPhi1 = pTrack1->
Phi();
604 dPt1 = pTrack1-> Pt();
605 dEta1 = pTrack1->
Eta();
606 dChrg1 = pTrack1->
Charge();
654 QxPos[0] += ptw1*w1NUA*TMath::Cos(n*dPhi1);
655 QyPos[0] += ptw1*w1NUA*TMath::Sin(n*dPhi1);
656 QxAutoPos[0] += ptw1*ptw1*w1NUA*w1NUA*TMath::Cos(2.*n*dPhi1);
657 QyAutoPos[0] += ptw1*ptw1*w1NUA*w1NUA*TMath::Sin(2.*n*dPhi1);
658 MPOIpos += ptw1*w1NUA;
661 QxNeg[0] += ptw1*w1NUA*TMath::Cos(n*dPhi1);
662 QyNeg[0] += ptw1*w1NUA*TMath::Sin(n*dPhi1);
663 QxAutoNeg[0] += ptw1*ptw1*w1NUA*w1NUA*TMath::Cos(2.*n*dPhi1);
664 QyAutoNeg[0] += ptw1*ptw1*w1NUA*w1NUA*TMath::Sin(2.*n*dPhi1);
665 MPOIneg += ptw1*w1NUA;
668 QxTPC[0] += ptw1*w1NUA*TMath::Cos(n*dPhi1);
669 QyTPC[0] += ptw1*w1NUA*TMath::Sin(n*dPhi1);
670 QxTPC[1] += ptw1*w1NUA*TMath::Cos(2.*n*dPhi1);
671 QyTPC[1] += ptw1*w1NUA*TMath::Sin(2.*n*dPhi1);
674 if(VtxZ>0 && dEta1>=0){
680 else if(VtxZ>0 && dEta1<0){
686 else if(VtxZ<0 && dEta1>=0){
692 else if(VtxZ<0 && dEta1<0){
706 for(
int j=0; j<iTracks; j++) {
711 if(!pTrack2)
continue;
712 dPhi2 = pTrack2->
Phi();
713 dPt2 = pTrack2-> Pt();
714 dEta2 = pTrack2->
Eta();
715 dChrg2 = pTrack2->
Charge();
734 WgtEP = ptw1*ptw2*w1NUA*w2NUA;
749 else if(dChrg1>0 && dChrg2>0){
761 else if(dChrg1<0 && dChrg2<0){
783 Double_t Psi2TPC = 0.5*(TMath::ATan2(QTPCIm,QTPCRe));
784 if(Psi2TPC < 0.) Psi2TPC +=
pi;
800 Double_t uPRe=0.,uNRe=0.,uPIm=0.,uNIm=0.,uN2Re=0.,uN2Im=0.,uP2Re=0.,uP2Im=0.;
805 uPM = MPOIpos; uNM = MPOIneg;
807 uPRe = QxPos[0]; uNRe = QxNeg[0];
808 uPIm = QyPos[0]; uNIm = QyNeg[0];
810 uP2Re = QxAutoPos[0]; uP2Im = QyAutoPos[0];
811 uN2Re = QxAutoNeg[0]; uN2Im = QyAutoNeg[0];
813 Double_t TwoQpQnV = 0.,TwoQpQpV=0.,TwoQnQnV=0.;
815 if(uPM > 1 && uNM > 1){
817 TwoQpQnV = ((uPRe*uNRe-uPIm*uNIm)*QxanCor + (uPRe*uNIm+uPIm*uNRe)*QyanCor) / (uPM*uNM) ;
818 TwoQpQpV = ((uPRe*uPRe-uPIm*uPIm-uP2Re)*QxanCor + (2.*uPRe*uPIm-uP2Im)*QyanCor) / (uPM*(uPM-1.)) ;
819 TwoQnQnV = ((uNRe*uNRe-uNIm*uNIm-uN2Re)*QxanCor + (2.*uNRe*uNIm-uN2Im)*QyanCor) / (uNM*(uNM-1.)) ;
873 TwoQpQnV = 0.; TwoQpQpV = 0.; TwoQnQnV = 0.;
874 TwoQpQnV = ((uPRe*uNRe-uPIm*uNIm)*QxcnCor + (uPRe*uNIm+uPIm*uNRe)*QycnCor) / (uPM*uNM) ;
875 TwoQpQpV = ((uPRe*uPRe-uPIm*uPIm-uP2Re)*QxcnCor + (2.*uPRe*uPIm-uP2Im)*QycnCor) / (uPM*(uPM-1.)) ;
876 TwoQnQnV = ((uNRe*uNRe-uNIm*uNIm-uN2Re)*QxcnCor + (2.*uNRe*uNIm-uN2Im)*QycnCor) / (uNM*(uNM-1.)) ;
1004 AliDebug(2,
"\n ... AliAnalysisTaskCMEV0::Terminate() is being called ... \n");
1021 for(
Int_t iV0 = 0; iV0 < 64; iV0++) {
1026 Double_t phiV0 = TMath::PiOver4()*(0.5 + iV0 % 8);
1027 Float_t multv0 = aodV0->GetMultiplicity(iV0);
1033 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(1);
1034 else if(iV0 >= 8 && iV0 < 16)
1035 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(9);
1036 else if(iV0 >= 16 && iV0 < 24)
1037 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(17);
1038 else if(iV0 >= 24 && iV0 < 32)
1039 multCorC = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(25);
1042 cout<<
"Problem with multiplicity in V0C"<<endl;
1045 Qxcn += TMath::Cos(
fHarmonic*phiV0) * multCorC;
1046 Qycn += TMath::Sin(
fHarmonic*phiV0) * multCorC;
1048 sumMc = sumMc + multCorC;
1053 if(iV0 >= 32 && iV0 < 40)
1054 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(33);
1055 else if(iV0 >= 40 && iV0 < 48)
1056 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(41);
1057 else if(iV0 >= 48 && iV0 < 56)
1058 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(49);
1059 else if(iV0 >= 56 && iV0 < 64)
1060 multCorA = multv0/
fMultV0->GetBinContent(iV0+1)*
fMultV0->GetBinContent(57);
1063 cout<<
"Problem with multiplicity in V0A"<<endl;
1066 Qxan += TMath::Cos(
fHarmonic*phiV0) * multCorA;
1067 Qyan += TMath::Sin(
fHarmonic*phiV0) * multCorA;
1069 sumMa = sumMa + multCorA;
1081 printf(
"\n\n ********** ZDC Wgt Histograms NotFound ***************\n\n");
1100 if(cent<5.0){ centBin = 0;}
1101 else if(cent>=5.0 && cent<10.0){centBin = 1;}
1102 else if(cent>=10.0 && cent<20.0){centBin = 2;}
1103 else if(cent>=20.0) {centBin = 3;}
1111 printf(
"\n\n ********** NUA Correction File/mList Not Found EXIT..!! ***************\n\n");
1158 printf(
"\n\n ******** could not open NUA Histograms for run %d *********\n\n",run);
1168 TGrid::Connect(
"alien://");
1173 foadb = TFile::Open(
"alien:///alice/cern.ch/user/a/adobrin/calibV0HIR.root");
1178 printf(
"OADB V0 calibration file cannot be opened\n");
1182 AliOADBContainer* cont = (AliOADBContainer*) foadb->Get(
"hMultV0BefCorPfpx");
1184 printf(
"OADB object hMultV0BefCorr is not available in the file\n");
1187 if(!(cont->GetObject(run))){
1188 printf(
"OADB object hMultV0BefCorPfpx is not available for run %i\n", run);
1193 AliOADBContainer* contQxnam = 0;
1195 contQxnam = (AliOADBContainer*) foadb->Get(
"fqxa2m");
1197 contQxnam = (AliOADBContainer*) foadb->Get(
"fqxa3m");
1200 printf(
"OADB object fqxanm is not available in the file\n");
1203 if(!(contQxnam->GetObject(run))){
1204 printf(
"OADB object fqxanm is not available for run %i\n", run);
1209 AliOADBContainer* contQynam = 0;
1211 contQynam = (AliOADBContainer*) foadb->Get(
"fqya2m");
1213 contQynam = (AliOADBContainer*) foadb->Get(
"fqya3m");
1215 contQynam = (AliOADBContainer*) foadb->Get(
"fqya4m");
1218 printf(
"OADB object fqyanm is not available in the file\n");
1221 if(!(contQynam->GetObject(run))){
1222 printf(
"OADB object fqyanm is not available for run %i\n", run);
1227 AliOADBContainer* contQxnas = 0;
1229 contQxnas = (AliOADBContainer*) foadb->Get(
"fqxa2s");
1231 contQxnas = (AliOADBContainer*) foadb->Get(
"fqxa3s");
1234 printf(
"OADB object fqxans is not available in the file\n");
1237 if(!(contQxnas->GetObject(run))){
1238 printf(
"OADB object fqxans is not available for run %i\n", run);
1243 AliOADBContainer* contQynas = 0;
1245 contQynas = (AliOADBContainer*) foadb->Get(
"fqya2s");
1247 contQynas = (AliOADBContainer*) foadb->Get(
"fqya3s");
1249 contQynas = (AliOADBContainer*) foadb->Get(
"fqya4s");
1252 printf(
"OADB object fqyans is not available in the file\n");
1255 if(!(contQynas->GetObject(run))){
1256 printf(
"OADB object fqyans is not available for run %i\n", run);
1263 AliOADBContainer* contQxncm = 0;
1265 contQxncm = (AliOADBContainer*) foadb->Get(
"fqxc2m");
1267 contQxncm = (AliOADBContainer*) foadb->Get(
"fqxc3m");
1270 printf(
"OADB object fqxcnm is not available in the file\n");
1273 if(!(contQxncm->GetObject(run))){
1274 printf(
"OADB object fqxcnm is not available for run %i\n", run);
1281 AliOADBContainer* contQyncm = 0;
1283 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc2m");
1285 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc3m");
1287 contQyncm = (AliOADBContainer*) foadb->Get(
"fqyc4m");
1290 printf(
"OADB object fqyc2m is not available in the file\n");
1293 if(!(contQyncm->GetObject(run))){
1294 printf(
"OADB object fqyc2m is not available for run %i\n", run);
1300 AliOADBContainer* contQxncs = 0;
1302 contQxncs = (AliOADBContainer*) foadb->Get(
"fqxc2s");
1304 contQxncs = (AliOADBContainer*) foadb->Get(
"fqxc3s");
1307 printf(
"OADB object fqxc2s is not available in the file\n");
1310 if(!(contQxncs->GetObject(run))){
1311 printf(
"OADB object fqxc2s is not available for run %i\n", run);
1317 AliOADBContainer* contQyncs = 0;
1319 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc2s");
1321 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc3s");
1323 contQyncs = (AliOADBContainer*) foadb->Get(
"fqyc4s");
1326 printf(
"OADB object fqycnm is not available in the file\n");
1329 if(!(contQyncs->GetObject(run))){
1330 printf(
"OADB object fqycns is not available for run %i\n", run);
1343 AliDebug(2,
"\n\n ::GetWDist => One of vertices is not valid\n\n");
1346 static TMatrixDSym vVb(3);
1348 double dx = v0->GetX()-v1->GetX();
1349 double dy = v0->GetY()-v1->GetY();
1350 double dz = v0->GetZ()-v1->GetZ();
1351 double cov0[6],cov1[6];
1352 v0->GetCovarianceMatrix(cov0);
1353 v1->GetCovarianceMatrix(cov1);
1354 vVb(0,0) = cov0[0]+cov1[0];
1355 vVb(1,1) = cov0[2]+cov1[2];
1356 vVb(2,2) = cov0[5]+cov1[5];
1357 vVb(1,0) = vVb(0,1) = cov0[1]+cov1[1];
1358 vVb(0,2) = vVb(1,2) = vVb(2,0) = vVb(2,1) = 0.;
1360 if (!vVb.IsValid()) {
1361 AliDebug(2,
"Singular Matrix\n");
1364 dist = vVb(0,0)*dx*dx + vVb(1,1)*dy*dy + vVb(2,2)*dz*dz
1365 + 2*vVb(0,1)*dx*dy + 2*vVb(0,2)*dx*dz + 2*vVb(1,2)*dy*dz;
1366 return dist>0 ? TMath::Sqrt(dist) : -1;
1371 const int kMinPlpContrib = 5;
1372 const double kMaxPlpChi2 = 5.0;
1373 const double kMinWDist = 15;
1375 const AliVVertex* vtPrm = 0;
1376 const AliVVertex* vtPlp = 0;
1380 if(!(nPlp=faod->GetNumberOfPileupVerticesTracks()))
1383 vtPrm = faod->GetPrimaryVertex();
1384 if(vtPrm == faod->GetPrimaryVertexSPD())
1389 for(
int ipl=0;ipl<nPlp;ipl++) {
1390 vtPlp = (
const AliVVertex*)faod->GetPileupVertexTracks(ipl);
1391 if (vtPlp->GetNContributors() < kMinPlpContrib)
continue;
1392 if (vtPlp->GetChi2perNDF() > kMaxPlpChi2)
continue;
1397 double wDst =
GetWDist(vtPrm,vtPlp);
1398 if (wDst<kMinWDist)
continue;
1420 centrV0M = ((AliVAODHeader*)faod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"V0M");
1421 centrCL1 = ((AliVAODHeader*)faod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL1");
1422 centrCL0 = ((AliVAODHeader*)faod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL0");
1423 centrTRK = ((AliVAODHeader*)faod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"TRK");
1426 fMultSelection = (AliMultSelection*) InputEvent()->FindListObject(
"MultSelection");
1428 printf(
"\n\n **WARNING** ::UserExec() AliMultSelection object not found.\n\n");
1445 Int_t isPileup = faod->IsPileupFromSPD(3);
1450 if(((AliAODHeader*)faod->GetHeader())->GetRefMultiplicityComb08() < 0) {
1454 if(faod->IsIncompleteDAQ()) {
1460 const AliAODVertex* vtTrc = faod->GetPrimaryVertex();
1461 const AliAODVertex* vtSPD = faod->GetPrimaryVertexSPD();
1463 if(vtTrc->GetNContributors() < 2 || vtSPD->GetNContributors()<1) {
1468 double covTrc[6], covSPD[6];
1469 vtTrc->GetCovarianceMatrix(covTrc);
1470 vtSPD->GetCovarianceMatrix(covSPD);
1472 double dz = vtTrc->GetZ() - vtSPD->GetZ();
1474 double errTot = TMath::Sqrt(covTrc[5]+covSPD[5]);
1475 double errTrc = TMath::Sqrt(covTrc[5]);
1476 double nsigTot = dz/errTot;
1477 double nsigTrc = dz/errTrc;
1479 if(TMath::Abs(dz)>0.2 || TMath::Abs(nsigTot)>10 || TMath::Abs(nsigTrc)>20) {
1514 Int_t isPileup = faod->IsPileupFromSPD(3);
1519 if(((AliAODHeader*)faod->GetHeader())->GetRefMultiplicityComb08() < 0) {
1523 if(faod->IsIncompleteDAQ()) {
1527 if(fabs(centrV0M-centrCL1)>7.5) {
1533 const AliAODVertex* vtTrc = faod->GetPrimaryVertex();
1534 const AliAODVertex* vtSPD = faod->GetPrimaryVertexSPD();
1536 if(vtTrc->GetNContributors() < 2 || vtSPD->GetNContributors()<1) {
1541 double covTrc[6], covSPD[6];
1542 vtTrc->GetCovarianceMatrix(covTrc);
1543 vtSPD->GetCovarianceMatrix(covSPD);
1545 double dz = vtTrc->GetZ() - vtSPD->GetZ();
1547 double errTot = TMath::Sqrt(covTrc[5]+covSPD[5]);
1548 double errTrc = TMath::Sqrt(covTrc[5]);
1549 double nsigTot = dz/errTot;
1550 double nsigTrc = dz/errTrc;
1552 if(TMath::Abs(dz)>0.2 || TMath::Abs(nsigTot)>10 || TMath::Abs(nsigTrc)>20) {
1558 const Int_t nTracks = faod->GetNumberOfTracks();
1559 Int_t multEsd = ((AliAODHeader*)faod->GetHeader())->GetNumberOfESDTracks();
1566 for(
Int_t it = 0; it < nTracks; it++) {
1567 AliAODTrack* aodTrk = (AliAODTrack*)faod->GetTrack(it);
1579 if(aodTrk->TestFilterBit(128))
1585 Double_t multESDTPCDif = multEsdn - multTPCn*3.38;
1591 if(multESDTPCDif > 15000.){
1596 if(multESDTPCDif > 700.) {
1600 if(BisPileup==kFALSE) {
1602 if(!
fMultSelection->GetThisEventIsNotPileupMV()) BisPileup=kTRUE;
1603 if(!
fMultSelection->GetThisEventIsNotPileupInMultBins()) BisPileup=kTRUE;
1604 if(!
fMultSelection->GetThisEventHasNoInconsistentVertices()) BisPileup=kTRUE;
1605 if(!
fMultSelection->GetThisEventPassesTrackletVsCluster()) BisPileup=kTRUE;
1606 if(!
fMultSelection->GetThisEventIsNotIncompleteDAQ()) BisPileup=kTRUE;
1607 if(!
fMultSelection->GetThisEventHasGoodVertex2016()) BisPileup=kTRUE;
1632 printf(
"\n ... **WARNING** \n::UserExec() runnumber not listed.\n EXIT..\n");
1641 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};
1643 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};
1645 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};
1647 if(sPeriod==
"2010"){
1650 runNums[i] = runArray_2010[i];
1652 else if(sPeriod==
"2011"){
1655 runNums[i] = runArray_2011[i];
1657 else if(sPeriod==
"2015"){
1660 runNums[i] = runArray_2015[i];
1663 printf(
"\n\n ***** Run Number not defined for this data set. *******\n\n Please modify code..\n\n");
1684 fPileUpCount =
new TH1F(
"fPileUpCount",
"fPileUpCount", 12, 0., 12.);
1687 fPileUpCount->GetXaxis()->SetBinLabel(3,
"RefMultiplicityComb08");
1688 fPileUpCount->GetXaxis()->SetBinLabel(4,
"IncompleteDAQ");
1689 fPileUpCount->GetXaxis()->SetBinLabel(5,
"abs(V0M-CL1)>7.5");
1691 fPileUpCount->GetXaxis()->SetBinLabel(7,
"inconsistentVtx");
1692 fPileUpCount->GetXaxis()->SetBinLabel(8,
"multESDTPCDif=15000");
1693 fPileUpCount->GetXaxis()->SetBinLabel(9,
"multESDTPCDif=700");
1694 fPileUpCount->GetXaxis()->SetBinLabel(10,
"extraPileUpMultSel");
1697 fPileUpMultSelCount =
new TH1F(
"fPileUpMultSelCount",
"fPileUpMultSelCount", 10, 0., 10.);
1713 for(
int i=0;i<3;i++){
1715 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,
"");
1718 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,
"");
1721 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,
"");
1726 for(
int i=0;i<3;i++){
1728 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,
"");
1734 Double_t centRange[11] = {0,5,10,20,30,40,50,60,70,80,90};
1737 for(
int i=0;i<3;i++){
1739 fHist_Corr3p_SP_Norm_PN[i] =
new TProfile(Form(
"fHist_Corr3p_SP_Norm_PosNeg_Det%d",i+1),
"opposit charge correlator",10,centRange,
"");
1742 fHist_Corr3p_SP_Norm_PP[i] =
new TProfile(Form(
"fHist_Corr3p_SP_Norm_PosPos_Det%d",i+1),
"pos-pos charge correlator",10,centRange,
"");
1745 fHist_Corr3p_SP_Norm_NN[i] =
new TProfile(Form(
"fHist_Corr3p_SP_Norm_NegNeg_Det%d",i+1),
"neg-neg charge correlator",10,centRange,
"");
1750 for(
int i=0;i<3;i++){
1752 fHist_Reso2n_SP_Norm_Det[i] =
new TProfile(Form(
"fHist_Reso2n_SP_Norm_DetComb%d",i+1),
"Event plane Resolution",10,centRange,
"");
1758 for(
int i=0;i<3;i++){
1760 fHist_Corr3p_EP_Norm_PN[i] =
new TProfile(Form(
"fHist_Corr3p_EP_Norm_PosNeg_Det%d",i+1),
"opposit charge correlator",10,centRange,
"");
1763 fHist_Corr3p_EP_Norm_PP[i] =
new TProfile(Form(
"fHist_Corr3p_EP_Norm_PosPos_Det%d",i+1),
"pos-pos charge correlator",10,centRange,
"");
1766 fHist_Corr3p_EP_Norm_NN[i] =
new TProfile(Form(
"fHist_Corr3p_EP_Norm_NegNeg_Det%d",i+1),
"neg-neg charge correlator",10,centRange,
"");
1771 for(
int i=0;i<3;i++){
1773 fHist_Reso2n_EP_Norm_Det[i] =
new TProfile(Form(
"fHist_Reso2n_EP_Norm_DetComb%d",i+1),
"Event plane Resolution",10,centRange,
"");
1788 TH1::SetDefaultSumw2();
1793 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};
1795 for(
int i=0;i<6;i++){
1796 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0A_PN_Cent%d",i);
1797 sprintf(title,
"PN 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1801 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0A_PP_Cent%d",i);
1802 sprintf(title,
"PP 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1806 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0A_NN_Cent%d",i);
1807 sprintf(title,
"NN 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1811 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0C_PN_Cent%d",i);
1812 sprintf(title,
"PN 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1816 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0C_PP_Cent%d",i);
1817 sprintf(title,
"PP 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1821 sprintf(name,
"fHist_Corr3p_pTSum_EP_V0C_NN_Cent%d",i);
1822 sprintf(title,
"NN 3p vs (pT1+pT2)/2, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1828 for(
int i=0;i<6;i++){
1829 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0A_PN_Cent%d",i);
1830 sprintf(title,
"PN 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1834 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0A_PP_Cent%d",i);
1835 sprintf(title,
"PP 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1839 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0A_NN_Cent%d",i);
1840 sprintf(title,
"NN 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1844 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0C_PN_Cent%d",i);
1845 sprintf(title,
"PN 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1849 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0C_PP_Cent%d",i);
1850 sprintf(title,
"PP 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1854 sprintf(name,
"fHist_Corr3p_pTDiff_EP_V0C_NN_Cent%d",i);
1855 sprintf(title,
"NN 3p vs |pT1-pT2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1861 Double_t EtaRange[9] = {0.0,0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6};
1863 for(
int i=0;i<6;i++){
1864 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0A_PN_Cent%d",i);
1865 sprintf(title,
"PN 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1869 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0A_PP_Cent%d",i);
1870 sprintf(title,
"PP 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1874 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0A_NN_Cent%d",i);
1875 sprintf(title,
"NN 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1879 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0C_PN_Cent%d",i);
1880 sprintf(title,
"PN 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1884 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0C_PP_Cent%d",i);
1885 sprintf(title,
"PP 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1889 sprintf(name,
"fHist_Corr3p_EtaDiff_EP_V0C_NN_Cent%d",i);
1890 sprintf(title,
"NN 3p vs |Eta1-Eta2|, Cent %2.0f-%2.0f",centRange[i],centRange[i+1]);
1908 Double_t fCentBinQvect[16] = {0.,2.5,5,10,15,20,25,30,35,40,45,50,60,70,80,90};
1910 fHEnergyZNCvsCent =
new TH2F(
"fHEnergyZNCvsCent",
"ZNC Energy vs cent",15,fCentBinQvect,4000,0,200000);
1912 fHEnergyZNAvsCent =
new TH2F(
"fHEnergyZNAvsCent",
"ZNA Energy vs cent",15,fCentBinQvect,4000,0,200000);
1914 fHEnergyZPCvsCent =
new TH2F(
"fHEnergyZPCvsCent",
"ZPC Energy vs cent",15,fCentBinQvect,2000,0,50000);
1916 fHEnergyZPAvsCent =
new TH2F(
"fHEnergyZPAvsCent",
"ZPA Energy vs cent",15,fCentBinQvect,2000,0,50000);
1930 fHEnergyZNCvsZNA =
new TH2F(
"fHEnergyZNCvsZNA",
"ZNC Energy vs cent",500,50000,150000,500,50000,150000);
1971 Int_t gCentForNUA[5] = {0,5,10,20,90};
1974 for(
int i=0;i<4;i++){
1976 sprintf(name,
"fHistEtaPhiVz_Pos_Cent%d_Run%d",i,
runNums[j]);
1977 sprintf(title,
"eta,phi,Vz Pos Cent%d-%d%%",gCentForNUA[i],gCentForNUA[i+1]);
1978 fHist3DEtaPhiVz_Pos_Run[i][j] =
new TH3F(name,title,10,-10,10,40,0,6.2832,16,-0.8,0.8);
1981 sprintf(name,
"fHistEtaPhiVz_Neg_Cent%d_Run%d",i,
runNums[j]);
1982 sprintf(title,
"eta,phi,Vz Pos Cent%d-%d%%",gCentForNUA[i],gCentForNUA[i+1]);
1983 fHist3DEtaPhiVz_Neg_Run[i][j] =
new TH3F(name,title,10,-10,10,40,0,6.2832,16,-0.8,0.8);
TProfile2D * fHSin2nEtaPosVzNeg
virtual void Terminate(Option_t *)
Bool_t CheckEventIsPileUp(AliAODEvent *faod)
TProfile2D * fHEnergyZNCvsCentRun
TProfile2D * fHist_Corr3p_ZDN_SP_NN[3]
TH2F * fHTPCEventPlaneVsCent
TProfile2D * fHCos1nEtaPosVzPos
sigma Qy2 V0C
TProfile * fHist_Corr3p_EP_Norm_PP[3]
TProfile2D * fHist_Corr3p_ZDN_SP_PP[3]
Norm = 10 centrality bins along X.
Float_t fHarmonic
Event centrality.
TProfile * fHist_Corr3p_pTDiff_EP_V0A_NN[6]
TProfile2D * fHEnergyZPCvsCentRun
TH1D * fQynsV0C
sigma Qx2 V0C
Int_t fOldRunNum
number of total run
Bool_t PileUpMultiVertex(const AliAODEvent *faod)
TProfile * fHist_Corr3p_pTDiff_EP_V0C_PP[6]
TProfile * fHist_Corr3p_EtaDiff_EP_V0A_NN[6]
TH1D * fQxnmV0A
profile from V0 multiplicity
TProfile * fHist_Corr3p_SP_Norm_NN[3]
TProfile * fHist_Corr3p_pTSum_EP_V0C_NN[6]
AliFlowTrackSimple * GetTrack(Int_t i)
TList * fListHistos
Event selection.
TProfile * fHist_Corr3p_SP_Norm_PP[3]
Norm = 10 centrality bins along X.
TProfile * fHist_Corr3p_pTDiff_EP_V0C_PN[6]
virtual ~AliAnalysisTaskCMEV0()
AliAnalysisUtils * fAnalysisUtil
MultSelection (RUN2 centrality estimator)
TProfile2D * fHCos2nEtaNegVzPos
TH2F * fHV0CEventPlaneVsCent
TList * fListFBHijing
collection of Calib Histos
Int_t GetCurrentRunIndex(Int_t run)
TProfile2D * fHEnergyZPAvsCentRun
TProfile * fHist_Corr3p_pTDiff_EP_V0C_NN[6]
TList * fListCalibs
collection of output
TProfile2D * fHSin2nEtaNegVzNeg
TProfile2D * fHCos2nEtaPosVzNeg
TProfile2D * fHSin1nEtaPosVzPos
TProfile * fHist_Corr3p_SP_Norm_PN[3]
TProfile2D * fHSin1nEtaPosVzNeg
TProfile2D * fHCos1nEtaNegVzPos
TProfile2D * fHist_Corr3p_ZDN_SP_PN[3]
TProfile * fHist_Corr3p_pTSum_EP_V0C_PN[6]
TProfile * fHist_Corr3p_EtaDiff_EP_V0A_PP[6]
TProfile * fHist_Corr3p_EtaDiff_EP_V0C_NN[6]
TH3F * fHist3DEtaPhiVz_Neg_Run[4][90]
4 centrality bin 90 Bins for Run. NUA
TH1F * hUnderOverBinNUAneg
//temporary Debug, remove for stable code
TProfile * fHist_Corr3p_EP_Norm_PN[3]
AliMultSelection * fMultSelection
input event
TH1F * fPileUpMultSelCount
event count with different cuts
TProfile2D * fHSin1nEtaNegVzNeg
TProfile * fHist_Corr3p_EtaDiff_EP_V0C_PP[6]
TProfile2D * fHSin1nEtaNegVzPos
TProfile2D * fHCos1nEtaNegVzNeg
TProfile * fHist_Corr3p_pTSum_EP_V0C_PP[6]
TProfile2D * fHist_Reso2n_ZDN_SP_Det[3]
TH1D * fQynsV0A
sigma Qx2 V0A
TProfile * fHist_Corr3p_pTSum_EP_V0A_PP[6]
TProfile2D * fHCos2nEtaPosVzPos
TProfile2D * fHCos1nEtaPosVzNeg
TH2F * fHV0AEventPlaneVsCent
TProfile * fHist_Corr3p_pTSum_EP_V0A_NN[6]
Int_t fRunFlag
array of runnumbers
AliFlowEventSimple * fEvent
TProfile * fHist_Corr3p_pTDiff_EP_V0A_PP[6]
TProfile * fHist_Corr3p_pTDiff_EP_V0A_PN[6]
TH1F * fHist_Event_count
Harmonic.
TProfile * fHist_Corr3p_EtaDiff_EP_V0C_PN[6]
virtual void UserCreateOutputObjects()
TProfile * fHist_Corr3p_EP_Norm_NN[3]
void InitializeRunArray(TString sPeriod)
TProfile * fHist_Corr3p_pTSum_EP_V0A_PN[6]
TH3F * fHist3DEtaPhiVz_Pos_Run[4][90]
TH1F * fHCentBinTrkRecenter
//temporary Debug, remove for stable code
void GetNUACorrectionHist(Int_t run, Float_t cent)
TProfile * fHist_Reso2n_EP_Norm_Det[3]
Float_t EvtCent
counter of event for cout
void GetV0QvectAndMult(const AliAODVZERO *aodV0, Double_t &Qxan, Double_t &Qyan, Double_t &sumMa, Double_t &Qxcn, Double_t &Qycn, Double_t &sumMc)
void GetZDCCorrectionHist(Int_t run)
Bool_t InPOISelection(Int_t poiType=1) const
TH1D * fQxnmV0C
sigma Qy2 V0A
TProfile2D * fHEnergyZNAvsCentRun
virtual void UserExec(Option_t *option)
TProfile2D * fHSin2nEtaNegVzPos
TH1F * hUnderOverBinNUApos
Bool_t fRejectPileUpTight
TProfile * fHist_Corr3p_EtaDiff_EP_V0A_PN[6]
TH1D * fFB_Efficiency_Cent[10]
4 centrality bin 90 Bins for Run. NUA
TProfile2D * fHSin2nEtaPosVzPos
double GetWDist(const AliVVertex *v0, const AliVVertex *v1)
void OpenInfoCalbration(Int_t run)
TProfile * fHist_Reso2n_SP_Norm_Det[3]
TProfile2D * fHCos2nEtaNegVzNeg
Int_t NumberOfTracks() const