]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliCentralitySelectionTask.cxx
Reconstructor for digits and fix of some bugs
[u/mrichter/AliRoot.git] / ANALYSIS / AliCentralitySelectionTask.cxx
index 4398e9b987effec104cca995c4a9bdc3a60916fa..bb06834bdefa358dd21e432ebd464bd92b0e4832 100644 (file)
@@ -131,7 +131,12 @@ AliAnalysisTaskSE(),
   fCSEMIbit(0),
   fCentV0M(0),
   fCentV0A(0),
+  fCentV0A0(0),
+  fCentV0A123(0),
   fCentV0C(0),
+  fCentV0A23(0),
+  fCentV0C01(0),
+  fCentV0S(0),
   fCentV0MEq(0),
   fCentV0AEq(0),
   fCentV0CEq(0),
@@ -143,6 +148,8 @@ AliAnalysisTaskSE(),
   fCentCND(0),
   fCentZNA(0),
   fCentZNC(0),
+  fCentZPA(0),
+  fCentZPC(0),
   fCentNPA(0),
   fCentV0MvsFMD(0),
   fCentTKLvsV0M(0),
@@ -161,9 +168,16 @@ AliAnalysisTaskSE(),
   fCentCNDtrue(0),
   fCentZNAtrue(0),
   fCentZNCtrue(0),
+  fCentZPAtrue(0),
+  fCentZPCtrue(0),
   fHtempV0M(0),
   fHtempV0A(0),
+  fHtempV0A0(0),
+  fHtempV0A123(0),
   fHtempV0C(0),
+  fHtempV0A23(0),
+  fHtempV0C01(0),
+  fHtempV0S(0),
   fHtempV0MEq(0),
   fHtempV0AEq(0),
   fHtempV0CEq(0),
@@ -175,6 +189,8 @@ AliAnalysisTaskSE(),
   fHtempCND(0),
   fHtempZNA(0),
   fHtempZNC(0),
+  fHtempZPA(0),
+  fHtempZPC(0),
   fHtempV0MvsFMD(0),
   fHtempTKLvsV0M(0),
   fHtempZEMvsZDC(0),
@@ -193,10 +209,17 @@ AliAnalysisTaskSE(),
   fHtempCNDtrue(0),
   fHtempZNAtrue(0),
   fHtempZNCtrue(0),
+  fHtempZPAtrue(0),
+  fHtempZPCtrue(0),
   fOutputList(0),
   fHOutCentV0M(0),
   fHOutCentV0A(0),
+  fHOutCentV0A0(0),
+  fHOutCentV0A123(0),
   fHOutCentV0C(0),
+  fHOutCentV0A23(0),
+  fHOutCentV0C01(0),
+  fHOutCentV0S(0),
   fHOutCentV0MEq(0),
   fHOutCentV0AEq(0),
   fHOutCentV0CEq(0),
@@ -231,6 +254,8 @@ AliAnalysisTaskSE(),
   fHOutCentNPA(0),
   fHOutCentZNA(0),
   fHOutCentZNC(0),
+  fHOutCentZPA(0),
+  fHOutCentZPC(0),
   fHOutCentV0MvsFMD(0),
   fHOutCentTKLvsV0M(0),
   fHOutCentZEMvsZDC(0),
@@ -255,10 +280,16 @@ AliAnalysisTaskSE(),
   fHOutCentZNAvsCentTRK(0),
   fHOutCentZNAvsCentCND(0),
   fHOutCentZNAvsCentCL1(0),
+  fHOutCentZNAvsCentZPA(0),
   fHOutMultV0AC(0),
   fHOutMultV0M(0),
   fHOutMultV0A(0),
+  fHOutMultV0A0(0),
+  fHOutMultV0A123(0),
   fHOutMultV0C(0),
+  fHOutMultV0A23(0),
+  fHOutMultV0C01(0),
+  fHOutMultV0S(0),
   fHOutMultV0MEq(0),
   fHOutMultV0AEq(0),
   fHOutMultV0CEq(0),
@@ -276,6 +307,8 @@ AliAnalysisTaskSE(),
   fHOutMultNPA(0),
   fHOutMultZNA(0),
   fHOutMultZNC(0),
+  fHOutMultZPA(0),
+  fHOutMultZPC(0),
   fHOutMultV0MvsZDN(0),
   fHOutMultZEMvsZDN(0),
   fHOutMultV0MvsZDC(0),
@@ -288,6 +321,7 @@ AliAnalysisTaskSE(),
   fHOutMultV0OvsCL1(0),
   fHOutMultV0OvsTRK(0),
   fHOutMultCL1vsTKL(0),
+  fHOutMultZNAvsZPA(0),
   fHOutCentV0Mqual1(0),
   fHOutCentTRKqual1(0),
   fHOutCentCL1qual1(0),
@@ -367,7 +401,12 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fCSEMIbit(0),
   fCentV0M(0),
   fCentV0A(0),
+  fCentV0A0(0),
+  fCentV0A123(0),
   fCentV0C(0),
+  fCentV0A23(0),
+  fCentV0C01(0),
+  fCentV0S(0),
   fCentV0MEq(0),
   fCentV0AEq(0),
   fCentV0CEq(0),
@@ -379,6 +418,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fCentCND(0),
   fCentZNA(0),
   fCentZNC(0),
+  fCentZPA(0),
+  fCentZPC(0),
   fCentNPA(0),
   fCentV0MvsFMD(0),
   fCentTKLvsV0M(0),
@@ -397,9 +438,16 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fCentCNDtrue(0),
   fCentZNAtrue(0),
   fCentZNCtrue(0),
+  fCentZPAtrue(0),
+  fCentZPCtrue(0),
   fHtempV0M(0),
   fHtempV0A(0),
+  fHtempV0A0(0),
+  fHtempV0A123(0),
   fHtempV0C(0),
+  fHtempV0A23(0),
+  fHtempV0C01(0),
+  fHtempV0S(0),
   fHtempV0MEq(0),
   fHtempV0AEq(0),
   fHtempV0CEq(0),
@@ -411,6 +459,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHtempCND(0),
   fHtempZNA(0),
   fHtempZNC(0),
+  fHtempZPA(0),
+  fHtempZPC(0),
   fHtempV0MvsFMD(0),
   fHtempTKLvsV0M(0),
   fHtempZEMvsZDC(0),
@@ -429,10 +479,17 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHtempCNDtrue(0),
   fHtempZNAtrue(0),
   fHtempZNCtrue(0),
+  fHtempZPAtrue(0),
+  fHtempZPCtrue(0),
   fOutputList(0),
   fHOutCentV0M(0),
   fHOutCentV0A(0),
+  fHOutCentV0A0(0),
+  fHOutCentV0A123(0),
   fHOutCentV0C(0),
+  fHOutCentV0A23(0),
+  fHOutCentV0C01(0),
+  fHOutCentV0S(0),
   fHOutCentV0MEq(0),
   fHOutCentV0AEq(0),
   fHOutCentV0CEq(0),
@@ -467,6 +524,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHOutCentNPA(0),
   fHOutCentZNA(0),
   fHOutCentZNC(0),
+  fHOutCentZPA(0),
+  fHOutCentZPC(0),
   fHOutCentV0MvsFMD(0),
   fHOutCentTKLvsV0M(0),
   fHOutCentZEMvsZDC(0),
@@ -491,10 +550,16 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHOutCentZNAvsCentTRK(0),
   fHOutCentZNAvsCentCND(0),
   fHOutCentZNAvsCentCL1(0),
+  fHOutCentZNAvsCentZPA(0),
   fHOutMultV0AC(0),
   fHOutMultV0M(0),
   fHOutMultV0A(0),
+  fHOutMultV0A0(0),
+  fHOutMultV0A123(0),
   fHOutMultV0C(0),
+  fHOutMultV0A23(0),
+  fHOutMultV0C01(0),
+  fHOutMultV0S(0),
   fHOutMultV0MEq(0),
   fHOutMultV0AEq(0),
   fHOutMultV0CEq(0),
@@ -512,6 +577,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHOutMultNPA(0),
   fHOutMultZNA(0),
   fHOutMultZNC(0),
+  fHOutMultZPA(0),
+  fHOutMultZPC(0),
   fHOutMultV0MvsZDN(0),
   fHOutMultZEMvsZDN(0),
   fHOutMultV0MvsZDC(0),
@@ -524,6 +591,7 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHOutMultV0OvsCL1(0),
   fHOutMultV0OvsTRK(0),
   fHOutMultCL1vsTKL(0),
+  fHOutMultZNAvsZPA(0),
   fHOutCentV0Mqual1(0),
   fHOutCentTRKqual1(0),
   fHOutCentCL1qual1(0),
@@ -613,7 +681,12 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fCSEMIbit(ana.fCSEMIbit),
   fCentV0M(ana.fCentV0M),
   fCentV0A(ana.fCentV0A),
+  fCentV0A0(ana.fCentV0A0),
+  fCentV0A123(ana.fCentV0A123),
   fCentV0C(ana.fCentV0C),
+  fCentV0A23(ana.fCentV0A23),
+  fCentV0C01(ana.fCentV0C01),
+  fCentV0S(ana.fCentV0S),
   fCentV0MEq(ana.fCentV0MEq),
   fCentV0AEq(ana.fCentV0AEq),
   fCentV0CEq(ana.fCentV0CEq),
@@ -625,6 +698,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fCentCND(ana.fCentCND),
   fCentZNA(ana.fCentZNA),
   fCentZNC(ana.fCentZNC),
+  fCentZPA(ana.fCentZPA),
+  fCentZPC(ana.fCentZPC),
   fCentNPA(ana.fCentNPA),
   fCentV0MvsFMD(ana.fCentV0MvsFMD),
   fCentTKLvsV0M(ana.fCentTKLvsV0M),
@@ -643,9 +718,16 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fCentCNDtrue(ana.fCentCNDtrue),
   fCentZNAtrue(ana.fCentZNAtrue),
   fCentZNCtrue(ana.fCentZNCtrue),
+  fCentZPAtrue(ana.fCentZPAtrue),
+  fCentZPCtrue(ana.fCentZPCtrue),
   fHtempV0M(ana.fHtempV0M),
   fHtempV0A(ana.fHtempV0A),
+  fHtempV0A0(ana.fHtempV0A0),
+  fHtempV0A123(ana.fHtempV0A123),
   fHtempV0C(ana.fHtempV0C),
+  fHtempV0A23(ana.fHtempV0A23),
+  fHtempV0C01(ana.fHtempV0C01),
+  fHtempV0S(ana.fHtempV0S),
   fHtempV0MEq(ana.fHtempV0MEq),
   fHtempV0AEq(ana.fHtempV0AEq),
   fHtempV0CEq(ana.fHtempV0CEq),
@@ -657,6 +739,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHtempCND(ana.fHtempCND),
   fHtempZNA(ana.fHtempZNA),
   fHtempZNC(ana.fHtempZNC),
+  fHtempZPA(ana.fHtempZPA),
+  fHtempZPC(ana.fHtempZPC),
   fHtempV0MvsFMD(ana.fHtempV0MvsFMD),
   fHtempTKLvsV0M(ana.fHtempTKLvsV0M),
   fHtempZEMvsZDC(ana.fHtempZEMvsZDC),
@@ -675,10 +759,17 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHtempCNDtrue(ana.fHtempCNDtrue),
   fHtempZNAtrue(ana.fHtempZNAtrue),
   fHtempZNCtrue(ana.fHtempZNCtrue),
+  fHtempZPAtrue(ana.fHtempZPAtrue),
+  fHtempZPCtrue(ana.fHtempZPCtrue),
   fOutputList(ana.fOutputList),
   fHOutCentV0M(ana.fHOutCentV0M),
   fHOutCentV0A(ana.fHOutCentV0A),
+  fHOutCentV0A0(ana.fHOutCentV0A0),
+  fHOutCentV0A123(ana.fHOutCentV0A123),
   fHOutCentV0C(ana.fHOutCentV0C),
+  fHOutCentV0A23(ana.fHOutCentV0A23),
+  fHOutCentV0C01(ana.fHOutCentV0C01),
+  fHOutCentV0S(ana.fHOutCentV0S),
   fHOutCentV0MEq(ana.fHOutCentV0MEq),
   fHOutCentV0AEq(ana.fHOutCentV0AEq),
   fHOutCentV0CEq(ana.fHOutCentV0CEq),
@@ -713,6 +804,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHOutCentNPA(ana.fHOutCentNPA),
   fHOutCentZNA(ana.fHOutCentZNA),
   fHOutCentZNC(ana.fHOutCentZNC),
+  fHOutCentZPA(ana.fHOutCentZPA),
+  fHOutCentZPC(ana.fHOutCentZPC),
   fHOutCentV0MvsFMD(ana.fHOutCentV0MvsFMD),
   fHOutCentTKLvsV0M(ana.fHOutCentTKLvsV0M),
   fHOutCentZEMvsZDC(ana.fHOutCentZEMvsZDC),
@@ -737,10 +830,16 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHOutCentZNAvsCentTRK(ana.fHOutCentZNAvsCentTRK),
   fHOutCentZNAvsCentCND(ana.fHOutCentZNAvsCentCND),
   fHOutCentZNAvsCentCL1(ana.fHOutCentZNAvsCentCL1),
+  fHOutCentZNAvsCentZPA(ana.fHOutCentZNAvsCentZPA),
   fHOutMultV0AC(ana.fHOutMultV0AC),
   fHOutMultV0M(ana.fHOutMultV0M),
   fHOutMultV0A(ana.fHOutMultV0A),
+  fHOutMultV0A0(ana.fHOutMultV0A0),
+  fHOutMultV0A123(ana.fHOutMultV0A123),
   fHOutMultV0C(ana.fHOutMultV0C),
+  fHOutMultV0A23(ana.fHOutMultV0A23),
+  fHOutMultV0C01(ana.fHOutMultV0C01),
+  fHOutMultV0S(ana.fHOutMultV0S),
   fHOutMultV0MEq(ana.fHOutMultV0MEq),
   fHOutMultV0AEq(ana.fHOutMultV0AEq),
   fHOutMultV0CEq(ana.fHOutMultV0CEq),
@@ -758,6 +857,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHOutMultNPA(ana.fHOutMultNPA),
   fHOutMultZNA(ana.fHOutMultZNA),
   fHOutMultZNC(ana.fHOutMultZNC),
+  fHOutMultZPA(ana.fHOutMultZPA),
+  fHOutMultZPC(ana.fHOutMultZPC),
   fHOutMultV0MvsZDN(ana.fHOutMultV0MvsZDN),
   fHOutMultZEMvsZDN(ana.fHOutMultZEMvsZDN),
   fHOutMultV0MvsZDC(ana.fHOutMultV0MvsZDC),
@@ -770,6 +871,7 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHOutMultV0OvsCL1(ana.fHOutMultV0OvsCL1),
   fHOutMultV0OvsTRK(ana.fHOutMultV0OvsTRK),
   fHOutMultCL1vsTKL(ana.fHOutMultCL1vsTKL),
+  fHOutMultZNAvsZPA(ana.fHOutMultZNAvsZPA),
   fHOutCentV0Mqual1(ana.fHOutCentV0Mqual1),
   fHOutCentTRKqual1(ana.fHOutCentTRKqual1),
   fHOutCentCL1qual1(ana.fHOutCentCL1qual1),
@@ -813,7 +915,12 @@ void AliCentralitySelectionTask::UserCreateOutputObjects()
     fOutputList->SetOwner();
     fHOutCentV0M     = new TH1F("fHOutCentV0M","fHOutCentV0M; Centrality V0",505,0,101);
     fHOutCentV0A    = new TH1F("fHOutCentV0A","fHOutCentV0A; Centrality V0A",505,0,101);
+    fHOutCentV0A0 = new TH1F("fHOutCentV0A0","fHOutCentV0A0; Centrality V0A-0",505,0,101);
+    fHOutCentV0A123 = new TH1F("fHOutCentV0A123","fHOutCentV0A123; Centrality V0A-123",505,0,101);
     fHOutCentV0C    = new TH1F("fHOutCentV0C","fHOutCentV0C; Centrality V0C",505,0,101);
+    fHOutCentV0A23  = new TH1F("fHOutCentV0A23","fHOutCentV0A23; Centrality V0A-23",505,0,101);
+    fHOutCentV0C01  = new TH1F("fHOutCentV0C01","fHOutCentV0C01; Centrality V0C-01",505,0,101);
+    fHOutCentV0S    = new TH1F("fHOutCentV0S","fHOutCentV0S; Centrality V0A-23 & V0C-01",505,0,101);
     fHOutCentV0MEq     = new TH1F("fHOutCentV0MEq","fHOutCentV0MEq; Centrality V0 equalized",505,0,101);
     fHOutCentV0AEq    = new TH1F("fHOutCentV0AEq","fHOutCentV0AEq; Centrality V0A equalized",505,0,101);
     fHOutCentV0CEq    = new TH1F("fHOutCentV0CEq","fHOutCentV0CEq; Centrality V0C equalized",505,0,101);
@@ -848,6 +955,8 @@ void AliCentralitySelectionTask::UserCreateOutputObjects()
     fHOutCentNPA     = new TH1F("fHOutCentNPA","fHOutCentNPA; Centrality Npart",505,0,101);
     fHOutCentZNA     = new TH1F("fHOutCentZNA","fHOutCentZNA; Centrality ZNA",505,0,101);
     fHOutCentZNC     = new TH1F("fHOutCentZNC","fHOutCentZNC; Centrality ZNC",505,0,101);
+    fHOutCentZPA     = new TH1F("fHOutCentZPA","fHOutCentZPA; Centrality ZPA",505,0,101);
+    fHOutCentZPC     = new TH1F("fHOutCentZPC","fHOutCentZPC; Centrality ZPC",505,0,101);
     fHOutCentV0MvsFMD= new TH1F("fHOutCentV0MvsFMD","fHOutCentV0MvsFMD; Centrality V0 vs FMD",505,0,101);
     fHOutCentTKLvsV0M= new TH1F("fHOutCentTKLvsV0M","fHOutCentTKLvsV0M; Centrality tracklets vs V0",505,0,101);
     fHOutCentZEMvsZDC= new TH1F("fHOutCentZEMvsZDC","fHOutCentZEMvsZDC; Centrality ZEM vs ZDC",505,0,101);
@@ -872,11 +981,17 @@ void AliCentralitySelectionTask::UserCreateOutputObjects()
     fHOutCentZNAvsCentTRK= new TH2F("fHOutCentZNAvsCentTRK","fHOutCentZNAvsCentTRK; Cent ZNA; Cent TRK;", 505,0,101,505,0,101);
     fHOutCentZNAvsCentCND= new TH2F("fHOutCentZNAvsCentCND","fHOutCentZNAvsCentCND; Cent ZNA; Cent CND;", 505,0,101,505,0,101);
     fHOutCentZNAvsCentCL1= new TH2F("fHOutCentZNAvsCentCL1","fHOutCentZNAvsCentCL1; Cent ZNA; Cent CL1;", 505,0,101,505,0,101);
+    fHOutCentZNAvsCentZPA= new TH2F("fHOutCentZNAvsCentZPA","fHOutCentZNAvsCentZPA; Cent ZNA; Cent ZPA;", 505,0,101,505,0,101);
 
     fHOutMultV0AC = new TH2F("fHOutMultV0AC","fHOutMultV0AC; Multiplicity V0A; Multiplicity V0C",1000,0,1000,1000,0,1000);
     fHOutMultV0M  = new TH1F("fHOutMultV0M","fHOutMultV0M; Multiplicity V0",25000,0,25000);
     fHOutMultV0A  = new TH1F("fHOutMultV0A","fHOutMultV0A; Multiplicity V0",25000,0,25000);
+    fHOutMultV0A0  = new TH1F("fHOutMultV0A0","fHOutMultV0A0; Multiplicity V0A-0",25000,0,25000);
+    fHOutMultV0A123  = new TH1F("fHOutMultV0A123","fHOutMultV0A123; Multiplicity V0A-123",25000,0,25000);
     fHOutMultV0C  = new TH1F("fHOutMultV0C","fHOutMultV0C; Multiplicity V0",25000,0,25000);
+    fHOutMultV0A23  = new TH1F("fHOutMultV0A23","fHOutMultV0A23; Multiplicity V0A-23",25000,0,25000);
+    fHOutMultV0C01  = new TH1F("fHOutMultV0C01","fHOutMultV0C01; Multiplicity V0C-01",25000,0,25000);
+    fHOutMultV0S    = new TH1F("fHOutMultV0S","fHOutMultV0S; Multiplicity V0A-23 & V0C-01",25000,0,25000);
     fHOutMultV0MEq  = new TH1F("fHOutMultV0MEq","fHOutMultV0MEq; Multiplicity V0",25000,0,25000);
     fHOutMultV0AEq  = new TH1F("fHOutMultV0AEq","fHOutMultV0AEq; Multiplicity V0",25000,0,25000);
     fHOutMultV0CEq  = new TH1F("fHOutMultV0CEq","fHOutMultV0CEq; Multiplicity V0",25000,0,25000);
@@ -892,10 +1007,12 @@ void AliCentralitySelectionTask::UserCreateOutputObjects()
     fHOutMultCL1 = new TH1F("fHOutMultCL1","fHOutMultCL1; Multiplicity SPD outer",7000,0,7000);
     fHOutMultCND = new TH1F("fHOutMultCND","fHOutMultCND; Multiplicity candle",4000,0,4000);
     fHOutMultNPA = new TH1F("fHOutMultNPA","fHOutMultNPA; Nparticipants",450,0,450);
-    fHOutMultZNA = new TH1F("fHOutMultZNA","fHOutMultZNA; ZNA Energy",500,0,2000);
-    fHOutMultZNC = new TH1F("fHOutMultZNC","fHOutMultZNC; ZNC Energy",500,0,2000);
+    fHOutMultZNA = new TH1F("fHOutMultZNA","fHOutMultZNA; ZNA Energy",2000,0,2000);
+    fHOutMultZNC = new TH1F("fHOutMultZNC","fHOutMultZNC; ZNC Energy",2000,0,2000);
+    fHOutMultZPA = new TH1F("fHOutMultZPA","fHOutMultZPA; ZPA Energy",2000,0,2000);
+    fHOutMultZPC = new TH1F("fHOutMultZPC","fHOutMultZPC; ZPC Energy",2000,0,2000);
 
-    fHOutMultV0MvsZDN = new TH2F("fHOutMultV0MvsZDN","fHOutMultV0MvsZDN; Multiplicity V0; Energy ZDC-N",500,0,30000,500,0,180000);
+    fHOutMultV0MvsZDN = new TH2F("fHOutMultV0MvsZDN","fHOutMultV0MvsZDN; Multiplicity V0; Energy ZDC-N",500,0,1200,500,0,2000);
     fHOutMultZEMvsZDN = new TH2F("fHOutMultZEMvsZDN","fHOutMultZEMvsZDN; Energy ZEM; Energy ZDC-N",500,0,2500,500,0,180000);
     fHOutMultV0MvsZDC = new TH2F("fHOutMultV0MvsZDC","fHOutMultV0MvsZDC; Multiplicity V0; Energy ZDC",500,0,30000,500,0,200000);
     fHOutMultZEMvsZDC = new TH2F("fHOutMultZEMvsZDC","fHOutMultZEMvsZDC; Energy ZEM; Energy ZDC",500,0,2500,500,0,200000);
@@ -910,6 +1027,7 @@ void AliCentralitySelectionTask::UserCreateOutputObjects()
     fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000);
     fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000);
     fHOutMultCL1vsTKL = new TH2F ("fHOutMultCL1vsTKL","fHOutMultCL1vsTKL; Multiplicity SPD outer; Multiplicity tracklets",700,0,7000,700,0,7000);
+    fHOutMultZNAvsZPA = new TH2F ("fHOutMultZNAvsZPA","fHOutMultZNAvsZPA; Energy ZNA; Energy ZPA",500,0,2000,500,0,2000);
     
     fHOutCentV0Mqual1 = new TH1F("fHOutCentV0M_qual1","fHOutCentV0M_qual1; Centrality V0",505,0,101);
     fHOutCentTRKqual1 = new TH1F("fHOutCentTRK_qual1","fHOutCentTRK_qual1; Centrality TPC",505,0,101);
@@ -931,7 +1049,12 @@ void AliCentralitySelectionTask::UserCreateOutputObjects()
   
     fOutputList->Add(fHOutCentV0M);
     fOutputList->Add(fHOutCentV0A);
+    fOutputList->Add(fHOutCentV0A0);
+    fOutputList->Add(fHOutCentV0A123);
     fOutputList->Add(fHOutCentV0C);
+    fOutputList->Add(fHOutCentV0A23);
+    fOutputList->Add(fHOutCentV0C01);
+    fOutputList->Add(fHOutCentV0S);
     fOutputList->Add(fHOutCentV0MEq);
     fOutputList->Add(fHOutCentV0AEq);
     fOutputList->Add(fHOutCentV0CEq);
@@ -966,6 +1089,8 @@ void AliCentralitySelectionTask::UserCreateOutputObjects()
     fOutputList->Add(fHOutCentNPA);
     fOutputList->Add(fHOutCentZNA);
     fOutputList->Add(fHOutCentZNC);
+    fOutputList->Add(fHOutCentZPA);
+    fOutputList->Add(fHOutCentZPC);
     fOutputList->Add(fHOutCentV0MvsFMD);
     fOutputList->Add(fHOutCentTKLvsV0M);
     fOutputList->Add(fHOutCentZEMvsZDC);
@@ -990,11 +1115,17 @@ void AliCentralitySelectionTask::UserCreateOutputObjects()
     fOutputList->Add(fHOutCentZNAvsCentTRK);
     fOutputList->Add(fHOutCentZNAvsCentCND);
     fOutputList->Add(fHOutCentZNAvsCentCL1);
+    fOutputList->Add(fHOutCentZNAvsCentZPA);
 
     fOutputList->Add(fHOutMultV0AC); 
     fOutputList->Add(fHOutMultV0M); 
     fOutputList->Add(fHOutMultV0A); 
+    fOutputList->Add(fHOutMultV0A0); 
+    fOutputList->Add(fHOutMultV0A123); 
     fOutputList->Add(fHOutMultV0C); 
+    fOutputList->Add(fHOutMultV0A23); 
+    fOutputList->Add(fHOutMultV0C01); 
+    fOutputList->Add(fHOutMultV0S); 
     fOutputList->Add(fHOutMultV0MEq); 
     fOutputList->Add(fHOutMultV0AEq); 
     fOutputList->Add(fHOutMultV0CEq); 
@@ -1012,6 +1143,8 @@ void AliCentralitySelectionTask::UserCreateOutputObjects()
     fOutputList->Add(fHOutMultNPA); 
     fOutputList->Add(fHOutMultZNA); 
     fOutputList->Add(fHOutMultZNC); 
+    fOutputList->Add(fHOutMultZPA); 
+    fOutputList->Add(fHOutMultZPC); 
     fOutputList->Add(fHOutMultV0MvsZDN);
     fOutputList->Add(fHOutMultZEMvsZDN);
     fOutputList->Add(fHOutMultV0MvsZDC);
@@ -1024,6 +1157,7 @@ void AliCentralitySelectionTask::UserCreateOutputObjects()
     fOutputList->Add(fHOutMultV0OvsCL1);
     fOutputList->Add(fHOutMultV0OvsTRK);
     fOutputList->Add(fHOutMultCL1vsTKL);
+    fOutputList->Add(fHOutMultZNAvsZPA);
     fOutputList->Add(fHOutCentV0Mqual1);
     fOutputList->Add(fHOutCentTRKqual1);
     fOutputList->Add(fHOutCentCL1qual1);                   
@@ -1070,9 +1204,13 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
   Float_t  zem2Energy = 0.;         //  ZEM2 Energy
   Bool_t   zdcEnergyCal = kFALSE;   // if zdc is calibrated (in pass2)
   Double_t znaTower = 0.;           // common PMT of ZNA 
-  Double_t zncTower = 0.;
+  Double_t zncTower = 0.;           // common PMT of ZNC 
+  Double_t zpaTower = 0.;           // common PMT of ZPA 
+  Double_t zpcTower = 0.;           // common PMT of ZPC 
   Bool_t   znaFired = kFALSE;
   Bool_t   zncFired = kFALSE;
+  Bool_t   zpaFired = kFALSE;
+  Bool_t   zpcFired = kFALSE;
 
   Int_t    nTracks = 0;             //  no. tracks
   Int_t    nTracklets = 0;          //  no. tracklets
@@ -1081,15 +1219,25 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
   Float_t  spdCorr =0;              //  corrected spd2 multiplicity
   Int_t    multCND = 0;             //  no. tracks (candle condition)
 
+  Float_t  multV0A0 = 0;            //  multiplicity from V0 reco side A (ring 0)
+  Float_t  multV0A123 = 0;          //  multiplicity from V0 reco side A (ring 1-2-3)
   Float_t  multV0A  = 0;            //  multiplicity from V0 reco side A
   Float_t  multV0C  = 0;            //  multiplicity from V0 reco side C
+  Float_t  multV0A23 = 0;           //  multiplicity from V0 reco side A (ring 2-3)
+  Float_t  multV0C01 = 0;           //  multiplicity from V0 reco side C (ring 0-1)
   Float_t  multV0AEq  = 0;          //  multiplicity from V0 reco side A
   Float_t  multV0CEq  = 0;          //  multiplicity from V0 reco side C
-  Float_t  multV0ACorr  = 0;            //  multiplicity from V0 reco side A
-  Float_t  multV0CCorr  = 0;            //  multiplicity from V0 reco side C
+  Float_t  multV0A0Corr  = 0;       //  multiplicity from V0 reco side A (ring 0)
+  Float_t  multV0A123Corr  = 0;     //  multiplicity from V0 reco side A (ring 1-2-3)
+  Float_t  multV0A23Corr  = 0;      //  multiplicity from V0 reco side A (ring 2-3)
+  Float_t  multV0C01Corr  = 0;      //  multiplicity from V0 reco side C (ring 0-1)
+  Float_t  multV0SCorr  = 0;        //  multiplicity from V0 reco side A (ring 2-3) & side C (ring 0-1)
+  Float_t  multV0ACorr  = 0;        //  multiplicity from V0 reco side A
+  Float_t  multV0CCorr  = 0;        //  multiplicity from V0 reco side C
   Short_t  multV0AOnline  = 0;      //  multiplicity from V0 reco side A
   Short_t  multV0COnline  = 0;      //  multiplicity from V0 reco side C
   Float_t  v0Corr = 0;              // corrected V0 multiplicity (used for MC)
+  
   Int_t nV0A = 0;
   Int_t nV0C = 0;
 
@@ -1128,12 +1276,17 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
 
   if (esd) {
     if (strcmp(esd->GetESDRun()->GetBeamType(), "A-A") == 0) runType=0;
-    else runType=1;  
+    else runType=1;
+    if (strcmp(esd->GetESDRun()->GetBeamType(), "p-p") == 0) runType=2;  
   } else {
     Int_t runNumber = event->GetRunNumber();
     if ((runNumber >= 136851 && runNumber <= 139517) ||  // LHC10h
        (runNumber >= 166529 && runNumber <= 170593))    // LHC11h
       runType=0;
+    else if ((runNumber >= 188355 && runNumber <= 188366) ||  // LHC12h 
+            (runNumber >= 195344 && runNumber <= 197692))    // LHC13h 
+      runType=1;
+    else runType=2;
   }
 
   esdCent = event->GetCentrality();
@@ -1159,11 +1312,27 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
   multV0A=esdV0->GetMTotV0A();
   multV0C=esdV0->GetMTotV0C();
 
-  multV0ACorr = AliESDUtils::GetCorrV0A(multV0A,zvtx);    
-  multV0CCorr = AliESDUtils::GetCorrV0C(multV0C,zvtx);    
-
-  v0Corr = multV0ACorr+multV0CCorr;
+  // excluding innermost V0A ring
+  for (int i=32; i<40; i++)
+    multV0A0 += esdV0->GetMultiplicity(i);
+  for (int i=40; i<64; i++)
+    multV0A123 += esdV0->GetMultiplicity(i);
 
+  for (int i=48; i<64; i++)
+    multV0A23 += esdV0->GetMultiplicity(i);
+  for (int i=0; i<16; i++)
+    multV0C01 += esdV0->GetMultiplicity(i);
+  
+  
+  multV0A0Corr   = AliESDUtils::GetCorrV0A0(multV0A0,zvtx);    
+  multV0A123Corr = AliESDUtils::GetCorrV0A(multV0A123,zvtx);    
+  multV0ACorr    = AliESDUtils::GetCorrV0A(multV0A,zvtx);    
+  multV0CCorr    = AliESDUtils::GetCorrV0C(multV0C,zvtx);    
+  multV0A23Corr  = AliESDUtils::GetCorrV0A(multV0A23,zvtx);
+  multV0C01Corr  = AliESDUtils::GetCorrV0C(multV0C01,zvtx);
+  multV0SCorr    = multV0A23Corr + multV0C01Corr;
+  v0Corr = multV0A+multV0C; // Todo: C.L. not clear why here we do not use the sum of the corrected values?
+  
   multV0AOnline=esdV0->GetTriggerChargeA(); 
   multV0COnline=esdV0->GetTriggerChargeC(); 
 
@@ -1176,15 +1345,26 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
   // Equalized signals
   multV0AEq=0.;
   multV0CEq=0.;
-  for(Int_t iCh = 4; iCh < 7; ++iCh) {
-    Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
-    multV0AEq += mult;
+  if (esd) { // only for ESD?
+    for(Int_t iCh = 32; iCh < 64; ++iCh) {
+      Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
+      multV0AEq += mult;
+    }
+    for(Int_t iCh = 0; iCh < 32; ++iCh) {
+      Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
+      multV0CEq += mult;
+    }
   }
-  for(Int_t iCh = 0; iCh < 3; ++iCh) {
-    Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
-    multV0CEq += mult;
+  else {
+    for(Int_t iCh = 32; iCh < 64; ++iCh) {
+      Double_t mult = aod->GetVZEROEqMultiplicity(iCh);
+      multV0AEq += mult;
+    }
+    for(Int_t iCh = 0; iCh < 32; ++iCh) {
+      Double_t mult = aod->GetVZEROEqMultiplicity(iCh);
+      multV0CEq += mult;
+    }
   }
-  
   Bool_t kT0BB = kFALSE;    
   if (esd) {
     // ***** T0 info    
@@ -1204,7 +1384,7 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
        AliError("AliAODTZERO not available");
        return;
       }
-    Int_t trig=0;//esdT0->GetT0Trig(); //* Todo: C.L. This info is not in AOD? */
+    Int_t trig=1;//esdT0->GetT0Trig(); //* Todo: C.L. This info is not in AOD? */
     if(trig&1) kT0BB=kTRUE;
     zvtxT0=esdT0->GetT0zVertex();
   }
@@ -1374,11 +1554,6 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
     zem1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0))/8.;
     zem2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1))/8.;
 
-    const Double_t *ZNAtower = esdZDC->GetZN2TowerEnergy(); 
-    znaTower = ZNAtower[0];
-    const Double_t *ZNCtower = esdZDC->GetZN1TowerEnergy();
-    zncTower = ZNCtower[0];
-    
     for (Int_t j = 0; j < 4; ++j) 
       if (esdZDC->GetZDCTDCData(12,j) != 0) 
        znaFired = kTRUE;
@@ -1387,35 +1562,59 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
       if (esdZDC->GetZDCTDCData(10,j) != 0) 
        zncFired = kTRUE;   
 
+    for (Int_t j = 0; j < 4; ++j) 
+      if (esdZDC->GetZDCTDCData(13,j) != 0) 
+       zpaFired = kTRUE;
+    
+    for (Int_t j = 0; j < 4; ++j) 
+      if (esdZDC->GetZDCTDCData(11,j) != 0) 
+       zpcFired = kTRUE;   
+
+    const Double_t *ZNAtower = esdZDC->GetZN2TowerEnergy(); 
+    const Double_t *ZNCtower = esdZDC->GetZN1TowerEnergy();
+    const Double_t *ZPAtower = esdZDC->GetZP2TowerEnergy(); 
+    const Double_t *ZPCtower = esdZDC->GetZP1TowerEnergy();
+    if (znaFired) znaTower = ZNAtower[0];
+    if (zncFired) zncTower = ZNCtower[0];
+    if (zpaFired) zpaTower = ZPAtower[0];
+    if (zpcFired) zpcTower = ZPCtower[0];
+
   } else {
     AliAODHeader *h = aod->GetHeader();
-    zncEnergy = (Float_t) (h->GetZDCN1Energy());
-    zpcEnergy = (Float_t) (h->GetZDCP1Energy());
-    znaEnergy = (Float_t) (h->GetZDCN2Energy());
-    zpaEnergy = (Float_t) (h->GetZDCP2Energy());
+    zncEnergy  = (Float_t) (h->GetZDCN1Energy());
+    zpcEnergy  = (Float_t) (h->GetZDCP1Energy());
+    znaEnergy  = (Float_t) (h->GetZDCN2Energy());
+    zpaEnergy  = (Float_t) (h->GetZDCP2Energy());
     zem1Energy = (Float_t) (h->GetZDCEMEnergy(0))/8.; //Todo: C.L. Should we devide here by 8? It is done in the ESD case!
     zem2Energy = (Float_t) (h->GetZDCEMEnergy(1))/8.;
 
     AliAODZDC *aodZDC = aod->GetZDCData();
     const Double_t *ZNAtower = aodZDC->GetZNATowerEnergy(); 
+    const Double_t *ZNCtower = aodZDC->GetZNCTowerEnergy();
+    const Double_t *ZPAtower = aodZDC->GetZPATowerEnergy(); 
+    const Double_t *ZPCtower = aodZDC->GetZPCTowerEnergy();
     znaTower = ZNAtower[0];
-    const Double_t *ZNCtower = aodZDC->GetZNCTowerEnergy(); 
     zncTower = ZNCtower[0];
+    zpaTower = ZPAtower[0];
+    zpcTower = ZPCtower[0];
 
     znaFired = kFALSE; // trick because info is not stored in AOD
     zncFired = kFALSE; // trick because info is not stored in AOD
-    if (esdCent->GetCentralityPercentile("ZNA") != 101)
-      znaFired = kTRUE;
-    if (esdCent->GetCentralityPercentile("ZNC") != 101)
-      zncFired = kTRUE;
+    zpaFired = kFALSE; // trick because info is not stored in AOD
+    zpcFired = kFALSE; // trick because info is not stored in AOD
+    if (esdCent->GetCentralityPercentile("ZNA") != 101) znaFired = kTRUE;
+    if (esdCent->GetCentralityPercentile("ZNC") != 101) zncFired = kTRUE;
+    if (esdCent->GetCentralityPercentile("ZPA") != 101) zpaFired = kTRUE;
+    if (esdCent->GetCentralityPercentile("ZPC") != 101) zpcFired = kTRUE;
   }
 
   if (esd) {
     // ***** MC info
     AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
     AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
+    AliStack*    stack=0;
     AliMCEvent*  mcEvent=0;
-    if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) && mcEvent->Stack()) {
+    if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) && (stack=mcEvent->Stack())) {
       AliGenHijingEventHeader* hHijing=0;
       AliGenDPMjetEventHeader* dpmHeader=0;
       
@@ -1424,6 +1623,7 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
        hHijing = (AliGenHijingEventHeader*)mcGenH;      
       else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) {
        TList* headers = ((AliGenCocktailEventHeader*)mcGenH)->GetHeaders();
+       //headers->Print();
        hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing"));
        if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing pPb_0"));
        if (!hHijing) hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing_0"));
@@ -1439,7 +1639,8 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
   // ***** Scaling for MC
   if (fIsMCInput) {
     fUseScaling=kFALSE;
-    v0Corr  = Short_t((multV0A+multV0C)  * fV0MScaleFactorMC);
+    v0Corr   = Short_t((multV0A+multV0C)  * fV0MScaleFactorMC);
+    multV0A0 = multV0A0 * fV0MScaleFactorMC;
     multV0A  = multV0A * fV0MScaleFactorMC;
     multV0C  = multV0C * fV0MScaleFactorMC;
   }
@@ -1453,7 +1654,12 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
   // ***** Centrality Selection
   if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((v0Corr)));
   if(fHtempV0A) fCentV0A = fHtempV0A->GetBinContent(fHtempV0A->FindBin((multV0ACorr)));
+  if(fHtempV0A0) fCentV0A0 = fHtempV0A0->GetBinContent(fHtempV0A0->FindBin((multV0A0Corr)));
+  if(fHtempV0A123) fCentV0A123 = fHtempV0A123->GetBinContent(fHtempV0A123->FindBin((multV0A123Corr)));
   if(fHtempV0C) fCentV0C = fHtempV0C->GetBinContent(fHtempV0C->FindBin((multV0CCorr)));
+  if(fHtempV0A23) fCentV0A23 = fHtempV0A23->GetBinContent(fHtempV0A23->FindBin((multV0A23Corr)));
+  if(fHtempV0C01) fCentV0C01 = fHtempV0C01->GetBinContent(fHtempV0C01->FindBin((multV0C01Corr)));
+  if(fHtempV0S)  fCentV0S = fHtempV0S->GetBinContent(fHtempV0S->FindBin((multV0SCorr)));
   if(fHtempV0MEq) fCentV0MEq = fHtempV0MEq->GetBinContent(fHtempV0MEq->FindBin((multV0AEq+multV0CEq)));
   if(fHtempV0AEq) fCentV0AEq = fHtempV0AEq->GetBinContent(fHtempV0AEq->FindBin((multV0AEq)));
   if(fHtempV0CEq) fCentV0CEq = fHtempV0CEq->GetBinContent(fHtempV0CEq->FindBin((multV0CEq)));
@@ -1471,6 +1677,16 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
     if(zncFired) fCentZNC = fHtempZNC->GetBinContent(fHtempZNC->FindBin(zncTower));
     else fCentZNC = 101;
   }
+  if(fHtempZPA) {
+    if(znaFired) fCentZPA = fHtempZPA->GetBinContent(fHtempZPA->FindBin(zpaTower));
+    else fCentZPA = 101;
+  }
+  if(fHtempZPC) {
+    if(zpcFired) fCentZPC = fHtempZPC->GetBinContent(fHtempZPC->FindBin(zpcTower));
+    else fCentZPC = 101;
+  }
+
+
   if(fHtempV0MvsFMD) fCentV0MvsFMD = fHtempV0MvsFMD->GetBinContent(fHtempV0MvsFMD->FindBin((multV0A+multV0C)));
   if(fHtempTKLvsV0M) fCentTKLvsV0M = fHtempTKLvsV0M->GetBinContent(fHtempTKLvsV0M->FindBin(nTracklets));
   if(fHtempZEMvsZDC) fCentZEMvsZDC = fHtempZEMvsZDC->GetBinContent(fHtempZEMvsZDC->FindBin(zem1Energy+zem2Energy,zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
@@ -1523,15 +1739,19 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
       Double_t trk = esdCent->GetCentralityPercentile("TRK");
       Double_t cnd = esdCent->GetCentralityPercentile("CND");
       Double_t zna = esdCent->GetCentralityPercentile("ZNA");
-      Double_t znc = esdCent->GetCentralityPercentile("ZNC");
-      printf("AOD: v0m %.2f %.2f (%.2f) cl1 %.2f %.2f (%.2f) trk %.2f %.2f (%.2f) cnd %.2f %.2f (%.2f) zna %.2f %.2f (%.2f) znc %.2f %.2f (%.2f)\n", 
+      printf("AOD: v0m %.2f %.2f (%.2f) cl1 %.2f %.2f (%.2f) trk %.2f %.2f (%.2f) cnd %.2f %.2f (%.2f) zna %.2f %.2f (%.2f)\n", 
             v0m, fCentV0M, fCentV0M!=0?v0m/fCentV0M:1, cl1, fCentCL1, fCentCL1!=0?cl1/fCentCL1:1, trk, fCentTRK, 
-            fCentTRK!=0?trk/fCentTRK:1, cnd, fCentCND, fCentCND!=0?cnd/fCentCND:1, zna, fCentZNA, fCentZNA!=0?zna/fCentZNA:1, znc, fCentZNC, fCentZNC!=0?znc/fCentZNC:1);
+            fCentTRK!=0?trk/fCentTRK:1, cnd, fCentCND, fCentCND!=0?cnd/fCentCND:1, zna, fCentZNA, fCentZNA!=0?zna/fCentZNA:1);
     }
     esdCent->SetQuality(fQuality);
     esdCent->SetCentralityV0M(fCentV0M);
     esdCent->SetCentralityV0A(fCentV0A);
+    esdCent->SetCentralityV0A0(fCentV0A0);
+    esdCent->SetCentralityV0A123(fCentV0A123);
     esdCent->SetCentralityV0C(fCentV0C);
+    esdCent->SetCentralityV0A23(fCentV0A23);
+    esdCent->SetCentralityV0C01(fCentV0C01);
+    esdCent->SetCentralityV0S(fCentV0S);
     esdCent->SetCentralityV0MEq(fCentV0MEq);
     esdCent->SetCentralityV0AEq(fCentV0AEq);
     esdCent->SetCentralityV0CEq(fCentV0CEq);
@@ -1544,6 +1764,8 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
     esdCent->SetCentralityNPA(fCentNPA);
     esdCent->SetCentralityZNA(fCentZNA);
     esdCent->SetCentralityZNC(fCentZNC);
+    esdCent->SetCentralityZPA(fCentZPA);
+    esdCent->SetCentralityZPC(fCentZPC);
     esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD);
     esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M);
     esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC);
@@ -1567,6 +1789,8 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
       fCentCND = fCentCNDtrue;        
       fCentZNA = fCentZNAtrue;        
       fCentZNC = fCentZNCtrue;        
+      fCentZPA = fCentZPAtrue;        
+      fCentZPC = fCentZPCtrue;        
     }
 
 
@@ -1585,8 +1809,9 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
     if (fPHS) fHOutCentV0MPHS->Fill(fCentV0M);
 
     if (((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==0)) ||
-       ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7) && (runType==1))) { // fill the QA histograms only for MB events!
-      
+       ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7) && (runType==1)) || 
+       ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==2)) ) { // fill the QA histograms only for MB events!
+
       fHOutQuality->Fill(fQuality);
       fHOutVertex->Fill(zvtx);
       fHOutVertexT0->Fill(zvtxT0);
@@ -1594,7 +1819,12 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
       if (fQuality==0) {  
        fHOutCentV0M->Fill(fCentV0M);
        fHOutCentV0A->Fill(fCentV0A);
+       fHOutCentV0A0->Fill(fCentV0A0);
+       fHOutCentV0A123->Fill(fCentV0A123);
        fHOutCentV0C->Fill(fCentV0C);
+        fHOutCentV0A23->Fill(fCentV0A23);
+        fHOutCentV0C01->Fill(fCentV0C01);
+        fHOutCentV0S->Fill(fCentV0S);
        fHOutCentV0MEq->Fill(fCentV0MEq);
        fHOutCentV0AEq->Fill(fCentV0AEq);
        fHOutCentV0CEq->Fill(fCentV0CEq);
@@ -1620,6 +1850,8 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
        fHOutCentNPA->Fill(fCentNPA);
        fHOutCentZNA->Fill(fCentZNA);
        fHOutCentZNC->Fill(fCentZNC);
+       fHOutCentZPA->Fill(fCentZPA);
+       fHOutCentZPC->Fill(fCentZPC);
        fHOutCentV0MvsFMD->Fill(fCentV0MvsFMD);
        fHOutCentTKLvsV0M->Fill(fCentTKLvsV0M);
        fHOutCentZEMvsZDC->Fill(fCentZEMvsZDC);
@@ -1644,11 +1876,17 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
        fHOutCentZNAvsCentTRK->Fill(fCentZNA,fCentTRK);
        fHOutCentZNAvsCentCND->Fill(fCentZNA,fCentCND);
        fHOutCentZNAvsCentCL1->Fill(fCentZNA,fCentCL1);
+       fHOutCentZNAvsCentZPA->Fill(fCentZNA,fCentZPA);
 
        fHOutMultV0AC->Fill(multV0A,multV0C);
        fHOutMultV0M->Fill(multV0ACorr+multV0CCorr);
        fHOutMultV0A->Fill(multV0ACorr);
+       fHOutMultV0A0->Fill(multV0A0Corr);
+       fHOutMultV0A123->Fill(multV0A123Corr);
        fHOutMultV0C->Fill(multV0CCorr);
+        fHOutMultV0A23->Fill(multV0A23Corr);
+        fHOutMultV0C01->Fill(multV0C01Corr);
+        fHOutMultV0S->Fill(multV0SCorr);
        fHOutMultV0MEq->Fill(multV0AEq+multV0CEq);
        fHOutMultV0AEq->Fill(multV0AEq);
        fHOutMultV0CEq->Fill(multV0CEq);
@@ -1666,8 +1904,12 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
        fHOutMultNPA->Fill(Npart);
        if(znaFired)fHOutMultZNA->Fill(znaTower);
        if(zncFired)fHOutMultZNC->Fill(zncTower);
+       if(zpaFired)fHOutMultZPA->Fill(zpaTower);
+       if(zpcFired)fHOutMultZPC->Fill(zpcTower);
+       fHOutMultZNAvsZPA->Fill(znaTower,zpaTower);
 
-       fHOutMultV0MvsZDN->Fill(v0Corr,(zncEnergy+znaEnergy));
+       //fHOutMultV0MvsZDN->Fill(v0Corr,(zncEnergy+znaEnergy));
+       fHOutMultV0MvsZDN->Fill(v0Corr,znaTower);
        fHOutMultZEMvsZDN->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy));
        fHOutMultV0MvsZDC->Fill(v0Corr,(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
        fHOutMultZEMvsZDC->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
@@ -1753,7 +1995,12 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
   // centrality histos
   fHtempV0M       = centOADB->V0hist(); 
   fHtempV0A       = centOADB->V0Ahist(); 
+  fHtempV0A0      = centOADB->V0A0hist(); 
+  fHtempV0A123    = centOADB->V0A123hist(); 
   fHtempV0C       = centOADB->V0Chist(); 
+  fHtempV0A23     = centOADB->V0A23hist(); 
+  fHtempV0C01     = centOADB->V0C01hist(); 
+  fHtempV0S       = centOADB->V0Shist(); 
   fHtempV0MEq     = centOADB->V0Eqhist(); 
   fHtempV0AEq     = centOADB->V0AEqhist(); 
   fHtempV0CEq     = centOADB->V0CEqhist(); 
@@ -1763,6 +2010,8 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
   fHtempFMD       = centOADB->FMDhist();
   fHtempZNA       = centOADB->ZNAhist();
   fHtempZNC       = centOADB->ZNChist();
+  fHtempZPA       = centOADB->ZPAhist();
+  fHtempZPC       = centOADB->ZPChist();
   fHtempZEMvsZDC  = centOADB->ZEMvsZDChist();
 
    if (isHijing) {       
@@ -1779,6 +2028,8 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
      fHtempFMDtrue       = centOADB->FMDhisttrue();
      fHtempZNAtrue       = centOADB->ZNAhisttrue();
      fHtempZNCtrue       = centOADB->ZNChisttrue();
+     fHtempZPAtrue       = centOADB->ZPAhisttrue();
+     fHtempZPCtrue       = centOADB->ZPChisttrue();
    }   else if (isDpmjet)   {
      fHtempNPA           = centOADB->NPAhistDPM();
      fHtempV0Mtrue       = centOADB->V0histtrueDPM(); 
@@ -1793,6 +2044,8 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
      fHtempFMDtrue       = centOADB->FMDhisttrueDPM();
      fHtempZNAtrue       = centOADB->ZNAhisttrueDPM();
      fHtempZNCtrue       = centOADB->ZNChisttrueDPM();
+     fHtempZPAtrue       = centOADB->ZPAhisttrueDPM();
+     fHtempZPCtrue       = centOADB->ZPChisttrueDPM();
    }
 
 
@@ -1800,6 +2053,9 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
   if (!fHtempV0M) AliWarning(Form("Calibration for V0M does not exist in %s", path.Data()));
   if (!fHtempV0A) AliWarning(Form("Calibration for V0A does not exist in %s", path.Data()));
   if (!fHtempV0C) AliWarning(Form("Calibration for V0C does not exist in %s", path.Data()));
+  if (!fHtempV0A23) AliWarning(Form("Calibration for V0A23 does not exist in %s", path.Data()));
+  if (!fHtempV0C01) AliWarning(Form("Calibration for V0C01 does not exist in %s", path.Data()));
+  if (!fHtempV0S) AliWarning(Form("Calibration for V0S does not exist in %s", path.Data()));
   if (!fHtempV0MEq) AliWarning(Form("Calibration for V0MEq does not exist in %s", path.Data()));
   if (!fHtempV0AEq) AliWarning(Form("Calibration for V0AEq does not exist in %s", path.Data()));
   if (!fHtempV0CEq) AliWarning(Form("Calibration for V0CEq does not exist in %s", path.Data()));
@@ -1808,6 +2064,8 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
   if (!fHtempCND) AliWarning(Form("Calibration for CND does not exist in %s", path.Data()));
   if (!fHtempZNA) AliWarning(Form("Calibration for ZNA does not exist in %s", path.Data()));
   if (!fHtempZNC) AliWarning(Form("Calibration for ZNC does not exist in %s", path.Data()));
+  if (!fHtempZPA) AliWarning(Form("Calibration for ZPA does not exist in %s", path.Data()));
+  if (!fHtempZPC) AliWarning(Form("Calibration for ZPC does not exist in %s", path.Data()));
   if (!fHtempFMD) AliWarning(Form("Calibration for FMD does not exist in %s", path.Data()));
   if (!fHtempZEMvsZDC) AliWarning(Form("Calibration for ZEMvsZDC does not exist in %s", path.Data()));
   if (!fHtempNPA) AliWarning(Form("Calibration for NPA does not exist in %s", path.Data()));
@@ -1823,6 +2081,8 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
   if (!fHtempCNDtrue) AliWarning(Form("Calibration for CNDtrue does not exist in %s", path.Data()));
   if (!fHtempZNAtrue) AliWarning(Form("Calibration for ZNAtrue does not exist in %s", path.Data()));
   if (!fHtempZNCtrue) AliWarning(Form("Calibration for ZNCtrue does not exist in %s", path.Data()));
+  if (!fHtempZPAtrue) AliWarning(Form("Calibration for ZPAtrue does not exist in %s", path.Data()));
+  if (!fHtempZPCtrue) AliWarning(Form("Calibration for ZPCtrue does not exist in %s", path.Data()));
   if (!fHtempFMDtrue) AliWarning(Form("Calibration for FMDtrue does not exist in %s", path.Data()));
 
 
@@ -1900,3 +2160,4 @@ Bool_t AliCentralitySelectionTask::IsOutlierV0MZDCECal(Float_t zdc, Float_t v0)
   else 
     return kFALSE;
 }
+