]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Introduction of centrality selection for MC, hijing and dpmjet, in the same way as...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 30 Jan 2013 09:14:36 +0000 (09:14 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 30 Jan 2013 09:14:36 +0000 (09:14 +0000)
ANALYSIS/AliCentralitySelectionTask.cxx
ANALYSIS/AliCentralitySelectionTask.h
OADB/AliOADBCentrality.h
STEER/STEERBase/AliCentrality.cxx
STEER/STEERBase/AliCentrality.h

index 5a43d0831928187ff3c900cd70bedbbfd7ab26a3..8b2101f571feb23c5b24f02fb01571c9ddbaaa1e 100644 (file)
@@ -138,11 +138,21 @@ AliAnalysisTaskSE(),
   fCentCL0(0),
   fCentCL1(0),
   fCentCND(0),
-  fCentNPA(0),
   fCentZNA(0),
+  fCentNPA(0),
   fCentV0MvsFMD(0),
   fCentTKLvsV0M(0),
   fCentZEMvsZDC(0),
+  fCentV0Mtrue(0),
+  fCentV0Atrue(0),
+  fCentV0Ctrue(0),
+  fCentFMDtrue(0),
+  fCentTRKtrue(0),
+  fCentTKLtrue(0),
+  fCentCL0true(0),
+  fCentCL1true(0),
+  fCentCNDtrue(0),
+  fCentZNAtrue(0),
   fHtempV0M(0),
   fHtempV0A(0),
   fHtempV0C(0),
@@ -152,15 +162,25 @@ AliAnalysisTaskSE(),
   fHtempCL0(0),
   fHtempCL1(0),
   fHtempCND(0),
-  fHtempNPA(0),
   fHtempZNA(0),
   fHtempV0MvsFMD(0),
   fHtempTKLvsV0M(0),
   fHtempZEMvsZDC(0),
+  fHtempNPA(0),
+  fHtempV0Mtrue(0),
+  fHtempV0Atrue(0),
+  fHtempV0Ctrue(0),
+  fHtempFMDtrue(0),
+  fHtempTRKtrue(0),
+  fHtempTKLtrue(0),
+  fHtempCL0true(0),
+  fHtempCL1true(0),
+  fHtempCNDtrue(0),
+  fHtempZNAtrue(0),
   fOutputList(0),
-  fHOutCentV0M    (0),
-  fHOutCentV0A    (0),
-  fHOutCentV0C    (0),
+  fHOutCentV0M(0),
+  fHOutCentV0A(0),
+  fHOutCentV0C(0),
   fHOutCentV0MCVHN(0),
   fHOutCentV0MCVLN(0),
   fHOutCentV0MCVHNinMB(0),
@@ -183,14 +203,14 @@ AliAnalysisTaskSE(),
   fHOutCentV0MEJEinMB(0),
   fHOutCentV0MEGAinMB(0),
   fHOutCentV0MPHSinMB(0),
-  fHOutCentFMD     (0),
-  fHOutCentTRK     (0),
-  fHOutCentTKL     (0),
-  fHOutCentCL0     (0),
-  fHOutCentCL1     (0),
-  fHOutCentCND     (0),
-  fHOutCentNPA     (0),
-  fHOutCentZNA     (0),
+  fHOutCentFMD(0),
+  fHOutCentTRK(0),
+  fHOutCentTKL(0),
+  fHOutCentCL0(0),
+  fHOutCentCL1(0),
+  fHOutCentCND(0),
+  fHOutCentNPA(0),
+  fHOutCentZNA(0),
   fHOutCentV0MvsFMD(0),
   fHOutCentTKLvsV0M(0),
   fHOutCentZEMvsZDC(0),
@@ -330,11 +350,21 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fCentCL0(0),
   fCentCL1(0),
   fCentCND(0),
-  fCentNPA(0),
   fCentZNA(0),
+  fCentNPA(0),
   fCentV0MvsFMD(0),
   fCentTKLvsV0M(0),
   fCentZEMvsZDC(0),
+  fCentV0Mtrue(0),
+  fCentV0Atrue(0),
+  fCentV0Ctrue(0),
+  fCentFMDtrue(0),
+  fCentTRKtrue(0),
+  fCentTKLtrue(0),
+  fCentCL0true(0),
+  fCentCL1true(0),
+  fCentCNDtrue(0),
+  fCentZNAtrue(0),
   fHtempV0M(0),
   fHtempV0A(0),
   fHtempV0C(0),
@@ -344,15 +374,25 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHtempCL0(0),
   fHtempCL1(0),
   fHtempCND(0),
-  fHtempNPA(0),
   fHtempZNA(0),
   fHtempV0MvsFMD(0),
   fHtempTKLvsV0M(0),
   fHtempZEMvsZDC(0),
+  fHtempNPA(0),
+  fHtempV0Mtrue(0),
+  fHtempV0Atrue(0),
+  fHtempV0Ctrue(0),
+  fHtempFMDtrue(0),
+  fHtempTRKtrue(0),
+  fHtempTKLtrue(0),
+  fHtempCL0true(0),
+  fHtempCL1true(0),
+  fHtempCNDtrue(0),
+  fHtempZNAtrue(0),
   fOutputList(0),
-  fHOutCentV0M    (0),
-  fHOutCentV0A    (0),
-  fHOutCentV0C    (0),
+  fHOutCentV0M(0),
+  fHOutCentV0A(0),
+  fHOutCentV0C(0),
   fHOutCentV0MCVHN(0),
   fHOutCentV0MCVLN(0),
   fHOutCentV0MCVHNinMB(0),
@@ -375,14 +415,14 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
   fHOutCentV0MEJEinMB(0),
   fHOutCentV0MEGAinMB(0),
   fHOutCentV0MPHSinMB(0),
-  fHOutCentFMD     (0),
-  fHOutCentTRK     (0),
-  fHOutCentTKL     (0),
-  fHOutCentCL0     (0),
-  fHOutCentCL1     (0),
-  fHOutCentCND     (0),
-  fHOutCentNPA     (0),
-  fHOutCentZNA     (0),
+  fHOutCentFMD(0),
+  fHOutCentTRK(0),
+  fHOutCentTKL(0),
+  fHOutCentCL0(0),
+  fHOutCentCL1(0),
+  fHOutCentCND(0),
+  fHOutCentNPA(0),
+  fHOutCentZNA(0),
   fHOutCentV0MvsFMD(0),
   fHOutCentTKLvsV0M(0),
   fHOutCentZEMvsZDC(0),
@@ -532,11 +572,21 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fCentCL0(ana.fCentCL0),
   fCentCL1(ana.fCentCL1),
   fCentCND(ana.fCentCND),
-  fCentNPA(ana.fCentNPA),
   fCentZNA(ana.fCentZNA),
+  fCentNPA(ana.fCentNPA),
   fCentV0MvsFMD(ana.fCentV0MvsFMD),
   fCentTKLvsV0M(ana.fCentTKLvsV0M),
   fCentZEMvsZDC(ana.fCentZEMvsZDC),
+  fCentV0Mtrue(ana.fCentV0Mtrue),
+  fCentV0Atrue(ana.fCentV0Atrue),
+  fCentV0Ctrue(ana.fCentV0Ctrue),
+  fCentFMDtrue(ana.fCentFMDtrue),
+  fCentTRKtrue(ana.fCentTRKtrue),
+  fCentTKLtrue(ana.fCentTKLtrue),
+  fCentCL0true(ana.fCentCL0true),
+  fCentCL1true(ana.fCentCL1true),
+  fCentCNDtrue(ana.fCentCNDtrue),
+  fCentZNAtrue(ana.fCentZNAtrue),
   fHtempV0M(ana.fHtempV0M),
   fHtempV0A(ana.fHtempV0A),
   fHtempV0C(ana.fHtempV0C),
@@ -546,15 +596,25 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHtempCL0(ana.fHtempCL0),
   fHtempCL1(ana.fHtempCL1),
   fHtempCND(ana.fHtempCND),
-  fHtempNPA(ana.fHtempNPA),
   fHtempZNA(ana.fHtempZNA),
   fHtempV0MvsFMD(ana.fHtempV0MvsFMD),
   fHtempTKLvsV0M(ana.fHtempTKLvsV0M),
   fHtempZEMvsZDC(ana.fHtempZEMvsZDC),
+  fHtempNPA(ana.fHtempNPA),
+  fHtempV0Mtrue(ana.fHtempV0Mtrue),
+  fHtempV0Atrue(ana.fHtempV0Atrue),
+  fHtempV0Ctrue(ana.fHtempV0Ctrue),
+  fHtempFMDtrue(ana.fHtempFMDtrue),
+  fHtempTRKtrue(ana.fHtempTRKtrue),
+  fHtempTKLtrue(ana.fHtempTKLtrue),
+  fHtempCL0true(ana.fHtempCL0true),
+  fHtempCL1true(ana.fHtempCL1true),
+  fHtempCNDtrue(ana.fHtempCNDtrue),
+  fHtempZNAtrue(ana.fHtempZNAtrue),
   fOutputList(ana.fOutputList),
-  fHOutCentV0M    (ana.fHOutCentV0M    ),
-  fHOutCentV0A    (ana.fHOutCentV0A    ),
-  fHOutCentV0C    (ana.fHOutCentV0C    ),
+  fHOutCentV0M(ana.fHOutCentV0M),
+  fHOutCentV0A(ana.fHOutCentV0A),
+  fHOutCentV0C(ana.fHOutCentV0C),
   fHOutCentV0MCVHN(ana.fHOutCentV0MCVHN),
   fHOutCentV0MCVLN(ana.fHOutCentV0MCVLN),
   fHOutCentV0MCVHNinMB(ana.fHOutCentV0MCVHNinMB),
@@ -577,14 +637,14 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect
   fHOutCentV0MEJEinMB(ana.fHOutCentV0MEJEinMB),
   fHOutCentV0MEGAinMB(ana.fHOutCentV0MEGAinMB),
   fHOutCentV0MPHSinMB(ana.fHOutCentV0MPHSinMB),
-  fHOutCentFMD     (ana.fHOutCentFMD     ),
-  fHOutCentTRK     (ana.fHOutCentTRK     ),
-  fHOutCentTKL     (ana.fHOutCentTKL     ),
-  fHOutCentCL0     (ana.fHOutCentCL0     ),
-  fHOutCentCL1     (ana.fHOutCentCL1     ),
-  fHOutCentCND     (ana.fHOutCentCND     ),
-  fHOutCentNPA     (ana.fHOutCentNPA     ),
-  fHOutCentZNA     (ana.fHOutCentZNA     ),
+  fHOutCentFMD(ana.fHOutCentFMD),
+  fHOutCentTRK(ana.fHOutCentTRK),
+  fHOutCentTKL(ana.fHOutCentTKL),
+  fHOutCentCL0(ana.fHOutCentCL0),
+  fHOutCentCL1(ana.fHOutCentCL1),
+  fHOutCentCND(ana.fHOutCentCND),
+  fHOutCentNPA(ana.fHOutCentNPA),
+  fHOutCentZNA(ana.fHOutCentZNA),
   fHOutCentV0MvsFMD(ana.fHOutCentV0MvsFMD),
   fHOutCentTKLvsV0M(ana.fHOutCentTKLvsV0M),
   fHOutCentZEMvsZDC(ana.fHOutCentZEMvsZDC),
@@ -1214,7 +1274,6 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
   if(fHtempCL0) fCentCL0 = fHtempCL0->GetBinContent(fHtempCL0->FindBin(nClusters[0]));
   if(fHtempCL1) fCentCL1 = fHtempCL1->GetBinContent(fHtempCL1->FindBin(spdCorr));
   if(fHtempCND) fCentCND = fHtempCND->GetBinContent(fHtempCND->FindBin(multCND));
-  if(fHtempNPA) fCentNPA = fHtempNPA->GetBinContent(fHtempNPA->FindBin(Npart));
   if(fHtempZNA) {
     if(znaFired) fCentZNA = fHtempZNA->GetBinContent(fHtempZNA->FindBin(znaTower));
     else fCentZNA = 101;
@@ -1223,6 +1282,19 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
   if(fHtempTKLvsV0M) fCentTKLvsV0M = fHtempTKLvsV0M->GetBinContent(fHtempTKLvsV0M->FindBin(nTracklets));
   if(fHtempZEMvsZDC) fCentZEMvsZDC = fHtempZEMvsZDC->GetBinContent(fHtempZEMvsZDC->FindBin(zem1Energy+zem2Energy,zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
 
+  if(fHtempNPA) fCentNPA = fHtempNPA->GetBinContent(fHtempNPA->FindBin(Npart));
+  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(fHtempFMDtrue) fCentFMDtrue = fHtempFMDtrue->GetBinContent(fHtempFMDtrue->FindBin((multFMDA+multFMDC)));
+  if(fHtempTRKtrue) fCentTRKtrue = fHtempTRKtrue->GetBinContent(fHtempTRKtrue->FindBin(nTracks));
+  if(fHtempTKLtrue) fCentTKLtrue = fHtempTKLtrue->GetBinContent(fHtempTKLtrue->FindBin(nTracklets));
+  if(fHtempCL0true) fCentCL0true = fHtempCL0true->GetBinContent(fHtempCL0true->FindBin(nClusters[0]));
+  if(fHtempCL1true) fCentCL1true = fHtempCL1true->GetBinContent(fHtempCL1true->FindBin(spdCorr));
+  if(fHtempCNDtrue) fCentCNDtrue = fHtempCNDtrue->GetBinContent(fHtempCNDtrue->FindBin(multCND));
+  if(fHtempZNAtrue) fCentZNAtrue = fHtempZNAtrue->GetBinContent(fHtempZNAtrue->FindBin(znaTower));
+   
+
 
   // ***** Cleaning
   if (fUseCleaning) {
@@ -1268,6 +1340,21 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
 
   // filling QA histograms
   if (fFillHistos) {    
+
+    if (fIsMCInput) { // fill histo with true centrality for simulations
+      fCentV0M = fCentV0Mtrue;        
+      fCentV0A = fCentV0Atrue;        
+      fCentV0C = fCentV0Ctrue;        
+      fCentFMD = fCentFMDtrue;        
+      fCentTRK = fCentTRKtrue;        
+      fCentTKL = fCentTKLtrue;        
+      fCentCL0 = fCentCL0true;        
+      fCentCL1 = fCentCL1true;        
+      fCentCND = fCentCNDtrue;        
+      fCentZNA = fCentZNAtrue;        
+    }
+
+
     if ((fMB) && (abs(zvtx)<10))       fHOutMultCL1vsTKL->Fill(spdCorr,nTracklets);
 
     if (fCVHN)   fHOutCentV0MCVHN->Fill(fCentV0M);
@@ -1284,7 +1371,7 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
 
     if (((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) && (runType==0)) ||
        ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7) && (runType==1))) { // fill the QA histograms only for MB events!
-
+      
       fHOutQuality->Fill(fQuality);
       fHOutVertex->Fill(zvtx);
       fHOutVertexT0->Fill(zvtxT0);
@@ -1419,6 +1506,19 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliESDEvent* const esd)
     centOADB  = (AliOADBCentrality*)(con->GetDefaultObject("oadbDefault"));
   }
 
+  Bool_t isHijing=kFALSE;
+  Bool_t isDpmjet=kFALSE;
+  AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
+  AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
+  AliMCEvent*  mcEvent=0;
+  if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) ) {     
+    AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
+    if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class())) isHijing=kTRUE;
+    else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) isHijing=kTRUE;
+    else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) isDpmjet=kTRUE;
+  }
+
+
   // modes
   fUseScaling   = centOADB->UseScaling();
   fUseCleaning  = centOADB->UseCleaning();
@@ -1434,10 +1534,32 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliESDEvent* const esd)
   fHtempTRK       = centOADB->TPChist();
   fHtempCL1       = centOADB->SPDhist();
   fHtempCND       = centOADB->CNDhist();
-  fHtempNPA       = centOADB->NPAhist();
+  fHtempFMD       = centOADB->FMDhist();
   fHtempZNA       = centOADB->ZNAhist();
   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 (!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()));
@@ -1445,9 +1567,19 @@ Int_t AliCentralitySelectionTask::SetupRun(const AliESDEvent* const esd)
   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 (!fHtempNPA) AliWarning(Form("Calibration for NPA does not exist in %s", path.Data()));
   if (!fHtempZNA) AliWarning(Form("Calibration for ZNA 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()));
+
+  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 (!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 (!fHtempFMDtrue) AliWarning(Form("Calibration for FMDtrue does not exist in %s", path.Data()));
 
   // scale factors
   fV0MScaleFactor    = centOADB->V0MScaleFactor();
index 80d3cc2898b20176d6736f89a02aab281a78a9f5..bb99e3a3ee60136b64456bf4afb20ee810e07f6c 100644 (file)
@@ -114,12 +114,24 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   Float_t  fCentCL0;            // percentile centrality from clusters in layer 0
   Float_t  fCentCL1;            // percentile centrality from clusters in layer 1
   Float_t  fCentCND;            // percentile centrality from candle 
-  Float_t  fCentNPA;            // percentile centrality from Npart (MC) 
   Float_t  fCentZNA;            // percentile centrality from ZNA 
+  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
   Float_t  fCentZEMvsZDC;       // percentile centrality from ZEM vs ZDC
 
+  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  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
+  Float_t  fCentCL0true;        // percentile centrality from true (sim) Clusters in layer 0
+  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
+
+
   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
@@ -129,11 +141,22 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   TH1F    *fHtempCL0;           // histogram with centrality vs multiplicity using clusters in layer 0
   TH1F    *fHtempCL1;           // histogram with centrality vs multiplicity using clusters in layer 1
   TH1F    *fHtempCND;           // histogram with centrality vs multiplicity using candle
-  TH1F    *fHtempNPA;           // histogram with centrality vs multiplicity using Npart
   TH1F    *fHtempZNA;           // histogram with centrality vs multiplicity using ZNA
   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 
+  TH1F    *fHtempNPA;           // histogram with centrality vs multiplicity using Npart
+
+  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    *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
+  TH1F    *fHtempCL0true;       // histogram with centrality true (sim) vs multiplicity using clusters in layer 0
+  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
 
   TList   *fOutputList; // output list
   
@@ -244,7 +267,7 @@ class AliCentralitySelectionTask : public AliAnalysisTaskSE {
   TH1F *fHOutVertex ;           //control histogram for vertex SPD
   TH1F *fHOutVertexT0 ;         //control histogram for vertex T0
 
-  ClassDef(AliCentralitySelectionTask, 24); 
+  ClassDef(AliCentralitySelectionTask, 25); 
 };
 
 #endif
index faf134c4dc2fb2ff0fb1dbf54eba52bb3508e73e..43ae8ee20f8b587401725d66f02b668d3ba73bca 100644 (file)
@@ -56,9 +56,31 @@ class AliOADBCentrality : public TNamed {
   TH1F*   TPChist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultTRK_percentile")));}\r
   TH1F*   CNDhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCND_percentile")));}\r
   TH1F*   SPDhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCL1_percentile")));}\r
-  TH1F*   NPAhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultNPA_percentile")));}\r
+  TH1F*   FMDhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMD_percentile")));}\r
   TH1F*   ZNAhist()        const  {return ((TH1F*) (Hists1D()->FindObject("hZNA")));}\r
   TH2F*   ZEMvsZDChist()   const  {return ((TH2F*) (Hists2D()->FindObject("fHOutMultZEMvsZDC")));}\r
+\r
+  TH1F*   NPAhist()        const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultNPA_percentile")));}\r
+  TH1F*   NPAhistDPM()     const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultNPADPM_percentile")));}\r
+\r
+  TH1F*   V0histtrue()     const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0Mtrue_percentile")));}\r
+  TH1F*   V0Ahisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0Atrue_percentile")));}\r
+  TH1F*   V0Chisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0Ctrue_percentile")));}\r
+  TH1F*   TPChisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultTRKtrue_percentile")));}\r
+  TH1F*   CNDhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCNDtrue_percentile")));}\r
+  TH1F*   SPDhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCL1true_percentile")));}\r
+  TH1F*   FMDhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMDtrue_percentile")));}\r
+  TH1F*   ZNAhisttrue()    const  {return ((TH1F*) (Hists1D()->FindObject("hZNAtrue")));}\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
+  TH1F*   TPChisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultTRKtrueDPM_percentile")));}\r
+  TH1F*   CNDhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCNDtrueDPM_percentile")));}\r
+  TH1F*   SPDhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCL1trueDPM_percentile")));}\r
+  TH1F*   FMDhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMDtrueDPM_percentile")));}\r
+  TH1F*   ZNAhisttrueDPM()    const  {return ((TH1F*) (Hists1D()->FindObject("hZNAtrueDPM")));}\r
+\r
   TList*  Hists1D()        const  {return f1DHistos;}\r
   TList*  Hists2D()        const  {return f2DHistos;}\r
 \r
index 7ef86c5f515e9af98c75fb00e53f43405c2a5d88..da798899f62d3f410b2e75005601d49c78f1ea53 100644 (file)
@@ -34,11 +34,21 @@ AliCentrality::AliCentrality() : TNamed("Centrality", "Centrality"),
   fCentralityCL0(0),
   fCentralityCL1(0),
   fCentralityCND(0),
-  fCentralityNPA(0),
   fCentralityZNA(0),
+  fCentralityNPA(0),
   fCentralityV0MvsFMD(0),
   fCentralityTKLvsV0M(0),
-  fCentralityZEMvsZDC(0)
+  fCentralityZEMvsZDC(0),
+  fCentralityV0Mtrue(0),
+  fCentralityV0Atrue(0),
+  fCentralityV0Ctrue(0),
+  fCentralityFMDtrue(0),
+  fCentralityTRKtrue(0),
+  fCentralityTKLtrue(0),
+  fCentralityCL0true(0),
+  fCentralityCL1true(0),
+  fCentralityCNDtrue(0),
+  fCentralityZNAtrue(0)
 {
   /// constructor
 }
@@ -55,11 +65,21 @@ AliCentrality::AliCentrality(const AliCentrality& cnt) :
   fCentralityCL0(cnt.fCentralityCL0),
   fCentralityCL1(cnt.fCentralityCL1),
   fCentralityCND(cnt.fCentralityCND),
-  fCentralityNPA(cnt.fCentralityNPA),
   fCentralityZNA(cnt.fCentralityZNA),
+  fCentralityNPA(cnt.fCentralityNPA),
   fCentralityV0MvsFMD(cnt.fCentralityV0MvsFMD),
   fCentralityTKLvsV0M(cnt.fCentralityTKLvsV0M),
-  fCentralityZEMvsZDC(cnt.fCentralityZEMvsZDC)
+  fCentralityZEMvsZDC(cnt.fCentralityZEMvsZDC),
+  fCentralityV0Mtrue(cnt.fCentralityV0Mtrue),
+  fCentralityV0Atrue(cnt.fCentralityV0Atrue),
+  fCentralityV0Ctrue(cnt.fCentralityV0Ctrue),
+  fCentralityFMDtrue(cnt.fCentralityFMDtrue),
+  fCentralityTRKtrue(cnt.fCentralityTRKtrue),
+  fCentralityTKLtrue(cnt.fCentralityTKLtrue),
+  fCentralityCL0true(cnt.fCentralityCL0true),
+  fCentralityCL1true(cnt.fCentralityCL1true),
+  fCentralityCNDtrue(cnt.fCentralityCNDtrue),
+  fCentralityZNAtrue(cnt.fCentralityZNAtrue)
 {
   /// Copy constructor
 }
@@ -79,11 +99,21 @@ AliCentrality& AliCentrality::operator=(const AliCentrality& c)
     fCentralityCL0 = c.fCentralityCL0;
     fCentralityCL1 = c.fCentralityCL1;
     fCentralityCND = c.fCentralityCND;
-    fCentralityNPA = c.fCentralityNPA;
     fCentralityZNA = c.fCentralityZNA;
+    fCentralityNPA = c.fCentralityNPA;
     fCentralityV0MvsFMD = c.fCentralityV0MvsFMD;
     fCentralityTKLvsV0M = c.fCentralityTKLvsV0M;
     fCentralityZEMvsZDC = c.fCentralityZEMvsZDC;
+    fCentralityV0Mtrue = c.fCentralityV0Mtrue;
+    fCentralityV0Atrue = c.fCentralityV0Atrue;
+    fCentralityV0Ctrue = c.fCentralityV0Ctrue;
+    fCentralityFMDtrue = c.fCentralityFMDtrue;
+    fCentralityTRKtrue = c.fCentralityTRKtrue;
+    fCentralityTKLtrue = c.fCentralityTKLtrue;
+    fCentralityCL0true = c.fCentralityCL0true;
+    fCentralityCL1true = c.fCentralityCL1true;
+    fCentralityCNDtrue = c.fCentralityCNDtrue;
+    fCentralityZNAtrue = c.fCentralityZNAtrue;
   }
 
   return *this;
@@ -113,11 +143,21 @@ Float_t AliCentrality::GetCentralityPercentile(const char *x) const
     if(method.CompareTo("CL0")==0)      return fCentralityCL0;
     if(method.CompareTo("CL1")==0)      return fCentralityCL1;
     if(method.CompareTo("CND")==0)      return fCentralityCND;
-    if(method.CompareTo("NPA")==0)      return fCentralityNPA;
     if(method.CompareTo("ZNA")==0)      return fCentralityZNA;
+    if(method.CompareTo("NPA")==0)      return fCentralityNPA;
     if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
     if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
     if(method.CompareTo("ZEMvsZDC")==0) return fCentralityZEMvsZDC;
+    if(method.CompareTo("V0Mtrue")==0)      return fCentralityV0Mtrue;
+    if(method.CompareTo("V0Atrue")==0)      return fCentralityV0Atrue;
+    if(method.CompareTo("V0Ctrue")==0)      return fCentralityV0Ctrue;
+    if(method.CompareTo("FMDtrue")==0)      return fCentralityFMDtrue;
+    if(method.CompareTo("TRKtrue")==0)      return fCentralityTRKtrue;
+    if(method.CompareTo("TKLtrue")==0)      return fCentralityTKLtrue;
+    if(method.CompareTo("CL0true")==0)      return fCentralityCL0true;
+    if(method.CompareTo("CL1true")==0)      return fCentralityCL1true;
+    if(method.CompareTo("CNDtrue")==0)      return fCentralityCNDtrue;
+    if(method.CompareTo("ZNAtrue")==0)      return fCentralityZNAtrue;
     return -1;
   } else {
     return -1;
@@ -138,11 +178,21 @@ Int_t AliCentrality::GetCentralityClass10(const char *x) const
     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("NPA")==0)      return (Int_t) (fCentralityNPA / 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);
     return -1;
   } else {
     return -1;
@@ -163,11 +213,21 @@ Int_t AliCentrality::GetCentralityClass5(const char *x) const
     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("NPA")==0)      return (Int_t) (fCentralityNPA / 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) (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("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);
     return -1;
   } else {
     return -1;
@@ -189,11 +249,21 @@ Bool_t AliCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char
     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("NPA")==0) && (fCentralityNPA >=a && fCentralityNPA < 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;
     else return kFALSE;
   } else {
     return kFALSE;
@@ -213,11 +283,21 @@ Float_t AliCentrality::GetCentralityPercentileUnchecked(const char *x) const
   if(method.CompareTo("CL0")==0)      return fCentralityCL0;
   if(method.CompareTo("CL1")==0)      return fCentralityCL1;
   if(method.CompareTo("CND")==0)      return fCentralityCND;
-  if(method.CompareTo("NPA")==0)      return fCentralityNPA;
   if(method.CompareTo("ZNA")==0)      return fCentralityZNA;
+  if(method.CompareTo("NPA")==0)      return fCentralityNPA;
   if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
   if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
   if(method.CompareTo("ZEMvsZDC")==0) return fCentralityZEMvsZDC;
+  if(method.CompareTo("V0Mtrue")==0)  return fCentralityV0Mtrue;
+  if(method.CompareTo("V0Atrue")==0)  return fCentralityV0Atrue;
+  if(method.CompareTo("V0Ctrue")==0)  return fCentralityV0Ctrue;
+  if(method.CompareTo("FMDtrue")==0)  return fCentralityFMDtrue;
+  if(method.CompareTo("TRKtrue")==0)  return fCentralityTRKtrue;
+  if(method.CompareTo("TKLtrue")==0)  return fCentralityTKLtrue;
+  if(method.CompareTo("CL0true")==0)  return fCentralityCL0true;
+  if(method.CompareTo("CL1true")==0)  return fCentralityCL1true;
+  if(method.CompareTo("CNDtrue")==0)  return fCentralityCNDtrue;
+  if(method.CompareTo("ZNAtrue")==0)  return fCentralityZNAtrue;
   return -1;
 }
 
@@ -234,11 +314,21 @@ Int_t AliCentrality::GetCentralityClass10Unchecked(const char *x) const
   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("NPA")==0)      return (Int_t) (fCentralityNPA / 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);
   return -1;
 }
 
@@ -255,11 +345,21 @@ Int_t AliCentrality::GetCentralityClass5Unchecked(const char *x) const
   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("NPA")==0)      return (Int_t) (fCentralityNPA / 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);
   return -1;
 } 
 
@@ -276,11 +376,21 @@ Bool_t AliCentrality::IsEventInCentralityClassUnchecked(Float_t a, Float_t b, co
   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("NPA")==0) && (fCentralityNPA >=a && fCentralityNPA < 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;
   else return kFALSE;
 } 
 
@@ -298,9 +408,19 @@ void AliCentrality::Reset()
   fCentralityCL0      =  0;
   fCentralityCL1      =  0;
   fCentralityCND      =  0;
-  fCentralityNPA      =  0;
   fCentralityZNA      =  0;
+  fCentralityNPA      =  0;
   fCentralityV0MvsFMD =  0;
   fCentralityTKLvsV0M =  0;
   fCentralityZEMvsZDC =  0;
+  fCentralityV0Mtrue  =  0;
+  fCentralityV0Atrue  =  0;
+  fCentralityV0Ctrue  =  0;
+  fCentralityFMDtrue  =  0;
+  fCentralityTRKtrue  =  0;
+  fCentralityTKLtrue  =  0;
+  fCentralityCL0true  =  0;
+  fCentralityCL1true  =  0;
+  fCentralityCNDtrue  =  0;
+  fCentralityZNAtrue  =  0;
 }
index a3db6a9f28a09bd57d1e80e3fe9b8432b4382d4f..0f08967b5eb794989fbd2d670c4b219fdc75a8cb 100644 (file)
@@ -32,12 +32,23 @@ class AliCentrality : public TNamed
   void SetCentralityCL0(Float_t cent) {fCentralityCL0 = cent;}
   void SetCentralityCL1(Float_t cent) {fCentralityCL1 = cent;}
   void SetCentralityCND(Float_t cent) {fCentralityCND = cent;}
-  void SetCentralityNPA(Float_t cent) {fCentralityNPA = cent;}
   void SetCentralityZNA(Float_t cent) {fCentralityZNA = cent;}
+  void SetCentralityNPA(Float_t cent) {fCentralityNPA = cent;}
   void SetCentralityV0MvsFMD(Float_t cent) {fCentralityV0MvsFMD = cent;}
   void SetCentralityTKLvsV0M(Float_t cent) {fCentralityTKLvsV0M = cent;}
   void SetCentralityZEMvsZDC(Float_t cent) {fCentralityZEMvsZDC = cent;}
 
+  void SetCentralityV0Mtrue(Float_t cent) {fCentralityV0Mtrue = cent;} 
+  void SetCentralityV0Atrue(Float_t cent) {fCentralityV0Atrue = cent;} 
+  void SetCentralityV0Ctrue(Float_t cent) {fCentralityV0Ctrue = cent;} 
+  void SetCentralityFMDtrue(Float_t cent) {fCentralityFMDtrue = cent;}
+  void SetCentralityTRKtrue(Float_t cent) {fCentralityTRKtrue = cent;}
+  void SetCentralityTKLtrue(Float_t cent) {fCentralityTKLtrue = cent;}
+  void SetCentralityCL0true(Float_t cent) {fCentralityCL0true = cent;}
+  void SetCentralityCL1true(Float_t cent) {fCentralityCL1true = cent;}
+  void SetCentralityCNDtrue(Float_t cent) {fCentralityCNDtrue = cent;}
+  void SetCentralityZNAtrue(Float_t cent) {fCentralityZNAtrue = cent;}
+
   /// get centrality result
   Float_t GetCentralityPercentile(const char *method) const;
   Int_t   GetCentralityClass10(const char *method) const;
@@ -63,12 +74,23 @@ class AliCentrality : public TNamed
   Float_t fCentralityCL0;   // Centrality from Clusters in layer 0
   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 fCentralityNPA;   // Centrality from Npart (MC)
-  Float_t fCentralityZNA;   // Centrality from ZNA)
   Float_t fCentralityV0MvsFMD;   // Centrality from V0 vs FMD
   Float_t fCentralityTKLvsV0M;   // Centrality from tracklets vs V0
   Float_t fCentralityZEMvsZDC;   // Centrality from ZEM vs ZDC
 
-  ClassDef(AliCentrality, 5)
+  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 fCentralityFMDtrue;   // Centrality from true (sim) FMD
+  Float_t fCentralityTRKtrue;   // Centrality from true (sim) tracks
+  Float_t fCentralityTKLtrue;   // Centrality from true (sim) tracklets
+  Float_t fCentralityCL0true;   // Centrality from true (sim) Clusters in layer 0
+  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
+
+  ClassDef(AliCentrality, 6)
 };
 #endif //ALICENTRALITY_H