]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/STRANGENESS/LambdaK0/AliAnalysisTaskExtractPerformanceV0.cxx
Small modifications for getting track status flags
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0 / AliAnalysisTaskExtractPerformanceV0.cxx
index bfc8a7ca3fb31ce1d8a296f6ab8c640e97c94e0f..fd97893b178a1f6ccd607a15912637bf3b6679db 100644 (file)
@@ -101,6 +101,8 @@ AliAnalysisTaskExtractPerformanceV0::AliAnalysisTaskExtractPerformanceV0()
    fkSwitchINT7  ( kFALSE ),
    fkUseOnTheFly ( kFALSE ),
    fkTakeAllTracks ( kFALSE ),
+   fpArapidityShift ( 0.465 ),
+  fCentralityEstimator("V0M"),
 //------------------------------------------------
 // Tree Variables 
 
@@ -185,6 +187,9 @@ AliAnalysisTaskExtractPerformanceV0::AliAnalysisTaskExtractPerformanceV0()
 
   fTreeVariableIsNonInjected(0),
 
+  fTreeVariableNegTrackStatus(0),
+  fTreeVariablePosTrackStatus(0),
+
 //------------------------------------------------
 // HISTOGRAMS
 // --- Filled on an Event-by-event basis
@@ -226,9 +231,15 @@ AliAnalysisTaskExtractPerformanceV0::AliAnalysisTaskExtractPerformanceV0()
    f3dHistPrimAnalysisPtVsYVsMultLambda(0),
    f3dHistPrimAnalysisPtVsYVsMultAntiLambda(0),
    f3dHistPrimAnalysisPtVsYVsMultK0Short(0),
+   f3dHistPrimAnalysisPtVsYCMSVsMultLambda(0),
+   f3dHistPrimAnalysisPtVsYCMSVsMultAntiLambda(0),
+   f3dHistPrimAnalysisPtVsYCMSVsMultK0Short(0),
    f3dHistPrimRawPtVsYVsMultLambda(0),
    f3dHistPrimRawPtVsYVsMultAntiLambda(0),
    f3dHistPrimRawPtVsYVsMultK0Short(0),
+   f3dHistPrimRawPtVsYCMSVsMultLambda(0),
+   f3dHistPrimRawPtVsYCMSVsMultAntiLambda(0),
+   f3dHistPrimRawPtVsYCMSVsMultK0Short(0),
    f3dHistPrimRawPtVsYVsMultNonInjLambda(0),
    f3dHistPrimRawPtVsYVsMultNonInjAntiLambda(0),
    f3dHistPrimRawPtVsYVsMultNonInjK0Short(0),
@@ -252,6 +263,14 @@ AliAnalysisTaskExtractPerformanceV0::AliAnalysisTaskExtractPerformanceV0()
    f3dHistGenSelectedPtVsYVsMultXiPlus(0),
    f3dHistGenSelectedPtVsYVsMultOmegaMinus(0),
    f3dHistGenSelectedPtVsYVsMultOmegaPlus(0),
+   f3dHistGenPtVsYCMSVsMultXiMinus(0),
+   f3dHistGenPtVsYCMSVsMultXiPlus(0),
+   f3dHistGenPtVsYCMSVsMultOmegaMinus(0),
+   f3dHistGenPtVsYCMSVsMultOmegaPlus(0),
+   f3dHistGenSelectedPtVsYCMSVsMultXiMinus(0),
+   f3dHistGenSelectedPtVsYCMSVsMultXiPlus(0),
+   f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus(0),
+   f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus(0),
    fHistPVx(0),
    fHistPVy(0),
    fHistPVz(0),
@@ -272,6 +291,8 @@ AliAnalysisTaskExtractPerformanceV0::AliAnalysisTaskExtractPerformanceV0(const c
    fkSwitchINT7  ( kFALSE ),
    fkUseOnTheFly ( kFALSE ),
    fkTakeAllTracks ( kFALSE ),
+   fpArapidityShift ( 0.465 ),
+  fCentralityEstimator("V0M"),
 //------------------------------------------------
 // Tree Variables 
 
@@ -356,6 +377,8 @@ AliAnalysisTaskExtractPerformanceV0::AliAnalysisTaskExtractPerformanceV0(const c
 
   fTreeVariableIsNonInjected(0),
 
+  fTreeVariableNegTrackStatus(0),
+  fTreeVariablePosTrackStatus(0),
 
 //------------------------------------------------
 // HISTOGRAMS
@@ -398,9 +421,15 @@ AliAnalysisTaskExtractPerformanceV0::AliAnalysisTaskExtractPerformanceV0(const c
    f3dHistPrimAnalysisPtVsYVsMultLambda(0),
    f3dHistPrimAnalysisPtVsYVsMultAntiLambda(0),
    f3dHistPrimAnalysisPtVsYVsMultK0Short(0),
+   f3dHistPrimAnalysisPtVsYCMSVsMultLambda(0),
+   f3dHistPrimAnalysisPtVsYCMSVsMultAntiLambda(0),
+   f3dHistPrimAnalysisPtVsYCMSVsMultK0Short(0),
    f3dHistPrimRawPtVsYVsMultLambda(0),
    f3dHistPrimRawPtVsYVsMultAntiLambda(0),
    f3dHistPrimRawPtVsYVsMultK0Short(0),
+   f3dHistPrimRawPtVsYCMSVsMultLambda(0),
+   f3dHistPrimRawPtVsYCMSVsMultAntiLambda(0),
+   f3dHistPrimRawPtVsYCMSVsMultK0Short(0),
    f3dHistPrimRawPtVsYVsMultNonInjLambda(0),
    f3dHistPrimRawPtVsYVsMultNonInjAntiLambda(0),
    f3dHistPrimRawPtVsYVsMultNonInjK0Short(0),
@@ -424,6 +453,14 @@ AliAnalysisTaskExtractPerformanceV0::AliAnalysisTaskExtractPerformanceV0(const c
    f3dHistGenSelectedPtVsYVsMultXiPlus(0),
    f3dHistGenSelectedPtVsYVsMultOmegaMinus(0),
    f3dHistGenSelectedPtVsYVsMultOmegaPlus(0),
+   f3dHistGenPtVsYCMSVsMultXiMinus(0),
+   f3dHistGenPtVsYCMSVsMultXiPlus(0),
+   f3dHistGenPtVsYCMSVsMultOmegaMinus(0),
+   f3dHistGenPtVsYCMSVsMultOmegaPlus(0),
+   f3dHistGenSelectedPtVsYCMSVsMultXiMinus(0),
+   f3dHistGenSelectedPtVsYCMSVsMultXiPlus(0),
+   f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus(0),
+   f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus(0),
    fHistPVx(0),
    fHistPVy(0),
    fHistPVz(0),
@@ -556,7 +593,11 @@ void AliAnalysisTaskExtractPerformanceV0::UserCreateOutputObjects()
         fTree->Branch("fTreeVariableMCPVy",&fTreeVariableMCPVy,"fTreeVariableMCPVy/F");
         fTree->Branch("fTreeVariableMCPVz",&fTreeVariableMCPVz,"fTreeVariableMCPVz/F");
 
-        fTree->Branch("fTreeVariableIsNonInjected",&fTreeVariableIsNonInjected,"fTreeVariableIsNonInjected/O"); //O for bOOlean... 
+        fTree->Branch("fTreeVariableIsNonInjected",&fTreeVariableIsNonInjected,"fTreeVariableIsNonInjected/O"); //O for bOOlean...
+  
+        fTree->Branch("fTreeVariableNegTrackStatus",&fTreeVariableNegTrackStatus,"fTreeVariableNegTrackStatus/l");
+        fTree->Branch("fTreeVariablePosTrackStatus",&fTreeVariablePosTrackStatus,"fTreeVariablePosTrackStatus/l");
+  
 //------------------------------------------------
 // Particle Identification Setup
 //------------------------------------------------
@@ -784,6 +825,19 @@ void AliAnalysisTaskExtractPerformanceV0::UserCreateOutputObjects()
       fListHistV0->Add(f3dHistPrimRawPtVsYVsMultK0Short);
    }
 
+   if(! f3dHistPrimRawPtVsYCMSVsMultLambda) {
+      f3dHistPrimRawPtVsYCMSVsMultLambda = new TH3F( "f3dHistPrimRawPtVsYCMSVsMultLambda", "Pt_{lambda} Vs Y_{#Lambda} Vs Multiplicity; Pt_{lambda} (GeV/c); Y_{#Lambda} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistPrimRawPtVsYCMSVsMultLambda);
+   }
+   if(! f3dHistPrimRawPtVsYCMSVsMultAntiLambda) {
+      f3dHistPrimRawPtVsYCMSVsMultAntiLambda = new TH3F( "f3dHistPrimRawPtVsYCMSVsMultAntiLambda", "Pt_{antilambda} Vs Y_{#Lambda} Vs Multiplicity; Pt_{antilambda} (GeV/c); Y_{#Lambda} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistPrimRawPtVsYCMSVsMultAntiLambda);
+   }
+   if(! f3dHistPrimRawPtVsYCMSVsMultK0Short) {
+      f3dHistPrimRawPtVsYCMSVsMultK0Short = new TH3F( "f3dHistPrimRawPtVsYCMSVsMultK0Short", "Pt_{K0S} Vs Y_{K0S} Vs Multiplicity; Pt_{K0S} (GeV/c); Y_{K0S} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistPrimRawPtVsYCMSVsMultK0Short);
+   }
+
 //---> Non-injected particles
 
    if(! f3dHistPrimRawPtVsYVsMultNonInjLambda) {
@@ -882,6 +936,29 @@ void AliAnalysisTaskExtractPerformanceV0::UserCreateOutputObjects()
       fListHistV0->Add(f3dHistGenPtVsYVsMultOmegaPlus);
    }
 
+//CASCADEs, Y CMS 
+
+   if(! f3dHistGenPtVsYCMSVsMultXiMinus) {
+      f3dHistGenPtVsYCMSVsMultXiMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistGenPtVsYCMSVsMultXiMinus);
+   }
+   if(! f3dHistGenPtVsYCMSVsMultXiPlus) {
+      f3dHistGenPtVsYCMSVsMultXiPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistGenPtVsYCMSVsMultXiPlus);
+   }
+//--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
+
+   if(! f3dHistGenPtVsYCMSVsMultOmegaMinus) {
+      f3dHistGenPtVsYCMSVsMultOmegaMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistGenPtVsYCMSVsMultOmegaMinus);
+   }
+   if(! f3dHistGenPtVsYCMSVsMultOmegaPlus) {
+      f3dHistGenPtVsYCMSVsMultOmegaPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistGenPtVsYCMSVsMultOmegaPlus);
+   }
+
+
+
 //--------------------------------------------------------------------------------------
 //--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, at selected analysis evts
 
@@ -904,6 +981,30 @@ void AliAnalysisTaskExtractPerformanceV0::UserCreateOutputObjects()
       fListHistV0->Add(f3dHistGenSelectedPtVsYVsMultOmegaPlus);
    }
 
+//CASCADES, analysis level, y CMS
+
+//--------------------------------------------------------------------------------------
+//--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, at selected analysis evts
+
+   if(! f3dHistGenSelectedPtVsYCMSVsMultXiMinus) {
+      f3dHistGenSelectedPtVsYCMSVsMultXiMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistGenSelectedPtVsYCMSVsMultXiMinus);
+   }
+   if(! f3dHistGenSelectedPtVsYCMSVsMultXiPlus) {
+      f3dHistGenSelectedPtVsYCMSVsMultXiPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistGenSelectedPtVsYCMSVsMultXiPlus);
+   }
+//--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
+
+   if(! f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus) {
+      f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus);
+   }
+   if(! f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus) {
+      f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus);
+   }
+
 
 //----------------------------------
 // Histos at analysis level 
@@ -922,6 +1023,19 @@ void AliAnalysisTaskExtractPerformanceV0::UserCreateOutputObjects()
       fListHistV0->Add(f3dHistPrimAnalysisPtVsYVsMultK0Short);
    }
 
+   if(! f3dHistPrimAnalysisPtVsYCMSVsMultLambda) {
+      f3dHistPrimAnalysisPtVsYCMSVsMultLambda = new TH3F( "f3dHistPrimAnalysisPtVsYCMSVsMultLambda", "Pt_{lambda} Vs Y_{#Lambda} Vs Multiplicity; Pt_{lambda} (GeV/c); Y_{#Lambda} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistPrimAnalysisPtVsYCMSVsMultLambda);
+   }
+   if(! f3dHistPrimAnalysisPtVsYCMSVsMultAntiLambda) {
+      f3dHistPrimAnalysisPtVsYCMSVsMultAntiLambda = new TH3F( "f3dHistPrimAnalysisPtVsYCMSVsMultAntiLambda", "Pt_{antilambda} Vs Y_{#Lambda} Vs Multiplicity; Pt_{antilambda} (GeV/c); Y_{#Lambda} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistPrimAnalysisPtVsYCMSVsMultAntiLambda);
+   }
+   if(! f3dHistPrimAnalysisPtVsYCMSVsMultK0Short) {
+      f3dHistPrimAnalysisPtVsYCMSVsMultK0Short = new TH3F( "f3dHistPrimAnalysisPtVsYCMSVsMultK0Short", "Pt_{K0S} Vs Y_{K0S} Vs Multiplicity; Pt_{K0S} (GeV/c); Y_{K0S} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
+      fListHistV0->Add(f3dHistPrimAnalysisPtVsYCMSVsMultK0Short);
+   }
+
 //----------------------------------
 // Primary Vertex Position Histos
 //----------------------------------
@@ -1064,7 +1178,7 @@ void AliAnalysisTaskExtractPerformanceV0::UserExec(Option_t *)
    if(fkIsNuclear == kTRUE){ 
       AliCentrality* centrality;
       centrality = lESDevent->GetCentrality();
-      lMultiplicity = ( ( Int_t ) ( centrality->GetCentralityPercentile( "V0M" ) ) );
+      lMultiplicity = ( ( Int_t ) ( centrality->GetCentralityPercentile(   fCentralityEstimator.Data() ) ) );
       if (centrality->GetQuality()>1) {
         PostData(1, fListHistV0);
         PostData(2, fTree);
@@ -1132,19 +1246,23 @@ void AliAnalysisTaskExtractPerformanceV0::UserExec(Option_t *)
          if( lCurrentParticlePrimary->GetPdgCode() == 3312 ){ 
             lPtCurrentPart    = lCurrentParticlePrimary->Pt();
             f3dHistGenPtVsYVsMultXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
+            f3dHistGenPtVsYCMSVsMultXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
          }
          if( lCurrentParticlePrimary->GetPdgCode() == -3312 ){ 
             lPtCurrentPart    = lCurrentParticlePrimary->Pt();
             f3dHistGenPtVsYVsMultXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
+            f3dHistGenPtVsYCMSVsMultXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
          }
          // Omega Histograms
          if( lCurrentParticlePrimary->GetPdgCode() == 3334 ){ 
             lPtCurrentPart    = lCurrentParticlePrimary->Pt();
             f3dHistGenPtVsYVsMultOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
+            f3dHistGenPtVsYCMSVsMultOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
          }
          if( lCurrentParticlePrimary->GetPdgCode() == -3334 ){ 
             lPtCurrentPart    = lCurrentParticlePrimary->Pt();
             f3dHistGenPtVsYVsMultOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
+            f3dHistGenPtVsYCMSVsMultOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
          }
       } 
    }
@@ -1173,7 +1291,7 @@ void AliAnalysisTaskExtractPerformanceV0::UserExec(Option_t *)
    }//End of loop on tracks
 //----- End Loop on Stack ------------------------------------------------------------
 
-
+   //Double_t lpArapidityShift = 0.465;
    Bool_t lStackNatural = kTRUE;
 //----- Loop on Lambda, K0Short ----------------------------------------------------------------
    for (Int_t iCurrentLabelStack = 0;  iCurrentLabelStack < (lMCstack->GetNtrack()); iCurrentLabelStack++) 
@@ -1228,6 +1346,7 @@ void AliAnalysisTaskExtractPerformanceV0::UserExec(Option_t *)
 
          if( lPdgcodeCurrentPart == 3122 ){
             f3dHistPrimRawPtVsYVsMultLambda->Fill(lPtCurrentPart, lRapCurrentPart, lMultiplicity);
+            f3dHistPrimRawPtVsYCMSVsMultLambda->Fill(lPtCurrentPart, lRapCurrentPart+fpArapidityShift, lMultiplicity);
             if(lStackNatural){f3dHistPrimRawPtVsYVsMultNonInjLambda->Fill(lPtCurrentPart, lRapCurrentPart, lMultiplicity);}
             f3dHistPrimRawPtVsYVsMultMCLambda->Fill(lPtCurrentPart, lRapCurrentPart, lNumberOfCharged);
             f3dHistPrimRawPtVsYVsVertexZLambda->Fill(lPtCurrentPart, lRapCurrentPart, mcPrimaryVtx.At(2));
@@ -1237,12 +1356,14 @@ void AliAnalysisTaskExtractPerformanceV0::UserExec(Option_t *)
          }
          if( lPdgcodeCurrentPart == -3122 ){
             f3dHistPrimRawPtVsYVsMultAntiLambda->Fill(lPtCurrentPart, lRapCurrentPart, lMultiplicity);
+            f3dHistPrimRawPtVsYCMSVsMultAntiLambda->Fill(lPtCurrentPart, lRapCurrentPart+fpArapidityShift, lMultiplicity);
             if(lStackNatural){f3dHistPrimRawPtVsYVsMultNonInjAntiLambda->Fill(lPtCurrentPart, lRapCurrentPart, lMultiplicity);}
             f3dHistPrimRawPtVsYVsMultMCAntiLambda->Fill(lPtCurrentPart, lRapCurrentPart, lNumberOfCharged);
             f3dHistPrimRawPtVsYVsVertexZAntiLambda->Fill(lPtCurrentPart, lRapCurrentPart, mcPrimaryVtx.At(2));
          }
          if( lPdgcodeCurrentPart == 310 ){
             f3dHistPrimRawPtVsYVsMultK0Short->Fill(lPtCurrentPart, lRapCurrentPart, lMultiplicity);
+            f3dHistPrimRawPtVsYCMSVsMultK0Short->Fill(lPtCurrentPart, lRapCurrentPart+fpArapidityShift, lMultiplicity);
             if(lStackNatural){f3dHistPrimRawPtVsYVsMultNonInjK0Short->Fill(lPtCurrentPart, lRapCurrentPart, lMultiplicity);}
             f3dHistPrimRawPtVsYVsMultMCK0Short->Fill(lPtCurrentPart, lRapCurrentPart, lNumberOfCharged);
             f3dHistPrimRawPtVsYVsVertexZK0Short->Fill(lPtCurrentPart, lRapCurrentPart, mcPrimaryVtx.At(2));
@@ -1439,12 +1560,15 @@ void AliAnalysisTaskExtractPerformanceV0::UserExec(Option_t *)
 
       if( lPdgcodeCurrentPart == 3122 ){
          f3dHistPrimAnalysisPtVsYVsMultLambda->Fill(lPtCurrentPart, lRapCurrentPart, lMultiplicity);
+         f3dHistPrimAnalysisPtVsYCMSVsMultLambda->Fill(lPtCurrentPart, lRapCurrentPart+fpArapidityShift, lMultiplicity);
       }
       if( lPdgcodeCurrentPart == -3122 ){
          f3dHistPrimAnalysisPtVsYVsMultAntiLambda->Fill(lPtCurrentPart, lRapCurrentPart, lMultiplicity);
+         f3dHistPrimAnalysisPtVsYCMSVsMultAntiLambda->Fill(lPtCurrentPart, lRapCurrentPart+fpArapidityShift, lMultiplicity);
       }
       if( lPdgcodeCurrentPart == 310 ){
          f3dHistPrimAnalysisPtVsYVsMultK0Short->Fill(lPtCurrentPart, lRapCurrentPart, lMultiplicity);
+         f3dHistPrimAnalysisPtVsYCMSVsMultK0Short->Fill(lPtCurrentPart, lRapCurrentPart+fpArapidityShift, lMultiplicity);
       }
    }
 
@@ -1471,19 +1595,23 @@ void AliAnalysisTaskExtractPerformanceV0::UserExec(Option_t *)
          if( lCurrentParticlePrimary->GetPdgCode() == 3312 ){ 
             lPtCurrentPart    = lCurrentParticlePrimary->Pt();
             f3dHistGenSelectedPtVsYVsMultXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
+            f3dHistGenSelectedPtVsYCMSVsMultXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
          }
          if( lCurrentParticlePrimary->GetPdgCode() == -3312 ){ 
             lPtCurrentPart    = lCurrentParticlePrimary->Pt();
             f3dHistGenSelectedPtVsYVsMultXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
+            f3dHistGenSelectedPtVsYCMSVsMultXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
          }
          // Omega Histograms
          if( lCurrentParticlePrimary->GetPdgCode() == 3334 ){ 
             lPtCurrentPart    = lCurrentParticlePrimary->Pt();
             f3dHistGenSelectedPtVsYVsMultOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
+            f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
          }
          if( lCurrentParticlePrimary->GetPdgCode() == -3334 ){ 
             lPtCurrentPart    = lCurrentParticlePrimary->Pt();
             f3dHistGenSelectedPtVsYVsMultOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
+            f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
          }
       } 
    }
@@ -1579,6 +1707,10 @@ void AliAnalysisTaskExtractPerformanceV0::UserExec(Option_t *)
       if( !(pTrack->GetStatus() & AliESDtrack::kTPCrefit)) continue;      
       if( !(nTrack->GetStatus() & AliESDtrack::kTPCrefit)) continue;
 
+      //Get status flags
+      fTreeVariablePosTrackStatus = pTrack->GetStatus();
+      fTreeVariableNegTrackStatus = nTrack->GetStatus();
+    
       if ( ( ( ( pTrack->GetTPCClusterInfo(2,1) ) < 70 ) || ( ( nTrack->GetTPCClusterInfo(2,1) ) < 70 ) )&&(fkTakeAllTracks==kFALSE) ) continue;
        
       //GetKinkIndex condition