22 #include "Riostream.h" 29 #include "TProfile2D.h" 34 #include "AliMultSelection.h" 35 #include "AliVVertex.h" 37 #include "AliAnalysisManager.h" 43 #include "AliAnalysisManager.h" 44 #include "AliInputEventHandler.h" 45 #include "AliVEvent.h" 47 #include "AliESDEvent.h" 48 #include "AliESDHeader.h" 49 #include "AliESDInputHandler.h" 50 #include "AliESDZDC.h" 51 #include "AliMultiplicity.h" 52 #include "AliAnalysisUtils.h" 53 #include "AliAODHandler.h" 54 #include "AliAODTrack.h" 55 #include "AliAODEvent.h" 56 #include "AliAODHeader.h" 57 #include "AliAODVertex.h" 58 #include "AliAODVZERO.h" 59 #include "AliAODZDC.h" 60 #include "AliAODMCHeader.h" 61 #include "AliMCEventHandler.h" 62 #include "AliMCEvent.h" 63 #include "AliHeader.h" 64 #include "AliVParticle.h" 66 #include "AliAODMCParticle.h" 67 #include "AliAnalysisTaskSE.h" 68 #include "AliGenEventHeader.h" 69 #include "AliPhysicsSelectionTask.h" 70 #include "AliPhysicsSelection.h" 71 #include "AliBackgroundSelection.h" 72 #include "AliTriggerAnalysis.h" 73 #include "AliCentrality.h" 96 fRejectPileUpTight(kFALSE),
97 fRejectPileUp(kFALSE),
100 bRunAveragedQn(kFALSE),
101 bApplyRecent(kFALSE),
102 bCentCutShift(kFALSE),
111 fHist_Event_count(NULL),
112 fPileUpMultSelCount(NULL),
114 fHist_ChanWgt_ZDCC(NULL),
115 fHist_ChanWgt_ZDCA(NULL),
116 fHist_Vx_ArrayFinder(NULL),
117 fHist_Vy_ArrayFinder(NULL),
118 fHist_Vz_ArrayFinder(NULL),
119 fHist_Task_config(NULL),
120 fHist_Cent_woZDCcut(NULL),
121 fHist_Cent_wiZDCcut(NULL),
122 fHist_CutParameters(NULL),
123 fHist_Psi1_ZDCC_wGainCorr(NULL),
124 fHist_Psi1_ZDCA_wGainCorr(NULL),
125 fHist_Psi1_ZDCC_wRectCorr(NULL),
126 fHist_Psi1_ZDCA_wRectCorr(NULL),
127 fHist_Psi1_ZDCC_wCorrFull(NULL),
128 fHist_Psi1_ZDCA_wCorrFull(NULL),
129 fHist_Psi1_ZDCC_RunByRun(NULL),
130 fHist_Psi1_ZDCA_RunByRun(NULL),
131 fHist_v2xV1_ZDN_Norm_All(NULL),
132 fHist_v2xV1_ZDN_Refm_All(NULL),
133 fHist_v2xV1_ZDN_Cent_All(NULL),
134 fHist_v3xV1_ZDN_Norm_Comb1(NULL),
135 fHist_v3xV1_ZDN_Norm_Comb2(NULL),
136 fHist_v3xV1_ZDN_Cent_Comb1(NULL),
137 fHist_v3xV1_ZDN_Cent_Comb2(NULL),
138 fHist_v4xV1_ZDN_Norm_Comb1(NULL),
139 fHist_v4xV1_ZDN_Cent_Comb1(NULL),
140 fHist_ZDN_resol_Norm_All(NULL),
141 fHist_ZDN_resol_Cent_All(NULL),
142 fHist_ZDN_resol_Refm_All(NULL),
143 fHist_ZDN_resol_Norm_XX(NULL),
144 fHist_ZDN_resol_Norm_YY(NULL),
145 fHist_ZDN_resol_Cent_XX(NULL),
146 fHist_ZDN_resol_Cent_YY(NULL),
147 fHist_Vx_vs_runnum(NULL),
148 fHist_Vy_vs_runnum(NULL),
149 fHist_Vz_vs_runnum(NULL),
151 fHist_Vxy_RunAveraged(NULL),
152 fHist_Event_counter_vRun(NULL),
153 fHist_PsiSumAC_woCorr(NULL),
154 fHist_PsiSumAC_wiCorr(NULL),
155 fHist_ZeroQnXY_Conter(NULL),
156 fHist_ZDCC_AvgQx_VsRun(NULL),
157 fHist_ZDCC_AvgQy_VsRun(NULL),
158 fHist_ZDCA_AvgQx_VsRun(NULL),
159 fHist_ZDCA_AvgQy_VsRun(NULL),
160 fHist_ZDC_AvgXXminusYY_VsRun(NULL),
161 fHist_ZDC_AvgXYplusXY_VsRun(NULL),
162 fHist_ZDCC_AvgQx_VsCR(NULL),
163 fHist_ZDCC_AvgQy_VsCR(NULL),
164 fHist_ZDCA_AvgQx_VsCR(NULL),
165 fHist_ZDCA_AvgQy_VsCR(NULL),
166 fHist_PsiSumAC_ZeroQn(NULL),
167 fHist_PsiZDCA_ZeroQn(NULL),
168 fHist_PsiZDCC_ZeroQn(NULL),
169 fHist_ZDC_dTermXXYY_VsRun(NULL),
170 fHist_ZDC_dTermXYXY_VsRun(NULL),
171 fHist_Corr3p_ZDN_Norm_PN(NULL),
172 fHist_Corr3p_ZDN_Norm_PP(NULL),
173 fHist_Corr3p_ZDN_Norm_NN(NULL),
174 fHist_Corr3p_ZDN_Cent_PN(NULL),
175 fHist_Corr3p_ZDN_Cent_PP(NULL),
176 fHist_Corr3p_ZDN_Cent_NN(NULL),
177 fHist_Reso2EP_TPC_Norm(NULL),
178 fHist_Reso2EP_TPC_Cent(NULL),
179 fHist_ZDC_dTermXXYY_VsCR(NULL),
180 fHist_ZDC_dTermXYXY_VsCR(NULL),
181 fHist_NormalCentralityBins(NULL),
183 fAnalysisSet("DoGainEq"),
186 for(
int i=0;i<90;i++){
188 fHist_ZDCA_En_Run[i] = NULL;
189 fHist_ZDCC_En_Run[i] = NULL;
191 for(
int j=0;j<10;j++){
192 fHist_znCx_V0_VxVy[i][j] = NULL;
193 fHist_znCy_V0_VxVy[i][j] = NULL;
194 fHist_znAx_V0_VxVy[i][j] = NULL;
195 fHist_znAy_V0_VxVy[i][j] = NULL;
199 for(
int i=0;i<4;i++){
200 fHist_Qx_wiCorr_RunByRun[i] = NULL;
201 fHist_Qx_Trig_woCorr[i] = NULL;
202 fHist_XX_Trig_woCorr[i] = NULL;
203 fHist_Qx_Trig_wiCorr[i] = NULL;
204 fHist_XX_Trig_wiCorr[i] = NULL;
205 for(
int j=0;j<5;j++){
206 fHist_Qx_vs_Obs_woCorr[i][j] = NULL;
207 fHist_XX_vs_Obs_woCorr[i][j] = NULL;
208 fHist_Qx_vs_Obs_wiCorr[i][j] = NULL;
209 fHist_XX_vs_Obs_wiCorr[i][j] = NULL;
212 for(
int i=0;i<20;i++){
213 fHist_Recenter_ZDCCx[i] = NULL;
214 fHist_Recenter_ZDCCy[i] = NULL;
215 fHist_Recenter_ZDCAx[i] = NULL;
216 fHist_Recenter_ZDCAy[i] = NULL;
218 for(
int i=0;i<20;i++){
219 fHist_ZDCC_En_CommonCh[i] = NULL;
220 fHist_ZDCA_En_CommonCh[i] = NULL;
223 for(
int i=0;i<2;i++){
229 for(
int i=0;i<10;i++){
230 fFB_Efficiency_Cent[i] = NULL;
231 fHist_v2xV1_ZDN_pTDiff_All[i] = NULL;
232 fHist_v4xV1_ZDN_pTDiff_All[i] = NULL;
233 fHist_v3xV1_ZDN_EtaDiff_Comb1[i]= NULL;
234 fHist_v3xV1_ZDN_EtaDiff_Comb2[i]= NULL;
236 for(
int j=0;j<4;j++){
237 fHist_v1xV1_ZDN_EtaDiff[j][i] = NULL;
238 fHist_v1xV1_ZDN_pTDiff[j][i] = NULL;
242 for(
int i=0;i<4;i++){
243 fHist_v2xV1_ZDN_Norm_Sep[i] = NULL;
244 fHist_v2xV1_ZDN_Cent_Sep[i] = NULL;
246 for(
int i=0;i<2;i++){
247 fHist_ZDN_resol_Norm_Sep[i] = NULL;
248 fHist_ZDN_resol_Cent_Sep[i] = NULL;
250 for(
int i=0;i<4;i++){
252 fHist_ZDCC_AvgCosNPsi[i] = NULL;
253 fHist_ZDCC_AvgSinNPsi[i] = NULL;
254 fHist_ZDCA_AvgCosNPsi[i] = NULL;
255 fHist_ZDCA_AvgSinNPsi[i] = NULL;
256 fHist_ZDC_AvgCosNPsiAC[i] = NULL;
257 fHist_ZDC_AvgSinNPsiAC[i] = NULL;
259 for(
int i=0;i<4;i++){
260 fHist_ZDCC_AvgCos_VsRun[i] = NULL;
261 fHist_ZDCC_AvgSin_VsRun[i] = NULL;
262 fHist_ZDCA_AvgCos_VsRun[i] = NULL;
263 fHist_ZDCA_AvgSin_VsRun[i] = NULL;
264 fHist_ZDC_AvgCosPsiSum_VsRun[i] = NULL;
265 fHist_ZDC_AvgSinPsiSum_VsRun[i] = NULL;
266 fHist_ZDC_AvgCosPsiDif_VsRun[i] = NULL;
267 fHist_ZDC_AvgSinPsiDif_VsRun[i] = NULL;
269 for(
int i=0;i<2;i++){
270 fHist_XXYY_vs_Cent_woCorr[i] = NULL;
271 fHist_XXYY_vs_Cent_wiCorr[i] = NULL;
274 for(
int i=0;i<4;i++){
275 for(
int j=0;j<6;j++){
276 fHist_XX_vs_QnC_2DwoCorr_PosMag[i][j] = NULL;
277 fHist_XX_vs_QnA_2DwoCorr_PosMag[i][j] = NULL;
278 fHist_XX_vs_QnC_2DwoCorr_NegMag[i][j] = NULL;
279 fHist_XX_vs_QnA_2DwoCorr_NegMag[i][j] = NULL;
283 for(
int i=0;i<90;i++){
284 fHist_VZERO_Mult_vsRun[i] = NULL;
288 DefineInput(1, AliFlowEventSimple::Class());
289 DefineInput(2, AliFlowEventSimple::Class());
292 DefineOutput(1,TList::Class());
293 DefineOutput(2,TList::Class());
307 fMultSelection(NULL),
315 fRejectPileUpTight(kFALSE),
316 fRejectPileUp(kFALSE),
318 bFillZDCQAon(kFALSE),
319 bRunAveragedQn(kFALSE),
320 bApplyRecent(kFALSE),
321 bCentCutShift(kFALSE),
330 fHist_Event_count(NULL),
331 fPileUpMultSelCount(NULL),
333 fHist_ChanWgt_ZDCC(NULL),
334 fHist_ChanWgt_ZDCA(NULL),
335 fHist_Vx_ArrayFinder(NULL),
336 fHist_Vy_ArrayFinder(NULL),
337 fHist_Vz_ArrayFinder(NULL),
338 fHist_Task_config(NULL),
339 fHist_Cent_woZDCcut(NULL),
340 fHist_Cent_wiZDCcut(NULL),
341 fHist_CutParameters(NULL),
342 fHist_Psi1_ZDCC_wGainCorr(NULL),
343 fHist_Psi1_ZDCA_wGainCorr(NULL),
344 fHist_Psi1_ZDCC_wRectCorr(NULL),
345 fHist_Psi1_ZDCA_wRectCorr(NULL),
346 fHist_Psi1_ZDCC_wCorrFull(NULL),
347 fHist_Psi1_ZDCA_wCorrFull(NULL),
348 fHist_Psi1_ZDCC_RunByRun(NULL),
349 fHist_Psi1_ZDCA_RunByRun(NULL),
350 fHist_v2xV1_ZDN_Norm_All(NULL),
351 fHist_v2xV1_ZDN_Refm_All(NULL),
352 fHist_v2xV1_ZDN_Cent_All(NULL),
353 fHist_v3xV1_ZDN_Norm_Comb1(NULL),
354 fHist_v3xV1_ZDN_Norm_Comb2(NULL),
355 fHist_v3xV1_ZDN_Cent_Comb1(NULL),
356 fHist_v3xV1_ZDN_Cent_Comb2(NULL),
357 fHist_v4xV1_ZDN_Norm_Comb1(NULL),
358 fHist_v4xV1_ZDN_Cent_Comb1(NULL),
359 fHist_ZDN_resol_Norm_All(NULL),
360 fHist_ZDN_resol_Cent_All(NULL),
361 fHist_ZDN_resol_Refm_All(NULL),
362 fHist_ZDN_resol_Norm_XX(NULL),
363 fHist_ZDN_resol_Norm_YY(NULL),
364 fHist_ZDN_resol_Cent_XX(NULL),
365 fHist_ZDN_resol_Cent_YY(NULL),
366 fHist_Vx_vs_runnum(NULL),
367 fHist_Vy_vs_runnum(NULL),
368 fHist_Vz_vs_runnum(NULL),
370 fHist_Vxy_RunAveraged(NULL),
371 fHist_Event_counter_vRun(NULL),
372 fHist_PsiSumAC_woCorr(NULL),
373 fHist_PsiSumAC_wiCorr(NULL),
374 fHist_ZeroQnXY_Conter(NULL),
375 fHist_ZDCC_AvgQx_VsRun(NULL),
376 fHist_ZDCC_AvgQy_VsRun(NULL),
377 fHist_ZDCA_AvgQx_VsRun(NULL),
378 fHist_ZDCA_AvgQy_VsRun(NULL),
379 fHist_ZDC_AvgXXminusYY_VsRun(NULL),
380 fHist_ZDC_AvgXYplusXY_VsRun(NULL),
381 fHist_ZDCC_AvgQx_VsCR(NULL),
382 fHist_ZDCC_AvgQy_VsCR(NULL),
383 fHist_ZDCA_AvgQx_VsCR(NULL),
384 fHist_ZDCA_AvgQy_VsCR(NULL),
385 fHist_PsiSumAC_ZeroQn(NULL),
386 fHist_PsiZDCA_ZeroQn(NULL),
387 fHist_PsiZDCC_ZeroQn(NULL),
388 fHist_ZDC_dTermXXYY_VsRun(NULL),
389 fHist_ZDC_dTermXYXY_VsRun(NULL),
390 fHist_Corr3p_ZDN_Norm_PN(NULL),
391 fHist_Corr3p_ZDN_Norm_PP(NULL),
392 fHist_Corr3p_ZDN_Norm_NN(NULL),
393 fHist_Corr3p_ZDN_Cent_PN(NULL),
394 fHist_Corr3p_ZDN_Cent_PP(NULL),
395 fHist_Corr3p_ZDN_Cent_NN(NULL),
396 fHist_Reso2EP_TPC_Norm(NULL),
397 fHist_Reso2EP_TPC_Cent(NULL),
398 fHist_ZDC_dTermXXYY_VsCR(NULL),
399 fHist_ZDC_dTermXYXY_VsCR(NULL),
400 fHist_NormalCentralityBins(NULL),
402 fAnalysisSet(
"DoGainEq"),
405 for(
int i=0;i<90;i++){
410 for(
int j=0;j<10;j++){
418 for(
int i=0;i<4;i++){
425 for(
int j=0;j<5;j++){
432 for(
int i=0;i<20;i++){
438 for(
int i=0;i<20;i++){
443 for(
int i=0;i<2;i++){
449 for(
int i=0;i<10;i++){
456 for(
int j=0;j<4;j++){
462 for(
int i=0;i<4;i++){
466 for(
int i=0;i<2;i++){
470 for(
int i=0;i<4;i++){
478 for(
int i=0;i<4;i++){
488 for(
int i=0;i<2;i++){
492 for(
int i=0;i<4;i++){
493 for(
int j=0;j<6;j++){
501 for(
int i=0;i<90;i++){
544 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};
546 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};
548 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};
585 fPileUpCount =
new TH1F(
"fPileUpCount",
"fPileUpCount", 9, 0., 9.);
588 fPileUpCount->GetXaxis()->SetBinLabel(3,
"RefMultiplicityComb08");
589 fPileUpCount->GetXaxis()->SetBinLabel(4,
"IncompleteDAQ");
590 fPileUpCount->GetXaxis()->SetBinLabel(5,
"abs(V0M-CL1)>7.5");
592 fPileUpCount->GetXaxis()->SetBinLabel(7,
"inconsistentVtx");
593 fPileUpCount->GetXaxis()->SetBinLabel(8,
"multESDTPCDif");
594 fPileUpCount->GetXaxis()->SetBinLabel(9,
"extraPileUpMultSel");
608 fHist_Task_config =
new TH1F(
"fTask_Configuration",
"Task Configuration", 20, 0., 20.);
697 AliDebug(2,
"\n\n !!** WARNING ***!! \n cuts not defined for DATASET: %s\n ...EXIT...\n\n)");
734 for(
int i=0; i<4; i++){
735 fHist_ZDCC_AvgCos_VsRun[i] =
new TProfile2D(Form(
"fHist_ZDC_AvgCos%dPsiC_VsCentRun",i+1),
"",60,0,60,90,0,90,
"");
737 fHist_ZDCA_AvgCos_VsRun[i] =
new TProfile2D(Form(
"fHist_ZDC_AvgCos%dPsiA_VsCentRun",i+1),
"",60,0,60,90,0,90,
"");
740 fHist_ZDCC_AvgSin_VsRun[i] =
new TProfile2D(Form(
"fHist_ZDC_AvgSin%dPsiC_VsCentRun",i+1),
"",60,0,60,90,0,90,
"");
742 fHist_ZDCA_AvgSin_VsRun[i] =
new TProfile2D(Form(
"fHist_ZDC_AvgSin%dPsiA_VsCentRun",i+1),
"",60,0,60,90,0,90,
"");
784 for(
int i=0;i<
vzBin;i++) {
785 fHist_ZDCC_En_CommonCh[i] =
new TProfile2D(Form(
"fHist_ZDCC_En_CommonCh_Vz%d",i+1),
"",100,0,100,NbinVt,0,NbinVt,
"");
786 fHist_ZDCA_En_CommonCh[i] =
new TProfile2D(Form(
"fHist_ZDCA_En_CommonCh_Vz%d",i+1),
"",100,0,100,NbinVt,0,NbinVt,
"");
846 TString sNameQn[4] = {
"Xa",
"Xc",
"Ya",
"Yc"};
847 TString sNameQn2[4] = {
"XaXc",
"YaYc",
"XcYa",
"YcXa"};
848 TString sNameVs[5] = {
"Cent",
"Mult",
"Vx",
"Vy",
"Vz"};
849 Int_t nBinNumVs[5] = {100, 100, 50, 50, 400};
852 Double_t fNormCent[11] = {0,5,10,20,30,40,50,60,70,80,90};
858 for(
int i=0;i<6;i++) {
859 for(
int j=0;j<4;j++) {
860 sprintf(name,
"fHist_%s_vs_Cx_Cy_woCorr_PosMag_Cent%d",static_cast<const char*>(sNameQn2[j]),i);
864 sprintf(name,
"fHist_%s_vs_Ax_Ay_woCorr_PosMag_Cent%d",static_cast<const char*>(sNameQn2[j]),i);
868 sprintf(name,
"fHist_%s_vs_Cx_Cy_woCorr_NegMag_Cent%d",static_cast<const char*>(sNameQn2[j]),i);
872 sprintf(name,
"fHist_%s_vs_Ax_Ay_woCorr_NegMag_Cent%d",static_cast<const char*>(sNameQn2[j]),i);
880 for(
int i=0;i<4;i++) {
881 sprintf(name,
"fHist_%s_wiCorr_RunByRun",static_cast<const char*>(sNameQn[i]));
885 sprintf(name,
"fHist_%s_TrigonoMetric_woCorr",static_cast<const char*>(sNameQn[i]));
888 sprintf(name,
"fHist_%s_TrigonoMetric_woCorr",static_cast<const char*>(sNameQn2[i]));
892 sprintf(name,
"fHist_%s_TrigonoMetric_wiCorr",static_cast<const char*>(sNameQn[i]));
895 sprintf(name,
"fHist_%s_TrigonoMetric_wiCorr",static_cast<const char*>(sNameQn2[i]));
899 for(
int j=0;j<5;j++) {
901 sprintf(name,
"fHist_%s_vs_%s_woCorr",static_cast<const char*>(sNameQn[i]),static_cast<const char*>(sNameVs[j]));
905 sprintf(name,
"fHist_%s_vs_%s_woCorr",static_cast<const char*>(sNameQn2[i]),static_cast<const char*>(sNameVs[j]));
910 sprintf(name,
"fHist_%s_vs_%s_woCorrCosSin",static_cast<const char*>(sNameQn[i]),static_cast<const char*>(sNameVs[j]));
913 sprintf(name,
"fHist_%s_vs_%s_wiCorr",static_cast<const char*>(sNameQn[i]),static_cast<const char*>(sNameVs[j]));
919 sprintf(name,
"fHist_%s_vs_%s_woCorrCosSin",static_cast<const char*>(sNameQn2[i]),static_cast<const char*>(sNameVs[j]));
922 sprintf(name,
"fHist_%s_vs_%s_wiCorr",static_cast<const char*>(sNameQn2[i]),static_cast<const char*>(sNameVs[j]));
933 printf(
"\n\n::UserCreateOutPutObject()\n Vz Binning more than 20 not allowed\n ==> Exit <== \n\n");
937 const int VzBinIter = (
const int)
vzBin;
949 for(
int j=0;j<VzBinIter;j++) {
963 for(
int j=0;j<VzBinIter;j++) {
964 fHist_znCx_V0_VxVy[0][j] =
new TProfile2D(Form(
"fHist_znCx_V0_Run%d_Vz%d",0,j+1),
"",NbinVt,0,NbinVt,90,0,90);
965 fHist_znCy_V0_VxVy[0][j] =
new TProfile2D(Form(
"fHist_znCy_V0_Run%d_Vz%d",0,j+1),
"",NbinVt,0,NbinVt,90,0,90);
966 fHist_znAx_V0_VxVy[0][j] =
new TProfile2D(Form(
"fHist_znAx_V0_Run%d_Vz%d",0,j+1),
"",NbinVt,0,NbinVt,90,0,90);
967 fHist_znAy_V0_VxVy[0][j] =
new TProfile2D(Form(
"fHist_znAy_V0_Run%d_Vz%d",0,j+1),
"",NbinVt,0,NbinVt,90,0,90);
978 for(
int i=0;i<90;i++){
979 fHist_VZERO_Mult_vsRun[i] =
new TProfile2D(Form(
"fHist_V0Mult_vsCent_Run%d",runArray_2015[i]),
"",90,0,90,64,0,64,
"");
984 Double_t centRange[12] = {0,5,10,20,30,40,50,60,70,80,90,100};
986 Double_t pTRange[28] = {0,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.,1.2,1.4,1.6,1.8,2.,2.33,2.66,3.,3.5,4.,5.,6.,8.,10.,14.,20.,30.,50.};
987 const int fPtDiffNBins = 27;
988 TString sNameComp[4] = {
"uxCx",
"uyCy",
"uxAx",
"uyAy"};
991 fHist_Corr3p_ZDN_Norm_PN =
new TProfile(
"fHist_Corr3p_ZDN_Norm_PosNeg",
"opposit charge correlator",11,centRange,
"");
994 fHist_Corr3p_ZDN_Norm_PP =
new TProfile(
"fHist_Corr3p_ZDN_Norm_PosPos",
"pos-pos charge correlator",11,centRange,
"");
997 fHist_Corr3p_ZDN_Norm_NN =
new TProfile(
"fHist_Corr3p_ZDN_Norm_NegNeg",
"neg-neg charge correlator",11,centRange,
"");
1081 for(
int i=0; i<4; i++) {
1082 sprintf(name,
"fHist_v1_%s_ZDN_Norm",static_cast<const char*>(sNameComp[i]));
1087 sprintf(name,
"fHist_v1_%s_ZDN_Cent",static_cast<const char*>(sNameComp[i]));
1110 for(
int i=0; i<10; i++) {
1111 sprintf(name,
"fHist_v2xV1_ZDN_pTDiff_Cent%d",i);
1118 for(
int i=0; i<10; i++) {
1119 sprintf(name,
"fHist_v3xV1_ZDN_EtaDiff_Comb1_Cent%d",i);
1123 sprintf(name,
"fHist_v3xV1_ZDN_EtaDiff_Comb2_Cent%d",i);
1130 for(
int i=0; i<10; i++) {
1131 sprintf(name,
"fHist_v4xV1_ZDN_pTDiff_Cent%d",i);
1139 for(
int i=0; i<10; i++) {
1140 for(
int j=0; j<4; j++) {
1141 sprintf(name,
"fHist_%s_ZDN_EtaDiff_Cent%d",static_cast<const char*>(sNameComp[j]),i);
1146 sprintf(name,
"fHist_%s_ZDN_pTDiff_Cent%d",static_cast<const char*>(sNameComp[j]),i);
1154 TH1F *fCent_fromDATA;
1157 fCent_fromDATA = (TH1F *)
fListZDCQxy->FindObject(
"fHist_Cent_afterr_ZDCcut");
1159 for(
int i=0;i<4;i++){
1178 printf(
"\n\n ******** Running without Centrality weight, No Shift Correction !!******** \n\n");
1179 fCent_fromDATA =
new TH1F(
"fCent_DATA",
"Centrality distribution",100,0,100);
1180 for(
int i=1;i<=fCent_fromDATA->GetNbinsX();i++){
1181 fCent_fromDATA->SetBinContent(i,100);
1183 for(
int i=0;i<4;i++){
1203 for(
int i=1;i<=fCent_fromDATA->GetNbinsX();i++){
1204 Content = fCent_fromDATA->GetBinContent(i);
1205 if(maxCount < Content){
1211 fWeight_Cent =
new TH1F(
"fWeight_Cent",
"Weight for centrality",100,0,100);
1215 Content = fCent_fromDATA->GetBinContent(i);
1216 error = fCent_fromDATA->GetBinError(i);
1218 weight = maxCount/Content;
1235 for(
int i=0;i<10;i++) {
1241 printf(
"\n\n !!***** Warning *****!! \n TList for FilterBit efficiency not found !!\n\n");
1242 for(
int i=0;i<10;i++){
1334 for(
int i=0;i<90;i++){
1349 printf(
"\n\n::UserCreateOutPutObject()\n Runflag= %d, dataset: %s, VxyBin = %d, Analysis= %s\n\n",
frunflag,
fDataSet.Data(),NbinVt,
fAnalysisSet.Data());
1357 float stepCount = 0.5;
1380 printf(
"\n ... ::UserExec = no aod found..... \n");
1388 AliAODVertex *pVertex = aod->GetPrimaryVertex();
1390 Vxyz[0] = pVertex->GetX();
1391 Vxyz[1] = pVertex->GetY();
1392 Vxyz[2] = pVertex->GetZ();
1397 if(Vxyz[2] >=
VzCut[1] || Vxyz[2] <=
VzCut[0])
return;
1402 if(Vxyz[0] >=
VxCut[1] || Vxyz[0] <=
VxCut[0])
return;
1407 if(Vxyz[1] >=
VyCut[1] || Vxyz[1] <=
VyCut[0])
return;
1417 Int_t runNumber = aod->GetRunNumber();
1418 Int_t runindex = -111;
1428 printf(
"\n ... **WARNING** \n::UserExec() runnumber not listed.\n EXIT..\n");
1434 Double_t fMagField = aod->GetMagneticField();
1451 centrV0M = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"V0M");
1452 centrCL1 = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL1");
1453 centrCL0 = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"CL0");
1454 centrTRK = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP()->GetCentralityPercentile(
"TRK");
1457 fMultSelection = (AliMultSelection*) InputEvent()->FindListObject(
"MultSelection");
1459 printf(
"\n\n **WARNING** ::UserExec() AliMultSelection object not found.\n\n");
1477 Int_t isPileup = aod->IsPileupFromSPD(3);
1482 if(((AliAODHeader*)aod->GetHeader())->GetRefMultiplicityComb08() < 0) {
1486 if(aod->IsIncompleteDAQ()) {
1492 const AliAODVertex* vtTrc = aod->GetPrimaryVertex();
1493 const AliAODVertex* vtSPD = aod->GetPrimaryVertexSPD();
1495 if(vtTrc->GetNContributors() < 2 || vtSPD->GetNContributors()<1) {
1500 double covTrc[6], covSPD[6];
1501 vtTrc->GetCovarianceMatrix(covTrc);
1502 vtSPD->GetCovarianceMatrix(covSPD);
1504 double dz = vtTrc->GetZ() - vtSPD->GetZ();
1506 double errTot = TMath::Sqrt(covTrc[5]+covSPD[5]);
1507 double errTrc = TMath::Sqrt(covTrc[5]);
1508 double nsigTot = dz/errTot;
1509 double nsigTrc = dz/errTrc;
1511 if(TMath::Abs(dz)>0.2 || TMath::Abs(nsigTot)>10 || TMath::Abs(nsigTrc)>20) {
1548 Int_t isPileup = aod->IsPileupFromSPD(3);
1554 if(((AliAODHeader*)aod->GetHeader())->GetRefMultiplicityComb08() < 0) {
1559 if(aod->IsIncompleteDAQ()) {
1564 if(fabs(centrV0M-centrCL1)>7.5) {
1570 const AliAODVertex* vtTrc = aod->GetPrimaryVertex();
1571 const AliAODVertex* vtSPD = aod->GetPrimaryVertexSPD();
1573 if (vtTrc->GetNContributors() < 2 || vtSPD->GetNContributors()<1) {
1578 double covTrc[6], covSPD[6];
1579 vtTrc->GetCovarianceMatrix(covTrc);
1580 vtSPD->GetCovarianceMatrix(covSPD);
1582 double dz = vtTrc->GetZ() - vtSPD->GetZ();
1584 double errTot = TMath::Sqrt(covTrc[5]+covSPD[5]);
1585 double errTrc = TMath::Sqrt(covTrc[5]);
1586 double nsigTot = dz/errTot;
1587 double nsigTrc = dz/errTrc;
1589 if(TMath::Abs(dz)>0.2 || TMath::Abs(nsigTot)>10 || TMath::Abs(nsigTrc)>20) {
1595 const Int_t nTracks = aod->GetNumberOfTracks();
1596 Int_t multEsd = ((AliAODHeader*)aod->GetHeader())->GetNumberOfESDTracks();
1599 Int_t multTrkBefC = 0;
1600 Int_t multTrkTOFBefC = 0;
1603 for(
Int_t it = 0; it < nTracks; it++) {
1604 AliAODTrack* aodTrk = (AliAODTrack*)aod->GetTrack(it);
1616 if(aodTrk->TestFilterBit(128))
1622 Double_t multESDTPCDif = multEsdn - multTPCn*3.38;
1630 if(BisPileup==kFALSE) {
1632 if(!
fMultSelection->GetThisEventIsNotPileupMV()) BisPileup=kTRUE;
1633 if(!
fMultSelection->GetThisEventIsNotPileupInMultBins()) BisPileup=kTRUE;
1634 if(!
fMultSelection->GetThisEventHasNoInconsistentVertices()) BisPileup=kTRUE;
1635 if(!
fMultSelection->GetThisEventPassesTrackletVsCluster()) BisPileup=kTRUE;
1636 if(!
fMultSelection->GetThisEventIsNotIncompleteDAQ()) BisPileup=kTRUE;
1637 if(!
fMultSelection->GetThisEventHasGoodVertex2016()) BisPileup=kTRUE;
1707 Double_t ChanWgtZDCC[5] = {1.,1.,1.,1.,1.};
1708 Double_t ChanWgtZDCA[5] = {1.,1.,1.,1.,1.};
1710 Int_t iCentBin = abs(EvtCent) + 1;
1718 for(
int ich=1; ich<=5; ich++){
1719 iWgtBin = 5*(iCentBin-1) + ich;
1736 AliAODZDC *aodZDC = aod->GetZDCData();
1737 Float_t fZDCGainAlpha = 0.500;
1745 const Double_t * towZNC = aodZDC->GetZNCTowerEnergy();
1746 const Double_t * towZPC = aodZDC->GetZPCTowerEnergy();
1747 const Double_t * towZNA = aodZDC->GetZNATowerEnergy();
1748 const Double_t * towZPA = aodZDC->GetZPATowerEnergy();
1750 const Double_t * towZNClg = aodZDC->GetZNCTowerEnergyLR();
1751 const Double_t * towZNAlg = aodZDC->GetZNATowerEnergyLR();
1756 for(
Int_t it=0; it<5; it++) {
1757 towZPClg[it] = 8*towZPC[it];
1758 towZPAlg[it] = 8*towZNA[it];
1761 Int_t BadChannel = 0;
1767 for(
int i=0; i<4; i++) {
1773 if(BadChannel>=2)
return;
1781 for(
int i=0; i<4; i++) {
1787 if(BadChannel>=2)
return;
1808 Float_t zncEnergy=0., znaEnergy=0.;
1847 for(
int i=0;i<5;i++){
1848 towCalibZNC[i] = towZNC[i];
1849 towCalibZNA[i] = towZNA[i];
1853 for(
int i=1;i<5;i++){
1854 if(towCalibZNC[i] < 0) towCalibZNC[i] = 0;
1855 if(towCalibZNA[i] < 0) towCalibZNA[i] = 0;
1877 for(
int ich=0; ich<5; ich++) {
1890 for(
int i=0;i<5;i++){
1891 towCalibZNC[i] = ChanWgtZDCC[i]*towCalibZNC[i];
1893 if(ChanWgtZDCA[i] < 4.){
1894 towCalibZNA[i] = ChanWgtZDCA[i]*towCalibZNA[i];
1899 if(ChanWgtZDCA[2] >= 4.0){
1900 towCalibZNA[2] = towCalibZNA[0] - towCalibZNA[1] - towCalibZNA[3] - towCalibZNA[4];
1904 for(
Int_t i=0; i<5; i++){
1905 zncEnergy += towCalibZNC[i];
1906 znaEnergy += towCalibZNA[i];
1910 Double_t AvTowerGain[8] = {1., 1., 1., 1., 1., 1., 1., 1.};
1912 const Float_t x[4] = {-1.75, 1.75,-1.75, 1.75};
1913 const Float_t y[4] = {-1.75, -1.75, 1.75, 1.75};
1915 Float_t numXZNC=0., numYZNC=0., denZNC=0., wZNC;
1916 Float_t numXZNA=0., numYZNA=0., denZNA=0., wZNA;
1918 for(
Int_t i=0; i<4; i++) {
1919 if(towCalibZNC[i+1]>0.) {
1920 wZNC = TMath::Power(towCalibZNC[i+1], fZDCGainAlpha)*AvTowerGain[i];
1921 numXZNC += x[i]*wZNC;
1922 numYZNC += y[i]*wZNC;
1926 if(towCalibZNA[i+1]>0.) {
1927 wZNA = TMath::Power(towCalibZNA[i+1], fZDCGainAlpha)*AvTowerGain[i+4];
1928 numXZNA += x[i]*wZNA;
1929 numYZNA += y[i]*wZNA;
1935 xyZNC[0] = numXZNC/denZNC;
1936 xyZNC[1] = numYZNC/denZNC;
1944 xyZNA[0] = numXZNA/denZNA;
1945 xyZNA[1] = numYZNA/denZNA;
1955 xyZNA[0] = -1.*xyZNA[0];
1970 Double_t psi1C = TMath::ATan2(xyZNC[1],xyZNC[0]);
1972 psi1C += 2.*TMath::Pi();
1974 Double_t psi1A = TMath::ATan2(xyZNA[1],xyZNA[0]);
1976 psi1A += 2.*TMath::Pi();
1991 fHist_znCx_V0_VxVy[runindex][indexVz-1]->Fill(tVertexBin1,EvtCent,TMath::Cos(psi1C));
1992 fHist_znCy_V0_VxVy[runindex][indexVz-1]->Fill(tVertexBin1,EvtCent,TMath::Sin(psi1C));
1993 fHist_znAx_V0_VxVy[runindex][indexVz-1]->Fill(tVertexBin1,EvtCent,TMath::Cos(psi1A));
1994 fHist_znAy_V0_VxVy[runindex][indexVz-1]->Fill(tVertexBin1,EvtCent,TMath::Sin(psi1A));
2024 xyZNC[0] = TMath::Cos(psi1C);
2025 xyZNC[1] = TMath::Sin(psi1C);
2026 xyZNA[0] = TMath::Cos(psi1A);
2027 xyZNA[1] = TMath::Sin(psi1A);
2050 xyZNC[0] = TMath::Cos(psi1C);
2051 xyZNC[1] = TMath::Sin(psi1C);
2052 xyZNA[0] = TMath::Cos(psi1A);
2053 xyZNA[1] = TMath::Sin(psi1A);
2082 const AliAODVZERO *fvzero = aod->GetVZEROData();
2086 for(
int i=0;i<64;i++){
2087 fV0Mult[i] = fvzero->GetMultiplicity(i);
2090 for(
int i=0;i<64;i++){
2097 xyZNC[0] = vQarray[0].Px();
2098 xyZNC[1] = vQarray[0].Py();
2099 xyZNA[0] = vQarray[1].Px();
2100 xyZNA[1] = vQarray[1].Py();
2104 Double_t Qvect_ModC = TMath::Sqrt(xyZNC[0]*xyZNC[0] + xyZNC[1]*xyZNC[1]);
2105 Double_t Qvect_ModA = TMath::Sqrt(xyZNA[0]*xyZNA[0] + xyZNA[1]*xyZNA[1]);
2107 Double_t dTermXXYY = xyZNA[0]*xyZNC[0] - xyZNA[1]*xyZNC[1];
2108 Double_t dTermXYXY = xyZNA[0]*xyZNC[1] + xyZNA[1]*xyZNC[0];
2110 Double_t Qvect_ModSumAC = TMath::Sqrt(dTermXXYY*dTermXXYY + dTermXYXY*dTermXYXY);
2117 Double_t Psi1C = TMath::ATan2(xyZNC[1],xyZNC[0]);
2119 Psi1C += 2.*TMath::Pi();
2122 Double_t Psi1A = TMath::ATan2(xyZNA[1],xyZNA[0]);
2124 Psi1A += 2.*TMath::Pi();
2129 if(PsiSumAC>2.*TMath::Pi()){
2130 PsiSumAC -= 2.*TMath::Pi();
2139 if(Qvect_ModC < 1.e-6 || Qvect_ModA < 1.e-6)
return;
2151 for(
int i=0;i<4;i++){
2172 Double_t FillVsWith[5] = {EvtCent, fRefMult, Vxyz[0], Vxyz[1], Vxyz[2]};
2173 Double_t FillValueQx[4] = {xyZNA[0],xyZNC[0],xyZNA[1],xyZNC[1]};
2174 Double_t FillValueXX[4] = {xyZNA[0]*xyZNC[0],xyZNA[1]*xyZNC[1],xyZNC[0]*xyZNA[1],xyZNC[1]*xyZNA[0]};
2176 Double_t FillValueQxTrig[4] = {TMath::Cos(Psi1A),TMath::Cos(Psi1C),TMath::Sin(Psi1A),TMath::Sin(Psi1C)};
2177 Double_t FillValueXXTrig[4] = {TMath::Cos(Psi1A)*TMath::Cos(Psi1C),TMath::Sin(Psi1A)*TMath::Sin(Psi1C),TMath::Cos(Psi1C)*TMath::Sin(Psi1A),TMath::Cos(Psi1A)*TMath::Sin(Psi1C)};
2181 for(
int i=0;i<4;i++){
2186 else if(fMagField<0){
2193 for(
int i=0;i<4;i++){
2198 for(
int j=0;j<5;j++){
2199 if(j>0 && (EvtCent<5 || EvtCent>45))
continue;
2228 for(
int i=0;i<4;i++) {
2236 for(
int i=0;i<4;i++) {
2246 PsiSumAC = Psi1C+Psi1A;
2250 for(
int i=0;i<4;i++) {
2251 shiftPsiC += 2.0/(i+1)*(-1.0*ShiftSinC[i]*TMath::Cos((i+1)*Psi1C) + ShiftCosC[i]*TMath::Sin((i+1)*Psi1C));
2252 shiftPsiA += 2.0/(i+1)*(-1.0*ShiftSinA[i]*TMath::Cos((i+1)*Psi1A) + ShiftCosA[i]*TMath::Sin((i+1)*Psi1A));
2259 for(
int i=0;i<4;i++) {
2260 shiftPsiC += 2.0/(i+1)*(-1.0*ShiftSinC[i]*TMath::Cos((i+1)*PsiSumAC) + ShiftCosC[i]*TMath::Sin((i+1)*PsiSumAC));
2262 PsiSumAC += shiftPsiC;
2268 Psi1C += 2.*TMath::Pi();
2271 Psi1A += 2.*TMath::Pi();
2274 PsiSumAC += 2.*TMath::Pi();
2276 else if(PsiSumAC>2.*TMath::Pi()){
2277 PsiSumAC -= 2.*TMath::Pi();
2285 xyZNC[0] = Qvect_ModC*TMath::Cos(Psi1C);
2286 xyZNC[1] = Qvect_ModC*TMath::Sin(Psi1C);
2287 xyZNA[0] = Qvect_ModA*TMath::Cos(Psi1A);
2288 xyZNA[1] = Qvect_ModA*TMath::Sin(Psi1A);
2297 dTermXXYY = Qvect_ModSumAC*TMath::Cos(PsiSumAC);
2298 dTermXYXY = Qvect_ModSumAC*TMath::Sin(PsiSumAC);
2303 xyZNC[0] = TMath::Cos(Psi1C);
2304 xyZNC[1] = TMath::Sin(Psi1C);
2305 xyZNA[0] = TMath::Cos(Psi1A);
2306 xyZNA[1] = TMath::Sin(Psi1A);
2315 dTermXXYY = TMath::Cos(PsiSumAC);
2316 dTermXYXY = TMath::Sin(PsiSumAC);
2349 Double_t FillVsWithNew[5] = {EvtCent, fRefMult, Vxyz[0], Vxyz[1], Vxyz[2]};
2350 Double_t FillValueQxNew[4] = {xyZNA[0],xyZNC[0],xyZNA[1],xyZNC[1]};
2351 Double_t FillValueXXNew[4] = {xyZNA[0]*xyZNC[0],xyZNA[1]*xyZNC[1],xyZNC[0]*xyZNA[1],xyZNC[1]*xyZNA[0]};
2353 Double_t FillValueQxTrigNew[4] = {TMath::Cos(Psi1A),TMath::Cos(Psi1C),TMath::Sin(Psi1A),TMath::Sin(Psi1C)};
2354 Double_t FillValueXXTrigNew[4] = {TMath::Cos(Psi1A)*TMath::Cos(Psi1C),TMath::Sin(Psi1A)*TMath::Sin(Psi1C),TMath::Cos(Psi1C)*TMath::Sin(Psi1A),TMath::Cos(Psi1A)*TMath::Sin(Psi1C)};
2356 for(
int i=0;i<4;i++){
2357 if(EvtCent>=5 && EvtCent<=45){
2364 for(
int j=0;j<5;j++){
2365 if(j>0 && (EvtCent<5 || EvtCent>45))
continue;
2388 if(EvtCent<5.0) { cIndex = 0; }
2389 else if(EvtCent>=5.0 && EvtCent<10){
2393 cIndex = abs(EvtCent/10.0) + 1;
2425 for(
int i=0; i<iTracks; i++) {
2427 if(!pTrack)
continue;
2428 dPhi = pTrack->
Phi();
2429 dPt = pTrack-> Pt();
2430 dEta = pTrack->
Eta();
2431 dChrg = pTrack->
Charge();
2432 if(fabs(dEta) > 0.8)
continue;
2433 if(dPt<0.20 || dPt>50.0)
continue;
2442 Qxneg[0] += pTwgt*TMath::Cos(1.*dPhi);
2443 Qyneg[0] += pTwgt*TMath::Sin(1.*dPhi);
2444 Qxneg[1] += pTwgt*pTwgt*TMath::Cos(2.*dPhi);
2445 Qyneg[1] += pTwgt*pTwgt*TMath::Sin(2.*dPhi);
2449 Qxpos[0] += pTwgt*TMath::Cos(1.*dPhi);
2450 Qypos[0] += pTwgt*TMath::Sin(1.*dPhi);
2451 Qxpos[1] += pTwgt*pTwgt*TMath::Cos(2.*dPhi);
2452 Qypos[1] += pTwgt*pTwgt*TMath::Sin(2.*dPhi);
2456 QxEtaPos[0] += pTwgt*TMath::Cos(2.*dPhi);
2457 QyEtaPos[0] += pTwgt*TMath::Sin(2.*dPhi);
2458 QxEtaPos[1] += pTwgt*TMath::Cos(4.*dPhi);
2459 QyEtaPos[1] += pTwgt*TMath::Sin(4.*dPhi);
2460 mSubEtaPos += pTwgt;
2464 QxEtaNeg[0] += pTwgt*TMath::Cos(2.*dPhi);
2465 QyEtaNeg[0] += pTwgt*TMath::Sin(2.*dPhi);
2466 QxEtaNeg[1] += pTwgt*TMath::Cos(4.*dPhi);
2467 QyEtaNeg[1] += pTwgt*TMath::Sin(4.*dPhi);
2468 mSubEtaNeg += pTwgt;
2472 dUx = TMath::Cos(dPhi);
2473 dUy = TMath::Sin(dPhi);
2474 Qnx_TPC[0] += dUx*pTwgt;
2475 Qny_TPC[0] += dUy*pTwgt;
2488 dUx = TMath::Cos(2.*dPhi);
2489 dUy = TMath::Sin(2.*dPhi);
2490 Qnx_TPC[1] += dUx*pTwgt;
2491 Qny_TPC[1] += dUy*pTwgt;
2495 fullTerm = dUx*dTermXXYY + dUy*dTermXYXY;
2501 QRe = TMath::Cos(3.*dPhi);
2502 QIm = TMath::Sin(3.*dPhi);
2503 Qnx_TPC[2] += QRe*pTwgt;
2504 Qny_TPC[2] += QIm*pTwgt;
2507 Qtot = QRe*(ZARe*ZARe*ZCRe-2.*ZARe*ZAIm*ZCIm-ZCRe*ZAIm*ZAIm) + QIm*(-ZAIm*ZAIm*ZCIm+2.*ZAIm*ZARe*ZCRe+ZCIm*ZARe*ZARe);
2509 Qtot = QRe*(ZCRe*ZCRe*ZARe-2.*ZCRe*ZCIm*ZAIm-ZARe*ZCIm*ZCIm) + QIm*(-ZCIm*ZCIm*ZAIm+2.*ZCIm*ZCRe*ZARe+ZAIm*ZCRe*ZCRe);
2514 QRe = TMath::Cos(4.*dPhi);
2515 QIm = TMath::Sin(4.*dPhi);
2516 Qnx_TPC[3] += QRe*pTwgt;
2517 Qny_TPC[3] += QIm*pTwgt;
2520 Qtot = QRe*((ZARe*ZARe-ZAIm*ZAIm)*(ZCRe*ZCRe-ZCIm*ZCIm)-(ZAIm*ZARe+ZARe*ZAIm)*(ZCIm*ZCRe+ZCRe*ZCIm)) + QIm*((ZAIm*ZARe+ZARe*ZAIm)*(ZCRe*ZCRe-ZCIm*ZCIm)+(ZCIm*ZCRe+ZCRe*ZCIm)*(ZARe*ZARe-ZAIm*ZAIm));
2532 for(
int i=0;i<4;i++){
2533 Qnx_TPC[i] = Qnx_TPC[i]/npoiMult;
2534 Qny_TPC[i] = Qny_TPC[i]/npoiMult;
2538 for(
int i=0;i<4;i++){
2546 Double_t uPRe=0.,uNRe=0.,uPIm=0.,uNIm=0.,uN2Re=0.,uN2Im=0.,uP2Re=0.,uP2Im=0.,VCRe=0.,VCIm=0., VPRe=0.,VPIm=0.;
2549 if(mSubEtaPos>0 && mSubEtaNeg){
2550 VCRe = QxEtaNeg[0] /mSubEtaNeg;
2551 VCIm = QyEtaNeg[0] /mSubEtaNeg;
2553 VPRe = QxEtaPos[0] /mSubEtaPos;
2554 VPIm = QyEtaPos[0] /mSubEtaPos;
2557 if( mNegPoi>0 && mPosPoi>0 ) {
2584 if( mNegPoi>0 && mPosPoi>0 ) {
2585 TwoQpQnV = ((uPRe*uNRe-uPIm*uNIm)*VCRe + (uPRe*uNIm+uPIm*uNRe)*VCIm) / (uPM*uNM) ;
2586 TwoQpQpV = ((uPRe*uPRe-uPIm*uPIm-uP2Re)*VCRe + (2.*uPRe*uPIm-uP2Im)*VCIm) / (uPM*(uPM-1.)) ;
2587 TwoQnQnV = ((uNRe*uNRe-uNIm*uNIm-uN2Re)*VCRe + (2.*uNRe*uNIm-uN2Im)*VCIm) / (uNM*(uNM-1.)) ;
2603 if(EvtCent>=5 && EvtCent<=45) {
2623 Double_t v1FillTerms[4] = {Qnx_TPC[0]*xyZNC[0], Qny_TPC[0]*xyZNC[1], Qnx_TPC[0]*xyZNA[0], Qny_TPC[0]*xyZNA[1]};
2626 for(
int i=0; i<4; i++){
2633 fullTerm = Qnx_TPC[1]*dTermXXYY + Qny_TPC[1]*dTermXYXY;
2635 fullReso = xyZNA[0]*xyZNC[0] + xyZNA[1]*xyZNC[1];
2654 Qtot = QRe*(ZARe*ZARe*ZCRe-2.*ZARe*ZAIm*ZCIm-ZCRe*ZAIm*ZAIm) + QIm*(-ZAIm*ZAIm*ZCIm+2.*ZAIm*ZARe*ZCRe+ZCIm*ZARe*ZARe);
2658 Qtot = QRe*(ZCRe*ZCRe*ZARe-2.*ZCRe*ZCIm*ZAIm-ZARe*ZCIm*ZCIm) + QIm*(-ZCIm*ZCIm*ZAIm+2.*ZCIm*ZCRe*ZARe+ZAIm*ZCRe*ZCRe);
2666 Qtot = QRe*((ZARe*ZARe-ZAIm*ZAIm)*(ZCRe*ZCRe-ZCIm*ZCIm)-(ZAIm*ZARe+ZARe*ZAIm)*(ZCIm*ZCRe+ZCRe*ZCIm))
2667 + QIm*((ZAIm*ZARe+ZARe*ZAIm)*(ZCRe*ZCRe-ZCIm*ZCIm)+(ZCIm*ZCRe+ZCRe*ZCIm)*(ZARe*ZARe-ZAIm*ZAIm));
2711 AliDebug(2,
"\n ... AliAnalysisTaskZDCGainEq::Terminate() is being called ... \n");
2719 AliDebug(2,
"\n\n ::GetWDist => One of vertices is not valid\n\n");
2722 static TMatrixDSym vVb(3);
2724 double dx = v0->GetX()-v1->GetX();
2725 double dy = v0->GetY()-v1->GetY();
2726 double dz = v0->GetZ()-v1->GetZ();
2727 double cov0[6],cov1[6];
2728 v0->GetCovarianceMatrix(cov0);
2729 v1->GetCovarianceMatrix(cov1);
2730 vVb(0,0) = cov0[0]+cov1[0];
2731 vVb(1,1) = cov0[2]+cov1[2];
2732 vVb(2,2) = cov0[5]+cov1[5];
2733 vVb(1,0) = vVb(0,1) = cov0[1]+cov1[1];
2734 vVb(0,2) = vVb(1,2) = vVb(2,0) = vVb(2,1) = 0.;
2736 if (!vVb.IsValid()) {
2737 AliDebug(2,
"Singular Matrix\n");
2740 dist = vVb(0,0)*dx*dx + vVb(1,1)*dy*dy + vVb(2,2)*dz*dz
2741 + 2*vVb(0,1)*dx*dy + 2*vVb(0,2)*dx*dz + 2*vVb(1,2)*dy*dz;
2742 return dist>0 ? TMath::Sqrt(dist) : -1;
2747 const int kMinPlpContrib = 5;
2748 const double kMaxPlpChi2 = 5.0;
2749 const double kMinWDist = 15;
2751 const AliVVertex* vtPrm = 0;
2752 const AliVVertex* vtPlp = 0;
2756 if(!(nPlp=aod->GetNumberOfPileupVerticesTracks()))
2759 vtPrm = aod->GetPrimaryVertex();
2760 if(vtPrm == aod->GetPrimaryVertexSPD())
2765 for(
int ipl=0;ipl<nPlp;ipl++) {
2766 vtPlp = (
const AliVVertex*)aod->GetPileupVertexTracks(ipl);
2767 if (vtPlp->GetNContributors() < kMinPlpContrib)
continue;
2768 if (vtPlp->GetChi2perNDF() > kMaxPlpChi2)
continue;
2773 double wDst =
GetWDist(vtPrm,vtPlp);
2774 if (wDst<kMinWDist)
continue;
TH1F * fHist_ChanWgt_ZDCA
virtual void UserExec(Option_t *option)
TProfile2D * fHist_ZDC_dTermXYXY_VsRun
TProfile2D * fHist_XX_vs_QnA_2DwoCorr_PosMag[4][6]
TProfile2D * fHist_XX_vs_QnC_2DwoCorr_PosMag[4][6]
TProfile2D * fHist_XX_vs_QnA_2DwoCorr_NegMag[4][6]
TProfile * fHist_v3xV1_ZDN_Cent_Comb2
TProfile * fHist_v2xV1_ZDN_Cent_Sep[4]
TH1F * fHist_Psi1_ZDCA_wRectCorr
TProfile * fHist_XX_vs_Obs_woCorr[4][5]
TH1D * fFB_Efficiency_Cent[10]
TH1F * fHist_CutParameters
virtual void Terminate(Option_t *)
TProfile2D * fHist_ZDC_AvgXYplusXY_VsRun
TProfile * fHist_v2xV1_ZDN_Norm_All
AliFlowTrackSimple * GetTrack(Int_t i)
TProfile2D * fHist_ZDCA_AvgSin_VsRun[4]
TH2F * fHist_ZDC_AvgCosNPsiAC[4]
AliMultSelection * fMultSelection
input event
TH1F * fHist_Cent_wiZDCcut
double GetWDist(const AliVVertex *v0, const AliVVertex *v1)
TH2F * fHist_Psi1_ZDCA_RunByRun
TProfile * fHist_ZDN_resol_Norm_XX
TProfile * fHist_v1xV1_ZDN_pTDiff[4][10]
TProfile2D * fHist_znAy_V0_VxVy[90][10]
TH1F * fHist_Cent_woZDCcut
TProfile * fHist_v4xV1_ZDN_Cent_Comb1
TH1F * fHist_ZeroQnXY_Conter
TH2F * fHist_ZDCA_AvgCosNPsi[4]
TProfile * fHist_v3xV1_ZDN_EtaDiff_Comb1[10]
TProfile2D * fHist_ZDC_AvgSinPsiDif_VsRun[4]
TProfile * fHist_Qx_vs_Obs_woCorr[4][5]
TH1F * fHist_PsiZDCA_ZeroQn
TProfile2D * fHist_ZDCC_AvgCos_VsRun[4]
TProfile * fHist_Corr3p_ZDN_Norm_PN
TProfile * fHist_Qx_wiCorr_RunByRun[4]
TProfile * fHist_v2xV1_ZDN_pTDiff_All[10]
TH2F * fHist_Recenter_ZDCAx[20]
TProfile * fHist_v2xV1_ZDN_Refm_All
TProfile * fHist_Reso2EP_TPC_Norm
TProfile * fHist_Corr3p_ZDN_Cent_PN
TProfile2D * fHist_ZDC_AvgCosPsiSum_VsRun[4]
TH2F * fHist_Recenter_ZDCAy[20]
TH2F * fHist_ZDCA_AvgQx_VsCR
TProfile2D * fHist_ZDCC_En_CommonCh[20]
TH2F * fHist_ZDCC_AvgQy_VsCR
TProfile * fHist_Qx_vs_Obs_wiCorr[4][5]
TH2F * fHist_ZDCC_AvgCosNPsi[4]
TProfile * fHist_Corr3p_ZDN_Cent_PP
TH1F * fHist_NormalCentralityBins
TProfile * fHist_v4xV1_ZDN_pTDiff_All[10]
TProfile * fHist_Qx_Trig_woCorr[4]
TH2F * fHist_Vxy_RunAveraged
TProfile2D * fHist_ZDCA_AvgQx_VsRun
Bool_t fRejectPileUpTight
TProfile2D * fHist_ZDCA_En_Run[90]
TProfile2D * fHist_ZDC_AvgXXminusYY_VsRun
TH1F * fHist_Psi1_ZDCA_wGainCorr
TProfile * fHist_Reso2EP_TPC_Cent
TProfile * fHist_XX_vs_Obs_wiCorr[4][5]
TProfile2D * fHist_ZDCA_AvgCos_VsRun[4]
TH1F * fHist_Psi1_ZDCA_wCorrFull
TProfile2D * fHist_ZDC_dTermXXYY_VsRun
TH1F * fHist_Vy_ArrayFinder
TProfile * fHist_Vz_vs_runnum
TH1F * fHist_Psi1_ZDCC_wRectCorr
virtual void UserCreateOutputObjects()
TH2F * fHist_ZDC_AvgSinNPsiAC[4]
TProfile * fHist_ZDN_resol_Refm_All
TProfile * fHist_ZDN_resol_Norm_YY
TProfile2D * fHist_XX_vs_QnC_2DwoCorr_NegMag[4][6]
TH2F * fHist_Recenter_ZDCCx[20]
TProfile2D * fHist_ZDCA_En_CommonCh[20]
TH2F * fHist_ZDCA_AvgSinNPsi[4]
TProfile2D * fHist_znAx_V0_VxVy[90][10]
TProfile * fHist_Corr3p_ZDN_Cent_NN
TProfile * fHist_ZDN_resol_Norm_Sep[2]
TH1F * fHist_PsiSumAC_wiCorr
Bool_t plpMV(const AliAODEvent *aod)
Double_t GetCentrality() const
TH2F * fHist_ZDC_dTermXXYY_VsCR
TProfile2D * fHist_ZDCC_AvgQx_VsRun
TProfile * fHist_ZDN_resol_Cent_Sep[2]
TProfile2D * fHist_ZDC_AvgCosPsiDif_VsRun[4]
TProfile * fHist_XX_Trig_woCorr[4]
TProfile * fHist_v2xV1_ZDN_Norm_Sep[4]
TProfile2D * fHist_ZDC_AvgSinPsiSum_VsRun[4]
TProfile * fHist_v3xV1_ZDN_EtaDiff_Comb2[10]
TH1F * fHist_Vz_ArrayFinder
TH1F * fHist_PsiSumAC_woCorr
TProfile * fHist_Corr3p_ZDN_Norm_PP
TProfile2D * fHist_ZDCC_AvgQy_VsRun
TProfile2D * fHist_ZDCC_En_Run[90]
TProfile * fHist_v4xV1_ZDN_Norm_Comb1
AliFlowEventSimple * fEvent
AliAnalysisUtils * fAnalysisUtil
TProfile2D * fHist_ZDCA_AvgQy_VsRun
TH2F * fHist_ZDCC_AvgSinNPsi[4]
Int_t GetReferenceMultiplicity() const
TProfile * fHist_ZDN_resol_Cent_All
virtual void GetZDC2Qsub(AliFlowVector *Qarray)
TH1F * fHist_Event_counter_vRun
TProfile * fHist_ZDN_resol_Cent_YY
TProfile * fHist_XXYY_vs_Cent_wiCorr[2]
TProfile * fHist_v3xV1_ZDN_Norm_Comb1
TH1F * fHist_ChanWgt_ZDCC
TH1F * fHist_Psi1_ZDCC_wGainCorr
TH1F * fPileUpMultSelCount
TProfile * fHist_XXYY_vs_Cent_woCorr[2]
TH1F * fHist_PsiZDCC_ZeroQn
TH1F * fHist_Vx_ArrayFinder
TList * fListZDCQxy
collection of output
TProfile2D * fHist_ZDCC_AvgSin_VsRun[4]
TProfile * fHist_v1xV1_ZDN_EtaDiff[4][10]
TProfile * fHist_Vy_vs_runnum
TH1F * fHist_PsiSumAC_ZeroQn
TH2F * fHist_Psi1_ZDCC_RunByRun
Bool_t IsPOItype(Int_t poiType) const
TProfile * fHist_XX_Trig_wiCorr[4]
TProfile * fHist_Corr3p_ZDN_Norm_NN
TProfile * fHist_v3xV1_ZDN_Cent_Comb1
virtual ~AliAnalysisTaskZDCGainEq()
TProfile * fHist_Qx_Trig_wiCorr[4]
TH2F * fHist_ZDCC_AvgQx_VsCR
TProfile * fHist_Vx_vs_runnum
TH2F * fHist_ZDCA_AvgQy_VsCR
TProfile * fHist_v3xV1_ZDN_Norm_Comb2
AliAnalysisTaskZDCGainEq()
TProfile * fHist_ZDN_resol_Cent_XX
TProfile2D * fHist_znCy_V0_VxVy[90][10]
TH2F * fHist_Recenter_ZDCCy[20]
TProfile2D * fHist_VZERO_Mult_vsRun[90]
TProfile * fHist_ZDN_resol_Norm_All
TH2F * fHist_ZDC_dTermXYXY_VsCR
TProfile2D * fHist_znCx_V0_VxVy[90][10]
TProfile * fHist_v2xV1_ZDN_Cent_All
TH1F * fHist_Psi1_ZDCC_wCorrFull
Int_t NumberOfTracks() const