SUMMARY by A.Maire:
authorbhippoly <bhippoly@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 23 Mar 2011 18:39:52 +0000 (18:39 +0000)
committerbhippoly <bhippoly@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 23 Mar 2011 18:39:52 +0000 (18:39 +0000)
7 TeV analyses,
step forward on the selections (binning, Xi rejection, ...)
+ multiplicity issues : new estimator EstimateMultiplicity from Ruben

---------------------------
1. CheckCascade :
* Coverity defect (10256) :
       Prior tables in combined PID now hold 10 values instead of 5.
* Editions :
       - in THX titles, #Omega^{+} become #bar{#Omega}^{+}
       - in THX titles, #Xi^{+} become #bar{#Xi}^{+}
* New set of topological cuts :
       - towards optimisation in pp data at 7 TeV (Extra Loose)
* Pile-up :
       - change from IsPileupFromSPD to IsPileupFromSPDInMultBins (pile-up rejection = f(nb tracklets)
* Multiplicity:
       Introduction of "nITSandTPCtracksAndSPDtracklets" as another Multiplicity observable (AliESDEvent::EstimateMultiplicity)
       + control TH1F fHistEstimateITSTPCMultiplicityForTrigEvt
* fCFContCascadePIDXiMinus, XIPlus, OmegaMinus, OmegaPlus
       - new binning for the inv mass dimensions
       - Omega containers filled only if the corresponding | M(Xi) - 1.3217 | > 0.008 MeV/c^2
            e.g. (TMath::Abs( lInvMassXiPlus-1.3217 ) > 0.008)
* fCFContCascadeCuts :
       - Multiplicity dim = now prim. tracks or EstimateMult.
       - new manual binning for prim. track dimension,
       - Omega steps filled only if the corresponding | M(Xi) - 1.3217 | > 0.008 MeV/c^2
* Angular correlation :
       - Omega THnSparse filled only if the corresponding | M(Xi) - 1.3217 | > 0.008 MeV/c^2

2. macros/AddTaskCheckCascade
   --> Nothing

3. CheckPerformance
* Coverity defect (10256) :
       Prior tables in combined PID now hold 10 values instead of 5.
* Editions :
       - in THX titles, #Omega^{+} become #bar{#Omega}^{+}
       - in THX titles, #Xi^{+} become #bar{#Xi}^{+}
* New set of topological cuts :
       - towards optimisation in pp data at 7 TeV (New Loose)
* Pile-up :
       - change from IsPileupFromSPD to IsPileupFromSPDInMultBins (pile-up rejection = f(nb tracklets)
* Multiplicity :
       Introduction of "nITSandTPCtracksAndSPDtracklets" as another Multiplicity observable (AliESDEvent::EstimateMultiplicity)
* TH2F Mult. observable Vs True MC multiplicity
       - f2dHistRecoPrimTrckMultVsMCMult,
       - f2dHistRecoEstimateMultVsMCMult
* TH2F Pt(baryon daughter) Vs Pt(Casc)
       - f2dHistAsMCPtProtonVsPtXiMinus
       - f2dHistAsMCPtAntiProtonVsPtXiPlus
       - f2dHistAsMCPtProtonVsPtOmegaMinus
       - f2dHistAsMCPtAntiProtonVsPtOmegaPlus
* fCFContCascadePIDAsXiMinus, XIPlus, OmegaMinus, OmegaPlus
       - new binning for the inv mass dimensions
* fCFContAsCascadeCuts :
       - Multiplicity dim = now prim. tracks or EstimateMult.
       - new manual binning for prim. track dimension
       - Omega steps filled only if the corresponding | M(Xi) - 1.3217 | > 0.008 MeV/c^2

4. macros/AddTaskCheckPerformanceCascade
   --> Nothing

PWG2/SPECTRA/AliAnalysisTaskCheckCascade.cxx
PWG2/SPECTRA/AliAnalysisTaskCheckCascade.h
PWG2/SPECTRA/AliAnalysisTaskCheckPerformanceCascade.cxx
PWG2/SPECTRA/AliAnalysisTaskCheckPerformanceCascade.h

index 5cbce5c..d5941b6 100644 (file)
@@ -92,7 +92,8 @@ AliAnalysisTaskCheckCascade::AliAnalysisTaskCheckCascade()
        // - Cascade part initialisation
     fListHistCascade(0),
     fHistCascadeMultiplicityBeforeTrigSel(0),
-    fHistCascadeMultiplicityForTrigEvt(0), fHistTrackMultiplicityForTrigEvt(0), fHistTPCrefitTrackMultiplicityForTrigEvt(0), fHistPrimaryTrackMultiplicityForTrigEvt(0),
+    fHistCascadeMultiplicityForTrigEvt(0), fHistTrackMultiplicityForTrigEvt(0), fHistTPCrefitTrackMultiplicityForTrigEvt(0), fHistPrimaryTrackMultiplicityForTrigEvt(0), 
+    fHistEstimateITSTPCMultiplicityForTrigEvt(0),
     fHistCascadeMultiplicityForTrigEvtAndZprimVtx(0), fHistCascadeMultiplicityForTrigEvtNonPiledUpAndZprimVtx(0),
     fHistCascadeMultiplicityForSelEvt(0),
     fHistPosBestPrimaryVtxXForSelEvt(0), fHistPosBestPrimaryVtxYForSelEvt(0), fHistPosBestPrimaryVtxZForSelEvt(0),
@@ -182,6 +183,7 @@ AliAnalysisTaskCheckCascade::AliAnalysisTaskCheckCascade(const char *name)
     fListHistCascade(0),
     fHistCascadeMultiplicityBeforeTrigSel(0),
     fHistCascadeMultiplicityForTrigEvt(0), fHistTrackMultiplicityForTrigEvt(0), fHistTPCrefitTrackMultiplicityForTrigEvt(0), fHistPrimaryTrackMultiplicityForTrigEvt(0),
+    fHistEstimateITSTPCMultiplicityForTrigEvt(0),
     fHistCascadeMultiplicityForTrigEvtAndZprimVtx(0), fHistCascadeMultiplicityForTrigEvtNonPiledUpAndZprimVtx(0),
     fHistCascadeMultiplicityForSelEvt(0),
     fHistPosBestPrimaryVtxXForSelEvt(0), fHistPosBestPrimaryVtxYForSelEvt(0), fHistPosBestPrimaryVtxZForSelEvt(0),
@@ -250,29 +252,29 @@ AliAnalysisTaskCheckCascade::AliAnalysisTaskCheckCascade(const char *name)
         
         for(Int_t iAlephIdx   = 0; iAlephIdx   < 5; iAlephIdx++   ) { fAlephParameters [iAlephIdx]    = -1.; }
         
-        // Loose
-        /*
-//         fV0Sels[0] =  33.  ;  // max allowed chi2
-//         fV0Sels[1] =   0.01;  // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
-//         fV0Sels[2] =   0.01;  // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
-//         fV0Sels[3] =   2.0 ;  // max allowed DCA between the daughter tracks       (LHC09a4 : 0.5)
-//         fV0Sels[4] =   0.0 ;  // min allowed cosine of V0's pointing angle         (LHC09a4 : 0.99)
-//         fV0Sels[5] =   0.2 ;  // min radius of the fiducial volume                 (LHC09a4 : 0.2)
-//         fV0Sels[6] = 100.  ;  // max radius of the fiducial volume                 (LHC09a4 : 100.0)
-//         
-//         fCascSels[0] =  33.   ;  // max allowed chi2 (same as PDC07)
-//         fCascSels[1] =   0.02 ;  // min allowed V0 impact parameter                    (PDC07 : 0.05   / LHC09a4 : 0.025 )
-//         fCascSels[2] =   0.008;  // "window" around the Lambda mass                    (PDC07 : 0.008  / LHC09a4 : 0.010 )
-//         fCascSels[3] =   0.01 ;  // min allowed bachelor's impact parameter            (PDC07 : 0.035  / LHC09a4 : 0.025 )
-//         fCascSels[4] =   0.5  ;  // max allowed DCA between the V0 and the bachelor    (PDC07 : 0.1    / LHC09a4 : 0.2   )
-//         fCascSels[5] =   0.98 ;  // min allowed cosine of the cascade pointing angle   (PDC07 : 0.9985 / LHC09a4 : 0.998 )
-//         fCascSels[6] =   0.2  ;  // min radius of the fiducial volume                  (PDC07 : 0.9    / LHC09a4 : 0.2   )
-//         fCascSels[7] = 100.   ;  // max radius of the fiducial volume                  (PDC07 : 100    / LHC09a4 : 100   )
-        */
+        // New Loose : 1st step for the 7 TeV pp analysis
         
+        fV0Sels[0] =  33.  ;  // max allowed chi2
+        fV0Sels[1] =   0.02;  // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
+        fV0Sels[2] =   0.02;  // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
+        fV0Sels[3] =   2.0 ;  // max allowed DCA between the daughter tracks       (LHC09a4 : 0.5)
+        fV0Sels[4] =   0.95;  // min allowed cosine of V0's pointing angle         (LHC09a4 : 0.99)
+        fV0Sels[5] =   1.0 ;  // min radius of the fiducial volume                 (LHC09a4 : 0.2)
+        fV0Sels[6] = 100.  ;  // max radius of the fiducial volume                 (LHC09a4 : 100.0)
+        
+        fCascSels[0] =  33.   ;  // max allowed chi2 (same as PDC07)
+        fCascSels[1] =   0.05 ;  // min allowed V0 impact parameter                    (PDC07 : 0.05   / LHC09a4 : 0.025 )
+        fCascSels[2] =   0.010;  // "window" around the Lambda mass                    (PDC07 : 0.008  / LHC09a4 : 0.010 )
+        fCascSels[3] =   0.03 ;  // min allowed bachelor's impact parameter            (PDC07 : 0.035  / LHC09a4 : 0.025 )
+        fCascSels[4] =   2.0  ;  // max allowed DCA between the V0 and the bachelor    (PDC07 : 0.1    / LHC09a4 : 0.2   )
+        fCascSels[5] =   0.95 ;  // min allowed cosine of the cascade pointing angle   (PDC07 : 0.9985 / LHC09a4 : 0.998 )
+        fCascSels[6] =   0.4  ;  // min radius of the fiducial volume                  (PDC07 : 0.9    / LHC09a4 : 0.2   )
+        fCascSels[7] = 100.   ;  // max radius of the fiducial volume                  (PDC07 : 100    / LHC09a4 : 100   )
         
-        // Hyper Loose "à la 900 GeV 2009 data", with lower cosine of pointing angle for Xi (0.95 down to 0.82) = 900 GeV paper
         
+        
+        // Hyper Loose "à la 900 GeV 2009 data", with lower cosine of pointing angle for Xi (0.95 down to 0.82) = 900 GeV paper
+        /*
         fV0Sels[0] =  33.  ;  // max allowed chi2
         fV0Sels[1] =   0.001; // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
         fV0Sels[2] =   0.001; // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
@@ -289,7 +291,7 @@ AliAnalysisTaskCheckCascade::AliAnalysisTaskCheckCascade(const char *name)
         fCascSels[5] =   0.82 ;  //FIXME min allowed cosine of the cascade pointing angle   (PDC07 : 0.9985 / LHC09a4 : 0.998 )
         fCascSels[6] =   0.1  ;  // min radius of the fiducial volume                  (PDC07 : 0.9    / LHC09a4 : 0.2   )
         fCascSels[7] = 100.   ;  // max radius of the fiducial volume                  (PDC07 : 100    / LHC09a4 : 100   )
-        
+        */
         
         //New default vtxR (http://alisoft.cern.ch/viewvc?view=rev&root=AliRoot&revision=40955, 5 May 2010)
         /*
@@ -580,6 +582,20 @@ if(! fHistPrimaryTrackMultiplicityForTrigEvt) {
 }
 
 
+if(! fHistEstimateITSTPCMultiplicityForTrigEvt) {      
+       if(fCollidingSystems)// AA collisions   
+               fHistEstimateITSTPCMultiplicityForTrigEvt = new TH1F("fHistEstimateITSTPCMultiplicityForTrigEvt", 
+                       "(ITS+TPC tracks + SPD tracklets) multiplicity (for triggered evt);Nbr of (ITS+TPC tracks + SPD tracklets)/Evt;Events", 
+                       100, 0, 10000);                 
+       else // pp collisions
+               fHistEstimateITSTPCMultiplicityForTrigEvt = new TH1F("fHistEstimateITSTPCMultiplicityForTrigEvt", 
+                       "(ITS+TPC tracks + SPD tracklets) multiplicity (for triggered evt);Nbr of (ITS+TPC tracks + SPD tracklets)/Evt;Events", 
+                       200, 0, 200);
+       fListHistCascade->Add(fHistEstimateITSTPCMultiplicityForTrigEvt);
+}
+
+
+
         // - Histos for events passing the trigger selection + |z(prim. vertex)| < XX cm
         //--------------
         
@@ -843,7 +859,7 @@ if (! fHistMassXiMinus) {
 }
   
 if (! fHistMassXiPlus) {
-    fHistMassXiPlus = new TH1F("fHistMassXiPlus","#Xi^{+} candidates;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
+    fHistMassXiPlus = new TH1F("fHistMassXiPlus","#bar{#Xi}^{+} candidates;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
     fListHistCascade->Add(fHistMassXiPlus);
 }
 
@@ -853,7 +869,7 @@ if (! fHistMassOmegaMinus) {
 }
  
 if (! fHistMassOmegaPlus) {
-       fHistMassOmegaPlus = new TH1F("fHistMassOmegaPlus","#Omega^{+} candidates;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
+       fHistMassOmegaPlus = new TH1F("fHistMassOmegaPlus","#bar{#Omega}^{+} candidates;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
     fListHistCascade->Add(fHistMassOmegaPlus);
 }
 
@@ -864,7 +880,7 @@ if (! fHistMassWithCombPIDXiMinus) {
 }
   
 if (! fHistMassWithCombPIDXiPlus) {
-    fHistMassWithCombPIDXiPlus = new TH1F("fHistMassWithCombPIDXiPlus","#Xi^{+} candidates, with Bach. comb. PID;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
+    fHistMassWithCombPIDXiPlus = new TH1F("fHistMassWithCombPIDXiPlus","#bar{#Xi}^{+} candidates, with Bach. comb. PID;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
     fListHistCascade->Add(fHistMassWithCombPIDXiPlus);
 }
 
@@ -874,7 +890,7 @@ if (! fHistMassWithCombPIDOmegaMinus) {
 }
  
 if (! fHistMassWithCombPIDOmegaPlus) {
-       fHistMassWithCombPIDOmegaPlus = new TH1F("fHistMassWithCombPIDOmegaPlus","#Omega^{+} candidates, with Bach. comb. PID;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
+       fHistMassWithCombPIDOmegaPlus = new TH1F("fHistMassWithCombPIDOmegaPlus","#bar{#Omega}^{+} candidates, with Bach. comb. PID;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
     fListHistCascade->Add(fHistMassWithCombPIDOmegaPlus);
 }
 
@@ -948,7 +964,7 @@ if(! fHistcTauXiMinus){
 }
 
 if(! fHistcTauXiPlus){
-        fHistcTauXiPlus = new TH1F("fHistcTauXiPlus", "Lifetime c.#tau for #Xi^{+}; L_{3D}.m_{PDG}(#bar{#Xi}^{+}) / p_{3D} (cm); Counts", 100, 0., 50.);
+        fHistcTauXiPlus = new TH1F("fHistcTauXiPlus", "Lifetime c.#tau for #bar{#Xi}^{+}; L_{3D}.m_{PDG}(#bar{#Xi}^{+}) / p_{3D} (cm); Counts", 100, 0., 50.);
         fListHistCascade->Add(fHistcTauXiPlus);
 }
 
@@ -958,7 +974,7 @@ if(! fHistcTauOmegaMinus){
 }
 
 if(! fHistcTauOmegaPlus){
-        fHistcTauOmegaPlus = new TH1F("fHistcTauOmegaPlus", "Lifetime c.#tau for #Omega^{+}; L_{3D}.m_{PDG}(#bar{#Omega}^{+}) / p_{3D} (cm); Counts", 100, 0., 50.);
+        fHistcTauOmegaPlus = new TH1F("fHistcTauOmegaPlus", "Lifetime c.#tau for #bar{#Omega}^{+}; L_{3D}.m_{PDG}(#bar{#Omega}^{+}) / p_{3D} (cm); Counts", 100, 0., 50.);
         fListHistCascade->Add(fHistcTauOmegaPlus);
 }
 
@@ -981,12 +997,12 @@ if(! f2dHistEffMassXiVsEffMassOmegaMinus) {
 }
 
 if(! f2dHistEffMassLambdaVsEffMassXiPlus) {
-       f2dHistEffMassLambdaVsEffMassXiPlus = new TH2F( "f2dHistEffMassLambdaVsEffMassXiPlus", "M_{#Lambda} Vs M_{#Xi^{+} candidates} ; Inv. M_{#Lambda^{0}} (GeV/c^{2}) ; M( #Lambda , #pi^{+} ) (GeV/c^{2})", 300, 1.1,1.13, 400, 1.2, 2.0);
+       f2dHistEffMassLambdaVsEffMassXiPlus = new TH2F( "f2dHistEffMassLambdaVsEffMassXiPlus", "M_{#Lambda} Vs M_{#bar{#Xi}^{+} candidates} ; Inv. M_{#Lambda^{0}} (GeV/c^{2}) ; M( #Lambda , #pi^{+} ) (GeV/c^{2})", 300, 1.1,1.13, 400, 1.2, 2.0);
        fListHistCascade->Add(f2dHistEffMassLambdaVsEffMassXiPlus);
 }
 
 if(! f2dHistEffMassXiVsEffMassOmegaPlus) {
-       f2dHistEffMassXiVsEffMassOmegaPlus = new TH2F( "f2dHistEffMassXiVsEffMassOmegaPlus", "M_{#Xi^{+} candidates} Vs M_{#Omega^{+} candidates} ; M( #Lambda , #pi^{+} ) (GeV/c^{2}) ; M( #Lambda , K^{+} ) (GeV/c^{2})", 400, 1.2, 2.0, 500, 1.5, 2.5);
+       f2dHistEffMassXiVsEffMassOmegaPlus = new TH2F( "f2dHistEffMassXiVsEffMassOmegaPlus", "M_{#bar{#Xi}^{+} candidates} Vs M_{#bar{#Omega}^{+} candidates} ; M( #Lambda , #pi^{+} ) (GeV/c^{2}) ; M( #Lambda , K^{+} ) (GeV/c^{2})", 400, 1.2, 2.0, 500, 1.5, 2.5);
        fListHistCascade->Add(f2dHistEffMassXiVsEffMassOmegaPlus);
 }
 
@@ -998,7 +1014,7 @@ if(! f2dHistXiRadiusVsEffMassXiMinus) {
 }
 
 if(! f2dHistXiRadiusVsEffMassXiPlus) {
-       f2dHistXiRadiusVsEffMassXiPlus = new TH2F( "f2dHistXiRadiusVsEffMassXiPlus", "Transv. R_{Xi Decay} Vs M_{#Xi^{+} candidates}; r_{cascade} (cm); M( #Lambda , #pi^{+} ) (GeV/c^{2}) ", 450, 0., 45.0, 400, 1.2, 2.0);
+       f2dHistXiRadiusVsEffMassXiPlus = new TH2F( "f2dHistXiRadiusVsEffMassXiPlus", "Transv. R_{Xi Decay} Vs M_{#bar{#Xi}^{+} candidates}; r_{cascade} (cm); M( #Lambda , #pi^{+} ) (GeV/c^{2}) ", 450, 0., 45.0, 400, 1.2, 2.0);
        fListHistCascade->Add(f2dHistXiRadiusVsEffMassXiPlus);
 }
 
@@ -1008,7 +1024,7 @@ if(! f2dHistXiRadiusVsEffMassOmegaMinus) {
 }
 
 if(! f2dHistXiRadiusVsEffMassOmegaPlus) {
-       f2dHistXiRadiusVsEffMassOmegaPlus = new TH2F( "f2dHistXiRadiusVsEffMassOmegaPlus", "Transv. R_{Xi Decay} Vs M_{#Omega^{+} candidates}; r_{cascade} (cm); M( #Lambda , K^{+} ) (GeV/c^{2}) ", 450, 0., 45.0, 500, 1.5, 2.5);
+       f2dHistXiRadiusVsEffMassOmegaPlus = new TH2F( "f2dHistXiRadiusVsEffMassOmegaPlus", "Transv. R_{Xi Decay} Vs M_{#bar{#Omega}^{+} candidates}; r_{cascade} (cm); M( #Lambda , K^{+} ) (GeV/c^{2}) ", 450, 0., 45.0, 500, 1.5, 2.5);
        fListHistCascade->Add(f2dHistXiRadiusVsEffMassOmegaPlus);
 }
 
@@ -1029,7 +1045,7 @@ if(! f3dHistXiPtVsEffMassVsYXiMinus) {
 }
 
 if(! f3dHistXiPtVsEffMassVsYXiPlus) {
-       f3dHistXiPtVsEffMassVsYXiPlus = new TH3F( "f3dHistXiPtVsEffMassVsYXiPlus", "Pt_{cascade} Vs M_{#Xi^{+} candidates} Vs Y_{#Xi}; Pt_{cascade} (GeV/c); M( #Lambda , #pi^{+} ) (GeV/c^{2}); Y_{#Xi}", 100, 0., 10.0, 400, 1.2, 2.0, 44, -1.1,1.1);
+       f3dHistXiPtVsEffMassVsYXiPlus = new TH3F( "f3dHistXiPtVsEffMassVsYXiPlus", "Pt_{cascade} Vs M_{#bar{#Xi}^{+} candidates} Vs Y_{#Xi}; Pt_{cascade} (GeV/c); M( #Lambda , #pi^{+} ) (GeV/c^{2}); Y_{#Xi}", 100, 0., 10.0, 400, 1.2, 2.0, 44, -1.1,1.1);
        fListHistCascade->Add(f3dHistXiPtVsEffMassVsYXiPlus);
 }
 
@@ -1039,7 +1055,7 @@ if(! f3dHistXiPtVsEffMassVsYOmegaMinus) {
 }
 
 if(! f3dHistXiPtVsEffMassVsYOmegaPlus) {
-       f3dHistXiPtVsEffMassVsYOmegaPlus = new TH3F( "f3dHistXiPtVsEffMassVsYOmegaPlus", "Pt_{cascade} Vs M_{#Omega^{+} candidates} Vs Y_{#Omega}; Pt_{cascade} (GeV/c); M( #Lambda , K^{+} ) (GeV/c^{2}); Y_{#Omega}", 100, 0., 10.0, 500, 1.5, 2.5, 44, -1.1,1.1);
+       f3dHistXiPtVsEffMassVsYOmegaPlus = new TH3F( "f3dHistXiPtVsEffMassVsYOmegaPlus", "Pt_{cascade} Vs M_{#bar{#Omega}^{+} candidates} Vs Y_{#Omega}; Pt_{cascade} (GeV/c); M( #Lambda , K^{+} ) (GeV/c^{2}); Y_{#Omega}", 100, 0., 10.0, 500, 1.5, 2.5, 44, -1.1,1.1);
        fListHistCascade->Add(f3dHistXiPtVsEffMassVsYOmegaPlus);
 }
 
@@ -1051,7 +1067,7 @@ if(! fCFContCascadePIDXiMinus)  {
   //array for the number of bins in each dimension :
   Int_t lNbBinsPerVar[4] = {0};
   lNbBinsPerVar[0] = 100;
-  lNbBinsPerVar[1] = 400;
+  lNbBinsPerVar[1] = 75;
   lNbBinsPerVar[2] = 44;
   lNbBinsPerVar[3] = 250;
    
@@ -1059,9 +1075,9 @@ if(! fCFContCascadePIDXiMinus)  {
   fCFContCascadePIDXiMinus = new AliCFContainer("fCFContCascadePIDXiMinus","Pt_{cascade} Vs M_{#Xi^{-} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
   
   //setting the bin limits (valid  for v4-18-10-AN)
-  fCFContCascadePIDXiMinus->SetBinLimits(0,   0.0  ,  10.0 );  // Pt(Cascade)
-  fCFContCascadePIDXiMinus->SetBinLimits(1,   1.2  ,   2.0 );  // Xi Effective mass
-  fCFContCascadePIDXiMinus->SetBinLimits(2,  -1.1  ,   1.1 );  // Rapidity
+  fCFContCascadePIDXiMinus->SetBinLimits(0,   0.0  ,  10.0  );          // Pt(Cascade)
+  fCFContCascadePIDXiMinus->SetBinLimits(1,   1.25 ,   1.40 );          // Xi Effective mass
+  fCFContCascadePIDXiMinus->SetBinLimits(2,  -1.1  ,   1.1  );          // Rapidity
   if(fCollidingSystems) 
         fCFContCascadePIDXiMinus->SetBinLimits(3, 0.0, 20000.0  );    // Primary track Multiplicity
   else
@@ -1093,18 +1109,18 @@ if(! fCFContCascadePIDXiPlus)  {
   //array for the number of bins in each dimension :
   Int_t lNbBinsPerVar[4] = {0};
   lNbBinsPerVar[0] = 100;
-  lNbBinsPerVar[1] = 400;
+  lNbBinsPerVar[1] = 75;
   lNbBinsPerVar[2] = 44;
   lNbBinsPerVar[3] = 250;
    
   
-  fCFContCascadePIDXiPlus = new AliCFContainer("fCFContCascadePIDXiPlus","Pt_{cascade} Vs M_{#Xi^{+} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
+  fCFContCascadePIDXiPlus = new AliCFContainer("fCFContCascadePIDXiPlus","Pt_{cascade} Vs M_{#bar{#Xi}^{+} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
   
   
   //setting the bin limits (valid  for v4-18-10-AN)
-  fCFContCascadePIDXiPlus->SetBinLimits(0,   0.0  ,  10.0 );   // Pt(Cascade)
-  fCFContCascadePIDXiPlus->SetBinLimits(1,   1.2  ,   2.0 );   // Xi Effective mass
-  fCFContCascadePIDXiPlus->SetBinLimits(2,  -1.1  ,   1.1 );   // Rapidity
+  fCFContCascadePIDXiPlus->SetBinLimits(0,   0.0  ,  10.0  );           // Pt(Cascade)
+  fCFContCascadePIDXiPlus->SetBinLimits(1,   1.25 ,   1.40 );           // Xi Effective mass
+  fCFContCascadePIDXiPlus->SetBinLimits(2,  -1.1  ,   1.1  );           // Rapidity
   if(fCollidingSystems) 
         fCFContCascadePIDXiPlus->SetBinLimits(3, 0.0, 20000.0  );    // Primary track Multiplicity
   else
@@ -1137,7 +1153,7 @@ if(! fCFContCascadePIDOmegaMinus)  {
   //array for the number of bins in each dimension :
   Int_t lNbBinsPerVar[4] = {0};
   lNbBinsPerVar[0] = 100;
-  lNbBinsPerVar[1] = 500;
+  lNbBinsPerVar[1] = 60;
   lNbBinsPerVar[2] = 44;
   lNbBinsPerVar[3] = 250;
    
@@ -1146,9 +1162,9 @@ if(! fCFContCascadePIDOmegaMinus)  {
   
   
   //setting the bin limits (valid  for v4-18-10-AN)
-  fCFContCascadePIDOmegaMinus->SetBinLimits(0,   0.0  ,  10.0 );       // Pt(Cascade)
-  fCFContCascadePIDOmegaMinus->SetBinLimits(1,   1.5  ,   2.5 );       // Omega Effective mass
-  fCFContCascadePIDOmegaMinus->SetBinLimits(2,  -1.1  ,   1.1 );       // Rapidity
+  fCFContCascadePIDOmegaMinus->SetBinLimits(0,   0.0  ,  10.0  );        // Pt(Cascade)
+  fCFContCascadePIDOmegaMinus->SetBinLimits(1,   1.62 ,   1.74 );        // Omega Effective mass
+  fCFContCascadePIDOmegaMinus->SetBinLimits(2,  -1.1  ,   1.1  );        // Rapidity
   if(fCollidingSystems) 
         fCFContCascadePIDOmegaMinus->SetBinLimits(3, 0.0, 20000.0  );    //Primary track Multiplicity
   else
@@ -1180,18 +1196,18 @@ if(! fCFContCascadePIDOmegaPlus)  {
   //array for the number of bins in each dimension :
   Int_t lNbBinsPerVar[4] = {0};
   lNbBinsPerVar[0] = 100;
-  lNbBinsPerVar[1] = 500;
+  lNbBinsPerVar[1] = 60;
   lNbBinsPerVar[2] = 44;
   lNbBinsPerVar[3] = 250;
    
   
-  fCFContCascadePIDOmegaPlus = new AliCFContainer("fCFContCascadePIDOmegaPlus","Pt_{cascade} Vs M_{#Omega^{+} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
+  fCFContCascadePIDOmegaPlus = new AliCFContainer("fCFContCascadePIDOmegaPlus","Pt_{cascade} Vs M_{#bar{#Omega}^{+} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
   
   
   //setting the bin limits (valid  for v4-18-10-AN)
-  fCFContCascadePIDOmegaPlus->SetBinLimits(0,   0.0  ,  10.0 );        // Pt(Cascade)
-  fCFContCascadePIDOmegaPlus->SetBinLimits(1,   1.5  ,   2.5 );        // Omega Effective mass
-  fCFContCascadePIDOmegaPlus->SetBinLimits(2,  -1.1  ,   1.1 );        // Rapidity
+  fCFContCascadePIDOmegaPlus->SetBinLimits(0,   0.0  ,  10.0  );        // Pt(Cascade)
+  fCFContCascadePIDOmegaPlus->SetBinLimits(1,   1.62 ,   1.74 );        // Omega Effective mass
+  fCFContCascadePIDOmegaPlus->SetBinLimits(2,  -1.1  ,   1.1  );        // Rapidity
   if(fCollidingSystems) 
         fCFContCascadePIDOmegaPlus->SetBinLimits(3, 0.0, 20000.0  );    // Primary track Multiplicity
   else
@@ -1340,11 +1356,27 @@ if(! fCFContCascadeCuts){
   fCFContCascadeCuts->SetBinLimits(16, -10.0  , 10.0  );       // BestPrimaryVtxPosZ
   if(fCollidingSystems){
        fCFContCascadeCuts->SetBinLimits(17,   0.0, 10000.0  );    // nTrackPrimaryMultiplicity
-       fCFContCascadeCuts->SetBinLimits(18,   0.0, 10000.0  );    // SPDTrackletsMultiplicity
+       fCFContCascadeCuts->SetBinLimits(18,   0.0, 10000.0  );    // nITSandTPCtracksAndSPDtracklets
   }
   else{  
-       fCFContCascadeCuts->SetBinLimits(17,   0.0, 250.0  );     // nTrackPrimaryMultiplicity
-       fCFContCascadeCuts->SetBinLimits(18,   0.0, 200.0  );     // SPDTrackletsMultiplicity
+        //17
+       //fCFContCascadeCuts->SetBinLimits(17,   0.0, 250.0  );     // nTrackPrimaryMultiplicity
+        Double_t *lBinLim17  = new Double_t[ lNbBinsPerVar[17]+1 ];
+                lBinLim17[0] = 0;       lBinLim17[10] = 10;      lBinLim17[20] = 24;     lBinLim17[30] = 45;    lBinLim17[40] = 95;    lBinLim17[50] = 250;
+                lBinLim17[1] = 1;       lBinLim17[11] = 11;      lBinLim17[21] = 25;     lBinLim17[31] = 50;    lBinLim17[41] = 100;
+                lBinLim17[2] = 2;       lBinLim17[12] = 13;      lBinLim17[22] = 27;     lBinLim17[32] = 55;    lBinLim17[42] = 105;
+                lBinLim17[3] = 3;       lBinLim17[13] = 14;      lBinLim17[23] = 30;     lBinLim17[33] = 60;    lBinLim17[43] = 110;
+                lBinLim17[4] = 4;       lBinLim17[14] = 15;      lBinLim17[24] = 31;     lBinLim17[34] = 65;    lBinLim17[44] = 115;
+                lBinLim17[5] = 5;       lBinLim17[15] = 16;      lBinLim17[25] = 32;     lBinLim17[35] = 70;    lBinLim17[45] = 120;
+                lBinLim17[6] = 6;       lBinLim17[16] = 20;      lBinLim17[26] = 33;     lBinLim17[36] = 75;    lBinLim17[46] = 125;
+                lBinLim17[7] = 7;       lBinLim17[17] = 21;      lBinLim17[27] = 34;     lBinLim17[37] = 80;    lBinLim17[47] = 130;
+                lBinLim17[8] = 8;       lBinLim17[18] = 22;      lBinLim17[28] = 35;     lBinLim17[38] = 85;    lBinLim17[48] = 135;
+                lBinLim17[9] = 9;       lBinLim17[19] = 23;      lBinLim17[29] = 40;     lBinLim17[39] = 90;    lBinLim17[49] = 140;
+        
+                fCFContCascadeCuts -> SetBinLimits(17,  lBinLim17 );            // nTrackPrimaryMultiplicity : 0 to 250        
+        delete [] lBinLim17;   
+        
+       fCFContCascadeCuts->SetBinLimits(18,   0.0, 200.0  );     // nITSandTPCtracksAndSPDtracklets
   }
   fCFContCascadeCuts->SetBinLimits(19,  68.0  ,164.0  );       // BachTPCClusters
   
@@ -1370,11 +1402,11 @@ if(! fCFContCascadeCuts){
   fCFContCascadeCuts->SetBinLimits(16, -10.0  , 10.0  );       // BestPrimaryVtxPosZ
   if(fCollidingSystems){
        fCFContCascadeCuts->SetBinLimits(17,   0.0, 10000.0  );    // nTrackPrimaryMultiplicity
-       fCFContCascadeCuts->SetBinLimits(18,   0.0, 10000.0  );    // SPDTrackletsMultiplicity
+       fCFContCascadeCuts->SetBinLimits(18,   0.0, 10000.0  );    // nITSandTPCtracksAndSPDtracklets
   }
   else{  
        fCFContCascadeCuts->SetBinLimits(17,   0.0, 250.0  );     // nTrackPrimaryMultiplicity
-       fCFContCascadeCuts->SetBinLimits(18,   0.0, 200.0  );     // SPDTrackletsMultiplicity
+       fCFContCascadeCuts->SetBinLimits(18,   0.0, 200.0  );     // nITSandTPCtracksAndSPDtracklets
   }
   fCFContCascadeCuts->SetBinLimits(19,  25.0  ,165.0  );       // BachTPCClusters
   */
@@ -1414,7 +1446,7 @@ if(! fCFContCascadeCuts){
   fCFContCascadeCuts->SetVarTitle(16, "Z-position(BestPrimVtx) (cm)");
   
   fCFContCascadeCuts->SetVarTitle(17, "Primary Track Multiplicity");
-  fCFContCascadeCuts->SetVarTitle(18, "SPD tracklets Multiplicity");
+  fCFContCascadeCuts->SetVarTitle(18, "(ITS+TPC tracks + SPD tracklets) Multiplicity");
   fCFContCascadeCuts->SetVarTitle(19, "Bach.TPC Clusters");
   
   fListHistCascade->Add(fCFContCascadeCuts);
@@ -1632,6 +1664,9 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
         Int_t    nTrackMultiplicity             = -1;
         Int_t    nTrackWithTPCrefitMultiplicity = -1;
         Int_t    nTrackPrimaryMultiplicity      = -1;
+        Int_t    nSPDTracklets                   = 0; // AliESDEvent::EstimateMultiplicity will re-initialise the value to 0
+        Int_t    nITSandTPCtracksAndSPDtracklets = 0; // AliESDEvent::EstimateMultiplicity will re-initialise the value to 0
+        Int_t    nTracksITSSApure                = 0; // AliESDEvent::EstimateMultiplicity will re-initialise the value to 0
 
         Short_t  lStatusTrackingPrimVtx         = -2;
         Double_t lTrkgPrimaryVtxPos[3]          = {-100.0, -100.0, -100.0};
@@ -1702,6 +1737,8 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
        ncascades                      = lESDevent->GetNumberOfCascades();
         nTrackWithTPCrefitMultiplicity = DoESDTrackWithTPCrefitMultiplicity(lESDevent);
         nTrackPrimaryMultiplicity      = fESDtrackCuts->CountAcceptedTracks(lESDevent);
+        //EstimateMultiplicity(Int_t &tracklets, Int_t &trITSTPC, Int_t &trITSSApure, Double_t eta, Bool_t useDCAFlag,Bool_t useV0Flag)
+        lESDevent->EstimateMultiplicity( nSPDTracklets, nITSandTPCtracksAndSPDtracklets, nTracksITSSApure, 1.0, kTRUE, kTRUE);
 
   }//if (fAnalysisType == "ESD")
   
@@ -1727,6 +1764,7 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
         fHistTrackMultiplicityForTrigEvt         ->Fill( nTrackMultiplicity             );
         fHistTPCrefitTrackMultiplicityForTrigEvt ->Fill( nTrackWithTPCrefitMultiplicity );
         fHistPrimaryTrackMultiplicityForTrigEvt  ->Fill( nTrackPrimaryMultiplicity      );
+        fHistEstimateITSTPCMultiplicityForTrigEvt->Fill( nITSandTPCtracksAndSPDtracklets);
         fHistCascadeMultiplicityForTrigEvt       ->Fill( ncascades                      );
 
 
@@ -1765,7 +1803,7 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
         
         // FIXME : quality selection regarding pile-up rejection 
         if(fkRejectEventPileUp) {
-                if(lESDevent->IsPileupFromSPD() ){// minContributors=3, minZdist=0.8, nSigmaZdist=3., nSigmaDiamXY=2., nSigmaDiamZ=5.  -> see http://alisoft.cern.ch/viewvc/trunk/STEER/AliESDEvent.h?root=AliRoot&r1=41914&r2=42199&pathrev=42199
+                if(lESDevent->IsPileupFromSPDInMultBins() ){// minContributors=3, minZdist=0.8, nSigmaZdist=3., nSigmaDiamXY=2., nSigmaDiamZ=5.  -> see http://alisoft.cern.ch/viewvc/trunk/STEER/AliESDEvent.h?root=AliRoot&r1=41914&r2=42199&pathrev=42199
                         AliWarning("Pb / Event tagged as pile-up by SPD... return !"); 
                         PostData(1, fListHistCascade); 
                         return; 
@@ -1914,7 +1952,7 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
        Double_t lAlphaXi = -200., lPtArmXi  = -200.0;
        
        // - 7th part of initialisation : variables for the AliCFContainer dedicated to cascade cut optmisiation
-       Int_t    lSPDTrackletsMultiplicity = -1;
+       // Int_t    lSPDTrackletsMultiplicity = -1; // now provided by AliESDEvent::EstimateMultiplicity ...
   
        // - 8th part of initialisation : variables needed for Angular correlations
        TVector3 lTVect3MomXi(0.,0.,0.);
@@ -2128,13 +2166,13 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
                //-------------
        
        // A - Combined PID
-       // Reasonable guess for the priors for the cascade track sample (e-, mu, pi, K, p)// Bo: neutral part added now !
-       Double_t lPriorsGuessXi[10]    = {0, 0, 2, 0, 1, 0, 0, 0, 0, 0};
-       Double_t lPriorsGuessOmega[10] = {0, 0, 1, 1, 1, 0, 0, 0, 0, 0};
+       // Reasonable guess for the priors for the cascade track sample (e-, mu, pi, K, p)
+       Double_t lPriorsGuessXi[10]    = {0, 0, 2, 0, 1,  0,0,0,0,0};
+       Double_t lPriorsGuessOmega[10] = {0, 0, 1, 1, 1,  0,0,0,0,0};
        
        // Combined VO-positive-daughter PID
-       AliPID pPidXi;          pPidXi.SetPriors(    lPriorsGuessXi,    1); // Bo: now needed to specify charged
-       AliPID pPidOmega;       pPidOmega.SetPriors( lPriorsGuessOmega, 1); // Bo: now needed to specify charged
+       AliPID pPidXi;         pPidXi.SetPriors(    lPriorsGuessXi    , kTRUE);  // kTRUE = for charged particle PID
+       AliPID pPidOmega;      pPidOmega.SetPriors( lPriorsGuessOmega , kTRUE);  // kTRUE = for charged particle PID
                
        if( pTrackXi->IsOn(AliESDtrack::kESDpid) ){  // Combined PID exists
                Double_t r[10] = {0.}; pTrackXi->GetESDpid(r);
@@ -2176,8 +2214,8 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
        
        
        // Combined VO-negative-daughter PID
-       AliPID nPidXi;          nPidXi.SetPriors(    lPriorsGuessXi,    1); // Bo: now needed to specify charged
-       AliPID nPidOmega;       nPidOmega.SetPriors( lPriorsGuessOmega, 1); // Bo: now needed to specify charged
+       AliPID nPidXi;         nPidXi.SetPriors(    lPriorsGuessXi    , kTRUE); // kTRUE = for charged particle PID
+       AliPID nPidOmega;      nPidOmega.SetPriors( lPriorsGuessOmega , kTRUE); // kTRUE = for charged particle PID
                
        if( nTrackXi->IsOn(AliESDtrack::kESDpid) ){  // Combined PID exists
                Double_t r[10] = {0.}; nTrackXi->GetESDpid(r);
@@ -2218,8 +2256,8 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
        
                
        // Combined bachelor PID
-       AliPID bachPidXi;       bachPidXi.SetPriors(    lPriorsGuessXi,    1); // Bo: now needed to specify charged
-       AliPID bachPidOmega;    bachPidOmega.SetPriors( lPriorsGuessOmega, 1); // Bo: now needed to specify charged
+       AliPID bachPidXi;      bachPidXi.SetPriors(    lPriorsGuessXi   , kTRUE ); // kTRUE = for charged particle PID
+       AliPID bachPidOmega;   bachPidOmega.SetPriors( lPriorsGuessOmega, kTRUE ); // kTRUE = for charged particle PID
        
        if( bachTrackXi->IsOn(AliESDtrack::kESDpid) ){  // Combined PID exists
                Double_t r[10] = {0.}; bachTrackXi->GetESDpid(r);
@@ -2344,8 +2382,9 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
        
                // II.Step 7 - Complementary info for monitoring the cascade cut variables
        
-       const AliMultiplicity *lAliMult = lESDevent->GetMultiplicity();
-       lSPDTrackletsMultiplicity = lAliMult->GetNumberOfTracklets();
+       //const AliMultiplicity *lAliMult = lESDevent->GetMultiplicity();
+       //lSPDTrackletsMultiplicity = lAliMult->GetNumberOfTracklets();
+        // --> now provided by AliESDEvent::EstimateMultiplicity ...
        
                // II.Step 8 - Azimuthal correlation study
                //-------------
@@ -2448,10 +2487,10 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
        
        /* 
        // Reasonable guess for the priors for the cascade track sample
-       Double_t lPriorsGuessXi[5]    = {0.0, 0.0, 2, 0, 1};
-       Double_t lPriorsGuessOmega[5] = {0.0, 0.0, 1, 1, 1};
-       AliPID bachPidXi;       bachPidXi.SetPriors(    lPriorsGuessXi    );
-       AliPID bachPidOmega;    bachPidOmega.SetPriors( lPriorsGuessOmega );
+       Double_t lPriorsGuessXi[5]    = {0.0, 0.0, 2, 0, 1, 0,0,0,0,0};
+       Double_t lPriorsGuessOmega[5] = {0.0, 0.0, 1, 1, 1, 0,0,0,0,0};
+       AliPID bachPidXi;      bachPidXi.SetPriors(    lPriorsGuessXi    , kTRUE); // kTRUE = for charged particle PID
+       AliPID bachPidOmega;   bachPidOmega.SetPriors( lPriorsGuessOmega , kTRUE); // kTRUE = for charged particle PID
        
        const AliAODTrack *bachTrackXi = lAODevent->GetTrack( xi->GetBachID() ); // FIXME : GetBachID not implemented ?
        
@@ -2755,7 +2794,10 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
        lContainerPIDVars[0] = 0.; lContainerPIDVars[1] = 0.; lContainerPIDVars[2] = 0.; lContainerPIDVars[3] = 0.;
        
        // Omega Minus          
-       if( lChargeXi < 0 ) {
+       if( lChargeXi < 0 && (TMath::Abs( lInvMassXiMinus-1.3217 ) > 0.008) ) {
+                // In order to reduce the background contribution from Xi to Omega, 
+                // --> trial to reject the neg. candidate whose mass under Xi hypothesis
+                // falls into the Xi window (Mpdg +- 8 MeV/c2)
                lContainerPIDVars[0] = lXiTransvMom       ;
                lContainerPIDVars[1] = lInvMassOmegaMinus ;
                lContainerPIDVars[2] = lRapOmega          ;
@@ -2793,7 +2835,10 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
        lContainerPIDVars[0] = 0.; lContainerPIDVars[1] = 0.; lContainerPIDVars[2] = 0.; lContainerPIDVars[3] = 0.;
        
        // Omega Plus           
-       if( lChargeXi > 0 ) {
+       if( lChargeXi > 0 && (TMath::Abs( lInvMassXiPlus-1.3217 ) > 0.008) ) {
+                // In order to reduce the background contribution from Xi to Omega, 
+                // --> trial to reject the neg. candidate whose mass under Xi hypothesis
+                // falls into the Xi window (Mpdg +- 8 MeV/c2)
                lContainerPIDVars[0] = lXiTransvMom       ;
                lContainerPIDVars[1] = lInvMassOmegaPlus ;
                lContainerPIDVars[2] = lRapOmega          ;
@@ -2847,8 +2892,8 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
         lContainerCutVars[13] = lXiTransvMom;
         
         lContainerCutVars[16] = lBestPrimaryVtxPos[2];
-        lContainerCutVars[17] = nTrackPrimaryMultiplicity;       // FIXME : nTrackPrimaryMultiplicity not checked for AOD ... = 0
-        lContainerCutVars[18] = lSPDTrackletsMultiplicity;       // FIXME : SPDTrackletsMultiplicity is not available for AOD ... = -1
+        lContainerCutVars[17] = nTrackPrimaryMultiplicity;       // FIXME : nTrackPrimaryMultiplicity not checked for AOD ... = -1
+        lContainerCutVars[18] = nITSandTPCtracksAndSPDtracklets; // FIXME : nITSandTPCtracksAndSPDtracklets is not available for AOD ... = -1
         lContainerCutVars[19] = lBachTPCClusters;                // FIXME : BachTPCClusters          is not available for AOD ... = -1
         
         if( lChargeXi < 0 ) {
@@ -2862,7 +2907,8 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
                 lContainerCutVars[12] = lInvMassOmegaMinus;
                 lContainerCutVars[14] = -1.;
                 lContainerCutVars[15] = lRapOmega;
-                        if( lIsBachelorKaonForTPC   && lIsPosProtonForTPC    && lIsNegPionForTPC )       fCFContCascadeCuts->Fill(lContainerCutVars,2); // for Omega-
+                        if( lIsBachelorKaonForTPC   && lIsPosProtonForTPC    && lIsNegPionForTPC 
+                            && (TMath::Abs( lInvMassXiMinus-1.3217 ) > 0.008) )                          fCFContCascadeCuts->Fill(lContainerCutVars,2); // for Omega-
         }
         else{
                 lContainerCutVars[11] = lInvMassXiPlus;
@@ -2875,7 +2921,8 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
                 lContainerCutVars[12] = lInvMassOmegaPlus;
                 lContainerCutVars[14] = -1.;
                 lContainerCutVars[15] = lRapOmega;
-                        if( lIsBachelorKaonForTPC   && lIsNegProtonForTPC    && lIsPosPionForTPC )       fCFContCascadeCuts->Fill(lContainerCutVars,3); // for Omega+
+                        if( lIsBachelorKaonForTPC   && lIsNegProtonForTPC    && lIsPosPionForTPC 
+                            && (TMath::Abs( lInvMassXiPlus-1.3217 ) > 0.008) )                           fCFContCascadeCuts->Fill(lContainerCutVars,3); // for Omega+
         }
 
                         
@@ -2883,11 +2930,13 @@ void AliAnalysisTaskCheckCascade::UserExec(Option_t *)
         
         if( lChargeXi < 0 ){
                 if( lIsBachelorPionForTPC   && lIsPosProtonForTPC    && lIsNegPionForTPC )      DoAngularCorrelation("Xi-",    lInvMassXiMinus,    lArrTrackID, lTVect3MomXi, lEta, lRapXi);
-                if( lIsBachelorKaonForTPC   && lIsPosProtonForTPC    && lIsNegPionForTPC )      DoAngularCorrelation("Omega-", lInvMassOmegaMinus, lArrTrackID, lTVect3MomXi, lEta, lRapOmega);
+                if( lIsBachelorKaonForTPC   && lIsPosProtonForTPC    && lIsNegPionForTPC 
+                    && (TMath::Abs( lInvMassXiMinus-1.3217 ) > 0.008) )                         DoAngularCorrelation("Omega-", lInvMassOmegaMinus, lArrTrackID, lTVect3MomXi, lEta, lRapOmega);
         }
         else{
                 if( lIsBachelorPionForTPC   && lIsNegProtonForTPC    && lIsPosPionForTPC )      DoAngularCorrelation("Xi+",    lInvMassXiPlus,    lArrTrackID, lTVect3MomXi, lEta, lRapXi);
-                if( lIsBachelorKaonForTPC   && lIsNegProtonForTPC    && lIsPosPionForTPC )      DoAngularCorrelation("Omega+", lInvMassOmegaPlus, lArrTrackID, lTVect3MomXi, lEta, lRapOmega);
+                if( lIsBachelorKaonForTPC   && lIsNegProtonForTPC    && lIsPosPionForTPC 
+                    && (TMath::Abs( lInvMassXiPlus-1.3217 ) > 0.008) )                          DoAngularCorrelation("Omega+", lInvMassOmegaPlus, lArrTrackID, lTVect3MomXi, lEta, lRapOmega);
         }
         
        
@@ -2932,7 +2981,7 @@ void AliAnalysisTaskCheckCascade::DoAngularCorrelation( const Char_t   *lCascTyp
 
         if(fAngularCorrelationType.Contains("AssoAnyPrim") ){
         //----------------------- Option 1 ---------------------------------------------------------------------------------------------------
-        // Cascade    = trigger, 
+        // Trigger    = cascade,
         // Associated = all the primary tracks in the event.
         //     1.1 Cascade = trigger above a certain pt but nothing more complicated than that
         //     1.2 Cascade = leading particle (à la heavy-ion -> test for coalescence)
@@ -2941,7 +2990,7 @@ void AliAnalysisTaskCheckCascade::DoAngularCorrelation( const Char_t   *lCascTyp
                 if(kRejectLowPtCascades && (lTVect3MomXi.Pt() < 1.7) ) return;
                 // Do not even consider the cascade of low pt for the correlation ...
 
-                if(fAngularCorrelationType == "TrigCascLeading-AssoAnyPrim"){// Require the Cascade To be the Leading Part. in the event
+                if(fAngularCorrelationType == "TrigCascLeading-AssoAnyPrim"){// Require the Cascade to be the Leading Part. in the event
 
                         // 1st loop: check there is no primary track with a higher pt ...
                         // = The cascade is meant to be a leading particle : Pt(Casc) > any primary track in the event
@@ -3019,7 +3068,7 @@ void AliAnalysisTaskCheckCascade::DoAngularCorrelation( const Char_t   *lCascTyp
         else if(fAngularCorrelationType == "TrigLeadingTrck-AssoCasc"){
 
         //----------------------- Option 2 ---------------------------------------------------------------------------------------------------
-        // Trigger    = trigger,
+        // Trigger    = leading track,
         // Associated = the cascade'S' in the event
         // NOTE : several good cascades could be present in the event (e.g. one leading track as trigger, 2 associated Xi) ...
         //       The present function will then be called several times.
@@ -3206,7 +3255,7 @@ void AliAnalysisTaskCheckCascade::Terminate(Option_t *)
                legendeXi->SetTextSize(0.05);
                legendeXi->SetFillColor(kWhite);
                legendeXi->AddEntry( fHistMassXiMinus,"#Xi^{-} candidates","lp");
-               legendeXi->AddEntry( fHistMassXiPlus,"#Xi^{+} candidates","lp");
+               legendeXi->AddEntry( fHistMassXiPlus,"#bar{#Xi}^{+} candidates","lp");
                legendeXi->Draw();
   
   
@@ -3235,7 +3284,7 @@ void AliAnalysisTaskCheckCascade::Terminate(Option_t *)
                legendeOmega->SetTextSize(0.05);
                legendeOmega->SetFillColor(kWhite);
                legendeOmega->AddEntry( fHistMassOmegaMinus,"#Omega^{-} candidates","lp");
-               legendeOmega->AddEntry( fHistMassOmegaPlus,"#Omega^{+} candidates","lp");
+               legendeOmega->AddEntry( fHistMassOmegaPlus,"#bar{#Omega}^{+} candidates","lp");
                legendeOmega->Draw();
 
 }
index 9e93546..51b0cca 100644 (file)
@@ -104,6 +104,7 @@ class AliAnalysisTaskCheckCascade : public AliAnalysisTaskSE {
         TH1F    *fHistTrackMultiplicityForTrigEvt;                //! Track multiplicity distribution (without any cut = include ITS stand-alone + global tracks)
         TH1F    *fHistTPCrefitTrackMultiplicityForTrigEvt;        //! Track multiplicity distribution for tracks with TPCrefit
         TH1F    *fHistPrimaryTrackMultiplicityForTrigEvt;         //! Track multiplicity distribution for the primary tracks (See fESDtrackCuts)
+        TH1F    *fHistEstimateITSTPCMultiplicityForTrigEvt;       //! (ITS+TPC tracks + SPD tracklets) multiplicity estimation from Ruben's work
         
         // - General histos (filled for any triggered event + (|z(prim. vtx)| < 10 cm ) )
         TH1F    *fHistCascadeMultiplicityForTrigEvtAndZprimVtx;   //! Cascade multiplicity distribution
@@ -243,7 +244,7 @@ class AliAnalysisTaskCheckCascade : public AliAnalysisTaskSE {
   AliAnalysisTaskCheckCascade(const AliAnalysisTaskCheckCascade&);            // not implemented
   AliAnalysisTaskCheckCascade& operator=(const AliAnalysisTaskCheckCascade&); // not implemented
   
-  ClassDef(AliAnalysisTaskCheckCascade, 12);
+  ClassDef(AliAnalysisTaskCheckCascade, 13);
 };
 
 #endif
index cb52b6f..5f8955c 100644 (file)
@@ -73,7 +73,7 @@ AliAnalysisTaskCheckPerformanceCascade::AliAnalysisTaskCheckPerformanceCascade()
 fListHistCascade(0),
     fHistMCTrackMultiplicity(0), 
        // - Resolution of the multiplicity estimator
-    f2dHistRecoMultVsMCMult(0),
+    f2dHistRecoPrimTrckMultVsMCMult(0), f2dHistRecoEstimateMultVsMCMult(0),
 
     fHistEtaGenProton(0),
     fHistEtaGenAntiProton(0),
@@ -208,7 +208,13 @@ fListHistCascade(0),
     f2dHistAsMCResPhiXiPlus(0),
     f2dHistAsMCResPhiOmegaMinus(0),
     f2dHistAsMCResPhiOmegaPlus(0),
-                               
+
+        // - Correlation in Pt between the cascade and its (anti)proton daughter
+    f2dHistAsMCPtProtonVsPtXiMinus(0),
+    f2dHistAsMCPtAntiProtonVsPtXiPlus(0),
+    f2dHistAsMCPtProtonVsPtOmegaMinus(0),
+    f2dHistAsMCPtAntiProtonVsPtOmegaPlus(0),
+
     fCFContCascadePIDAsXiMinus(0),
     fCFContCascadePIDAsXiPlus(0),
     fCFContCascadePIDAsOmegaMinus(0),
@@ -243,7 +249,7 @@ AliAnalysisTaskCheckPerformanceCascade::AliAnalysisTaskCheckPerformanceCascade(c
 fListHistCascade(0),
     fHistMCTrackMultiplicity(0), 
        // - Resolution of the multiplicity estimator
-    f2dHistRecoMultVsMCMult(0),
+    f2dHistRecoPrimTrckMultVsMCMult(0), f2dHistRecoEstimateMultVsMCMult(0),
 
     fHistEtaGenProton(0),
     fHistEtaGenAntiProton(0),
@@ -379,6 +385,12 @@ fListHistCascade(0),
     f2dHistAsMCResPhiOmegaMinus(0),
     f2dHistAsMCResPhiOmegaPlus(0),
 
+        // - Correlation in Pt between the cascade and its (anti)proton daughter
+    f2dHistAsMCPtProtonVsPtXiMinus(0),
+    f2dHistAsMCPtAntiProtonVsPtXiPlus(0),
+    f2dHistAsMCPtProtonVsPtOmegaMinus(0),
+    f2dHistAsMCPtAntiProtonVsPtOmegaPlus(0),
+
     fCFContCascadePIDAsXiMinus(0),
     fCFContCascadePIDAsXiPlus(0),
     fCFContCascadePIDAsOmegaMinus(0),
@@ -395,26 +407,28 @@ fListHistCascade(0),
         
         for(Int_t iAlephIdx   = 0; iAlephIdx   < 5; iAlephIdx++   ) { fAlephParameters [iAlephIdx]    = -1.; }
         
-        // Extra Loose
-//         fV0Sels[0] =  33.  ;  // max allowed chi2
-//         fV0Sels[1] =   0.01;  // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
-//         fV0Sels[2] =   0.01;  // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
-//         fV0Sels[3] =   2.0 ;  // max allowed DCA between the daughter tracks       (LHC09a4 : 0.5)
-//         fV0Sels[4] =   0.0 ;  // min allowed cosine of V0's pointing angle         (LHC09a4 : 0.99)
-//         fV0Sels[5] =   0.2 ;  // min radius of the fiducial volume                 (LHC09a4 : 0.2)
-//         fV0Sels[6] = 100.  ;  // max radius of the fiducial volume                 (LHC09a4 : 100.0)
-//         
-//         fCascSels[0] =  33.   ;  // max allowed chi2 (same as PDC07)
-//         fCascSels[1] =   0.02 ;  // min allowed V0 impact parameter                    (PDC07 : 0.05   / LHC09a4 : 0.025 )
-//         fCascSels[2] =   0.008;  // "window" around the Lambda mass                    (PDC07 : 0.008  / LHC09a4 : 0.010 )
-//         fCascSels[3] =   0.01 ;  // min allowed bachelor's impact parameter            (PDC07 : 0.035  / LHC09a4 : 0.025 )
-//         fCascSels[4] =   0.5  ;  // max allowed DCA between the V0 and the bachelor    (PDC07 : 0.1    / LHC09a4 : 0.2   )
-//         fCascSels[5] =   0.98 ;  // min allowed cosine of the cascade pointing angle   (PDC07 : 0.9985 / LHC09a4 : 0.998 )
-//         fCascSels[6] =   0.2  ;  // min radius of the fiducial volume                  (PDC07 : 0.9    / LHC09a4 : 0.2   )
-//         fCascSels[7] = 100.   ;  // max radius of the fiducial volume                  (PDC07 : 100    / LHC09a4 : 100   )
+        // New Loose : 1st step for the 7 TeV pp analysis
         
-        // Hyper Loose
+        fV0Sels[0] =  33.  ;  // max allowed chi2
+        fV0Sels[1] =   0.02;  // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
+        fV0Sels[2] =   0.02;  // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
+        fV0Sels[3] =   2.0 ;  // max allowed DCA between the daughter tracks       (LHC09a4 : 0.5)
+        fV0Sels[4] =   0.95;  // min allowed cosine of V0's pointing angle         (LHC09a4 : 0.99)
+        fV0Sels[5] =   1.0 ;  // min radius of the fiducial volume                 (LHC09a4 : 0.2)
+        fV0Sels[6] = 100.  ;  // max radius of the fiducial volume                 (LHC09a4 : 100.0)
         
+        fCascSels[0] =  33.   ;  // max allowed chi2 (same as PDC07)
+        fCascSels[1] =   0.05 ;  // min allowed V0 impact parameter                    (PDC07 : 0.05   / LHC09a4 : 0.025 )
+        fCascSels[2] =   0.010;  // "window" around the Lambda mass                    (PDC07 : 0.008  / LHC09a4 : 0.010 )
+        fCascSels[3] =   0.03 ;  // min allowed bachelor's impact parameter            (PDC07 : 0.035  / LHC09a4 : 0.025 )
+        fCascSels[4] =   2.0  ;  // max allowed DCA between the V0 and the bachelor    (PDC07 : 0.1    / LHC09a4 : 0.2   )
+        fCascSels[5] =   0.95 ;  // min allowed cosine of the cascade pointing angle   (PDC07 : 0.9985 / LHC09a4 : 0.998 )
+        fCascSels[6] =   0.4  ;  // min radius of the fiducial volume                  (PDC07 : 0.9    / LHC09a4 : 0.2   )
+        fCascSels[7] = 100.   ;  // max radius of the fiducial volume                  (PDC07 : 100    / LHC09a4 : 100   )
+        
+        
+        // Hyper Loose "à la 900 GeV 2009 data", with lower cosine of pointing angle for Xi (0.95 down to 0.82) = 900 GeV paper
+        /*
         fV0Sels[0] =  33.  ;  // max allowed chi2
         fV0Sels[1] =   0.001; // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
         fV0Sels[2] =   0.001; // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
@@ -431,7 +445,7 @@ fListHistCascade(0),
         fCascSels[5] =   0.82 ;  //FIXME min allowed cosine of the cascade pointing angle   (PDC07 : 0.9985 / LHC09a4 : 0.998 )
         fCascSels[6] =   0.1  ;  // min radius of the fiducial volume                  (PDC07 : 0.9    / LHC09a4 : 0.2   )
         fCascSels[7] = 100.   ;  // max radius of the fiducial volume                  (PDC07 : 100    / LHC09a4 : 100   )
-        
+        */
         
         //New default vtxR (http://alisoft.cern.ch/viewvc?view=rev&root=AliRoot&revision=40955, 5 May 2010)        
         /*
@@ -614,9 +628,14 @@ if( !fPaveTextBookKeeping){
   }
   
     // - Resolution of the multiplicity estimator
-  if(! f2dHistRecoMultVsMCMult){
-       f2dHistRecoMultVsMCMult = new TH2F("f2dHistRecoMultVsMCMult", "Resolution of the multiplicity estimator (prim. tracks); Reco Multiplicity (prim. tracks); MC multiplicity (gen. part.)", 150, 0., 150., 150, 0., 150.);
-       fListHistCascade->Add(f2dHistRecoMultVsMCMult);
+  if(! f2dHistRecoPrimTrckMultVsMCMult){
+       f2dHistRecoPrimTrckMultVsMCMult = new TH2F("f2dHistRecoPrimTrckMultVsMCMult", "Resolution of the multiplicity estimator (prim. tracks in |#eta| < 0.8); Reco Multiplicity (prim. tracks); MC multiplicity (gen. part. in |#eta| < 0.8)", 120, 0., 120., 300, 0., 300.);
+       fListHistCascade->Add(f2dHistRecoPrimTrckMultVsMCMult);
+  }
+  
+  if(! f2dHistRecoEstimateMultVsMCMult){
+       f2dHistRecoEstimateMultVsMCMult = new TH2F("f2dHistRecoEstimateMultVsMCMult", "Resolution of the multiplicity estimator (EstimateMult. in |#eta| < 1.0); Reco Multiplicity (tr(ITS-TPC)+ITSsa+tracklets); MC multiplicity (gen. part. in |#eta| < 1.0)", 160, 0., 160., 300, 0., 300.);
+       fListHistCascade->Add(f2dHistRecoEstimateMultVsMCMult);
   }
   
   if (!fHistEtaGenProton) {
@@ -706,12 +725,12 @@ if( !fPaveTextBookKeeping){
   // II - Xi+ 
   // - Pseudo-Rapidity distribution
   if (!fHistEtaGenCascXiPlus) {
-     fHistEtaGenCascXiPlus = new TH1F("fHistEtaGenCascXiPlus", "#eta of any gen. #Xi^{+};#eta;Number of Casc", 200, -10, 10);
+     fHistEtaGenCascXiPlus = new TH1F("fHistEtaGenCascXiPlus", "#eta of any gen. #bar{#Xi}^{+};#eta;Number of Casc", 200, -10, 10);
      fListHistCascade->Add(fHistEtaGenCascXiPlus);
   }
   
   if (!f2dHistGenPtVsGenYGenXiPlus) {
-     f2dHistGenPtVsGenYGenXiPlus = new TH2F("f2dHistGenPtVsGenYGenXiPlus", "MC P_{t} Vs MC Y of Gen #Xi^{+} ;Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
+     f2dHistGenPtVsGenYGenXiPlus = new TH2F("f2dHistGenPtVsGenYGenXiPlus", "MC P_{t} Vs MC Y of Gen #bar{#Xi}^{+} ;Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
      fListHistCascade->Add(f2dHistGenPtVsGenYGenXiPlus);
   }
   
@@ -719,12 +738,12 @@ if( !fPaveTextBookKeeping){
   // - Info at the generation level of multi-strange particle
   
   if (!fHistThetaGenCascXiPlus) {
-     fHistThetaGenCascXiPlus = new TH1F("fHistThetaGenCascXiPlus", "#theta of gen. #Xi^{+};#theta;Number of Casc.", 200, -10, 190);
+     fHistThetaGenCascXiPlus = new TH1F("fHistThetaGenCascXiPlus", "#theta of gen. #bar{#Xi}^{+};#theta;Number of Casc.", 200, -10, 190);
      fListHistCascade->Add(fHistThetaGenCascXiPlus);
   }
  
   if (!f2dHistGenPtVsGenYFdblXiPlus) {
-     f2dHistGenPtVsGenYFdblXiPlus = new TH2F("f2dHistGenPtVsGenYFdblXiPlus", "MC P_{t} Vs MC Y of findable Gen #Xi^{+} ;Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
+     f2dHistGenPtVsGenYFdblXiPlus = new TH2F("f2dHistGenPtVsGenYFdblXiPlus", "MC P_{t} Vs MC Y of findable Gen #bar{#Xi}^{+} ;Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
      fListHistCascade->Add(f2dHistGenPtVsGenYFdblXiPlus);
   }
   
@@ -838,12 +857,12 @@ if( !fPaveTextBookKeeping){
   // IV - Omega+ 
   // - Pseudo-Rapidity distribution
   if (!fHistEtaGenCascOmegaPlus) {
-     fHistEtaGenCascOmegaPlus = new TH1F("fHistEtaGenCascOmegaPlus", "#eta of any gen. #Omega^{+};#eta;Number of Casc", 200, -10, 10);
+     fHistEtaGenCascOmegaPlus = new TH1F("fHistEtaGenCascOmegaPlus", "#eta of any gen. #bar{#Omega}^{+};#eta;Number of Casc", 200, -10, 10);
      fListHistCascade->Add(fHistEtaGenCascOmegaPlus);
   }
   
   if (!f2dHistGenPtVsGenYGenOmegaPlus) {
-     f2dHistGenPtVsGenYGenOmegaPlus = new TH2F("f2dHistGenPtVsGenYGenOmegaPlus", "MC P_{t} Vs MC Y of Gen #Omega^{+} ;Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
+     f2dHistGenPtVsGenYGenOmegaPlus = new TH2F("f2dHistGenPtVsGenYGenOmegaPlus", "MC P_{t} Vs MC Y of Gen #bar{#Omega}^{+} ;Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
      fListHistCascade->Add(f2dHistGenPtVsGenYGenOmegaPlus);
   }
   
@@ -852,12 +871,12 @@ if( !fPaveTextBookKeeping){
   // - Info at the generation level of multi-strange particle
   
   if (!fHistThetaGenCascOmegaPlus) {
-     fHistThetaGenCascOmegaPlus = new TH1F("fHistThetaGenCascOmegaPlus", "#theta of gen. #Omega^{+};#theta;Number of Casc.", 200, -10, 190);
+     fHistThetaGenCascOmegaPlus = new TH1F("fHistThetaGenCascOmegaPlus", "#theta of gen. #bar{#Omega}^{+};#theta;Number of Casc.", 200, -10, 190);
      fListHistCascade->Add(fHistThetaGenCascOmegaPlus);
   }
  
   if (!f2dHistGenPtVsGenYFdblOmegaPlus) {
-     f2dHistGenPtVsGenYFdblOmegaPlus = new TH2F("f2dHistGenPtVsGenYFdblOmegaPlus", "MC P_{t} Vs MC Y of findable Gen #Omega^{+}; Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
+     f2dHistGenPtVsGenYFdblOmegaPlus = new TH2F("f2dHistGenPtVsGenYFdblOmegaPlus", "MC P_{t} Vs MC Y of findable Gen #bar{#Omega}^{+}; Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
      fListHistCascade->Add(f2dHistGenPtVsGenYFdblOmegaPlus);
   }
 
@@ -913,7 +932,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (! fHistMassXiPlus) {
-         fHistMassXiPlus = new TH1F("fHistMassXiPlus","#Xi^{+} candidates;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
+         fHistMassXiPlus = new TH1F("fHistMassXiPlus","#bar{#Xi}^{+} candidates;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
          fListHistCascade->Add(fHistMassXiPlus);
   }
 
@@ -923,7 +942,7 @@ if( !fPaveTextBookKeeping){
   }
  
   if (! fHistMassOmegaPlus) {
-         fHistMassOmegaPlus = new TH1F("fHistMassOmegaPlus","#Omega^{+} candidates;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
+         fHistMassOmegaPlus = new TH1F("fHistMassOmegaPlus","#bar{#Omega}^{+} candidates;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
          fListHistCascade->Add(fHistMassOmegaPlus);
   }
   
@@ -937,7 +956,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (! fHistMassWithCombPIDXiPlus) {
-    fHistMassWithCombPIDXiPlus = new TH1F("fHistMassWithCombPIDXiPlus","#Xi^{+} candidates, with Bach. comb. PID;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
+    fHistMassWithCombPIDXiPlus = new TH1F("fHistMassWithCombPIDXiPlus","#bar{#Xi}^{+} candidates, with Bach. comb. PID;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
     fListHistCascade->Add(fHistMassWithCombPIDXiPlus);
   }
 
@@ -947,7 +966,7 @@ if( !fPaveTextBookKeeping){
   }
  
   if (! fHistMassWithCombPIDOmegaPlus) {
-       fHistMassWithCombPIDOmegaPlus = new TH1F("fHistMassWithCombPIDOmegaPlus","#Omega^{+} candidates, with Bach. comb. PID;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
+       fHistMassWithCombPIDOmegaPlus = new TH1F("fHistMassWithCombPIDOmegaPlus","#bar{#Omega}^{+} candidates, with Bach. comb. PID;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
     fListHistCascade->Add(fHistMassWithCombPIDOmegaPlus);
   }
   
@@ -971,7 +990,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (! fHistMassWithMcPIDXiPlus) {
-    fHistMassWithMcPIDXiPlus = new TH1F("fHistMassWithMcPIDXiPlus","#Xi^{+} candidates, with Bach. MC PID;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
+    fHistMassWithMcPIDXiPlus = new TH1F("fHistMassWithMcPIDXiPlus","#bar{#Xi}^{+} candidates, with Bach. MC PID;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
     fListHistCascade->Add(fHistMassWithMcPIDXiPlus);
   }
 
@@ -981,7 +1000,7 @@ if( !fPaveTextBookKeeping){
   }
  
   if (! fHistMassWithMcPIDOmegaPlus) {
-       fHistMassWithMcPIDOmegaPlus = new TH1F("fHistMassWithMcPIDOmegaPlus","#Omega^{+} candidates, with Bach. MC PID;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
+       fHistMassWithMcPIDOmegaPlus = new TH1F("fHistMassWithMcPIDOmegaPlus","#bar{#Omega}^{+} candidates, with Bach. MC PID;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
     fListHistCascade->Add(fHistMassWithMcPIDOmegaPlus);
   }
   
@@ -994,7 +1013,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (! fHistAsMCMassXiPlus) {
-         fHistAsMCMassXiPlus = new TH1F("fHistAsMCMassXiPlus","#Xi^{+} candidates associated to MC;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
+         fHistAsMCMassXiPlus = new TH1F("fHistAsMCMassXiPlus","#bar{#Xi}^{+} candidates associated to MC;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
          fListHistCascade->Add(fHistAsMCMassXiPlus);
   }
 
@@ -1004,7 +1023,7 @@ if( !fPaveTextBookKeeping){
   }
  
   if (! fHistAsMCMassOmegaPlus) {
-         fHistAsMCMassOmegaPlus = new TH1F("fHistAsMCMassOmegaPlus","#Omega^{+} candidates associated to MC;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
+         fHistAsMCMassOmegaPlus = new TH1F("fHistAsMCMassOmegaPlus","#bar{#Omega}^{+} candidates associated to MC;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
          fListHistCascade->Add(fHistAsMCMassOmegaPlus);
   }
   
@@ -1018,7 +1037,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (!f2dHistAsMCandCombPIDGenPtVsGenYXiPlus) {
-     f2dHistAsMCandCombPIDGenPtVsGenYXiPlus = new TH2F("f2dHistAsMCandCombPIDGenPtVsGenYXiPlus", "MC P_{t} Vs MC Y of #Xi^{+} (associated+Bach.PID); Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
+     f2dHistAsMCandCombPIDGenPtVsGenYXiPlus = new TH2F("f2dHistAsMCandCombPIDGenPtVsGenYXiPlus", "MC P_{t} Vs MC Y of #bar{#Xi}^{+} (associated+Bach.PID); Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
      fListHistCascade->Add(f2dHistAsMCandCombPIDGenPtVsGenYXiPlus);
   }
   
@@ -1028,7 +1047,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (!f2dHistAsMCandCombPIDGenPtVsGenYOmegaPlus) {
-     f2dHistAsMCandCombPIDGenPtVsGenYOmegaPlus = new TH2F("f2dHistAsMCandCombPIDGenPtVsGenYOmegaPlus", "MC P_{t} Vs MC Y of #Omega^{+} (associated+Bach.PID); Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
+     f2dHistAsMCandCombPIDGenPtVsGenYOmegaPlus = new TH2F("f2dHistAsMCandCombPIDGenPtVsGenYOmegaPlus", "MC P_{t} Vs MC Y of #bar{#Omega}^{+} (associated+Bach.PID); Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
      fListHistCascade->Add(f2dHistAsMCandCombPIDGenPtVsGenYOmegaPlus);
   }
   
@@ -1041,7 +1060,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (!f2dHistAsMCGenPtVsGenYXiPlus) {
-         f2dHistAsMCGenPtVsGenYXiPlus = new TH2F("f2dHistAsMCGenPtVsGenYXiPlus", "MC P_{t} Vs MC Y of gen. #Xi^{+} (associated);Pt_{MC} (GeV/c); Rapidity, Y_{MC}",200, 0., 10., 220, -1.1, 1.1);
+         f2dHistAsMCGenPtVsGenYXiPlus = new TH2F("f2dHistAsMCGenPtVsGenYXiPlus", "MC P_{t} Vs MC Y of gen. #bar{#Xi}^{+} (associated);Pt_{MC} (GeV/c); Rapidity, Y_{MC}",200, 0., 10., 220, -1.1, 1.1);
          fListHistCascade->Add(f2dHistAsMCGenPtVsGenYXiPlus );
   }
   
@@ -1051,7 +1070,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (!f2dHistAsMCGenPtVsGenYOmegaPlus) {
-         f2dHistAsMCGenPtVsGenYOmegaPlus = new TH2F("f2dHistAsMCGenPtVsGenYOmegaPlus", "MC P_{t} Vs MC Y of gen. #Omega^{+} (associated);Pt_{MC} (GeV/c); Rapidity, Y_{MC}",200, 0., 10., 220, -1.1, 1.1);
+         f2dHistAsMCGenPtVsGenYOmegaPlus = new TH2F("f2dHistAsMCGenPtVsGenYOmegaPlus", "MC P_{t} Vs MC Y of gen. #bar{#Omega}^{+} (associated);Pt_{MC} (GeV/c); Rapidity, Y_{MC}",200, 0., 10., 220, -1.1, 1.1);
          fListHistCascade->Add(f2dHistAsMCGenPtVsGenYOmegaPlus );
   } 
   
@@ -1063,7 +1082,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (!fHistAsMCGenEtaXiPlus) {
-         fHistAsMCGenEtaXiPlus = new TH1F("fHistAsMCGenEtaXiPlus", "#eta of gen. #Xi^{+} (associated);#eta;Number of Casc", 100, -5, 5);
+         fHistAsMCGenEtaXiPlus = new TH1F("fHistAsMCGenEtaXiPlus", "#eta of gen. #bar{#Xi}^{+} (associated);#eta;Number of Casc", 100, -5, 5);
          fListHistCascade->Add( fHistAsMCGenEtaXiPlus );
   }
   
@@ -1073,7 +1092,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (!fHistAsMCGenEtaOmegaPlus) {
-         fHistAsMCGenEtaOmegaPlus = new TH1F("fHistAsMCGenEtaOmegaPlus", "#eta of gen. #Omega^{+} (associated);#eta;Number of Casc", 100, -5, 5);
+         fHistAsMCGenEtaOmegaPlus = new TH1F("fHistAsMCGenEtaOmegaPlus", "#eta of gen. #bar{#Omega}^{+} (associated);#eta;Number of Casc", 100, -5, 5);
          fListHistCascade->Add( fHistAsMCGenEtaOmegaPlus );
   }
   
@@ -1087,7 +1106,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if(! f2dHistAsMCResPtXiPlus) {
-         f2dHistAsMCResPtXiPlus = new TH2F( "f2dHistAsMCResPtXiPlus", "Resolution in Pt reconstruction for #Xi^{+}; Pt_{MC} (GeV/c); (Pt_{reco} - Pt_{MC}) / Pt_{MC}", 200, 0., 10., 200, -0.1, 0.1);
+         f2dHistAsMCResPtXiPlus = new TH2F( "f2dHistAsMCResPtXiPlus", "Resolution in Pt reconstruction for #bar{#Xi}^{+}; Pt_{MC} (GeV/c); (Pt_{reco} - Pt_{MC}) / Pt_{MC}", 200, 0., 10., 200, -0.1, 0.1);
          fListHistCascade->Add(f2dHistAsMCResPtXiPlus);
   }
   
@@ -1097,7 +1116,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if(! f2dHistAsMCResPtOmegaPlus) {
-         f2dHistAsMCResPtOmegaPlus = new TH2F( "f2dHistAsMCResPtOmegaPlus", "Resolution in Pt reconstruction for #Omega^{+}; Pt_{MC} (GeV/c); (Pt_{reco} - Pt_{MC}) / Pt_{MC}", 200, 0., 10., 200, -0.1, 0.1);
+         f2dHistAsMCResPtOmegaPlus = new TH2F( "f2dHistAsMCResPtOmegaPlus", "Resolution in Pt reconstruction for #bar{#Omega}^{+}; Pt_{MC} (GeV/c); (Pt_{reco} - Pt_{MC}) / Pt_{MC}", 200, 0., 10., 200, -0.1, 0.1);
          fListHistCascade->Add(f2dHistAsMCResPtOmegaPlus);
   }
   
@@ -1109,7 +1128,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if(! f2dHistAsMCResRXiPlus) {
-         f2dHistAsMCResRXiPlus = new TH2F( "f2dHistAsMCResRXiPlus", "Resolution in transv. position for #Xi^{+}; R_{MC} (cm); (R_{reco} - R_{MC}) / R_{MC}", 450, 0., 45.0, 240, -0.3, 0.3);
+         f2dHistAsMCResRXiPlus = new TH2F( "f2dHistAsMCResRXiPlus", "Resolution in transv. position for #bar{#Xi}^{+}; R_{MC} (cm); (R_{reco} - R_{MC}) / R_{MC}", 450, 0., 45.0, 240, -0.3, 0.3);
          fListHistCascade->Add(f2dHistAsMCResRXiPlus);
   }
   
@@ -1119,7 +1138,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if(! f2dHistAsMCResROmegaPlus) {
-         f2dHistAsMCResROmegaPlus = new TH2F( "f2dHistAsMCResROmegaPlus", "Resolution in transv. position for #Omega^{+}; R_{MC} (cm); (R_{reco} - R_{MC}) / R_{MC}", 450, 0., 45.0, 240, -0.3, 0.3);
+         f2dHistAsMCResROmegaPlus = new TH2F( "f2dHistAsMCResROmegaPlus", "Resolution in transv. position for #bar{#Omega}^{+}; R_{MC} (cm); (R_{reco} - R_{MC}) / R_{MC}", 450, 0., 45.0, 240, -0.3, 0.3);
          fListHistCascade->Add(f2dHistAsMCResROmegaPlus);
   }
   
@@ -1131,7 +1150,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if(! f2dHistAsMCResPhiXiPlus) {
-          f2dHistAsMCResPhiXiPlus = new TH2F( "f2dHistAsMCResPhiXiPlus", "Resolution in #phi for #Xi^{+}; Pt_{MC} (GeV/c); #phi(MC) - #phi(reco)   (deg)", 200, 0., 10., 60, -30., 30.);
+          f2dHistAsMCResPhiXiPlus = new TH2F( "f2dHistAsMCResPhiXiPlus", "Resolution in #phi for #bar{#Xi}^{+}; Pt_{MC} (GeV/c); #phi(MC) - #phi(reco)   (deg)", 200, 0., 10., 60, -30., 30.);
           fListHistCascade->Add(f2dHistAsMCResPhiXiPlus);
   }
   
@@ -1141,11 +1160,35 @@ if( !fPaveTextBookKeeping){
   }
   
   if(! f2dHistAsMCResPhiOmegaPlus) {
-          f2dHistAsMCResPhiOmegaPlus = new TH2F( "f2dHistAsMCResPhiOmegaPlus", "Resolution in #phi for #Omega^{+}; Pt_{MC} (GeV/c); #phi(MC) - #phi(reco)   (deg)", 200, 0., 10., 60, -30., 30.);
+          f2dHistAsMCResPhiOmegaPlus = new TH2F( "f2dHistAsMCResPhiOmegaPlus", "Resolution in #phi for #bar{#Omega}^{+}; Pt_{MC} (GeV/c); #phi(MC) - #phi(reco)   (deg)", 200, 0., 10., 60, -30., 30.);
           fListHistCascade->Add(f2dHistAsMCResPhiOmegaPlus);
   }
   
   
+                // - Correlation in Pt between the cascade and its (anti)proton daughter
+  if(! f2dHistAsMCPtProtonVsPtXiMinus) {
+        f2dHistAsMCPtProtonVsPtXiMinus = new TH2F( "f2dHistAsMCPtProtonVsPtXiMinus", "Correlation Pt(p) Vs Pt(#Xi^{-}), associated to MC; Pt_{MC}(p) (GeV/c); Pt_{MC}(#Xi^{-}) (GeV/c)", 100, 0., 10., 100, 0., 10.);
+        fListHistCascade->Add(f2dHistAsMCPtProtonVsPtXiMinus);
+  }
+  
+  if(! f2dHistAsMCPtAntiProtonVsPtXiPlus) {
+        f2dHistAsMCPtAntiProtonVsPtXiPlus = new TH2F( "f2dHistAsMCPtAntiProtonVsPtXiPlus", "Correlation Pt(#bar{p}) Vs Pt(#bar{#Xi}^{+}), associated to MC; Pt_{MC}(#bar{p}) (GeV/c); Pt_{MC}(#bar{#Xi}^{+}) (GeV/c)", 100, 0., 10., 100, 0., 10.);
+        fListHistCascade->Add(f2dHistAsMCPtAntiProtonVsPtXiPlus);
+  }
+  
+  if(! f2dHistAsMCPtProtonVsPtOmegaMinus) {
+        f2dHistAsMCPtProtonVsPtOmegaMinus = new TH2F( "f2dHistAsMCPtProtonVsPtOmegaMinus", "Correlation Pt(p) Vs Pt(#Omega^{-}), associated to MC; Pt_{MC}(p) (GeV/c); Pt_{MC}(#Omega^{-}) (GeV/c)", 100, 0., 10., 100, 0., 10.);
+        fListHistCascade->Add(f2dHistAsMCPtProtonVsPtOmegaMinus);
+  }
+  
+  
+  if(! f2dHistAsMCPtAntiProtonVsPtOmegaPlus) {
+        f2dHistAsMCPtAntiProtonVsPtOmegaPlus = new TH2F( "f2dHistAsMCPtAntiProtonVsPtOmegaPlus", "Correlation Pt(#bar{p}) Vs Pt(#bar{#Omega}^{+}), associated to MC; Pt_{MC}(#bar{p}) (GeV/c); Pt_{MC}(#bar{#Omega}^{+}) (GeV/c)", 100, 0., 10., 100, 0., 10.);
+        fListHistCascade->Add(f2dHistAsMCPtAntiProtonVsPtOmegaPlus);
+  }
+  
+  
+  
                 // - PID container
 if(! fCFContCascadePIDAsXiMinus)  {
   const        Int_t  lNbSteps      =  7 ;
@@ -1154,7 +1197,7 @@ if(! fCFContCascadePIDAsXiMinus)  {
   //array for the number of bins in each dimension :
   Int_t lNbBinsPerVar[4] = {0};
   lNbBinsPerVar[0] = 200;
-  lNbBinsPerVar[1] = 400;
+  lNbBinsPerVar[1] = 75;
   lNbBinsPerVar[2] = 44;
   lNbBinsPerVar[3] = 250;
    
@@ -1162,9 +1205,9 @@ if(! fCFContCascadePIDAsXiMinus)  {
   fCFContCascadePIDAsXiMinus = new AliCFContainer("fCFContCascadePIDAsXiMinus","Pt_{cascade} Vs M_{#Xi^{-} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
   
   //setting the bin limits (valid  for v4-18-10-AN)
-  fCFContCascadePIDAsXiMinus->SetBinLimits(0,   0.0  ,  10.0 );        // Pt(Cascade)
-  fCFContCascadePIDAsXiMinus->SetBinLimits(1,   1.2  ,   2.0 );        // Xi Effective mass
-  fCFContCascadePIDAsXiMinus->SetBinLimits(2,  -1.1  ,   1.1 );        // Rapidity
+  fCFContCascadePIDAsXiMinus->SetBinLimits(0,   0.0  ,  10.0  );        // Pt(Cascade)
+  fCFContCascadePIDAsXiMinus->SetBinLimits(1,   1.25 ,   1.40 );        // Xi Effective mass
+  fCFContCascadePIDAsXiMinus->SetBinLimits(2,  -1.1  ,   1.1  );        // Rapidity
   if(fCollidingSystems) 
        fCFContCascadePIDAsXiMinus->SetBinLimits(3, 0.0, 20000.0  );    // nTrackPrimaryMultiplicity
   else
@@ -1196,18 +1239,18 @@ if(! fCFContCascadePIDAsXiPlus)  {
   //array for the number of bins in each dimension :
   Int_t lNbBinsPerVar[4] = {0};
   lNbBinsPerVar[0] = 200;
-  lNbBinsPerVar[1] = 400;
+  lNbBinsPerVar[1] = 75;
   lNbBinsPerVar[2] = 44;
   lNbBinsPerVar[3] = 250;
    
   
-  fCFContCascadePIDAsXiPlus = new AliCFContainer("fCFContCascadePIDAsXiPlus","Pt_{cascade} Vs M_{#Xi^{+} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
+  fCFContCascadePIDAsXiPlus = new AliCFContainer("fCFContCascadePIDAsXiPlus","Pt_{cascade} Vs M_{#bar{#Xi}^{+} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
   
   
   //setting the bin limits (valid  for v4-18-10-AN)
-  fCFContCascadePIDAsXiPlus->SetBinLimits(0,   0.0  ,  10.0 ); // Pt(Cascade)
-  fCFContCascadePIDAsXiPlus->SetBinLimits(1,   1.2  ,   2.0 ); // Xi Effective mass
-  fCFContCascadePIDAsXiPlus->SetBinLimits(2,  -1.1  ,   1.1 ); // Rapidity
+  fCFContCascadePIDAsXiPlus->SetBinLimits(0,   0.0  ,  10.0  );         // Pt(Cascade)
+  fCFContCascadePIDAsXiPlus->SetBinLimits(1,   1.25 ,   1.40 );         // Xi Effective mass
+  fCFContCascadePIDAsXiPlus->SetBinLimits(2,  -1.1  ,   1.1  );         // Rapidity
   if(fCollidingSystems) 
        fCFContCascadePIDAsXiPlus->SetBinLimits(3, 0.0, 20000.0  );    // nTrackPrimaryMultiplicity
   else
@@ -1240,7 +1283,7 @@ if(! fCFContCascadePIDAsOmegaMinus)  {
   //array for the number of bins in each dimension :
   Int_t lNbBinsPerVar[4] = {0};
   lNbBinsPerVar[0] = 200;
-  lNbBinsPerVar[1] = 500;
+  lNbBinsPerVar[1] = 60;
   lNbBinsPerVar[2] = 44;
   lNbBinsPerVar[3] = 250;
    
@@ -1249,9 +1292,9 @@ if(! fCFContCascadePIDAsOmegaMinus)  {
   
   
   //setting the bin limits (valid  for v4-18-10-AN)
-  fCFContCascadePIDAsOmegaMinus->SetBinLimits(0,   0.0  ,  10.0 );     // Pt(Cascade)
-  fCFContCascadePIDAsOmegaMinus->SetBinLimits(1,   1.5  ,   2.5 );     // Omega Effective mass
-  fCFContCascadePIDAsOmegaMinus->SetBinLimits(2,  -1.1  ,   1.1 );     // Rapidity
+  fCFContCascadePIDAsOmegaMinus->SetBinLimits(0,   0.0  ,  10.0  );     // Pt(Cascade)
+  fCFContCascadePIDAsOmegaMinus->SetBinLimits(1,   1.62 ,   1.74 );     // Omega Effective mass
+  fCFContCascadePIDAsOmegaMinus->SetBinLimits(2,  -1.1  ,   1.1  );     // Rapidity
   if(fCollidingSystems) 
        fCFContCascadePIDAsOmegaMinus->SetBinLimits(3, 0.0, 20000.0  );    // nTrackPrimaryMultiplicity
   else
@@ -1283,18 +1326,18 @@ if(! fCFContCascadePIDAsOmegaPlus)  {
   //array for the number of bins in each dimension :
   Int_t lNbBinsPerVar[4]= {0};
   lNbBinsPerVar[0] = 200;
-  lNbBinsPerVar[1] = 500;
+  lNbBinsPerVar[1] = 60;
   lNbBinsPerVar[2] = 44;
   lNbBinsPerVar[3] = 250;
    
   
-  fCFContCascadePIDAsOmegaPlus = new AliCFContainer("fCFContCascadePIDAsOmegaPlus","Pt_{cascade} Vs M_{#Omega^{+} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
+  fCFContCascadePIDAsOmegaPlus = new AliCFContainer("fCFContCascadePIDAsOmegaPlus","Pt_{cascade} Vs M_{#bar{#Omega}^{+} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
   
   
   //setting the bin limits (valid  for v4-18-10-AN)
-  fCFContCascadePIDAsOmegaPlus->SetBinLimits(0,   0.0  ,  10.0 );      // Pt(Cascade)
-  fCFContCascadePIDAsOmegaPlus->SetBinLimits(1,   1.5  ,   2.5 );      // Omega Effective mass
-  fCFContCascadePIDAsOmegaPlus->SetBinLimits(2,  -1.1  ,   1.1 );      // Rapidity
+  fCFContCascadePIDAsOmegaPlus->SetBinLimits(0,   0.0  ,  10.0  );      // Pt(Cascade)
+  fCFContCascadePIDAsOmegaPlus->SetBinLimits(1,   1.62 ,   1.74 );      // Omega Effective mass
+  fCFContCascadePIDAsOmegaPlus->SetBinLimits(2,  -1.1  ,   1.1  );      // Rapidity
   if(fCollidingSystems) 
        fCFContCascadePIDAsOmegaPlus->SetBinLimits(3, 0.0, 20000.0  );    // nTrackPrimaryMultiplicity
   else
@@ -1438,11 +1481,27 @@ if(! fCFContAsCascadeCuts){
   fCFContAsCascadeCuts->SetBinLimits(16, -10.0  , 10.0  );     // BestPrimaryVtxPosZ
   if(fCollidingSystems){
        fCFContAsCascadeCuts->SetBinLimits(17,   0.0, 10000.0  );    // nTrackPrimaryMultiplicity
-       fCFContAsCascadeCuts->SetBinLimits(18,   0.0, 10000.0  );    // SPDTrackletsMultiplicity
+       fCFContAsCascadeCuts->SetBinLimits(18,   0.0, 10000.0  );    // nITSandTPCtracksAndSPDtracklets
   }
   else{  
-       fCFContAsCascadeCuts->SetBinLimits(17,   0.0, 250.0  );     // nTrackPrimaryMultiplicity
-       fCFContAsCascadeCuts->SetBinLimits(18,   0.0, 200.0  );     // SPDTrackletsMultiplicity
+       //fCFContAsCascadeCuts->SetBinLimits(17,   0.0, 250.0  );     // nTrackPrimaryMultiplicity
+        Double_t *lBinLim17  = new Double_t[ lNbBinsPerVar[17]+1 ];
+                lBinLim17[0] = 0;       lBinLim17[10] = 10;      lBinLim17[20] = 24;     lBinLim17[30] = 45;    lBinLim17[40] = 95;    lBinLim17[50] = 250;
+                lBinLim17[1] = 1;       lBinLim17[11] = 11;      lBinLim17[21] = 25;     lBinLim17[31] = 50;    lBinLim17[41] = 100;
+                lBinLim17[2] = 2;       lBinLim17[12] = 13;      lBinLim17[22] = 27;     lBinLim17[32] = 55;    lBinLim17[42] = 105;
+                lBinLim17[3] = 3;       lBinLim17[13] = 14;      lBinLim17[23] = 30;     lBinLim17[33] = 60;    lBinLim17[43] = 110;
+                lBinLim17[4] = 4;       lBinLim17[14] = 15;      lBinLim17[24] = 31;     lBinLim17[34] = 65;    lBinLim17[44] = 115;
+                lBinLim17[5] = 5;       lBinLim17[15] = 16;      lBinLim17[25] = 32;     lBinLim17[35] = 70;    lBinLim17[45] = 120;
+                lBinLim17[6] = 6;       lBinLim17[16] = 20;      lBinLim17[26] = 33;     lBinLim17[36] = 75;    lBinLim17[46] = 125;
+                lBinLim17[7] = 7;       lBinLim17[17] = 21;      lBinLim17[27] = 34;     lBinLim17[37] = 80;    lBinLim17[47] = 130;
+                lBinLim17[8] = 8;       lBinLim17[18] = 22;      lBinLim17[28] = 35;     lBinLim17[38] = 85;    lBinLim17[48] = 135;
+                lBinLim17[9] = 9;       lBinLim17[19] = 23;      lBinLim17[29] = 40;     lBinLim17[39] = 90;    lBinLim17[49] = 140;
+                
+                fCFContAsCascadeCuts -> SetBinLimits(17,  lBinLim17 );            // nTrackPrimaryMultiplicity : 0 to 250      
+        delete [] lBinLim17;     
+          
+
+       fCFContAsCascadeCuts->SetBinLimits(18,   0.0, 200.0  );     // nITSandTPCtracksAndSPDtracklets
   }
   fCFContAsCascadeCuts->SetBinLimits(19,  68.0  ,164.0  );     // BachTPCClusters
   
@@ -1469,11 +1528,11 @@ if(! fCFContAsCascadeCuts){
   fCFContAsCascadeCuts->SetBinLimits(16, -10.0  , 10.0  );     // BestPrimaryVtxPosZ
   if(fCollidingSystems){
        fCFContAsCascadeCuts->SetBinLimits(17,   0.0, 10000.0  );    // nTrackPrimaryMultiplicity
-       fCFContAsCascadeCuts->SetBinLimits(18,   0.0, 10000.0  );    // SPDTrackletsMultiplicity
+       fCFContAsCascadeCuts->SetBinLimits(18,   0.0, 10000.0  );    // nITSandTPCtracksAndSPDtracklets
   }
   else{  
        fCFContAsCascadeCuts->SetBinLimits(17,   0.0, 250.0  );     // nTrackPrimaryMultiplicity
-       fCFContAsCascadeCuts->SetBinLimits(18,   0.0, 200.0  );     // SPDTrackletsMultiplicity
+       fCFContAsCascadeCuts->SetBinLimits(18,   0.0, 200.0  );     // nITSandTPCtracksAndSPDtracklets
   }
   fCFContAsCascadeCuts->SetBinLimits(19,  25.0  ,165.0  );     // BachTPCClusters
   */
@@ -1512,7 +1571,7 @@ if(! fCFContAsCascadeCuts){
   fCFContAsCascadeCuts->SetVarTitle(16, "Z-position(BestPrimVtx) (cm)");
   
   fCFContAsCascadeCuts->SetVarTitle(17, "Primary Track Multiplicity");
-  fCFContAsCascadeCuts->SetVarTitle(18, "SPD tracklets Multiplicity");
+  fCFContAsCascadeCuts->SetVarTitle(18, "(ITS+TPC tracks + SPD tracklets) Multiplicity");
   fCFContAsCascadeCuts->SetVarTitle(19, "Bach.TPC Clusters");
   
   fListHistCascade->Add(fCFContAsCascadeCuts);
@@ -1653,7 +1712,7 @@ void AliAnalysisTaskCheckPerformanceCascade::UserExec(Option_t *)
                 }
                 // FIXME : quality selection regarding pile-up rejection 
                 if(fkRejectEventPileUp) {
-                        if(lESDevent->IsPileupFromSPD() ){// minContributors=3, minZdist=0.8, nSigmaZdist=3., nSigmaDiamXY=2., nSigmaDiamZ=5.  -> see http://alisoft.cern.ch/viewvc/trunk/STEER/AliESDEvent.h?root=AliRoot&r1=41914&r2=42199&pathrev=42199
+                        if(lESDevent->IsPileupFromSPDInMultBins() ){// minContributors=3, minZdist=0.8, nSigmaZdist=3., nSigmaDiamXY=2., nSigmaDiamZ=5.  -> see http://alisoft.cern.ch/viewvc/trunk/STEER/AliESDEvent.h?root=AliRoot&r1=41914&r2=42199&pathrev=42199
                                 AliWarning("Pb / Event tagged as pile-up by SPD... return !"); 
                                 PostData(1, fListHistCascade); 
                                 return; 
@@ -1687,15 +1746,22 @@ void AliAnalysisTaskCheckPerformanceCascade::UserExec(Option_t *)
        
   
   Int_t   nNumberOfMCPrimaries       = -1;
-  Int_t   nMCPrimariesInAcceptance   =  0;
-  Int_t   nTrackPrimaryMultiplicity  = -1;
+  Int_t   nMCPrimariesInEtaBelow0p8  =  0;
+  Int_t   nMCPrimariesInEtaBelow1p0  =  0;
   
+  Int_t   nTrackPrimaryMultiplicity        = -1;
+  Int_t   nSPDTracklets                    =  0; // AliESDEvent::EstimateMultiplicity will re-initialise the value to 0
+  Int_t   nITSandTPCtracksAndSPDtracklets  =  0; // AliESDEvent::EstimateMultiplicity will re-initialise the value to 0
+  Int_t   nTracksITSSApure                 =  0; // AliESDEvent::EstimateMultiplicity will re-initialise the value to 0
   
         nNumberOfMCPrimaries       = lMCstack->GetNprimary();
+        if(nNumberOfMCPrimaries < 1) return;
+        
         nTrackPrimaryMultiplicity  = fESDtrackCuts->CountAcceptedTracks(lESDevent);
+        //EstimateMultiplicity(Int_t &tracklets, Int_t &trITSTPC, Int_t &trITSSApure, Double_t eta, Bool_t useDCAFlag,Bool_t useV0Flag)
+        lESDevent->EstimateMultiplicity( nSPDTracklets, nITSandTPCtracksAndSPDtracklets, nTracksITSSApure, 1.0, kTRUE, kTRUE);
+
 
-        if(nNumberOfMCPrimaries < 1) return;
-    
         fHistMCTrackMultiplicity->Fill( nNumberOfMCPrimaries );
     
 //_____________________________________________________________________________        
@@ -1710,12 +1776,16 @@ void AliAnalysisTaskCheckPerformanceCascade::UserExec(Option_t *)
                 Printf("MC Primary loop %d - MC TParticle pointer to current stack particle = 0x0 ! Skip ...\n", iCurrentLabelStack );
                 continue;
         }
-       
-        if( TMath::Abs( lCurrentParticle->Eta() ) > 0.8 ) continue;
-        nMCPrimariesInAcceptance++;
+        
+        Double_t lEtaCurrentParticle = TMath::Abs( lCurrentParticle->Eta() );
+        if( lEtaCurrentParticle < 1.0 ){
+                nMCPrimariesInEtaBelow1p0++;
+                if( lEtaCurrentParticle < 0.8 ) nMCPrimariesInEtaBelow0p8++;
+        }
     }
     
-    f2dHistRecoMultVsMCMult->Fill( nTrackPrimaryMultiplicity, nMCPrimariesInAcceptance );
+    f2dHistRecoPrimTrckMultVsMCMult->Fill( nTrackPrimaryMultiplicity,       nMCPrimariesInEtaBelow0p8 );
+    f2dHistRecoEstimateMultVsMCMult->Fill( nITSandTPCtracksAndSPDtracklets, nMCPrimariesInEtaBelow1p0 );
 
 
    // For proton
@@ -2159,12 +2229,12 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
 
         // 3.1.A - Combined PID
        // Reasonable guess for the priors for the cascade track sample (e-, mu, pi, K, p)
-       Double_t lPriorsGuessXi[5]    = {0, 0, 2, 0, 1};
-       Double_t lPriorsGuessOmega[5] = {0, 0, 1, 1, 1};
+       Double_t lPriorsGuessXi[10]    = {0, 0, 2, 0, 1,  0,0,0,0,0};
+       Double_t lPriorsGuessOmega[10] = {0, 0, 1, 1, 1,  0,0,0,0,0};
        
        // Combined VO-positive-daughter PID
-       AliPID pPidXi;          pPidXi.SetPriors(    lPriorsGuessXi    );
-       AliPID pPidOmega;       pPidOmega.SetPriors( lPriorsGuessOmega );
+       AliPID pPidXi;         pPidXi.SetPriors(    lPriorsGuessXi    , kTRUE); // kTRUE = for charged particle PID
+       AliPID pPidOmega;      pPidOmega.SetPriors( lPriorsGuessOmega , kTRUE); // kTRUE = for charged particle PID
                
        if( pTrackXi->IsOn(AliESDtrack::kESDpid) ){  // Combined PID exists
                Double_t r[10] = {0.}; pTrackXi->GetESDpid(r);
@@ -2206,8 +2276,8 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
        
        
        // Combined VO-negative-daughter PID
-       AliPID nPidXi;          nPidXi.SetPriors(    lPriorsGuessXi    );
-       AliPID nPidOmega;       nPidOmega.SetPriors( lPriorsGuessOmega );
+       AliPID nPidXi;         nPidXi.SetPriors(    lPriorsGuessXi    , kTRUE); // kTRUE = for charged particle PID
+       AliPID nPidOmega;      nPidOmega.SetPriors( lPriorsGuessOmega , kTRUE); // kTRUE = for charged particle PID
                
        if( nTrackXi->IsOn(AliESDtrack::kESDpid) ){  // Combined PID exists
                Double_t r[10] = {0.}; nTrackXi->GetESDpid(r);
@@ -2248,8 +2318,8 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
        
                
        // Combined bachelor PID
-       AliPID bachPidXi;       bachPidXi.SetPriors(    lPriorsGuessXi    );
-       AliPID bachPidOmega;    bachPidOmega.SetPriors( lPriorsGuessOmega );
+       AliPID bachPidXi;      bachPidXi.SetPriors(    lPriorsGuessXi    , kTRUE); // kTRUE = for charged particle PID
+       AliPID bachPidOmega;   bachPidOmega.SetPriors( lPriorsGuessOmega , kTRUE); // kTRUE = for charged particle PID
        
         Double_t ppionBach = 0.0, pkaonBach = 0.0;
         
@@ -2480,6 +2550,9 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
         Double_t lmcPt             = mcMotherBach->Pt();
         Double_t lmcRapCasc        = 0.5*TMath::Log( (mcMotherBach->Energy() + mcMotherBach->Pz()) / 
                                                      (mcMotherBach->Energy() - mcMotherBach->Pz() +1.e-13) );
+        Double_t lmcPtBaryon       = (mcNegV0Dghter->GetPdgCode() == -2212 ) ? mcNegV0Dghter->Pt() : mcPosV0Dghter->Pt(); // spot the baryon daughter : pbar or p
+        
+        
         Double_t lmcEta            = mcMotherBach->Eta();
         Double_t lmcTransvRadius   = mcBach->R(); // to get the decay point of Xi, = the production vertex of Bachelor ...
         
@@ -2502,16 +2575,19 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                f2dHistAsMCResPtXiMinus       ->Fill( lmcPt,           (lrecoPt - lmcPt)/ lmcPt );
                f2dHistAsMCResRXiMinus        ->Fill( lmcTransvRadius, (lrecoTransvRadius - lmcTransvRadius)/ lmcTransvRadius    );
                 f2dHistAsMCResPhiXiMinus      ->Fill( lmcPt, lDeltaPhiMcReco );
+                f2dHistAsMCPtProtonVsPtXiMinus->Fill( lmcPtBaryon, lmcPt );
        }
        
        else if( lChargeXi > 0 && lAssoXiPlus){ 
-               fHistAsMCMassXiPlus           ->Fill( lInvMassXiPlus   );
-               if(lIsBachelorPion)     f2dHistAsMCandCombPIDGenPtVsGenYXiPlus->Fill( lmcPt, lmcRapCasc );
-               f2dHistAsMCGenPtVsGenYXiPlus  ->Fill( lmcPt, lmcRapCasc);
-               fHistAsMCGenEtaXiPlus         ->Fill( lmcEta           );
-               f2dHistAsMCResPtXiPlus        ->Fill( lmcPt,           (lrecoPt - lmcPt)/ lmcPt );
-               f2dHistAsMCResRXiPlus         ->Fill( lmcTransvRadius, (lrecoTransvRadius - lmcTransvRadius)/ lmcTransvRadius    );
-                f2dHistAsMCResPhiXiPlus       ->Fill( lmcPt, lDeltaPhiMcReco );
+                fHistAsMCMassXiPlus                    ->Fill( lInvMassXiPlus   );
+                if(lIsBachelorPion)    f2dHistAsMCandCombPIDGenPtVsGenYXiPlus->Fill( lmcPt, lmcRapCasc );
+                f2dHistAsMCGenPtVsGenYXiPlus            ->Fill( lmcPt, lmcRapCasc);
+                fHistAsMCGenEtaXiPlus                   ->Fill( lmcEta           );
+                f2dHistAsMCResPtXiPlus                  ->Fill( lmcPt,           (lrecoPt - lmcPt)/ lmcPt );
+                f2dHistAsMCResRXiPlus                   ->Fill( lmcTransvRadius, (lrecoTransvRadius - lmcTransvRadius)/ lmcTransvRadius    );
+                f2dHistAsMCResPhiXiPlus                 ->Fill( lmcPt, lDeltaPhiMcReco );
+                f2dHistAsMCPtAntiProtonVsPtXiPlus       ->Fill( lmcPtBaryon, lmcPt );
+    
        }
        
        else if( lChargeXi < 0 && lAssoOmegaMinus){     
@@ -2522,16 +2598,18 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                f2dHistAsMCResPtOmegaMinus       ->Fill( lmcPt,           (lrecoPt - lmcPt)/ lmcPt );
                f2dHistAsMCResROmegaMinus        ->Fill( lmcTransvRadius, (lrecoTransvRadius - lmcTransvRadius)/ lmcTransvRadius    );
                 f2dHistAsMCResPhiOmegaMinus      ->Fill( lmcPt, lDeltaPhiMcReco );
+                f2dHistAsMCPtProtonVsPtOmegaMinus->Fill( lmcPtBaryon, lmcPt );
        }
        
        else if( lChargeXi > 0 && lAssoOmegaPlus){      
-               fHistAsMCMassOmegaPlus           ->Fill( lInvMassOmegaPlus );
-               if(lIsBachelorKaon)     f2dHistAsMCandCombPIDGenPtVsGenYOmegaPlus->Fill( lmcPt, lmcRapCasc );
-               f2dHistAsMCGenPtVsGenYOmegaPlus  ->Fill( lmcPt, lmcRapCasc   );
-               fHistAsMCGenEtaOmegaPlus         ->Fill( lmcEta            );
-               f2dHistAsMCResPtOmegaPlus        ->Fill( lmcPt,           (lrecoPt - lmcPt)/ lmcPt );
-               f2dHistAsMCResROmegaPlus         ->Fill( lmcTransvRadius, (lrecoTransvRadius - lmcTransvRadius)/ lmcTransvRadius    );
-                f2dHistAsMCResPhiOmegaPlus       ->Fill( lmcPt, lDeltaPhiMcReco );
+                fHistAsMCMassOmegaPlus                  ->Fill( lInvMassOmegaPlus );
+                if(lIsBachelorKaon)    f2dHistAsMCandCombPIDGenPtVsGenYOmegaPlus->Fill( lmcPt, lmcRapCasc );
+                f2dHistAsMCGenPtVsGenYOmegaPlus         ->Fill( lmcPt, lmcRapCasc );
+                fHistAsMCGenEtaOmegaPlus                ->Fill( lmcEta            );
+                f2dHistAsMCResPtOmegaPlus               ->Fill( lmcPt,           (lrecoPt - lmcPt)/ lmcPt );
+                f2dHistAsMCResROmegaPlus                ->Fill( lmcTransvRadius, (lrecoTransvRadius - lmcTransvRadius)/ lmcTransvRadius    );
+                f2dHistAsMCResPhiOmegaPlus              ->Fill( lmcPt, lDeltaPhiMcReco );
+                f2dHistAsMCPtAntiProtonVsPtOmegaPlus    ->Fill( lmcPtBaryon, lmcPt );
         }
         
         
@@ -2555,8 +2633,7 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
         Double_t lDcaPosToPrimVertexXi      = -1.;
         Double_t lDcaNegToPrimVertexXi      = -1.;
 
-        Int_t    nTrackWithTPCrefitMultiplicity  =  0;
-        Int_t    lSPDTrackletsMultiplicity       = -1;
+        //Int_t    nTrackWithTPCrefitMultiplicity  =  0;
 
         
         // 6.2 - Definition of the needed variables
@@ -2597,14 +2674,11 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
         
         
         
-        nTrackWithTPCrefitMultiplicity  = DoESDTrackWithTPCrefitMultiplicity(lESDevent);  // FIXME : variable which is not used anymore at the moment ... 
+        //nTrackWithTPCrefitMultiplicity  = DoESDTrackWithTPCrefitMultiplicity(lESDevent);  // FIXME : variable which is not used anymore at the moment ... 
                                                                                           //    ->  keep it while the task is still under development.
         
         
-        const AliMultiplicity *lAliMult = lESDevent->GetMultiplicity();
-        lSPDTrackletsMultiplicity       = lAliMult->GetNumberOfTracklets();
         
-
         // 6.3 - Filling the AliCFContainer (optimisation of topological selections + systematics)
         Double_t lContainerCutVars[20] = {0.0};
 
@@ -2624,7 +2698,7 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
 
         lContainerCutVars[16] = lBestPrimaryVtxPos[2];
         lContainerCutVars[17] = nTrackPrimaryMultiplicity;       // FIXME : nTrackPrimaryMultiplicity not checked for AOD ...
-        lContainerCutVars[18] = lSPDTrackletsMultiplicity;       // FIXME : SPDTrackletsMultiplicity is not available for AOD ... 
+        lContainerCutVars[18] = nITSandTPCtracksAndSPDtracklets; // FIXME : nITSandTPCtracksAndSPDtracklets is not available for AOD ... 
         lContainerCutVars[19] = lBachTPCClusters;                // FIXME : BachTPCClusters          is not available for AOD ... 
 
         // All cases should be covered below
@@ -2649,7 +2723,7 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                 lContainerCutVars[12] = lInvMassOmegaMinus;
                 lContainerCutVars[14] = -1.;
                 lContainerCutVars[15] = lmcRapCasc;
-                        if( lIsBachelorKaonForTPC   && lIsPosProtonForTPC    && lIsNegPionForTPC )    
+                        if( lIsBachelorKaonForTPC   && lIsPosProtonForTPC    && lIsNegPionForTPC  && (TMath::Abs( lInvMassXiMinus-1.3217 ) > 0.008) )    
                                 fCFContAsCascadeCuts->Fill(lContainerCutVars,2); // for Omega-
         }
        if( lChargeXi > 0 && lAssoOmegaPlus  ){
@@ -2657,7 +2731,7 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                 lContainerCutVars[12] = lInvMassOmegaPlus;
                 lContainerCutVars[14] = -1.;
                 lContainerCutVars[15] = lmcRapCasc;
-                        if( lIsBachelorKaonForTPC   && lIsNegProtonForTPC    && lIsPosPionForTPC )    
+                        if( lIsBachelorKaonForTPC   && lIsNegProtonForTPC    && lIsPosPionForTPC && (TMath::Abs( lInvMassXiPlus-1.3217 ) > 0.008) )    
                                 fCFContAsCascadeCuts->Fill(lContainerCutVars,3); // for Omega+
         }
         
index f4cb4c3..a6ca111 100644 (file)
@@ -82,7 +82,8 @@ class AliAnalysisTaskCheckPerformanceCascade : public AliAnalysisTaskSE {
                // - Histos 
        TH1F    *fHistMCTrackMultiplicity;      //! MC Track multiplicity (gen. primaries)
                 // - Resolution of the multiplicity estimator
-        TH2F    *f2dHistRecoMultVsMCMult;       //! resolution of the multiplicity estimator (based on primary tracks)
+        TH2F    *f2dHistRecoPrimTrckMultVsMCMult;       //! resolution of the multiplicity estimator (based on primary tracks)
+        TH2F    *f2dHistRecoEstimateMultVsMCMult;       //! resolution of the multiplicity estimator (based on ESDEvent::EstimateMultiplicity)
        
        
        // proton
@@ -245,6 +246,13 @@ class AliAnalysisTaskCheckPerformanceCascade : public AliAnalysisTaskSE {
         TH2F    *f2dHistAsMCResPhiOmegaMinus;           //! resolution in azimuth Phi = f(gen. Pt), for Omega-
         TH2F    *f2dHistAsMCResPhiOmegaPlus;            //! resolution in azimuth Phi = f(gen. Pt), for Omega+
         
+        // - Correlation in Pt between the cascade and its (anti)proton daughter
+        TH2F    *f2dHistAsMCPtProtonVsPtXiMinus;        //! Pt(p) Vs Pt(XiMinus), for a associated-to-reco cascade
+        TH2F    *f2dHistAsMCPtAntiProtonVsPtXiPlus;     //! Pt(anti-p) Vs Pt(XiPlus), for a associated-to-reco cascade
+        TH2F    *f2dHistAsMCPtProtonVsPtOmegaMinus;     //! Pt(p) Vs Pt(OmegaMinus), for a associated-to-reco cascade
+        TH2F    *f2dHistAsMCPtAntiProtonVsPtOmegaPlus;  //! Pt(anti-p) Vs Pt(OmegaPlus), for a associated-to-reco cascade
+        
+        
         
         // - Compilation of all PID plots (3D = casc. transv. momemtum Vs Casc Eff mass Vs Y), stored into an AliCFContainer
        AliCFContainer  *fCFContCascadePIDAsXiMinus;      //! for Xi-   : Container to store any 3D histos with the different PID flavours
@@ -258,7 +266,7 @@ class AliAnalysisTaskCheckPerformanceCascade : public AliAnalysisTaskSE {
   AliAnalysisTaskCheckPerformanceCascade(const AliAnalysisTaskCheckPerformanceCascade&);            // not implemented
   AliAnalysisTaskCheckPerformanceCascade& operator=(const AliAnalysisTaskCheckPerformanceCascade&); // not implemented
   
-  ClassDef(AliAnalysisTaskCheckPerformanceCascade, 5);
+  ClassDef(AliAnalysisTaskCheckPerformanceCascade, 6);
 };
 
 #endif