Implementation of ZPA centrality estimator.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 23 Apr 2013 15:40:41 +0000 (15:40 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 23 Apr 2013 15:40:41 +0000 (15:40 +0000)
 Alberica Toia <alberica.toia@cern.ch>

ANALYSIS/AliCentralitySelectionTask.cxx
ANALYSIS/AliCentralitySelectionTask.h
OADB/AliOADBCentrality.h
STEER/STEERBase/AliCentrality.cxx
STEER/STEERBase/AliCentrality.h

index f8ef79e..7a2708b 100644 (file)
@@ -143,6 +143,8 @@ AliAnalysisTaskSE(),
   fCentCND(0),
   fCentZNA(0),
   fCentZNC(0),
+  fCentZPA(0),
+  fCentZPC(0),
   fCentNPA(0),
   fCentV0MvsFMD(0),
   fCentTKLvsV0M(0),
@@ -161,6 +163,8 @@ AliAnalysisTaskSE(),
   fCentCNDtrue(0),
   fCentZNAtrue(0),
   fCentZNCtrue(0),
+  fCentZPAtrue(0),
+  fCentZPCtrue(0),
   fHtempV0M(0),
   fHtempV0A(0),
   fHtempV0C(0),
@@ -175,6 +179,8 @@ AliAnalysisTaskSE(),
   fHtempCND(0),
   fHtempZNA(0),
   fHtempZNC(0),
+  fHtempZPA(0),
+  fHtempZPC(0),
   fHtempV0MvsFMD(0),
   fHtempTKLvsV0M(0),
   fHtempZEMvsZDC(0),
@@ -193,6 +199,8 @@ AliAnalysisTaskSE(),
   fHtempCNDtrue(0),
   fHtempZNAtrue(0),
   fHtempZNCtrue(0),
+  fHtempZPAtrue(0),
+  fHtempZPCtrue(0),
   fOutputList(0),
   fHOutCentV0M(0),
   fHOutCentV0A(0),
@@ -231,6 +239,8 @@ AliAnalysisTaskSE(),
   fHOutCentNPA(0),
   fHOutCentZNA(0),
   fHOutCentZNC(0),
+  fHOutCentZPA(0),
+  fHOutCentZPC(0),
   fHOutCentV0MvsFMD(0),
   fHOutCentTKLvsV0M(0),
   fHOutCentZEMvsZDC(0),
@@ -276,6 +286,8 @@ AliAnalysisTaskSE(),
   fHOutMultNPA(0),
   fHOutMultZNA(0),
   fHOutMultZNC(0),
+  fHOutMultZPA(0),
+  fHOutMultZPC(0),
   fHOutMultV0MvsZDN(0),
   fHOutMultZEMvsZDN(0),
   fHOutMultV0MvsZDC(0),
@@ -379,6 +391,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fCentCND(0),
   fCentZNA(0),
   fCentZNC(0),
+  fCentZPA(0),
+  fCentZPC(0),
   fCentNPA(0),
   fCentV0MvsFMD(0),
   fCentTKLvsV0M(0),
@@ -397,6 +411,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fCentCNDtrue(0),
   fCentZNAtrue(0),
   fCentZNCtrue(0),
+  fCentZPAtrue(0),
+  fCentZPCtrue(0),
   fHtempV0M(0),
   fHtempV0A(0),
   fHtempV0C(0),
@@ -411,6 +427,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHtempCND(0),
   fHtempZNA(0),
   fHtempZNC(0),
+  fHtempZPA(0),
+  fHtempZPC(0),
   fHtempV0MvsFMD(0),
   fHtempTKLvsV0M(0),
   fHtempZEMvsZDC(0),
@@ -429,6 +447,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHtempCNDtrue(0),
   fHtempZNAtrue(0),
   fHtempZNCtrue(0),
+  fHtempZPAtrue(0),
+  fHtempZPCtrue(0),
   fOutputList(0),
   fHOutCentV0M(0),
   fHOutCentV0A(0),
@@ -467,6 +487,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHOutCentNPA(0),
   fHOutCentZNA(0),
   fHOutCentZNC(0),
+  fHOutCentZPA(0),
+  fHOutCentZPC(0),
   fHOutCentV0MvsFMD(0),
   fHOutCentTKLvsV0M(0),
   fHOutCentZEMvsZDC(0),
@@ -512,6 +534,8 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHOutMultNPA(0),
   fHOutMultZNA(0),
   fHOutMultZNC(0),
+  fHOutMultZPA(0),
+  fHOutMultZPC(0),
   fHOutMultV0MvsZDN(0),
   fHOutMultZEMvsZDN(0),
   fHOutMultV0MvsZDC(0),
@@ -625,6 +649,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,6 +669,8 @@ 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),
   fHtempV0C(ana.fHtempV0C),
@@ -657,6 +685,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,6 +705,8 @@ 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),
@@ -713,6 +745,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),
@@ -758,6 +792,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),
@@ -848,6 +884,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);
@@ -892,10 +930,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);
@@ -966,6 +1006,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);
@@ -1012,6 +1054,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);
@@ -1070,9 +1114,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
@@ -1162,7 +1210,7 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
   multV0ACorr = AliESDUtils::GetCorrV0A(multV0A,zvtx);    
   multV0CCorr = AliESDUtils::GetCorrV0C(multV0C,zvtx);    
 
-  v0Corr = multV0A+multV0C; // To be checked further in case we switch to corrected values
+  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(); 
@@ -1184,7 +1232,7 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
     Double_t mult = esd->GetVZEROEqMultiplicity(iCh);
     multV0CEq += mult;
   }
-  
+
   Bool_t kT0BB = kFALSE;    
   if (esd) {
     // ***** T0 info    
@@ -1204,7 +1252,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();
   }
@@ -1375,10 +1423,14 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
     zem2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1))/8.;
 
     const Double_t *ZNAtower = esdZDC->GetZN2TowerEnergy(); 
-    znaTower = ZNAtower[0];
     const Double_t *ZNCtower = esdZDC->GetZN1TowerEnergy();
+    const Double_t *ZPAtower = esdZDC->GetZP2TowerEnergy(); 
+    const Double_t *ZPCtower = esdZDC->GetZP1TowerEnergy();
+    znaTower = ZNAtower[0];
     zncTower = ZNCtower[0];
-    
+    zpaTower = ZPAtower[0];
+    zpcTower = ZPCtower[0];
+
     for (Int_t j = 0; j < 4; ++j) 
       if (esdZDC->GetZDCTDCData(12,j) != 0) 
        znaFired = kTRUE;
@@ -1387,35 +1439,50 @@ 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;   
+
   } 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 +1491,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"));
@@ -1471,6 +1539,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,10 +1601,9 @@ 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);
@@ -1544,6 +1621,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 +1646,8 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
       fCentCND = fCentCNDtrue;        
       fCentZNA = fCentZNAtrue;        
       fCentZNC = fCentZNCtrue;        
+      fCentZPA = fCentZPAtrue;        
+      fCentZPC = fCentZPCtrue;        
     }
 
 
@@ -1620,6 +1701,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);
@@ -1666,8 +1749,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);
+
 
-       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));
@@ -1763,6 +1850,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 +1868,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 +1884,8 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliVEvent* const esd)
      fHtempFMDtrue       = centOADB->FMDhisttrueDPM();
      fHtempZNAtrue       = centOADB->ZNAhisttrueDPM();
      fHtempZNCtrue       = centOADB->ZNChisttrueDPM();
+     fHtempZPAtrue       = centOADB->ZPAhisttrueDPM();
+     fHtempZPCtrue       = centOADB->ZPChisttrueDPM();
    }
 
 
@@ -1808,6 +1901,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 +1918,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()));
 
 
index 2b7b696..43c1112 100644 (file)
@@ -119,6 +119,8 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   Float_t  fCentCND;            // percentile centrality from candle 
   Float_t  fCentZNA;            // percentile centrality from ZNA 
   Float_t  fCentZNC;            // percentile centrality from ZNC 
+  Float_t  fCentZPA;            // percentile centrality from ZPA 
+  Float_t  fCentZPC;            // percentile centrality from ZPC 
   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
@@ -138,6 +140,8 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   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
+  Float_t  fCentZPAtrue;        // percentile centrality from true (sim) ZPA
+  Float_t  fCentZPCtrue;        // percentile centrality from true (sim) ZPC
 
 
   TH1F    *fHtempV0M;           // histogram with centrality vs multiplicity using V0
@@ -154,6 +158,8 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   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    *fHtempZPA;           // histogram with centrality vs multiplicity using ZPA
+  TH1F    *fHtempZPC;           // histogram with centrality vs multiplicity using ZPC
   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 
@@ -173,6 +179,8 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   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
+  TH1F    *fHtempZPAtrue;       // histogram with centrality true (sim) vs multiplicity using ZPA
+  TH1F    *fHtempZPCtrue;       // histogram with centrality true (sim) vs multiplicity using ZPC
 
   TList   *fOutputList; // output list
   
@@ -214,6 +222,8 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   TH1F *fHOutCentNPA     ;      //control histogram for centrality
   TH1F *fHOutCentZNA     ;      //control histogram for centrality
   TH1F *fHOutCentZNC     ;      //control histogram for centrality
+  TH1F *fHOutCentZPA     ;      //control histogram for centrality
+  TH1F *fHOutCentZPC     ;      //control histogram for centrality
   TH1F *fHOutCentV0MvsFMD;      //control histogram for centrality
   TH1F *fHOutCentTKLvsV0M;      //control histogram for centrality
   TH1F *fHOutCentZEMvsZDC;      //control histogram for centrality
@@ -260,6 +270,8 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   TH1F *fHOutMultNPA ;          //control histogram for multiplicity
   TH1F *fHOutMultZNA ;          //control histogram for multiplicity
   TH1F *fHOutMultZNC ;          //control histogram for multiplicity
+  TH1F *fHOutMultZPA ;          //control histogram for multiplicity
+  TH1F *fHOutMultZPC ;          //control histogram for multiplicity
 
   TH2F *fHOutMultV0MvsZDN;      //control histogram for multiplicity
   TH2F *fHOutMultZEMvsZDN;      //control histogram for multiplicity
@@ -292,7 +304,7 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   TH1F *fHOutVertex ;           //control histogram for vertex SPD
   TH1F *fHOutVertexT0 ;         //control histogram for vertex T0
 
-  ClassDef(AliCentralitySelectionTask, 26); 
+  ClassDef(AliCentralitySelectionTask, 27); 
 };
 
 #endif
index c0a21d4..9a86fc9 100644 (file)
@@ -62,6 +62,8 @@ class AliOADBCentrality : public TNamed {
   TH1F*   FMDhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMD_percentile")));}\r
   TH1F*   ZNAhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNA_percentile")));}\r
   TH1F*   ZNChist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNC_percentile")));}\r
+  TH1F*   ZPAhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPA_percentile")));}\r
+  TH1F*   ZPChist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPC_percentile")));}\r
   TH2F*   ZEMvsZDChist()   const  {return ((TH2F*) (Hists2D()->FindObject("fHOutMultZEMvsZDC")));}\r
 \r
   TH1F*   NPAhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultNPA_percentile")));}\r
@@ -79,7 +81,9 @@ class AliOADBCentrality : public TNamed {
   TH1F*   FMDhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMDtrue_percentile")));}\r
   TH1F*   ZNAhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNAtrue_percentile")));}\r
   TH1F*   ZNChisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNCtrue_percentile")));}\r
-\r
+  TH1F*   ZPAhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPAtrue_percentile")));}\r
+  TH1F*   ZPChisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPCtrue_percentile")));}\r
\r
   TH1F*   V0histtrueDPM()     const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MtrueDPM_percentile")));}\r
   TH1F*   V0AhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AtrueDPM_percentile")));}\r
   TH1F*   V0ChisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CtrueDPM_percentile")));}\r
@@ -92,7 +96,8 @@ class AliOADBCentrality : public TNamed {
   TH1F*   FMDhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMDtrueDPM_percentile")));}\r
   TH1F*   ZNAhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNAtrueDPM_percentile")));}\r
   TH1F*   ZNChisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNCtrueDPM_percentile")));}\r
-\r
+  TH1F*   ZPAhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPAtrueDPM_percentile")));}\r
+  TH1F*   ZPChisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPCtrueDPM_percentile")));}\r
   TList*  Hists1D()        const  {return f1DHistos;}\r
   TList*  Hists2D()        const  {return f2DHistos;}\r
 \r
index 497eaaf..ec0c4f2 100644 (file)
@@ -39,6 +39,8 @@ AliCentrality::AliCentrality() : TNamed("Centrality", "Centrality"),
   fCentralityCND(0),
   fCentralityZNA(0),
   fCentralityZNC(0),
+  fCentralityZPA(0),
+  fCentralityZPC(0),
   fCentralityNPA(0),
   fCentralityV0MvsFMD(0),
   fCentralityTKLvsV0M(0),
@@ -56,7 +58,9 @@ AliCentrality::AliCentrality() : TNamed("Centrality", "Centrality"),
   fCentralityCL1true(0),
   fCentralityCNDtrue(0),
   fCentralityZNAtrue(0),
-  fCentralityZNCtrue(0)
+  fCentralityZNCtrue(0),
+  fCentralityZPAtrue(0),
+  fCentralityZPCtrue(0)
 {
   /// constructor
 }
@@ -78,6 +82,8 @@ AliCentrality::AliCentrality(const AliCentrality& cnt) :
   fCentralityCND(cnt.fCentralityCND),
   fCentralityZNA(cnt.fCentralityZNA),
   fCentralityZNC(cnt.fCentralityZNC),
+  fCentralityZPA(cnt.fCentralityZPA),
+  fCentralityZPC(cnt.fCentralityZPC),
   fCentralityNPA(cnt.fCentralityNPA),
   fCentralityV0MvsFMD(cnt.fCentralityV0MvsFMD),
   fCentralityTKLvsV0M(cnt.fCentralityTKLvsV0M),
@@ -95,7 +101,9 @@ AliCentrality::AliCentrality(const AliCentrality& cnt) :
   fCentralityCL1true(cnt.fCentralityCL1true),
   fCentralityCNDtrue(cnt.fCentralityCNDtrue),
   fCentralityZNAtrue(cnt.fCentralityZNAtrue),
-  fCentralityZNCtrue(cnt.fCentralityZNCtrue)
+  fCentralityZNCtrue(cnt.fCentralityZNCtrue),
+  fCentralityZPAtrue(cnt.fCentralityZPAtrue),
+  fCentralityZPCtrue(cnt.fCentralityZPCtrue)
 {
   /// Copy constructor
 }
@@ -120,6 +128,8 @@ AliCentrality& AliCentrality::operator=(const AliCentrality& c)
     fCentralityCND = c.fCentralityCND;
     fCentralityZNA = c.fCentralityZNA;
     fCentralityZNC = c.fCentralityZNC;
+    fCentralityZPA = c.fCentralityZPA;
+    fCentralityZPC = c.fCentralityZPC;
     fCentralityNPA = c.fCentralityNPA;
     fCentralityV0MvsFMD = c.fCentralityV0MvsFMD;
     fCentralityTKLvsV0M = c.fCentralityTKLvsV0M;
@@ -138,6 +148,8 @@ AliCentrality& AliCentrality::operator=(const AliCentrality& c)
     fCentralityCNDtrue = c.fCentralityCNDtrue;
     fCentralityZNAtrue = c.fCentralityZNAtrue;
     fCentralityZNCtrue = c.fCentralityZNCtrue;
+    fCentralityZPAtrue = c.fCentralityZPAtrue;
+    fCentralityZPCtrue = c.fCentralityZPCtrue;
   }
 
   return *this;
@@ -172,6 +184,8 @@ Float_t AliCentrality::GetCentralityPercentile(const char *x) const
     if(method.CompareTo("CND")==0)      return fCentralityCND;
     if(method.CompareTo("ZNA")==0)      return fCentralityZNA;
     if(method.CompareTo("ZNC")==0)      return fCentralityZNC;
+    if(method.CompareTo("ZPA")==0)      return fCentralityZPA;
+    if(method.CompareTo("ZPC")==0)      return fCentralityZPC;
     if(method.CompareTo("NPA")==0)      return fCentralityNPA;
     if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
     if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
@@ -190,6 +204,8 @@ Float_t AliCentrality::GetCentralityPercentile(const char *x) const
     if(method.CompareTo("CNDtrue")==0)      return fCentralityCNDtrue;
     if(method.CompareTo("ZNAtrue")==0)      return fCentralityZNAtrue;
     if(method.CompareTo("ZNCtrue")==0)      return fCentralityZNCtrue;
+    if(method.CompareTo("ZPAtrue")==0)      return fCentralityZPAtrue;
+    if(method.CompareTo("ZPCtrue")==0)      return fCentralityZPCtrue;
     return -1;
   } else {
     return -1;
@@ -215,6 +231,8 @@ Int_t AliCentrality::GetCentralityClass10(const char *x) const
     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("ZPA")==0)      return (Int_t) (fCentralityZPA / 10.0);
+    if(method.CompareTo("ZPC")==0)      return (Int_t) (fCentralityZPC / 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);
@@ -233,6 +251,8 @@ Int_t AliCentrality::GetCentralityClass10(const char *x) const
     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);
+    if(method.CompareTo("ZPAtrue")==0)  return (Int_t) (fCentralityZPAtrue / 10.0);
+    if(method.CompareTo("ZPCtrue")==0)  return (Int_t) (fCentralityZPCtrue / 10.0);
     return -1;
   } else {
     return -1;
@@ -258,6 +278,8 @@ Int_t AliCentrality::GetCentralityClass5(const char *x) const
     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("ZPA")==0)      return (Int_t) (fCentralityZPA / 5.0);
+    if(method.CompareTo("ZPC")==0)      return (Int_t) (fCentralityZPC / 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);
@@ -276,6 +298,8 @@ Int_t AliCentrality::GetCentralityClass5(const char *x) const
     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);
+    if(method.CompareTo("ZPAtrue")==0)  return (Int_t) (fCentralityZPAtrue / 5.0);
+    if(method.CompareTo("ZPCtrue")==0)  return (Int_t) (fCentralityZPCtrue / 5.0);
     return -1;
   } else {
     return -1;
@@ -302,6 +326,8 @@ Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char
     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("ZPA")==0) && (fCentralityZPA >=a && fCentralityZPA < b)) return kTRUE;
+    if ((method.CompareTo("ZPC")==0) && (fCentralityZPC >=a && fCentralityZPC < 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;
@@ -320,6 +346,8 @@ Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char
     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;
+    if ((method.CompareTo("ZPAtrue")==0) && (fCentralityZPAtrue >=a && fCentralityZPAtrue < b)) return kTRUE;
+    if ((method.CompareTo("ZPCtrue")==0) && (fCentralityZPCtrue >=a && fCentralityZPCtrue < b)) return kTRUE;
     else return kFALSE;
   } else {
     return kFALSE;
@@ -344,6 +372,8 @@ Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x) const
   if(method.CompareTo("CND")==0)      return fCentralityCND;
   if(method.CompareTo("ZNA")==0)      return fCentralityZNA;
   if(method.CompareTo("ZNC")==0)      return fCentralityZNC;
+  if(method.CompareTo("ZPA")==0)      return fCentralityZPA;
+  if(method.CompareTo("ZPC")==0)      return fCentralityZPC;
   if(method.CompareTo("NPA")==0)      return fCentralityNPA;
   if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
   if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
@@ -361,7 +391,9 @@ 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;
+  if(method.CompareTo("ZNCtrue")==0)  return fCentralityZNCtrue;
+  if(method.CompareTo("ZPAtrue")==0)  return fCentralityZPAtrue;
+  if(method.CompareTo("ZPCtrue")==0)  return fCentralityZPCtrue;
   return -1;
 }
 
@@ -383,6 +415,8 @@ Int_t AliCentrality::GetCentralityClass10Unchecked(const char *x) const
     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("ZPA")==0)      return (Int_t) (fCentralityZPA / 10.0);
+    if(method.CompareTo("ZPC")==0)      return (Int_t) (fCentralityZPC / 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);
@@ -401,6 +435,8 @@ Int_t AliCentrality::GetCentralityClass10Unchecked(const char *x) const
     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);
+    if(method.CompareTo("ZPAtrue")==0)  return (Int_t) (fCentralityZPAtrue / 10.0);
+    if(method.CompareTo("ZPCtrue")==0)  return (Int_t) (fCentralityZPCtrue / 10.0);
   return -1;
 }
 
@@ -422,6 +458,8 @@ Int_t AliCentrality::GetCentralityClass5Unchecked(const char *x) const
     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("ZPA")==0)      return (Int_t) (fCentralityZPA / 5.0);
+    if(method.CompareTo("ZPC")==0)      return (Int_t) (fCentralityZPC / 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);
@@ -440,6 +478,8 @@ Int_t AliCentrality::GetCentralityClass5Unchecked(const char *x) const
     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);
+    if(method.CompareTo("ZPAtrue")==0)  return (Int_t) (fCentralityZPAtrue / 5.0);
+    if(method.CompareTo("ZPCtrue")==0)  return (Int_t) (fCentralityZPCtrue / 5.0);
   return -1;
 } 
 
@@ -461,6 +501,8 @@ Bool_t AliCentrality::IsEventInCentralityClassUnchecked(Float_t a, Float_t b, co
     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("ZPA")==0) && (fCentralityZPA >=a && fCentralityZPA < b)) return kTRUE;
+    if ((method.CompareTo("ZPC")==0) && (fCentralityZPC >=a && fCentralityZPC < 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;
@@ -479,6 +521,8 @@ Bool_t AliCentrality::IsEventInCentralityClassUnchecked(Float_t a, Float_t b, co
     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;
+    if ((method.CompareTo("ZPAtrue")==0) && (fCentralityZPAtrue >=a && fCentralityZPAtrue < b)) return kTRUE;
+    if ((method.CompareTo("ZPCtrue")==0) && (fCentralityZPCtrue >=a && fCentralityZPCtrue < b)) return kTRUE;
   else return kFALSE;
 } 
 
@@ -501,6 +545,8 @@ void AliCentrality::Reset()
   fCentralityCND      =  0;
   fCentralityZNA      =  0;
   fCentralityZNC      =  0;
+  fCentralityZPA      =  0;
+  fCentralityZPC      =  0;
   fCentralityNPA      =  0;
   fCentralityV0MvsFMD =  0;
   fCentralityTKLvsV0M =  0;
@@ -519,4 +565,6 @@ void AliCentrality::Reset()
   fCentralityCNDtrue  =  0;
   fCentralityZNAtrue  =  0;
   fCentralityZNCtrue  =  0;
+  fCentralityZPAtrue  =  0;
+  fCentralityZPCtrue  =  0;
 }
index f10867f..70bd6f5 100644 (file)
@@ -37,6 +37,8 @@ class AliCentrality : public TNamed
   void SetCentralityCND(Float_t cent) {fCentralityCND = cent;}
   void SetCentralityZNA(Float_t cent) {fCentralityZNA = cent;}
   void SetCentralityZNC(Float_t cent) {fCentralityZNC = cent;}
+  void SetCentralityZPA(Float_t cent) {fCentralityZPA = cent;}
+  void SetCentralityZPC(Float_t cent) {fCentralityZPC = cent;}
   void SetCentralityNPA(Float_t cent) {fCentralityNPA = cent;}
   void SetCentralityV0MvsFMD(Float_t cent) {fCentralityV0MvsFMD = cent;}
   void SetCentralityTKLvsV0M(Float_t cent) {fCentralityTKLvsV0M = cent;}
@@ -52,6 +54,9 @@ class AliCentrality : public TNamed
   void SetCentralityCL1true(Float_t cent) {fCentralityCL1true = cent;}
   void SetCentralityCNDtrue(Float_t cent) {fCentralityCNDtrue = cent;}
   void SetCentralityZNAtrue(Float_t cent) {fCentralityZNAtrue = cent;}
+  void SetCentralityZNCtrue(Float_t cent) {fCentralityZNCtrue = cent;}
+  void SetCentralityZPAtrue(Float_t cent) {fCentralityZPAtrue = cent;}
+  void SetCentralityZPCtrue(Float_t cent) {fCentralityZPCtrue = cent;}
 
   /// get centrality result
   Float_t GetCentralityPercentile(const char *method) const;
@@ -83,6 +88,8 @@ class AliCentrality : public TNamed
   Float_t fCentralityCND;   // Centrality from tracks (candle condition)
   Float_t fCentralityZNA;   // Centrality from ZNA
   Float_t fCentralityZNC;   // Centrality from ZNC
+  Float_t fCentralityZPA;   // Centrality from ZPA
+  Float_t fCentralityZPC;   // Centrality from ZPC
   Float_t fCentralityNPA;   // Centrality from Npart (MC)
   Float_t fCentralityV0MvsFMD;   // Centrality from V0 vs FMD
   Float_t fCentralityTKLvsV0M;   // Centrality from tracklets vs V0
@@ -102,7 +109,9 @@ class AliCentrality : public TNamed
   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
+  Float_t fCentralityZPAtrue;   // Centrality from true (sim) ZNA
+  Float_t fCentralityZPCtrue;   // Centrality from true (sim) ZNC
 
-  ClassDef(AliCentrality, 7)
+  ClassDef(AliCentrality, 8)
 };
 #endif //ALICENTRALITY_H