Update from Alberica. Addition of VZERO equalized signals and ZNC.
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 4 Mar 2013 14:17:58 +0000 (14:17 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 4 Mar 2013 14:17:58 +0000 (14:17 +0000)
ANALYSIS/AliCentralitySelectionTask.cxx
ANALYSIS/AliCentralitySelectionTask.h
STEER/STEERBase/AliCentrality.cxx
STEER/STEERBase/AliCentrality.h

index 766d0b5..7930cfd 100644 (file)
@@ -132,6 +132,9 @@ AliAnalysisTaskSE(),
   fCentV0M(0),
   fCentV0A(0),
   fCentV0C(0),
+  fCentV0MEq(0),
+  fCentV0AEq(0),
+  fCentV0CEq(0),
   fCentFMD(0),
   fCentTRK(0),
   fCentTKL(0),
@@ -139,6 +142,7 @@ AliAnalysisTaskSE(),
   fCentCL1(0),
   fCentCND(0),
   fCentZNA(0),
+  fCentZNC(0),
   fCentNPA(0),
   fCentV0MvsFMD(0),
   fCentTKLvsV0M(0),
@@ -146,6 +150,9 @@ AliAnalysisTaskSE(),
   fCentV0Mtrue(0),
   fCentV0Atrue(0),
   fCentV0Ctrue(0),
+  fCentV0MEqtrue(0),
+  fCentV0AEqtrue(0),
+  fCentV0CEqtrue(0),
   fCentFMDtrue(0),
   fCentTRKtrue(0),
   fCentTKLtrue(0),
@@ -153,9 +160,13 @@ AliAnalysisTaskSE(),
   fCentCL1true(0),
   fCentCNDtrue(0),
   fCentZNAtrue(0),
+  fCentZNCtrue(0),
   fHtempV0M(0),
   fHtempV0A(0),
   fHtempV0C(0),
+  fHtempV0MEq(0),
+  fHtempV0AEq(0),
+  fHtempV0CEq(0),
   fHtempFMD(0),
   fHtempTRK(0),
   fHtempTKL(0),
@@ -163,6 +174,7 @@ AliAnalysisTaskSE(),
   fHtempCL1(0),
   fHtempCND(0),
   fHtempZNA(0),
+  fHtempZNC(0),
   fHtempV0MvsFMD(0),
   fHtempTKLvsV0M(0),
   fHtempZEMvsZDC(0),
@@ -170,6 +182,9 @@ AliAnalysisTaskSE(),
   fHtempV0Mtrue(0),
   fHtempV0Atrue(0),
   fHtempV0Ctrue(0),
+  fHtempV0MEqtrue(0),
+  fHtempV0AEqtrue(0),
+  fHtempV0CEqtrue(0),
   fHtempFMDtrue(0),
   fHtempTRKtrue(0),
   fHtempTKLtrue(0),
@@ -177,10 +192,14 @@ AliAnalysisTaskSE(),
   fHtempCL1true(0),
   fHtempCNDtrue(0),
   fHtempZNAtrue(0),
+  fHtempZNCtrue(0),
   fOutputList(0),
   fHOutCentV0M(0),
   fHOutCentV0A(0),
   fHOutCentV0C(0),
+  fHOutCentV0MEq(0),
+  fHOutCentV0AEq(0),
+  fHOutCentV0CEq(0),
   fHOutCentV0MCVHN(0),
   fHOutCentV0MCVLN(0),
   fHOutCentV0MCVHNinMB(0),
@@ -211,6 +230,7 @@ AliAnalysisTaskSE(),
   fHOutCentCND(0),
   fHOutCentNPA(0),
   fHOutCentZNA(0),
+  fHOutCentZNC(0),
   fHOutCentV0MvsFMD(0),
   fHOutCentTKLvsV0M(0),
   fHOutCentZEMvsZDC(0),
@@ -239,6 +259,9 @@ AliAnalysisTaskSE(),
   fHOutMultV0M(0),
   fHOutMultV0A(0),
   fHOutMultV0C(0),
+  fHOutMultV0MEq(0),
+  fHOutMultV0AEq(0),
+  fHOutMultV0CEq(0),
   fHOutMultV0Mnc(0),
   fHOutMultV0Anc(0),
   fHOutMultV0Cnc(0),
@@ -252,6 +275,7 @@ AliAnalysisTaskSE(),
   fHOutMultCND(0),
   fHOutMultNPA(0),
   fHOutMultZNA(0),
+  fHOutMultZNC(0),
   fHOutMultV0MvsZDN(0),
   fHOutMultZEMvsZDN(0),
   fHOutMultV0MvsZDC(0),
@@ -344,6 +368,9 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fCentV0M(0),
   fCentV0A(0),
   fCentV0C(0),
+  fCentV0MEq(0),
+  fCentV0AEq(0),
+  fCentV0CEq(0),
   fCentFMD(0),
   fCentTRK(0),
   fCentTKL(0),
@@ -351,6 +378,7 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fCentCL1(0),
   fCentCND(0),
   fCentZNA(0),
+  fCentZNC(0),
   fCentNPA(0),
   fCentV0MvsFMD(0),
   fCentTKLvsV0M(0),
@@ -358,6 +386,9 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fCentV0Mtrue(0),
   fCentV0Atrue(0),
   fCentV0Ctrue(0),
+  fCentV0MEqtrue(0),
+  fCentV0AEqtrue(0),
+  fCentV0CEqtrue(0),
   fCentFMDtrue(0),
   fCentTRKtrue(0),
   fCentTKLtrue(0),
@@ -365,9 +396,13 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fCentCL1true(0),
   fCentCNDtrue(0),
   fCentZNAtrue(0),
+  fCentZNCtrue(0),
   fHtempV0M(0),
   fHtempV0A(0),
   fHtempV0C(0),
+  fHtempV0MEq(0),
+  fHtempV0AEq(0),
+  fHtempV0CEq(0),
   fHtempFMD(0),
   fHtempTRK(0),
   fHtempTKL(0),
@@ -375,6 +410,7 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHtempCL1(0),
   fHtempCND(0),
   fHtempZNA(0),
+  fHtempZNC(0),
   fHtempV0MvsFMD(0),
   fHtempTKLvsV0M(0),
   fHtempZEMvsZDC(0),
@@ -382,6 +418,9 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHtempV0Mtrue(0),
   fHtempV0Atrue(0),
   fHtempV0Ctrue(0),
+  fHtempV0MEqtrue(0),
+  fHtempV0AEqtrue(0),
+  fHtempV0CEqtrue(0),
   fHtempFMDtrue(0),
   fHtempTRKtrue(0),
   fHtempTKLtrue(0),
@@ -389,10 +428,14 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHtempCL1true(0),
   fHtempCNDtrue(0),
   fHtempZNAtrue(0),
+  fHtempZNCtrue(0),
   fOutputList(0),
   fHOutCentV0M(0),
   fHOutCentV0A(0),
   fHOutCentV0C(0),
+  fHOutCentV0MEq(0),
+  fHOutCentV0AEq(0),
+  fHOutCentV0CEq(0),
   fHOutCentV0MCVHN(0),
   fHOutCentV0MCVLN(0),
   fHOutCentV0MCVHNinMB(0),
@@ -423,6 +466,7 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHOutCentCND(0),
   fHOutCentNPA(0),
   fHOutCentZNA(0),
+  fHOutCentZNC(0),
   fHOutCentV0MvsFMD(0),
   fHOutCentTKLvsV0M(0),
   fHOutCentZEMvsZDC(0),
@@ -451,6 +495,9 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHOutMultV0M(0),
   fHOutMultV0A(0),
   fHOutMultV0C(0),
+  fHOutMultV0MEq(0),
+  fHOutMultV0AEq(0),
+  fHOutMultV0CEq(0),
   fHOutMultV0Mnc(0),
   fHOutMultV0Anc(0),
   fHOutMultV0Cnc(0),
@@ -464,6 +511,7 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHOutMultCND(0),
   fHOutMultNPA(0),
   fHOutMultZNA(0),
+  fHOutMultZNC(0),
   fHOutMultV0MvsZDN(0),
   fHOutMultZEMvsZDN(0),
   fHOutMultV0MvsZDC(0),
@@ -566,6 +614,9 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fCentV0M(ana.fCentV0M),
   fCentV0A(ana.fCentV0A),
   fCentV0C(ana.fCentV0C),
+  fCentV0MEq(ana.fCentV0MEq),
+  fCentV0AEq(ana.fCentV0AEq),
+  fCentV0CEq(ana.fCentV0CEq),
   fCentFMD(ana.fCentFMD),
   fCentTRK(ana.fCentTRK),
   fCentTKL(ana.fCentTKL),
@@ -573,6 +624,7 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fCentCL1(ana.fCentCL1),
   fCentCND(ana.fCentCND),
   fCentZNA(ana.fCentZNA),
+  fCentZNC(ana.fCentZNC),
   fCentNPA(ana.fCentNPA),
   fCentV0MvsFMD(ana.fCentV0MvsFMD),
   fCentTKLvsV0M(ana.fCentTKLvsV0M),
@@ -580,6 +632,9 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fCentV0Mtrue(ana.fCentV0Mtrue),
   fCentV0Atrue(ana.fCentV0Atrue),
   fCentV0Ctrue(ana.fCentV0Ctrue),
+  fCentV0MEqtrue(ana.fCentV0MEqtrue),
+  fCentV0AEqtrue(ana.fCentV0AEqtrue),
+  fCentV0CEqtrue(ana.fCentV0CEqtrue),
   fCentFMDtrue(ana.fCentFMDtrue),
   fCentTRKtrue(ana.fCentTRKtrue),
   fCentTKLtrue(ana.fCentTKLtrue),
@@ -587,9 +642,13 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fCentCL1true(ana.fCentCL1true),
   fCentCNDtrue(ana.fCentCNDtrue),
   fCentZNAtrue(ana.fCentZNAtrue),
+  fCentZNCtrue(ana.fCentZNCtrue),
   fHtempV0M(ana.fHtempV0M),
   fHtempV0A(ana.fHtempV0A),
   fHtempV0C(ana.fHtempV0C),
+  fHtempV0MEq(ana.fHtempV0MEq),
+  fHtempV0AEq(ana.fHtempV0AEq),
+  fHtempV0CEq(ana.fHtempV0CEq),
   fHtempFMD(ana.fHtempFMD),
   fHtempTRK(ana.fHtempTRK),
   fHtempTKL(ana.fHtempTKL),
@@ -597,6 +656,7 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHtempCL1(ana.fHtempCL1),
   fHtempCND(ana.fHtempCND),
   fHtempZNA(ana.fHtempZNA),
+  fHtempZNC(ana.fHtempZNC),
   fHtempV0MvsFMD(ana.fHtempV0MvsFMD),
   fHtempTKLvsV0M(ana.fHtempTKLvsV0M),
   fHtempZEMvsZDC(ana.fHtempZEMvsZDC),
@@ -604,6 +664,9 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHtempV0Mtrue(ana.fHtempV0Mtrue),
   fHtempV0Atrue(ana.fHtempV0Atrue),
   fHtempV0Ctrue(ana.fHtempV0Ctrue),
+  fHtempV0MEqtrue(ana.fHtempV0MEqtrue),
+  fHtempV0AEqtrue(ana.fHtempV0AEqtrue),
+  fHtempV0CEqtrue(ana.fHtempV0CEqtrue),
   fHtempFMDtrue(ana.fHtempFMDtrue),
   fHtempTRKtrue(ana.fHtempTRKtrue),
   fHtempTKLtrue(ana.fHtempTKLtrue),
@@ -611,10 +674,14 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHtempCL1true(ana.fHtempCL1true),
   fHtempCNDtrue(ana.fHtempCNDtrue),
   fHtempZNAtrue(ana.fHtempZNAtrue),
+  fHtempZNCtrue(ana.fHtempZNCtrue),
   fOutputList(ana.fOutputList),
   fHOutCentV0M(ana.fHOutCentV0M),
   fHOutCentV0A(ana.fHOutCentV0A),
   fHOutCentV0C(ana.fHOutCentV0C),
+  fHOutCentV0MEq(ana.fHOutCentV0MEq),
+  fHOutCentV0AEq(ana.fHOutCentV0AEq),
+  fHOutCentV0CEq(ana.fHOutCentV0CEq),
   fHOutCentV0MCVHN(ana.fHOutCentV0MCVHN),
   fHOutCentV0MCVLN(ana.fHOutCentV0MCVLN),
   fHOutCentV0MCVHNinMB(ana.fHOutCentV0MCVHNinMB),
@@ -645,6 +712,7 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHOutCentCND(ana.fHOutCentCND),
   fHOutCentNPA(ana.fHOutCentNPA),
   fHOutCentZNA(ana.fHOutCentZNA),
+  fHOutCentZNC(ana.fHOutCentZNC),
   fHOutCentV0MvsFMD(ana.fHOutCentV0MvsFMD),
   fHOutCentTKLvsV0M(ana.fHOutCentTKLvsV0M),
   fHOutCentZEMvsZDC(ana.fHOutCentZEMvsZDC),
@@ -673,6 +741,9 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHOutMultV0M(ana.fHOutMultV0M),
   fHOutMultV0A(ana.fHOutMultV0A),
   fHOutMultV0C(ana.fHOutMultV0C),
+  fHOutMultV0MEq(ana.fHOutMultV0MEq),
+  fHOutMultV0AEq(ana.fHOutMultV0AEq),
+  fHOutMultV0CEq(ana.fHOutMultV0CEq),
   fHOutMultV0Mnc(ana.fHOutMultV0Mnc),
   fHOutMultV0Anc(ana.fHOutMultV0Anc),
   fHOutMultV0Cnc(ana.fHOutMultV0Cnc),
@@ -686,6 +757,7 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHOutMultCND(ana.fHOutMultCND),
   fHOutMultNPA(ana.fHOutMultNPA),
   fHOutMultZNA(ana.fHOutMultZNA),
+  fHOutMultZNC(ana.fHOutMultZNC),
   fHOutMultV0MvsZDN(ana.fHOutMultV0MvsZDN),
   fHOutMultZEMvsZDN(ana.fHOutMultZEMvsZDN),
   fHOutMultV0MvsZDC(ana.fHOutMultV0MvsZDC),
@@ -982,7 +1054,9 @@ 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.;
   Bool_t   znaFired = kFALSE;
+  Bool_t   zncFired = kFALSE;
 
   Int_t    nTracks = 0;             //  no. tracks
   Int_t    nTracklets = 0;          //  no. tracklets
@@ -993,6 +1067,8 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
 
   Float_t  multV0A  = 0;            //  multiplicity from V0 reco side A
   Float_t  multV0C  = 0;            //  multiplicity from V0 reco side C
+  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
   Short_t  multV0AOnline  = 0;      //  multiplicity from V0 reco side A
@@ -1081,6 +1157,18 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
     if (esdV0->GetBBFlag(i+32)) nV0A++;
   }
     
+  // Equalized signals
+  multV0AEq=0.;
+  multV0CEq=0.;
+  for(Int_t iCh = 4; iCh < 7; ++iCh) {
+    Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
+    multV0AEq += mult;
+  }
+  for(Int_t iCh = 0; iCh < 3; ++iCh) {
+    Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
+    multV0CEq += mult;
+  }
+  
   Bool_t kT0BB = kFALSE;    
   if (esd) {
     // ***** T0 info    
@@ -1272,12 +1360,17 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
 
     const Double_t *ZNAtower = esdZDC->GetZN2TowerEnergy(); 
     znaTower = ZNAtower[0];
-
-    for (Int_t j = 0; j < 4; ++j) {
-      if (esdZDC->GetZDCTDCData(12,j) != 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;
-      }
-    } 
+    
+    for (Int_t j = 0; j < 4; ++j) 
+      if (esdZDC->GetZDCTDCData(10,j) != 0) 
+       zncFired = kTRUE;   
+
   } else {
     AliAODHeader *h = aod->GetHeader();
     zncEnergy = (Float_t) (h->GetZDCN1Energy());
@@ -1340,6 +1433,9 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
   if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((v0Corr)));
   if(fHtempV0A) fCentV0A = fHtempV0A->GetBinContent(fHtempV0A->FindBin((multV0ACorr)));
   if(fHtempV0C) fCentV0C = fHtempV0C->GetBinContent(fHtempV0C->FindBin((multV0CCorr)));
+  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)));
   if(fHtempFMD) fCentFMD = fHtempFMD->GetBinContent(fHtempFMD->FindBin((multFMDA+multFMDC)));
   if(fHtempTRK) fCentTRK = fHtempTRK->GetBinContent(fHtempTRK->FindBin(nTracks));
   if(fHtempTKL) fCentTKL = fHtempTKL->GetBinContent(fHtempTKL->FindBin(nTracklets));
@@ -1350,6 +1446,10 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
     if(znaFired) fCentZNA = fHtempZNA->GetBinContent(fHtempZNA->FindBin(znaTower));
     else fCentZNA = 101;
   }
+  if(fHtempZNC) {
+    if(zncFired) fCentZNC = fHtempZNC->GetBinContent(fHtempZNC->FindBin(zncTower));
+    else fCentZNC = 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));
@@ -1358,6 +1458,9 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
   if(fHtempV0Mtrue) fCentV0Mtrue = fHtempV0Mtrue->GetBinContent(fHtempV0Mtrue->FindBin((multV0ACorr+multV0CCorr)));
   if(fHtempV0Atrue) fCentV0Atrue = fHtempV0Atrue->GetBinContent(fHtempV0Atrue->FindBin((multV0ACorr)));
   if(fHtempV0Ctrue) fCentV0Ctrue = fHtempV0Ctrue->GetBinContent(fHtempV0Ctrue->FindBin((multV0CCorr)));
+  if(fHtempV0MEqtrue) fCentV0MEqtrue = fHtempV0MEqtrue->GetBinContent(fHtempV0MEqtrue->FindBin((multV0AEq+multV0CEq)));
+  if(fHtempV0AEqtrue) fCentV0AEqtrue = fHtempV0AEqtrue->GetBinContent(fHtempV0AEqtrue->FindBin((multV0AEq)));
+  if(fHtempV0CEqtrue) fCentV0CEqtrue = fHtempV0CEqtrue->GetBinContent(fHtempV0CEqtrue->FindBin((multV0CEq)));
   if(fHtempFMDtrue) fCentFMDtrue = fHtempFMDtrue->GetBinContent(fHtempFMDtrue->FindBin((multFMDA+multFMDC)));
   if(fHtempTRKtrue) fCentTRKtrue = fHtempTRKtrue->GetBinContent(fHtempTRKtrue->FindBin(nTracks));
   if(fHtempTKLtrue) fCentTKLtrue = fHtempTKLtrue->GetBinContent(fHtempTKLtrue->FindBin(nTracklets));
@@ -1365,6 +1468,7 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
   if(fHtempCL1true) fCentCL1true = fHtempCL1true->GetBinContent(fHtempCL1true->FindBin(spdCorr));
   if(fHtempCNDtrue) fCentCNDtrue = fHtempCNDtrue->GetBinContent(fHtempCNDtrue->FindBin(multCND));
   if(fHtempZNAtrue) fCentZNAtrue = fHtempZNAtrue->GetBinContent(fHtempZNAtrue->FindBin(znaTower));
+  if(fHtempZNCtrue) fCentZNCtrue = fHtempZNCtrue->GetBinContent(fHtempZNCtrue->FindBin(zncTower));
    
 
   // ***** Cleaning
@@ -1406,6 +1510,9 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
     esdCent->SetCentralityV0M(fCentV0M);
     esdCent->SetCentralityV0A(fCentV0A);
     esdCent->SetCentralityV0C(fCentV0C);
+    esdCent->SetCentralityV0MEq(fCentV0MEq);
+    esdCent->SetCentralityV0AEq(fCentV0AEq);
+    esdCent->SetCentralityV0CEq(fCentV0CEq);
     esdCent->SetCentralityFMD(fCentFMD);
     esdCent->SetCentralityTRK(fCentTRK);
     esdCent->SetCentralityTKL(fCentTKL);
@@ -1414,6 +1521,7 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
     esdCent->SetCentralityCND(fCentCND);
     esdCent->SetCentralityNPA(fCentNPA);
     esdCent->SetCentralityZNA(fCentZNA);
+    esdCent->SetCentralityZNC(fCentZNC);
     esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD);
     esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M);
     esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC);
@@ -1426,6 +1534,9 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
       fCentV0M = fCentV0Mtrue;        
       fCentV0A = fCentV0Atrue;        
       fCentV0C = fCentV0Ctrue;        
+      fCentV0MEq = fCentV0MEqtrue;        
+      fCentV0AEq = fCentV0AEqtrue;        
+      fCentV0CEq = fCentV0CEqtrue;        
       fCentFMD = fCentFMDtrue;        
       fCentTRK = fCentTRKtrue;        
       fCentTKL = fCentTKLtrue;        
@@ -1433,6 +1544,7 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
       fCentCL1 = fCentCL1true;        
       fCentCND = fCentCNDtrue;        
       fCentZNA = fCentZNAtrue;        
+      fCentZNC = fCentZNCtrue;        
     }
 
 
@@ -1461,6 +1573,9 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
        fHOutCentV0M->Fill(fCentV0M);
        fHOutCentV0A->Fill(fCentV0A);
        fHOutCentV0C->Fill(fCentV0C);
+       fHOutCentV0MEq->Fill(fCentV0MEq);
+       fHOutCentV0AEq->Fill(fCentV0AEq);
+       fHOutCentV0CEq->Fill(fCentV0CEq);
        
        if (fCVHNbit)  fHOutCentV0MCVHNinMB->Fill(fCentV0M);
        if (fCVLNbit)  fHOutCentV0MCVLNinMB->Fill(fCentV0M);
@@ -1482,6 +1597,7 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
        fHOutCentCND->Fill(fCentCND);
        fHOutCentNPA->Fill(fCentNPA);
        fHOutCentZNA->Fill(fCentZNA);
+       fHOutCentZNC->Fill(fCentZNC);
        fHOutCentV0MvsFMD->Fill(fCentV0MvsFMD);
        fHOutCentTKLvsV0M->Fill(fCentTKLvsV0M);
        fHOutCentZEMvsZDC->Fill(fCentZEMvsZDC);
@@ -1511,6 +1627,9 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
        fHOutMultV0M->Fill(multV0ACorr+multV0CCorr);
        fHOutMultV0A->Fill(multV0ACorr);
        fHOutMultV0C->Fill(multV0CCorr);
+       fHOutMultV0MEq->Fill(multV0AEq+multV0CEq);
+       fHOutMultV0AEq->Fill(multV0AEq);
+       fHOutMultV0CEq->Fill(multV0CEq);
        fHOutMultV0Mnc->Fill(multV0A+multV0C);
        fHOutMultV0Anc->Fill(multV0A);
        fHOutMultV0Cnc->Fill(multV0C);
@@ -1523,7 +1642,8 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
        fHOutMultCL1->Fill(spdCorr);
        fHOutMultCND->Fill(multCND);
        fHOutMultNPA->Fill(Npart);
-       fHOutMultZNA->Fill(znaTower);
+       if(znaFired)fHOutMultZNA->Fill(znaTower);
+       if(zncFired)fHOutMultZNC->Fill(zncTower);
 
        fHOutMultV0MvsZDN->Fill(v0Corr,(zncEnergy+znaEnergy));
        fHOutMultZEMvsZDN->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy));
@@ -1612,43 +1732,60 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
   fHtempV0M       = centOADB->V0hist(); 
   fHtempV0A       = centOADB->V0Ahist(); 
   fHtempV0C       = centOADB->V0Chist(); 
+  fHtempV0MEq     = centOADB->V0Eqhist(); 
+  fHtempV0AEq     = centOADB->V0AEqhist(); 
+  fHtempV0CEq     = centOADB->V0CEqhist(); 
   fHtempTRK       = centOADB->TPChist();
   fHtempCL1       = centOADB->SPDhist();
   fHtempCND       = centOADB->CNDhist();
   fHtempFMD       = centOADB->FMDhist();
   fHtempZNA       = centOADB->ZNAhist();
+  fHtempZNC       = centOADB->ZNChist();
   fHtempZEMvsZDC  = centOADB->ZEMvsZDChist();
 
-  if (isHijing) {       
-    fHtempNPA           = centOADB->NPAhist();
-    fHtempV0Mtrue       = centOADB->V0histtrue(); 
-    fHtempV0Atrue       = centOADB->V0Ahisttrue(); 
-    fHtempV0Ctrue       = centOADB->V0Chisttrue(); 
-    fHtempTRKtrue       = centOADB->TPChisttrue();
-    fHtempCL1true       = centOADB->SPDhisttrue();
-    fHtempCNDtrue       = centOADB->CNDhisttrue();
-    fHtempFMDtrue       = centOADB->FMDhisttrue();
-    fHtempZNAtrue       = centOADB->ZNAhisttrue();
-  }   else if (isDpmjet)   {
-    fHtempNPA           = centOADB->NPAhistDPM();
-    fHtempV0Mtrue       = centOADB->V0histtrueDPM(); 
-    fHtempV0Atrue       = centOADB->V0AhisttrueDPM(); 
-    fHtempV0Ctrue       = centOADB->V0ChisttrueDPM(); 
-    fHtempTRKtrue       = centOADB->TPChisttrueDPM();
-    fHtempCL1true       = centOADB->SPDhisttrueDPM();
-    fHtempCNDtrue       = centOADB->CNDhisttrueDPM();
-    fHtempFMDtrue       = centOADB->FMDhisttrueDPM();
-    fHtempZNAtrue       = centOADB->ZNAhisttrueDPM();
-  }
-
-  TString path = gSystem->ExpandPathName(fileName.Data());
+   if (isHijing) {       
+     fHtempNPA           = centOADB->NPAhist();
+     fHtempV0Mtrue       = centOADB->V0histtrue(); 
+     fHtempV0Atrue       = centOADB->V0Ahisttrue(); 
+     fHtempV0Ctrue       = centOADB->V0Chisttrue(); 
+     fHtempV0MEqtrue     = centOADB->V0Eqhisttrue(); 
+     fHtempV0AEqtrue     = centOADB->V0AEqhisttrue(); 
+     fHtempV0CEqtrue     = centOADB->V0CEqhisttrue(); 
+     fHtempTRKtrue       = centOADB->TPChisttrue();
+     fHtempCL1true       = centOADB->SPDhisttrue();
+     fHtempCNDtrue       = centOADB->CNDhisttrue();
+     fHtempFMDtrue       = centOADB->FMDhisttrue();
+     fHtempZNAtrue       = centOADB->ZNAhisttrue();
+     fHtempZNCtrue       = centOADB->ZNChisttrue();
+   }   else if (isDpmjet)   {
+     fHtempNPA           = centOADB->NPAhistDPM();
+     fHtempV0Mtrue       = centOADB->V0histtrueDPM(); 
+     fHtempV0Atrue       = centOADB->V0AhisttrueDPM(); 
+     fHtempV0Ctrue       = centOADB->V0ChisttrueDPM(); 
+     fHtempV0MEqtrue     = centOADB->V0EqhisttrueDPM(); 
+     fHtempV0AEqtrue     = centOADB->V0AEqhisttrueDPM(); 
+     fHtempV0CEqtrue     = centOADB->V0CEqhisttrueDPM(); 
+     fHtempTRKtrue       = centOADB->TPChisttrueDPM();
+     fHtempCL1true       = centOADB->SPDhisttrueDPM();
+     fHtempCNDtrue       = centOADB->CNDhisttrueDPM();
+     fHtempFMDtrue       = centOADB->FMDhisttrueDPM();
+     fHtempZNAtrue       = centOADB->ZNAhisttrueDPM();
+     fHtempZNCtrue       = centOADB->ZNChisttrueDPM();
+   }
+
+
+    TString path = gSystem->ExpandPathName(fileName.Data());
   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 (!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()));
   if (!fHtempTRK) AliWarning(Form("Calibration for TRK does not exist in %s", path.Data()));
   if (!fHtempCL1) AliWarning(Form("Calibration for CL1 does not exist in %s", path.Data()));
   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 (!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()));
@@ -1656,12 +1793,17 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
   if (!fHtempV0Mtrue) AliWarning(Form("Calibration for V0Mtrue does not exist in %s", path.Data()));
   if (!fHtempV0Atrue) AliWarning(Form("Calibration for V0Atrue does not exist in %s", path.Data()));
   if (!fHtempV0Ctrue) AliWarning(Form("Calibration for V0Ctrue does not exist in %s", path.Data()));
+  if (!fHtempV0MEqtrue) AliWarning(Form("Calibration for V0MEqtrue does not exist in %s", path.Data()));
+  if (!fHtempV0AEqtrue) AliWarning(Form("Calibration for V0AEqtrue does not exist in %s", path.Data()));
+  if (!fHtempV0CEqtrue) AliWarning(Form("Calibration for V0CEqtrue does not exist in %s", path.Data()));
   if (!fHtempTRKtrue) AliWarning(Form("Calibration for TRKtrue does not exist in %s", path.Data()));
   if (!fHtempCL1true) AliWarning(Form("Calibration for CL1true does not exist in %s", path.Data()));
   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 (!fHtempFMDtrue) AliWarning(Form("Calibration for FMDtrue does not exist in %s", path.Data()));
 
+
   // scale factors
   fV0MScaleFactor    = centOADB->V0MScaleFactor();
   fSPDScaleFactor    = centOADB->SPDScaleFactor();
index 05259a6..2b7b696 100644 (file)
@@ -108,6 +108,9 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   Float_t  fCentV0M;            // percentile centrality from V0
   Float_t  fCentV0A;            // percentile centrality from V0A
   Float_t  fCentV0C;            // percentile centrality from V0C
+  Float_t  fCentV0MEq;          // percentile centrality from V0 equalized channel
+  Float_t  fCentV0AEq;          // percentile centrality from V0A equalized channel
+  Float_t  fCentV0CEq;          // percentile centrality from V0C equalized channel
   Float_t  fCentFMD;            // percentile centrality from FMD
   Float_t  fCentTRK;            // percentile centrality from tracks
   Float_t  fCentTKL;            // percentile centrality from tracklets
@@ -115,6 +118,7 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   Float_t  fCentCL1;            // percentile centrality from clusters in layer 1
   Float_t  fCentCND;            // percentile centrality from candle 
   Float_t  fCentZNA;            // percentile centrality from ZNA 
+  Float_t  fCentZNC;            // percentile centrality from ZNC 
   Float_t  fCentNPA;            // percentile centrality from Npart (MC) 
   Float_t  fCentV0MvsFMD;       // percentile centrality from V0 vs FMD
   Float_t  fCentTKLvsV0M;       // percentile centrality from tracklets vs V0
@@ -123,6 +127,9 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   Float_t  fCentV0Mtrue;        // percentile centrality from true (sim) V0A+V0C
   Float_t  fCentV0Atrue;        // percentile centrality from true (sim) V0A
   Float_t  fCentV0Ctrue;        // percentile centrality from true (sim) V0C
+  Float_t  fCentV0MEqtrue;      // percentile centrality from true (sim) V0A+V0C equalized channel
+  Float_t  fCentV0AEqtrue;      // percentile centrality from true (sim) V0A equalized channel
+  Float_t  fCentV0CEqtrue;      // percentile centrality from true (sim) V0C equalized channel
   Float_t  fCentFMDtrue;        // percentile centrality from true (sim) FMD
   Float_t  fCentTRKtrue;        // percentile centrality from true (sim) tracks
   Float_t  fCentTKLtrue;        // percentile centrality from true (sim) tracklets
@@ -130,11 +137,15 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   Float_t  fCentCL1true;        // percentile centrality from true (sim) Clusters in layer 1
   Float_t  fCentCNDtrue;        // percentile centrality from true (sim) tracks (candle condition)
   Float_t  fCentZNAtrue;        // percentile centrality from true (sim) ZNA
+  Float_t  fCentZNCtrue;        // percentile centrality from true (sim) ZNC
 
 
   TH1F    *fHtempV0M;           // histogram with centrality vs multiplicity using V0
   TH1F    *fHtempV0A;           // histogram with centrality vs multiplicity using V0A
   TH1F    *fHtempV0C;           // histogram with centrality vs multiplicity using V0C
+  TH1F    *fHtempV0MEq;         // histogram with centrality vs multiplicity using V0  equalized channel
+  TH1F    *fHtempV0AEq;         // histogram with centrality vs multiplicity using V0A equalized channel
+  TH1F    *fHtempV0CEq;         // histogram with centrality vs multiplicity using V0C equalized channel
   TH1F    *fHtempFMD;           // histogram with centrality vs multiplicity using FMD
   TH1F    *fHtempTRK;           // histogram with centrality vs multiplicity using tracks
   TH1F    *fHtempTKL;           // histogram with centrality vs multiplicity using tracklets
@@ -142,6 +153,7 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   TH1F    *fHtempCL1;           // histogram with centrality vs multiplicity using clusters in layer 1
   TH1F    *fHtempCND;           // histogram with centrality vs multiplicity using candle
   TH1F    *fHtempZNA;           // histogram with centrality vs multiplicity using ZNA
+  TH1F    *fHtempZNC;           // histogram with centrality vs multiplicity using ZNC
   TH1F    *fHtempV0MvsFMD;      // histogram with centrality vs multiplicity using V0 vs FMD   
   TH1F    *fHtempTKLvsV0M;      // histogram with centrality vs multiplicity using tracklets vs V0
   TH2F    *fHtempZEMvsZDC;      // histogram with centrality vs multiplicity using ZEM vs ZDC 
@@ -150,6 +162,9 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   TH1F    *fHtempV0Mtrue;       // histogram with centrality true (sim) vs multiplicity using V0
   TH1F    *fHtempV0Atrue;       // histogram with centrality true (sim) vs multiplicity using V0A
   TH1F    *fHtempV0Ctrue;       // histogram with centrality true (sim) vs multiplicity using V0C
+  TH1F    *fHtempV0MEqtrue;     // histogram with centrality true (sim) vs multiplicity using V0 equalized channel
+  TH1F    *fHtempV0AEqtrue;     // histogram with centrality true (sim) vs multiplicity using V0A equalized channel
+  TH1F    *fHtempV0CEqtrue;     // histogram with centrality true (sim) vs multiplicity using V0C equalized channel
   TH1F    *fHtempFMDtrue;       // histogram with centrality true (sim) vs multiplicity using FMD
   TH1F    *fHtempTRKtrue;       // histogram with centrality true (sim) vs multiplicity using tracks
   TH1F    *fHtempTKLtrue;       // histogram with centrality true (sim) vs multiplicity using tracklets
@@ -157,12 +172,17 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   TH1F    *fHtempCL1true;       // histogram with centrality true (sim) vs multiplicity using clusters in layer 1
   TH1F    *fHtempCNDtrue;       // histogram with centrality true (sim) vs multiplicity using candle
   TH1F    *fHtempZNAtrue;       // histogram with centrality true (sim) vs multiplicity using ZNA
+  TH1F    *fHtempZNCtrue;       // histogram with centrality true (sim) vs multiplicity using ZNC
 
   TList   *fOutputList; // output list
   
+
   TH1F *fHOutCentV0M    ;       //control histogram for centrality
   TH1F *fHOutCentV0A    ;       //control histogram for centrality
   TH1F *fHOutCentV0C    ;       //control histogram for centrality
+  TH1F *fHOutCentV0MEq  ;       //control histogram for centrality
+  TH1F *fHOutCentV0AEq  ;       //control histogram for centrality
+  TH1F *fHOutCentV0CEq  ;       //control histogram for centrality
   TH1F *fHOutCentV0MCVHN;       //control histogram for centrality
   TH1F *fHOutCentV0MCVLN;       //control histogram for centrality
   TH1F *fHOutCentV0MCVHNinMB;   //control histogram for centrality
@@ -193,6 +213,7 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   TH1F *fHOutCentCND     ;      //control histogram for centrality
   TH1F *fHOutCentNPA     ;      //control histogram for centrality
   TH1F *fHOutCentZNA     ;      //control histogram for centrality
+  TH1F *fHOutCentZNC     ;      //control histogram for centrality
   TH1F *fHOutCentV0MvsFMD;      //control histogram for centrality
   TH1F *fHOutCentTKLvsV0M;      //control histogram for centrality
   TH1F *fHOutCentZEMvsZDC;      //control histogram for centrality
@@ -222,6 +243,9 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   TH1F *fHOutMultV0M ;          //control histogram for multiplicity
   TH1F *fHOutMultV0A ;          //control histogram for multiplicity
   TH1F *fHOutMultV0C ;          //control histogram for multiplicity
+  TH1F *fHOutMultV0MEq ;        //control histogram for multiplicity
+  TH1F *fHOutMultV0AEq ;        //control histogram for multiplicity
+  TH1F *fHOutMultV0CEq ;        //control histogram for multiplicity
   TH1F *fHOutMultV0Mnc ;        //control histogram for multiplicity
   TH1F *fHOutMultV0Anc ;        //control histogram for multiplicity
   TH1F *fHOutMultV0Cnc ;        //control histogram for multiplicity
@@ -235,6 +259,7 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   TH1F *fHOutMultCND ;          //control histogram for multiplicity
   TH1F *fHOutMultNPA ;          //control histogram for multiplicity
   TH1F *fHOutMultZNA ;          //control histogram for multiplicity
+  TH1F *fHOutMultZNC ;          //control histogram for multiplicity
 
   TH2F *fHOutMultV0MvsZDN;      //control histogram for multiplicity
   TH2F *fHOutMultZEMvsZDN;      //control histogram for multiplicity
@@ -267,7 +292,7 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   TH1F *fHOutVertex ;           //control histogram for vertex SPD
   TH1F *fHOutVertexT0 ;         //control histogram for vertex T0
 
-  ClassDef(AliCentralitySelectionTask, 25); 
+  ClassDef(AliCentralitySelectionTask, 26); 
 };
 
 #endif
index da79889..497eaaf 100644 (file)
@@ -28,6 +28,9 @@ AliCentrality::AliCentrality() : TNamed("Centrality", "Centrality"),
   fCentralityV0M(0),
   fCentralityV0A(0),
   fCentralityV0C(0),
+  fCentralityV0MEq(0),
+  fCentralityV0AEq(0),
+  fCentralityV0CEq(0),
   fCentralityFMD(0),
   fCentralityTRK(0),
   fCentralityTKL(0),
@@ -35,6 +38,7 @@ AliCentrality::AliCentrality() : TNamed("Centrality", "Centrality"),
   fCentralityCL1(0),
   fCentralityCND(0),
   fCentralityZNA(0),
+  fCentralityZNC(0),
   fCentralityNPA(0),
   fCentralityV0MvsFMD(0),
   fCentralityTKLvsV0M(0),
@@ -42,13 +46,17 @@ AliCentrality::AliCentrality() : TNamed("Centrality", "Centrality"),
   fCentralityV0Mtrue(0),
   fCentralityV0Atrue(0),
   fCentralityV0Ctrue(0),
+  fCentralityV0MEqtrue(0),
+  fCentralityV0AEqtrue(0),
+  fCentralityV0CEqtrue(0),
   fCentralityFMDtrue(0),
   fCentralityTRKtrue(0),
   fCentralityTKLtrue(0),
   fCentralityCL0true(0),
   fCentralityCL1true(0),
   fCentralityCNDtrue(0),
-  fCentralityZNAtrue(0)
+  fCentralityZNAtrue(0),
+  fCentralityZNCtrue(0)
 {
   /// constructor
 }
@@ -59,6 +67,9 @@ AliCentrality::AliCentrality(const AliCentrality& cnt) :
   fCentralityV0M(cnt.fCentralityV0M),
   fCentralityV0A(cnt.fCentralityV0A),
   fCentralityV0C(cnt.fCentralityV0C),
+  fCentralityV0MEq(cnt.fCentralityV0MEq),
+  fCentralityV0AEq(cnt.fCentralityV0AEq),
+  fCentralityV0CEq(cnt.fCentralityV0CEq),
   fCentralityFMD(cnt.fCentralityFMD),
   fCentralityTRK(cnt.fCentralityTRK),
   fCentralityTKL(cnt.fCentralityTKL),
@@ -66,6 +77,7 @@ AliCentrality::AliCentrality(const AliCentrality& cnt) :
   fCentralityCL1(cnt.fCentralityCL1),
   fCentralityCND(cnt.fCentralityCND),
   fCentralityZNA(cnt.fCentralityZNA),
+  fCentralityZNC(cnt.fCentralityZNC),
   fCentralityNPA(cnt.fCentralityNPA),
   fCentralityV0MvsFMD(cnt.fCentralityV0MvsFMD),
   fCentralityTKLvsV0M(cnt.fCentralityTKLvsV0M),
@@ -73,13 +85,17 @@ AliCentrality::AliCentrality(const AliCentrality& cnt) :
   fCentralityV0Mtrue(cnt.fCentralityV0Mtrue),
   fCentralityV0Atrue(cnt.fCentralityV0Atrue),
   fCentralityV0Ctrue(cnt.fCentralityV0Ctrue),
+  fCentralityV0MEqtrue(cnt.fCentralityV0MEqtrue),
+  fCentralityV0AEqtrue(cnt.fCentralityV0AEqtrue),
+  fCentralityV0CEqtrue(cnt.fCentralityV0CEqtrue),
   fCentralityFMDtrue(cnt.fCentralityFMDtrue),
   fCentralityTRKtrue(cnt.fCentralityTRKtrue),
   fCentralityTKLtrue(cnt.fCentralityTKLtrue),
   fCentralityCL0true(cnt.fCentralityCL0true),
   fCentralityCL1true(cnt.fCentralityCL1true),
   fCentralityCNDtrue(cnt.fCentralityCNDtrue),
-  fCentralityZNAtrue(cnt.fCentralityZNAtrue)
+  fCentralityZNAtrue(cnt.fCentralityZNAtrue),
+  fCentralityZNCtrue(cnt.fCentralityZNCtrue)
 {
   /// Copy constructor
 }
@@ -93,6 +109,9 @@ AliCentrality& AliCentrality::operator=(const AliCentrality& c)
     fCentralityV0M = c.fCentralityV0M;
     fCentralityV0A = c.fCentralityV0A;
     fCentralityV0C = c.fCentralityV0C;
+    fCentralityV0MEq = c.fCentralityV0MEq;
+    fCentralityV0AEq = c.fCentralityV0AEq;
+    fCentralityV0CEq = c.fCentralityV0CEq;
     fCentralityFMD = c.fCentralityFMD;
     fCentralityTRK = c.fCentralityTRK;
     fCentralityTKL = c.fCentralityTKL;
@@ -100,6 +119,7 @@ AliCentrality& AliCentrality::operator=(const AliCentrality& c)
     fCentralityCL1 = c.fCentralityCL1;
     fCentralityCND = c.fCentralityCND;
     fCentralityZNA = c.fCentralityZNA;
+    fCentralityZNC = c.fCentralityZNC;
     fCentralityNPA = c.fCentralityNPA;
     fCentralityV0MvsFMD = c.fCentralityV0MvsFMD;
     fCentralityTKLvsV0M = c.fCentralityTKLvsV0M;
@@ -107,6 +127,9 @@ AliCentrality& AliCentrality::operator=(const AliCentrality& c)
     fCentralityV0Mtrue = c.fCentralityV0Mtrue;
     fCentralityV0Atrue = c.fCentralityV0Atrue;
     fCentralityV0Ctrue = c.fCentralityV0Ctrue;
+    fCentralityV0MEqtrue = c.fCentralityV0MEqtrue;
+    fCentralityV0AEqtrue = c.fCentralityV0AEqtrue;
+    fCentralityV0CEqtrue = c.fCentralityV0CEqtrue;
     fCentralityFMDtrue = c.fCentralityFMDtrue;
     fCentralityTRKtrue = c.fCentralityTRKtrue;
     fCentralityTKLtrue = c.fCentralityTKLtrue;
@@ -114,6 +137,7 @@ AliCentrality& AliCentrality::operator=(const AliCentrality& c)
     fCentralityCL1true = c.fCentralityCL1true;
     fCentralityCNDtrue = c.fCentralityCNDtrue;
     fCentralityZNAtrue = c.fCentralityZNAtrue;
+    fCentralityZNCtrue = c.fCentralityZNCtrue;
   }
 
   return *this;
@@ -137,6 +161,9 @@ Float_t AliCentrality::GetCentralityPercentile(const char *x) const
     if(method.CompareTo("V0M")==0)      return fCentralityV0M;
     if(method.CompareTo("V0A")==0)      return fCentralityV0A;
     if(method.CompareTo("V0C")==0)      return fCentralityV0C;
+    if(method.CompareTo("V0MEq")==0)    return fCentralityV0MEq;
+    if(method.CompareTo("V0AEq")==0)    return fCentralityV0AEq;
+    if(method.CompareTo("V0CEq")==0)    return fCentralityV0CEq;
     if(method.CompareTo("FMD")==0)      return fCentralityFMD;
     if(method.CompareTo("TRK")==0)      return fCentralityTRK;
     if(method.CompareTo("TKL")==0)      return fCentralityTKL;
@@ -144,6 +171,7 @@ Float_t AliCentrality::GetCentralityPercentile(const char *x) const
     if(method.CompareTo("CL1")==0)      return fCentralityCL1;
     if(method.CompareTo("CND")==0)      return fCentralityCND;
     if(method.CompareTo("ZNA")==0)      return fCentralityZNA;
+    if(method.CompareTo("ZNC")==0)      return fCentralityZNC;
     if(method.CompareTo("NPA")==0)      return fCentralityNPA;
     if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
     if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
@@ -151,6 +179,9 @@ Float_t AliCentrality::GetCentralityPercentile(const char *x) const
     if(method.CompareTo("V0Mtrue")==0)      return fCentralityV0Mtrue;
     if(method.CompareTo("V0Atrue")==0)      return fCentralityV0Atrue;
     if(method.CompareTo("V0Ctrue")==0)      return fCentralityV0Ctrue;
+    if(method.CompareTo("V0MEqtrue")==0)    return fCentralityV0MEqtrue;
+    if(method.CompareTo("V0AEqtrue")==0)    return fCentralityV0AEqtrue;
+    if(method.CompareTo("V0CEqtrue")==0)    return fCentralityV0CEqtrue;
     if(method.CompareTo("FMDtrue")==0)      return fCentralityFMDtrue;
     if(method.CompareTo("TRKtrue")==0)      return fCentralityTRKtrue;
     if(method.CompareTo("TKLtrue")==0)      return fCentralityTKLtrue;
@@ -158,6 +189,7 @@ Float_t AliCentrality::GetCentralityPercentile(const char *x) const
     if(method.CompareTo("CL1true")==0)      return fCentralityCL1true;
     if(method.CompareTo("CNDtrue")==0)      return fCentralityCNDtrue;
     if(method.CompareTo("ZNAtrue")==0)      return fCentralityZNAtrue;
+    if(method.CompareTo("ZNCtrue")==0)      return fCentralityZNCtrue;
     return -1;
   } else {
     return -1;
@@ -172,6 +204,9 @@ Int_t AliCentrality::GetCentralityClass10(const char *x) const
     if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 10.0);
     if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 10.0);
     if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 10.0);
+    if(method.CompareTo("V0MEq")==0)    return (Int_t) (fCentralityV0MEq / 10.0);
+    if(method.CompareTo("V0AEq")==0)    return (Int_t) (fCentralityV0AEq / 10.0);
+    if(method.CompareTo("V0CEq")==0)    return (Int_t) (fCentralityV0CEq / 10.0);
     if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 10.0);
     if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 10.0);
     if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 10.0);
@@ -179,6 +214,7 @@ Int_t AliCentrality::GetCentralityClass10(const char *x) const
     if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 10.0);
     if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 10.0);
     if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 10.0);
+    if(method.CompareTo("ZNC")==0)      return (Int_t) (fCentralityZNC / 10.0);
     if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 10.0);
     if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
     if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
@@ -186,6 +222,9 @@ Int_t AliCentrality::GetCentralityClass10(const char *x) const
     if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0Mtrue / 10.0);
     if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 10.0);
     if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 10.0);
+    if(method.CompareTo("V0MEqtrue")==0)return (Int_t) (fCentralityV0MEqtrue / 10.0);
+    if(method.CompareTo("V0AEqtrue")==0)return (Int_t) (fCentralityV0AEqtrue / 10.0);
+    if(method.CompareTo("V0CEqtrue")==0)return (Int_t) (fCentralityV0CEqtrue / 10.0);
     if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 10.0);
     if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 10.0);
     if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 10.0);
@@ -193,6 +232,7 @@ Int_t AliCentrality::GetCentralityClass10(const char *x) const
     if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 10.0);
     if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 10.0);
     if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 10.0);
+    if(method.CompareTo("ZNCtrue")==0)  return (Int_t) (fCentralityZNCtrue / 10.0);
     return -1;
   } else {
     return -1;
@@ -207,6 +247,9 @@ Int_t AliCentrality::GetCentralityClass5(const char *x) const
     if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 5.0);
     if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 5.0);
     if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 5.0);
+    if(method.CompareTo("V0MEq")==0)    return (Int_t) (fCentralityV0MEq / 5.0);
+    if(method.CompareTo("V0AEq")==0)    return (Int_t) (fCentralityV0AEq / 5.0);
+    if(method.CompareTo("V0CEq")==0)    return (Int_t) (fCentralityV0CEq / 5.0);
     if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 5.0);
     if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 5.0);
     if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 5.0);
@@ -214,6 +257,7 @@ Int_t AliCentrality::GetCentralityClass5(const char *x) const
     if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 5.0);
     if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 5.0);
     if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 5.0);
+    if(method.CompareTo("ZNC")==0)      return (Int_t) (fCentralityZNC / 5.0);
     if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 5.0);
     if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
     if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
@@ -221,6 +265,9 @@ Int_t AliCentrality::GetCentralityClass5(const char *x) const
     if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0Mtrue / 5.0);
     if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 5.0);
     if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 5.0);
+    if(method.CompareTo("V0MEqtrue")==0)return (Int_t) (fCentralityV0MEqtrue / 5.0);
+    if(method.CompareTo("V0AEqtrue")==0)return (Int_t) (fCentralityV0AEqtrue / 5.0);
+    if(method.CompareTo("V0CEqtrue")==0)return (Int_t) (fCentralityV0CEqtrue / 5.0);
     if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 5.0);
     if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 5.0);
     if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 5.0);
@@ -228,6 +275,7 @@ Int_t AliCentrality::GetCentralityClass5(const char *x) const
     if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 5.0);
     if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 5.0);
     if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 5.0);
+    if(method.CompareTo("ZNCtrue")==0)  return (Int_t) (fCentralityZNCtrue / 5.0);
     return -1;
   } else {
     return -1;
@@ -243,6 +291,9 @@ Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char
     if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
     if ((method.CompareTo("V0A")==0) && (fCentralityV0A >=a && fCentralityV0A < b)) return kTRUE;
     if ((method.CompareTo("V0C")==0) && (fCentralityV0C >=a && fCentralityV0C < b)) return kTRUE;
+    if ((method.CompareTo("V0MEq")==0) && (fCentralityV0MEq >=a && fCentralityV0MEq < b)) return kTRUE;
+    if ((method.CompareTo("V0AEq")==0) && (fCentralityV0AEq >=a && fCentralityV0AEq < b)) return kTRUE;
+    if ((method.CompareTo("V0CEq")==0) && (fCentralityV0CEq >=a && fCentralityV0CEq < b)) return kTRUE;
     if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
     if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
     if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
@@ -250,6 +301,7 @@ Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char
     if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
     if ((method.CompareTo("CND")==0) && (fCentralityCND >=a && fCentralityCND < b)) return kTRUE;
     if ((method.CompareTo("ZNA")==0) && (fCentralityZNA >=a && fCentralityZNA < b)) return kTRUE;
+    if ((method.CompareTo("ZNC")==0) && (fCentralityZNC >=a && fCentralityZNC < b)) return kTRUE;
     if ((method.CompareTo("NPA")==0) && (fCentralityNPA >=a && fCentralityNPA < b)) return kTRUE;
     if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
     if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
@@ -257,6 +309,9 @@ Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char
     if ((method.CompareTo("V0Mtrue")==0) && (fCentralityV0Mtrue >=a && fCentralityV0Mtrue < b)) return kTRUE;
     if ((method.CompareTo("V0Atrue")==0) && (fCentralityV0Atrue >=a && fCentralityV0Atrue < b)) return kTRUE;
     if ((method.CompareTo("V0Ctrue")==0) && (fCentralityV0Ctrue >=a && fCentralityV0Ctrue < b)) return kTRUE;
+    if ((method.CompareTo("V0MEqtrue")==0) && (fCentralityV0MEqtrue >=a && fCentralityV0MEqtrue < b)) return kTRUE;
+    if ((method.CompareTo("V0AEqtrue")==0) && (fCentralityV0AEqtrue >=a && fCentralityV0AEqtrue < b)) return kTRUE;
+    if ((method.CompareTo("V0CEqtrue")==0) && (fCentralityV0CEqtrue >=a && fCentralityV0CEqtrue < b)) return kTRUE;
     if ((method.CompareTo("FMDtrue")==0) && (fCentralityFMDtrue >=a && fCentralityFMDtrue < b)) return kTRUE;
     if ((method.CompareTo("TRKtrue")==0) && (fCentralityTRKtrue >=a && fCentralityTRKtrue < b)) return kTRUE;
     if ((method.CompareTo("TKLtrue")==0) && (fCentralityTKLtrue >=a && fCentralityTKLtrue < b)) return kTRUE;
@@ -264,6 +319,7 @@ Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char
     if ((method.CompareTo("CL1true")==0) && (fCentralityCL1true >=a && fCentralityCL1true < b)) return kTRUE;
     if ((method.CompareTo("CNDtrue")==0) && (fCentralityCNDtrue >=a && fCentralityCNDtrue < b)) return kTRUE;
     if ((method.CompareTo("ZNAtrue")==0) && (fCentralityZNAtrue >=a && fCentralityZNAtrue < b)) return kTRUE;
+    if ((method.CompareTo("ZNCtrue")==0) && (fCentralityZNCtrue >=a && fCentralityZNCtrue < b)) return kTRUE;
     else return kFALSE;
   } else {
     return kFALSE;
@@ -277,6 +333,9 @@ Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x) const
   if(method.CompareTo("V0M")==0)      return fCentralityV0M;
   if(method.CompareTo("V0A")==0)      return fCentralityV0A;
   if(method.CompareTo("V0C")==0)      return fCentralityV0C;
+  if(method.CompareTo("V0MEq")==0)    return fCentralityV0MEq;
+  if(method.CompareTo("V0AEq")==0)    return fCentralityV0AEq;
+  if(method.CompareTo("V0CEq")==0)    return fCentralityV0CEq;
   if(method.CompareTo("FMD")==0)      return fCentralityFMD;
   if(method.CompareTo("TRK")==0)      return fCentralityTRK;
   if(method.CompareTo("TKL")==0)      return fCentralityTKL;
@@ -284,6 +343,7 @@ Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x) const
   if(method.CompareTo("CL1")==0)      return fCentralityCL1;
   if(method.CompareTo("CND")==0)      return fCentralityCND;
   if(method.CompareTo("ZNA")==0)      return fCentralityZNA;
+  if(method.CompareTo("ZNC")==0)      return fCentralityZNC;
   if(method.CompareTo("NPA")==0)      return fCentralityNPA;
   if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
   if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
@@ -291,6 +351,9 @@ Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x) const
   if(method.CompareTo("V0Mtrue")==0)  return fCentralityV0Mtrue;
   if(method.CompareTo("V0Atrue")==0)  return fCentralityV0Atrue;
   if(method.CompareTo("V0Ctrue")==0)  return fCentralityV0Ctrue;
+  if(method.CompareTo("V0MEqtrue")==0)    return fCentralityV0MEqtrue;
+  if(method.CompareTo("V0AEqtrue")==0)    return fCentralityV0AEqtrue;
+  if(method.CompareTo("V0CEqtrue")==0)    return fCentralityV0CEqtrue;
   if(method.CompareTo("FMDtrue")==0)  return fCentralityFMDtrue;
   if(method.CompareTo("TRKtrue")==0)  return fCentralityTRKtrue;
   if(method.CompareTo("TKLtrue")==0)  return fCentralityTKLtrue;
@@ -298,6 +361,7 @@ Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x) const
   if(method.CompareTo("CL1true")==0)  return fCentralityCL1true;
   if(method.CompareTo("CNDtrue")==0)  return fCentralityCNDtrue;
   if(method.CompareTo("ZNAtrue")==0)  return fCentralityZNAtrue;
+  if(method.CompareTo("ZNCtrue")==0)   return fCentralityZNCtrue;
   return -1;
 }
 
@@ -305,30 +369,38 @@ Int_t AliCentrality::GetCentralityClass10Unchecked(const char *x) const
 {
 // Return the centrality class
   TString method = x;
-  if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 10.0);
-  if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 10.0);
-  if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 10.0);
-  if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 10.0);
-  if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 10.0);
-  if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 10.0);
-  if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 10.0);
-  if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 10.0);
-  if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 10.0);
-  if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 10.0);
-  if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 10.0);
-  if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
-  if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
-  if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
-  if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0Mtrue / 10.0);
-  if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 10.0);
-  if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 10.0);
-  if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 10.0);
-  if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 10.0);
-  if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 10.0);
-  if(method.CompareTo("CL0true")==0)  return (Int_t) (fCentralityCL0true / 10.0);
-  if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 10.0);
-  if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 10.0);
-  if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 10.0);
+    if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 10.0);
+    if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 10.0);
+    if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 10.0);
+    if(method.CompareTo("V0MEq")==0)    return (Int_t) (fCentralityV0MEq / 10.0);
+    if(method.CompareTo("V0AEq")==0)    return (Int_t) (fCentralityV0AEq / 10.0);
+    if(method.CompareTo("V0CEq")==0)    return (Int_t) (fCentralityV0CEq / 10.0);
+    if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 10.0);
+    if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 10.0);
+    if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 10.0);
+    if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 10.0);
+    if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 10.0);
+    if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 10.0);
+    if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 10.0);
+    if(method.CompareTo("ZNC")==0)      return (Int_t) (fCentralityZNC / 10.0);
+    if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 10.0);
+    if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
+    if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
+    if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
+    if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0Mtrue / 10.0);
+    if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 10.0);
+    if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 10.0);
+    if(method.CompareTo("V0MEqtrue")==0)return (Int_t) (fCentralityV0MEqtrue / 10.0);
+    if(method.CompareTo("V0AEqtrue")==0)return (Int_t) (fCentralityV0AEqtrue / 10.0);
+    if(method.CompareTo("V0CEqtrue")==0)return (Int_t) (fCentralityV0CEqtrue / 10.0);
+    if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 10.0);
+    if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 10.0);
+    if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 10.0);
+    if(method.CompareTo("CL0true")==0)  return (Int_t) (fCentralityCL0true / 10.0);
+    if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 10.0);
+    if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 10.0);
+    if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 10.0);
+    if(method.CompareTo("ZNCtrue")==0)  return (Int_t) (fCentralityZNCtrue / 10.0);
   return -1;
 }
 
@@ -336,30 +408,38 @@ Int_t AliCentrality::GetCentralityClass5Unchecked(const char *x) const
 {
 // Return the centrality class
   TString method = x;
-  if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 5.0);
-  if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 5.0);
-  if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 5.0);
-  if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 5.0);
-  if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 5.0);
-  if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 5.0);
-  if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 5.0);
-  if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 5.0);
-  if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 5.0);
-  if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 5.0);
-  if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 5.0);
-  if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
-  if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
-  if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
-  if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0M / 5.0);
-  if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 5.0);
-  if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 5.0);
-  if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 5.0);
-  if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 5.0);
-  if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 5.0);
-  if(method.CompareTo("CL0true")==0)  return (Int_t) (fCentralityCL0true / 5.0);
-  if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 5.0);
-  if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 5.0);
-  if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 5.0);
+    if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 5.0);
+    if(method.CompareTo("V0A")==0)      return (Int_t) (fCentralityV0A / 5.0);
+    if(method.CompareTo("V0C")==0)      return (Int_t) (fCentralityV0C / 5.0);
+    if(method.CompareTo("V0MEq")==0)    return (Int_t) (fCentralityV0MEq / 5.0);
+    if(method.CompareTo("V0AEq")==0)    return (Int_t) (fCentralityV0AEq / 5.0);
+    if(method.CompareTo("V0CEq")==0)    return (Int_t) (fCentralityV0CEq / 5.0);
+    if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 5.0);
+    if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 5.0);
+    if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 5.0);
+    if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 5.0);
+    if(method.CompareTo("CL1")==0)      return (Int_t) (fCentralityCL1 / 5.0);
+    if(method.CompareTo("CND")==0)      return (Int_t) (fCentralityCND / 5.0);
+    if(method.CompareTo("ZNA")==0)      return (Int_t) (fCentralityZNA / 5.0);
+    if(method.CompareTo("ZNC")==0)      return (Int_t) (fCentralityZNC / 5.0);
+    if(method.CompareTo("NPA")==0)      return (Int_t) (fCentralityNPA / 5.0);
+    if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
+    if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
+    if(method.CompareTo("ZEMvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
+    if(method.CompareTo("V0Mtrue")==0)  return (Int_t) (fCentralityV0Mtrue / 5.0);
+    if(method.CompareTo("V0Atrue")==0)  return (Int_t) (fCentralityV0Atrue / 5.0);
+    if(method.CompareTo("V0Ctrue")==0)  return (Int_t) (fCentralityV0Ctrue / 5.0);
+    if(method.CompareTo("V0MEqtrue")==0)return (Int_t) (fCentralityV0MEqtrue / 5.0);
+    if(method.CompareTo("V0AEqtrue")==0)return (Int_t) (fCentralityV0AEqtrue / 5.0);
+    if(method.CompareTo("V0CEqtrue")==0)return (Int_t) (fCentralityV0CEqtrue / 5.0);
+    if(method.CompareTo("FMDtrue")==0)  return (Int_t) (fCentralityFMDtrue / 5.0);
+    if(method.CompareTo("TRKtrue")==0)  return (Int_t) (fCentralityTRKtrue / 5.0);
+    if(method.CompareTo("TKLtrue")==0)  return (Int_t) (fCentralityTKLtrue / 5.0);
+    if(method.CompareTo("CL0true")==0)  return (Int_t) (fCentralityCL0true / 5.0);
+    if(method.CompareTo("CL1true")==0)  return (Int_t) (fCentralityCL1true / 5.0);
+    if(method.CompareTo("CNDtrue")==0)  return (Int_t) (fCentralityCNDtrue / 5.0);
+    if(method.CompareTo("ZNAtrue")==0)  return (Int_t) (fCentralityZNAtrue / 5.0);
+    if(method.CompareTo("ZNCtrue")==0)  return (Int_t) (fCentralityZNCtrue / 5.0);
   return -1;
 } 
 
@@ -367,30 +447,38 @@ Bool_t AliCentrality::IsEventInCentralityClassUnchecked(Float_t a, Float_t b, co
 {
 // True if event inside given centrality class
   TString method = x;
-  if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
-  if ((method.CompareTo("V0A")==0) && (fCentralityV0A >=a && fCentralityV0A < b)) return kTRUE;
-  if ((method.CompareTo("V0C")==0) && (fCentralityV0C >=a && fCentralityV0C < b)) return kTRUE;
-  if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
-  if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
-  if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
-  if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
-  if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
-  if ((method.CompareTo("CND")==0) && (fCentralityCND >=a && fCentralityCND < b)) return kTRUE;
-  if ((method.CompareTo("ZNA")==0) && (fCentralityZNA >=a && fCentralityZNA < b)) return kTRUE;
-  if ((method.CompareTo("NPA")==0) && (fCentralityNPA >=a && fCentralityNPA < b)) return kTRUE;
-  if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
-  if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
-  if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
-  if ((method.CompareTo("V0Mtrue")==0) && (fCentralityV0Mtrue >=a && fCentralityV0Mtrue < b)) return kTRUE;
-  if ((method.CompareTo("V0Atrue")==0) && (fCentralityV0Atrue >=a && fCentralityV0Atrue < b)) return kTRUE;
-  if ((method.CompareTo("V0Ctrue")==0) && (fCentralityV0Ctrue >=a && fCentralityV0Ctrue < b)) return kTRUE;
-  if ((method.CompareTo("FMDtrue")==0) && (fCentralityFMDtrue >=a && fCentralityFMDtrue < b)) return kTRUE;
-  if ((method.CompareTo("TRKtrue")==0) && (fCentralityTRKtrue >=a && fCentralityTRKtrue < b)) return kTRUE;
-  if ((method.CompareTo("TKLtrue")==0) && (fCentralityTKLtrue >=a && fCentralityTKLtrue < b)) return kTRUE;
-  if ((method.CompareTo("CL0true")==0) && (fCentralityCL0true >=a && fCentralityCL0true < b)) return kTRUE;
-  if ((method.CompareTo("CL1true")==0) && (fCentralityCL1true >=a && fCentralityCL1true < b)) return kTRUE;
-  if ((method.CompareTo("CNDtrue")==0) && (fCentralityCNDtrue >=a && fCentralityCNDtrue < b)) return kTRUE;
-  if ((method.CompareTo("ZNAtrue")==0) && (fCentralityZNAtrue >=a && fCentralityZNAtrue < b)) return kTRUE;
+    if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
+    if ((method.CompareTo("V0A")==0) && (fCentralityV0A >=a && fCentralityV0A < b)) return kTRUE;
+    if ((method.CompareTo("V0C")==0) && (fCentralityV0C >=a && fCentralityV0C < b)) return kTRUE;
+    if ((method.CompareTo("V0MEq")==0) && (fCentralityV0MEq >=a && fCentralityV0MEq < b)) return kTRUE;
+    if ((method.CompareTo("V0AEq")==0) && (fCentralityV0AEq >=a && fCentralityV0AEq < b)) return kTRUE;
+    if ((method.CompareTo("V0CEq")==0) && (fCentralityV0CEq >=a && fCentralityV0CEq < b)) return kTRUE;
+    if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
+    if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
+    if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
+    if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
+    if ((method.CompareTo("CL1")==0) && (fCentralityCL1 >=a && fCentralityCL1 < b)) return kTRUE;
+    if ((method.CompareTo("CND")==0) && (fCentralityCND >=a && fCentralityCND < b)) return kTRUE;
+    if ((method.CompareTo("ZNA")==0) && (fCentralityZNA >=a && fCentralityZNA < b)) return kTRUE;
+    if ((method.CompareTo("ZNC")==0) && (fCentralityZNC >=a && fCentralityZNC < b)) return kTRUE;
+    if ((method.CompareTo("NPA")==0) && (fCentralityNPA >=a && fCentralityNPA < b)) return kTRUE;
+    if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
+    if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
+    if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
+    if ((method.CompareTo("V0Mtrue")==0) && (fCentralityV0Mtrue >=a && fCentralityV0Mtrue < b)) return kTRUE;
+    if ((method.CompareTo("V0Atrue")==0) && (fCentralityV0Atrue >=a && fCentralityV0Atrue < b)) return kTRUE;
+    if ((method.CompareTo("V0Ctrue")==0) && (fCentralityV0Ctrue >=a && fCentralityV0Ctrue < b)) return kTRUE;
+    if ((method.CompareTo("V0MEqtrue")==0) && (fCentralityV0MEqtrue >=a && fCentralityV0MEqtrue < b)) return kTRUE;
+    if ((method.CompareTo("V0AEqtrue")==0) && (fCentralityV0AEqtrue >=a && fCentralityV0AEqtrue < b)) return kTRUE;
+    if ((method.CompareTo("V0CEqtrue")==0) && (fCentralityV0CEqtrue >=a && fCentralityV0CEqtrue < b)) return kTRUE;
+    if ((method.CompareTo("FMDtrue")==0) && (fCentralityFMDtrue >=a && fCentralityFMDtrue < b)) return kTRUE;
+    if ((method.CompareTo("TRKtrue")==0) && (fCentralityTRKtrue >=a && fCentralityTRKtrue < b)) return kTRUE;
+    if ((method.CompareTo("TKLtrue")==0) && (fCentralityTKLtrue >=a && fCentralityTKLtrue < b)) return kTRUE;
+    if ((method.CompareTo("CL0true")==0) && (fCentralityCL0true >=a && fCentralityCL0true < b)) return kTRUE;
+    if ((method.CompareTo("CL1true")==0) && (fCentralityCL1true >=a && fCentralityCL1true < b)) return kTRUE;
+    if ((method.CompareTo("CNDtrue")==0) && (fCentralityCNDtrue >=a && fCentralityCNDtrue < b)) return kTRUE;
+    if ((method.CompareTo("ZNAtrue")==0) && (fCentralityZNAtrue >=a && fCentralityZNAtrue < b)) return kTRUE;
+    if ((method.CompareTo("ZNCtrue")==0) && (fCentralityZNCtrue >=a && fCentralityZNCtrue < b)) return kTRUE;
   else return kFALSE;
 } 
 
@@ -402,6 +490,9 @@ void AliCentrality::Reset()
   fCentralityV0M      =  0;
   fCentralityV0A      =  0;
   fCentralityV0C      =  0;
+  fCentralityV0MEq    =  0;
+  fCentralityV0AEq    =  0;
+  fCentralityV0CEq    =  0;
   fCentralityFMD      =  0;
   fCentralityTRK      =  0;
   fCentralityTKL      =  0;
@@ -409,6 +500,7 @@ void AliCentrality::Reset()
   fCentralityCL1      =  0;
   fCentralityCND      =  0;
   fCentralityZNA      =  0;
+  fCentralityZNC      =  0;
   fCentralityNPA      =  0;
   fCentralityV0MvsFMD =  0;
   fCentralityTKLvsV0M =  0;
@@ -416,6 +508,9 @@ void AliCentrality::Reset()
   fCentralityV0Mtrue  =  0;
   fCentralityV0Atrue  =  0;
   fCentralityV0Ctrue  =  0;
+  fCentralityV0MEqtrue  =  0;
+  fCentralityV0AEqtrue  =  0;
+  fCentralityV0CEqtrue  =  0;
   fCentralityFMDtrue  =  0;
   fCentralityTRKtrue  =  0;
   fCentralityTKLtrue  =  0;
@@ -423,4 +518,5 @@ void AliCentrality::Reset()
   fCentralityCL1true  =  0;
   fCentralityCNDtrue  =  0;
   fCentralityZNAtrue  =  0;
+  fCentralityZNCtrue  =  0;
 }
index 0f08967..f10867f 100644 (file)
@@ -26,6 +26,9 @@ class AliCentrality : public TNamed
   void SetCentralityV0M(Float_t cent) {fCentralityV0M = cent;} 
   void SetCentralityV0A(Float_t cent) {fCentralityV0A = cent;} 
   void SetCentralityV0C(Float_t cent) {fCentralityV0C = cent;} 
+  void SetCentralityV0MEq(Float_t cent) {fCentralityV0MEq = cent;} 
+  void SetCentralityV0AEq(Float_t cent) {fCentralityV0AEq = cent;} 
+  void SetCentralityV0CEq(Float_t cent) {fCentralityV0CEq = cent;} 
   void SetCentralityFMD(Float_t cent) {fCentralityFMD = cent;}
   void SetCentralityTRK(Float_t cent) {fCentralityTRK = cent;}
   void SetCentralityTKL(Float_t cent) {fCentralityTKL = cent;}
@@ -33,6 +36,7 @@ class AliCentrality : public TNamed
   void SetCentralityCL1(Float_t cent) {fCentralityCL1 = cent;}
   void SetCentralityCND(Float_t cent) {fCentralityCND = cent;}
   void SetCentralityZNA(Float_t cent) {fCentralityZNA = cent;}
+  void SetCentralityZNC(Float_t cent) {fCentralityZNC = cent;}
   void SetCentralityNPA(Float_t cent) {fCentralityNPA = cent;}
   void SetCentralityV0MvsFMD(Float_t cent) {fCentralityV0MvsFMD = cent;}
   void SetCentralityTKLvsV0M(Float_t cent) {fCentralityTKLvsV0M = cent;}
@@ -68,6 +72,9 @@ class AliCentrality : public TNamed
   Float_t fCentralityV0M;   // Centrality from V0A+V0C
   Float_t fCentralityV0A;   // Centrality from V0A
   Float_t fCentralityV0C;   // Centrality from V0C
+  Float_t fCentralityV0MEq; // Centrality from V0A+V0C equalized channel
+  Float_t fCentralityV0AEq; // Centrality from V0A equalized channel
+  Float_t fCentralityV0CEq; // Centrality from V0C equalized channel
   Float_t fCentralityFMD;   // Centrality from FMD
   Float_t fCentralityTRK;   // Centrality from tracks
   Float_t fCentralityTKL;   // Centrality from tracklets
@@ -75,6 +82,7 @@ class AliCentrality : public TNamed
   Float_t fCentralityCL1;   // Centrality from Clusters in layer 1
   Float_t fCentralityCND;   // Centrality from tracks (candle condition)
   Float_t fCentralityZNA;   // Centrality from ZNA
+  Float_t fCentralityZNC;   // Centrality from ZNC
   Float_t fCentralityNPA;   // Centrality from Npart (MC)
   Float_t fCentralityV0MvsFMD;   // Centrality from V0 vs FMD
   Float_t fCentralityTKLvsV0M;   // Centrality from tracklets vs V0
@@ -83,6 +91,9 @@ class AliCentrality : public TNamed
   Float_t fCentralityV0Mtrue;   // Centrality from true (sim) V0A+V0C
   Float_t fCentralityV0Atrue;   // Centrality from true (sim) V0A
   Float_t fCentralityV0Ctrue;   // Centrality from true (sim) V0C
+  Float_t fCentralityV0MEqtrue; // Centrality from true (sim) V0A+V0C equalized channels
+  Float_t fCentralityV0AEqtrue; // Centrality from true (sim) V0A equalized channels
+  Float_t fCentralityV0CEqtrue; // Centrality from true (sim) V0C equalized channels
   Float_t fCentralityFMDtrue;   // Centrality from true (sim) FMD
   Float_t fCentralityTRKtrue;   // Centrality from true (sim) tracks
   Float_t fCentralityTKLtrue;   // Centrality from true (sim) tracklets
@@ -90,7 +101,8 @@ class AliCentrality : public TNamed
   Float_t fCentralityCL1true;   // Centrality from true (sim) Clusters in layer 1
   Float_t fCentralityCNDtrue;   // Centrality from true (sim) tracks (candle condition)
   Float_t fCentralityZNAtrue;   // Centrality from true (sim) ZNA
+  Float_t fCentralityZNCtrue;   // Centrality from true (sim) ZNC
 
-  ClassDef(AliCentrality, 6)
+  ClassDef(AliCentrality, 7)
 };
 #endif //ALICENTRALITY_H