]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG2/SPECTRA/AliAnalysisTaskCheckPerformanceCascade.cxx
macros:
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliAnalysisTaskCheckPerformanceCascade.cxx
index d76e1634ad601919c54dc3bdb892a43ece0760d4..cb52b6fe158b9ed684cffa1397fcbb94e91c48a4 100644 (file)
@@ -17,7 +17,7 @@
 //            It works with MC info and ESD.
 //              Use with AOD tree = under development
 //            Origin   : A.Maire Mar2009, antonin.maire@ires.in2p3.fr
-//            Modified : A.Maire Jan2010, antonin.maire@ires.in2p3.fr
+//            Modified : A.Maire Nov2010, antonin.maire@ires.in2p3.fr
 //-----------------------------------------------------------------
 
 
@@ -27,6 +27,7 @@
 #include "TFile.h"
 #include "TH1F.h"
 #include "TH2F.h"
+#include "TVector3.h"
 #include "TCanvas.h"
 #include "TParticle.h"
 #include "TMath.h"
@@ -41,8 +42,9 @@
 
 #include "AliCFContainer.h"
 #include "AliESDpid.h"
-//      #include "AliV0vertexer.h"
-//      #include "AliCascadeVertexer.h"
+#include "AliESDtrackCuts.h"
+//   #include "AliV0vertexer.h"
+//   #include "AliCascadeVertexer.h"
 #include "AliESDEvent.h"
 #include "AliESDcascade.h"
 
@@ -57,17 +59,21 @@ ClassImp(AliAnalysisTaskCheckPerformanceCascade)
      //_____Dummy constructor________________________________________________________________
 AliAnalysisTaskCheckPerformanceCascade::AliAnalysisTaskCheckPerformanceCascade() 
 : AliAnalysisTaskSE(), // <- take care to AliAnalysisTask( empty )
-  fDebugCascade(0), fAnalysisType("ESD"), fCollidingSystems(0), fESDpid(0), /*fPaveTextBookKeeping(0),*/
-    fkRerunV0CascVertexers      (0),
-    fkQualityCutZprimVtxPos     (kTRUE),
-    fkQualityCutNoTPConlyPrimVtx(kTRUE),
-    fkQualityCutTPCrefit        (kTRUE),
-    fkQualityCut80TPCcls        (kTRUE),
-    fkExtraSelections           (0),
+  fDebugCascade(0), fAnalysisType("ESD"), fTriggerMaskType("kMB"), fCollidingSystems(0), fESDpid(0), fESDtrackCuts(0), /*fPaveTextBookKeeping(0),*/
+    fkRerunV0CascVertexers         (0),
+    fkQualityCutZprimVtxPos        (kTRUE),
+    fkRejectEventPileUp            (kTRUE),
+    fkQualityCutNoTPConlyPrimVtx   (kTRUE),
+    fkQualityCutTPCrefit           (kTRUE),
+    fkQualityCut80TPCcls           (kTRUE),
+    fkIsDataRecoWith1PadTPCCluster (kTRUE),
+    fkExtraSelections              (0),
     
        // - Cascade part initialisation
 fListHistCascade(0),
     fHistMCTrackMultiplicity(0), 
+       // - Resolution of the multiplicity estimator
+    f2dHistRecoMultVsMCMult(0),
 
     fHistEtaGenProton(0),
     fHistEtaGenAntiProton(0),
@@ -197,6 +203,12 @@ fListHistCascade(0),
     f2dHistAsMCResROmegaMinus(0),
     f2dHistAsMCResROmegaPlus(0),
 
+        // - Resolution in phi as function of generated Pt
+    f2dHistAsMCResPhiXiMinus(0),
+    f2dHistAsMCResPhiXiPlus(0),
+    f2dHistAsMCResPhiOmegaMinus(0),
+    f2dHistAsMCResPhiOmegaPlus(0),
+                               
     fCFContCascadePIDAsXiMinus(0),
     fCFContCascadePIDAsXiPlus(0),
     fCFContCascadePIDAsOmegaMinus(0),
@@ -217,17 +229,21 @@ fListHistCascade(0),
 //_____Non-default Constructor________________________________________________________________
 AliAnalysisTaskCheckPerformanceCascade::AliAnalysisTaskCheckPerformanceCascade(const char *name) 
   : AliAnalysisTaskSE(name),
-    fDebugCascade(0), fAnalysisType("ESD"), fCollidingSystems(0), fESDpid(0),  /*fPaveTextBookKeeping(0),*/
-    fkRerunV0CascVertexers      (0),
-    fkQualityCutZprimVtxPos     (kTRUE),
-    fkQualityCutNoTPConlyPrimVtx(kTRUE),
-    fkQualityCutTPCrefit        (kTRUE),
-    fkQualityCut80TPCcls        (kTRUE),
-    fkExtraSelections           (0),
+    fDebugCascade(0), fAnalysisType("ESD"), fTriggerMaskType("kMB"), fCollidingSystems(0), fESDpid(0), fESDtrackCuts(0), /*fPaveTextBookKeeping(0),*/
+    fkRerunV0CascVertexers         (0),
+    fkQualityCutZprimVtxPos        (kTRUE),
+    fkRejectEventPileUp            (kTRUE),
+    fkQualityCutNoTPConlyPrimVtx   (kTRUE),
+    fkQualityCutTPCrefit           (kTRUE),
+    fkQualityCut80TPCcls           (kTRUE),
+    fkIsDataRecoWith1PadTPCCluster (kTRUE),
+    fkExtraSelections              (0),
       
        // - Cascade part initialisation
 fListHistCascade(0),
     fHistMCTrackMultiplicity(0), 
+       // - Resolution of the multiplicity estimator
+    f2dHistRecoMultVsMCMult(0),
 
     fHistEtaGenProton(0),
     fHistEtaGenAntiProton(0),
@@ -312,7 +328,7 @@ fListHistCascade(0),
        // - Effective mass histos with combined PID
     fHistMassWithCombPIDXiMinus(0), fHistMassWithCombPIDXiPlus(0),
     fHistMassWithCombPIDOmegaMinus(0), fHistMassWithCombPIDOmegaPlus(0),
-       
+
        // - PID Probability versus MC Pt(bachelor track)
     f2dHistPIDprobaKaonVsMCPtBach(0), f2dHistPIDprobaPionVsMCPtBach(0),
     
@@ -330,9 +346,9 @@ fListHistCascade(0),
        // - Generated Pt Vs generated y, for the cascade candidates associated with MC + Info Comb. PID
     f2dHistAsMCandCombPIDGenPtVsGenYXiMinus(0),
     f2dHistAsMCandCombPIDGenPtVsGenYXiPlus(0),
-    f2dHistAsMCandCombPIDGenPtVsGenYOmegaMinus(0),
+    f2dHistAsMCandCombPIDGenPtVsGenYOmegaMinus(0), 
     f2dHistAsMCandCombPIDGenPtVsGenYOmegaPlus(0),
-          
+    
        // - Generated Pt Vs generated y, for the cascade candidates associated with MC
     f2dHistAsMCGenPtVsGenYXiMinus(0),
     f2dHistAsMCGenPtVsGenYXiPlus(0),
@@ -357,6 +373,12 @@ fListHistCascade(0),
     f2dHistAsMCResROmegaMinus(0),
     f2dHistAsMCResROmegaPlus(0),
 
+       // - Resolution in phi as function of generated Pt
+    f2dHistAsMCResPhiXiMinus(0),
+    f2dHistAsMCResPhiXiPlus(0),
+    f2dHistAsMCResPhiOmegaMinus(0),
+    f2dHistAsMCResPhiOmegaPlus(0),
+
     fCFContCascadePIDAsXiMinus(0),
     fCFContCascadePIDAsXiPlus(0),
     fCFContCascadePIDAsOmegaMinus(0),
@@ -373,11 +395,51 @@ 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   )
+        
+        // Hyper 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[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)
+        fV0Sels[3] =   5.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.1 ;  // 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.001;  // 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.001;  // min allowed bachelor's impact parameter            (PDC07 : 0.035  / LHC09a4 : 0.025 )
+        fCascSels[4] =   5.0  ;  // max allowed DCA between the V0 and the bachelor    (PDC07 : 0.1    / LHC09a4 : 0.2   )
+        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)        
+        /*
+        fV0Sels[0] =  33.  ;  // max allowed chi2
+        fV0Sels[1] =   0.05;  // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
+        fV0Sels[2] =   0.05;  // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
+        fV0Sels[3] =   1.5 ;  // max allowed DCA between the daughter tracks       (LHC09a4 : 0.5)
+        fV0Sels[4] =   0.9 ;  // 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)
         
@@ -389,8 +451,8 @@ fListHistCascade(0),
         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   )
+        */
         
-
   DefineOutput(1, TList::Class());
  
 }
@@ -408,6 +470,7 @@ AliAnalysisTaskCheckPerformanceCascade::~AliAnalysisTaskCheckPerformanceCascade(
 
   if (fListHistCascade)      { delete fListHistCascade;     fListHistCascade = 0x0;  }  
   if (fESDpid)               { delete fESDpid;              fESDpid = 0x0;} // fESDpid is not stored into the TList
+  if (fESDtrackCuts)         { delete fESDtrackCuts;        fESDtrackCuts = 0x0; }
   /*if (fPaveTextBookKeeping)  { delete fPaveTextBookKeeping; fPaveTextBookKeeping = 0x0; } // fPaveTextBookKeeping is not stored into the TList*/
 }
 
@@ -429,19 +492,32 @@ void AliAnalysisTaskCheckPerformanceCascade::UserCreateOutputObjects()
         
 if(! fESDpid){
 
-       // Reasonable parameters extracted for p-p simulation (LHC09a4) - A.Kalweit
-       // fAlephParameters[0] = 4.23232575531564326e+00/50;//50*0.76176e-1;
-       // fAlephParameters[1] = 8.68482806165147636e+00;//10.632; 
-       // fAlephParameters[2] = 1.34000000000000005e-05;//0.13279e-4;
-       // fAlephParameters[3] = 2.30445734159456084e+00;//1.8631;
-       // fAlephParameters[4] = 2.25624744086878559e+00;//1.9479;
-        
-        // Param for LHC09d10 prod - A.Kalweit
-        fAlephParameters[0] = 2.15898e+00/50.;
-        fAlephParameters[1] = 1.75295e+01;
-        fAlephParameters[2] = 3.40030e-09;
-        fAlephParameters[3] = 1.96178e+00;
-        fAlephParameters[4] = 3.91720e+00; 
+         if(fkIsDataRecoWith1PadTPCCluster){
+                // Home made parameterization for LHC10f6a production = p+p 7 TeV
+                fAlephParameters[0] = 0.04;
+                fAlephParameters[1] = 17.5;
+                fAlephParameters[2] = 3.4e-09;
+                fAlephParameters[3] = 2.15;
+                fAlephParameters[4] = 3.91720e+00;
+                
+                // Home made parameterization for LHC10e13 production = p+p 900 GeV/c
+         }
+         else {
+                // Reasonable parameters extracted for p-p simulation (LHC09a4) - A.Kalweit
+                 // fAlephParameters[0] = 4.23232575531564326e+00/50;//50*0.76176e-1;
+                 // fAlephParameters[1] = 8.68482806165147636e+00;//10.632; 
+                 // fAlephParameters[2] = 1.34000000000000005e-05;//0.13279e-4;
+                 // fAlephParameters[3] = 2.30445734159456084e+00;//1.8631;
+                 // fAlephParameters[4] = 2.25624744086878559e+00;//1.9479;
+                
+                // Param for LHC09d10 prod - A.Kalweit
+                fAlephParameters[0] = 2.15898e+00/50.;
+                fAlephParameters[1] = 1.75295e+01;
+                fAlephParameters[2] = 3.40030e-09;
+                fAlephParameters[3] = 1.96178e+00;
+                fAlephParameters[4] = 3.91720e+00; 
+         }
+         Printf("CheckPerfCascade - Check Aleph Param in case of MC Data   (fAlephParameters[3] = %f) (To be compared with : 2.15 for 1-pad-cluster prod. / 1.96178 otherwise)\n",  fAlephParameters[3]);
         
   fESDpid = new AliESDpid();
   fESDpid->GetTPCResponse().SetBetheBlochParameters( fAlephParameters[0],
@@ -451,6 +527,15 @@ if(! fESDpid){
                                                      fAlephParameters[4] );
 }
 
+
+if(! fESDtrackCuts ){
+      fESDtrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE); // Std definition of primary (see kTRUE argument) tracks for 2010
+      fESDtrackCuts->SetEtaRange(-0.8,+0.8);
+      fESDtrackCuts->SetPtRange(0.15, 1e10);
+      Printf("CheckCascade - ESDtrackCuts set up to 2010 std ITS-TPC cuts...");
+}
+
+
 /*
 if( !fPaveTextBookKeeping){
         fPaveTextBookKeeping = new TPaveText(0.1, 0.1, 0.9, 0.9,"NDC");
@@ -528,6 +613,12 @@ if( !fPaveTextBookKeeping){
   fListHistCascade->Add(fHistMCTrackMultiplicity);
   }
   
+    // - 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 (!fHistEtaGenProton) {
      fHistEtaGenProton = new TH1F("fHistEtaGenProton", "#eta of any gen. p^{+};#eta;Number of prim. protons", 200, -10, 10);
      fListHistCascade->Add(fHistEtaGenProton);
@@ -553,7 +644,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (!f2dHistGenPtVsGenYGenXiMinus) {
-     f2dHistGenPtVsGenYGenXiMinus = new TH2F("f2dHistGenPtVsGenYGenXiMinus", "MC P_{t} Vs MC Y of Gen #Xi^{-} ;Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 240, -1.2, 1.2);
+     f2dHistGenPtVsGenYGenXiMinus = new TH2F("f2dHistGenPtVsGenYGenXiMinus", "MC P_{t} Vs MC Y of Gen #Xi^{-} ;Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
      fListHistCascade->Add(f2dHistGenPtVsGenYGenXiMinus);
   }
   
@@ -566,7 +657,7 @@ if( !fPaveTextBookKeeping){
   }
 
   if (!f2dHistGenPtVsGenYFdblXiMinus) {
-     f2dHistGenPtVsGenYFdblXiMinus = new TH2F("f2dHistGenPtVsGenYFdblXiMinus", "MC P_{t} Vs MC Y of findable Gen #Xi^{-}; Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 240, -1.2, 1.2);
+     f2dHistGenPtVsGenYFdblXiMinus = new TH2F("f2dHistGenPtVsGenYFdblXiMinus", "MC P_{t} Vs MC Y of findable Gen #Xi^{-}; Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
      fListHistCascade->Add(f2dHistGenPtVsGenYFdblXiMinus);
   }
   
@@ -620,7 +711,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (!f2dHistGenPtVsGenYGenXiPlus) {
-     f2dHistGenPtVsGenYGenXiPlus = new TH2F("f2dHistGenPtVsGenYGenXiPlus", "MC P_{t} Vs MC Y of Gen #Xi^{+} ;Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 240, -1.2, 1.2);
+     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);
      fListHistCascade->Add(f2dHistGenPtVsGenYGenXiPlus);
   }
   
@@ -633,7 +724,7 @@ if( !fPaveTextBookKeeping){
   }
  
   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., 240, -1.2, 1.2);
+     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);
      fListHistCascade->Add(f2dHistGenPtVsGenYFdblXiPlus);
   }
   
@@ -686,7 +777,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (!f2dHistGenPtVsGenYGenOmegaMinus) {
-     f2dHistGenPtVsGenYGenOmegaMinus = new TH2F("f2dHistGenPtVsGenYGenOmegaMinus", "MC P_{t} Vs MC Y of Gen #Omega^{-} ;Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 240, -1.2, 1.2);
+     f2dHistGenPtVsGenYGenOmegaMinus = new TH2F("f2dHistGenPtVsGenYGenOmegaMinus", "MC P_{t} Vs MC Y of Gen #Omega^{-} ;Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
      fListHistCascade->Add(f2dHistGenPtVsGenYGenOmegaMinus);
   }
   
@@ -699,7 +790,7 @@ if( !fPaveTextBookKeeping){
   }
  
   if (!f2dHistGenPtVsGenYFdblOmegaMinus) {
-     f2dHistGenPtVsGenYFdblOmegaMinus = new TH2F("f2dHistGenPtVsGenYFdblOmegaMinus", "MC P_{t} Vs MC Y of findable Gen #Omega^{-}; Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 240, -1.2, 1.2);
+     f2dHistGenPtVsGenYFdblOmegaMinus = new TH2F("f2dHistGenPtVsGenYFdblOmegaMinus", "MC P_{t} Vs MC Y of findable Gen #Omega^{-}; Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 220, -1.1, 1.1);
      fListHistCascade->Add(f2dHistGenPtVsGenYFdblOmegaMinus);
   }
   
@@ -752,7 +843,7 @@ if( !fPaveTextBookKeeping){
   }
   
   if (!f2dHistGenPtVsGenYGenOmegaPlus) {
-     f2dHistGenPtVsGenYGenOmegaPlus = new TH2F("f2dHistGenPtVsGenYGenOmegaPlus", "MC P_{t} Vs MC Y of Gen #Omega^{+} ;Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 240, -1.2, 1.2);
+     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);
      fListHistCascade->Add(f2dHistGenPtVsGenYGenOmegaPlus);
   }
   
@@ -766,7 +857,7 @@ if( !fPaveTextBookKeeping){
   }
  
   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., 240, -1.2, 1.2);
+     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);
      fListHistCascade->Add(f2dHistGenPtVsGenYFdblOmegaPlus);
   }
 
@@ -817,22 +908,22 @@ if( !fPaveTextBookKeeping){
                // - Effective mass histos for cascades candidates.
   
   if (! fHistMassXiMinus) {
-         fHistMassXiMinus = new TH1F("fHistMassXiMinus","#Xi^{-} candidates;M( #Lambda , #pi^{-} ) (GeV/c^{2});Counts", 200,1.2,2.0);
+         fHistMassXiMinus = new TH1F("fHistMassXiMinus","#Xi^{-} candidates;M( #Lambda , #pi^{-} ) (GeV/c^{2});Counts", 400,1.2,2.0);
          fListHistCascade->Add(fHistMassXiMinus);
   }
   
   if (! fHistMassXiPlus) {
-         fHistMassXiPlus = new TH1F("fHistMassXiPlus","#Xi^{+} candidates;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",200,1.2,2.0);
+         fHistMassXiPlus = new TH1F("fHistMassXiPlus","#Xi^{+} candidates;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
          fListHistCascade->Add(fHistMassXiPlus);
   }
 
   if (! fHistMassOmegaMinus) {
-         fHistMassOmegaMinus = new TH1F("fHistMassOmegaMinus","#Omega^{-} candidates;M( #Lambda , K^{-} ) (GeV/c^{2});Counts", 250,1.5,2.5);
+         fHistMassOmegaMinus = new TH1F("fHistMassOmegaMinus","#Omega^{-} candidates;M( #Lambda , K^{-} ) (GeV/c^{2});Counts", 500,1.5,2.5);
          fListHistCascade->Add(fHistMassOmegaMinus);
   }
  
   if (! fHistMassOmegaPlus) {
-         fHistMassOmegaPlus = new TH1F("fHistMassOmegaPlus","#Omega^{+} candidates;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 250,1.5,2.5);
+         fHistMassOmegaPlus = new TH1F("fHistMassOmegaPlus","#Omega^{+} candidates;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
          fListHistCascade->Add(fHistMassOmegaPlus);
   }
   
@@ -841,22 +932,22 @@ if( !fPaveTextBookKeeping){
                // - Effective mass histos with combined PID
   
   if (! fHistMassWithCombPIDXiMinus) {
-    fHistMassWithCombPIDXiMinus = new TH1F("fHistMassWithCombPIDXiMinus","#Xi^{-} candidates, with Bach. comb. PID;M( #Lambda , #pi^{-} ) (GeV/c^{2});Counts", 200,1.2,2.0);
+    fHistMassWithCombPIDXiMinus = new TH1F("fHistMassWithCombPIDXiMinus","#Xi^{-} candidates, with Bach. comb. PID;M( #Lambda , #pi^{-} ) (GeV/c^{2});Counts", 400,1.2,2.0);
     fListHistCascade->Add(fHistMassWithCombPIDXiMinus);
   }
   
   if (! fHistMassWithCombPIDXiPlus) {
-    fHistMassWithCombPIDXiPlus = new TH1F("fHistMassWithCombPIDXiPlus","#Xi^{+} candidates, with Bach. comb. PID;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",200,1.2,2.0);
+    fHistMassWithCombPIDXiPlus = new TH1F("fHistMassWithCombPIDXiPlus","#Xi^{+} candidates, with Bach. comb. PID;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
     fListHistCascade->Add(fHistMassWithCombPIDXiPlus);
   }
 
   if (! fHistMassWithCombPIDOmegaMinus) {
-       fHistMassWithCombPIDOmegaMinus = new TH1F("fHistMassWithCombPIDOmegaMinus","#Omega^{-} candidates, with Bach. comb. PID;M( #Lambda , K^{-} ) (GeV/c^{2});Counts", 250,1.5,2.5);
+       fHistMassWithCombPIDOmegaMinus = new TH1F("fHistMassWithCombPIDOmegaMinus","#Omega^{-} candidates, with Bach. comb. PID;M( #Lambda , K^{-} ) (GeV/c^{2});Counts", 500,1.5,2.5);
     fListHistCascade->Add(fHistMassWithCombPIDOmegaMinus);
   }
  
   if (! fHistMassWithCombPIDOmegaPlus) {
-       fHistMassWithCombPIDOmegaPlus = new TH1F("fHistMassWithCombPIDOmegaPlus","#Omega^{+} candidates, with Bach. comb. PID;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 250,1.5,2.5);
+       fHistMassWithCombPIDOmegaPlus = new TH1F("fHistMassWithCombPIDOmegaPlus","#Omega^{+} candidates, with Bach. comb. PID;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
     fListHistCascade->Add(fHistMassWithCombPIDOmegaPlus);
   }
   
@@ -875,22 +966,22 @@ if( !fPaveTextBookKeeping){
                // - Effective mass histos with perfect MC PID on the bachelor
   
   if (! fHistMassWithMcPIDXiMinus) {
-    fHistMassWithMcPIDXiMinus = new TH1F("fHistMassWithMcPIDXiMinus","#Xi^{-} candidates, with Bach. MC PID;M( #Lambda , #pi^{-} ) (GeV/c^{2});Counts", 200,1.2,2.0);
+    fHistMassWithMcPIDXiMinus = new TH1F("fHistMassWithMcPIDXiMinus","#Xi^{-} candidates, with Bach. MC PID;M( #Lambda , #pi^{-} ) (GeV/c^{2});Counts", 400,1.2,2.0);
     fListHistCascade->Add(fHistMassWithMcPIDXiMinus);
   }
   
   if (! fHistMassWithMcPIDXiPlus) {
-    fHistMassWithMcPIDXiPlus = new TH1F("fHistMassWithMcPIDXiPlus","#Xi^{+} candidates, with Bach. MC PID;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",200,1.2,2.0);
+    fHistMassWithMcPIDXiPlus = new TH1F("fHistMassWithMcPIDXiPlus","#Xi^{+} candidates, with Bach. MC PID;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
     fListHistCascade->Add(fHistMassWithMcPIDXiPlus);
   }
 
   if (! fHistMassWithMcPIDOmegaMinus) {
-       fHistMassWithMcPIDOmegaMinus = new TH1F("fHistMassWithMcPIDOmegaMinus","#Omega^{-} candidates, with Bach. MC PID;M( #Lambda , K^{-} ) (GeV/c^{2});Counts", 250,1.5,2.5);
+       fHistMassWithMcPIDOmegaMinus = new TH1F("fHistMassWithMcPIDOmegaMinus","#Omega^{-} candidates, with Bach. MC PID;M( #Lambda , K^{-} ) (GeV/c^{2});Counts", 500,1.5,2.5);
     fListHistCascade->Add(fHistMassWithMcPIDOmegaMinus);
   }
  
   if (! fHistMassWithMcPIDOmegaPlus) {
-       fHistMassWithMcPIDOmegaPlus = new TH1F("fHistMassWithMcPIDOmegaPlus","#Omega^{+} candidates, with Bach. MC PID;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 250,1.5,2.5);
+       fHistMassWithMcPIDOmegaPlus = new TH1F("fHistMassWithMcPIDOmegaPlus","#Omega^{+} candidates, with Bach. MC PID;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
     fListHistCascade->Add(fHistMassWithMcPIDOmegaPlus);
   }
   
@@ -898,22 +989,22 @@ if( !fPaveTextBookKeeping){
                // - Effective mass histos for cascades candidates ASSOCIATED with MC.
   
   if (! fHistAsMCMassXiMinus) {
-         fHistAsMCMassXiMinus = new TH1F("fHistAsMCMassXiMinus","#Xi^{-} candidates associated to MC;M( #Lambda , #pi^{-} ) (GeV/c^{2});Counts", 200,1.2,2.0);
+         fHistAsMCMassXiMinus = new TH1F("fHistAsMCMassXiMinus","#Xi^{-} candidates associated to MC;M( #Lambda , #pi^{-} ) (GeV/c^{2});Counts", 400,1.2,2.0);
          fListHistCascade->Add(fHistAsMCMassXiMinus);
   }
   
   if (! fHistAsMCMassXiPlus) {
-         fHistAsMCMassXiPlus = new TH1F("fHistAsMCMassXiPlus","#Xi^{+} candidates associated to MC;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",200,1.2,2.0);
+         fHistAsMCMassXiPlus = new TH1F("fHistAsMCMassXiPlus","#Xi^{+} candidates associated to MC;M( #bar{#Lambda}^{0} , #pi^{+} ) (GeV/c^{2});Counts",400,1.2,2.0);
          fListHistCascade->Add(fHistAsMCMassXiPlus);
   }
 
   if (! fHistAsMCMassOmegaMinus) {
-         fHistAsMCMassOmegaMinus = new TH1F("fHistAsMCMassOmegaMinus","#Omega^{-} candidates associated to MC;M( #Lambda , K^{-} ) (GeV/c^{2});Counts", 250,1.5,2.5);
+         fHistAsMCMassOmegaMinus = new TH1F("fHistAsMCMassOmegaMinus","#Omega^{-} candidates associated to MC;M( #Lambda , K^{-} ) (GeV/c^{2});Counts", 500,1.5,2.5);
          fListHistCascade->Add(fHistAsMCMassOmegaMinus);
   }
  
   if (! fHistAsMCMassOmegaPlus) {
-         fHistAsMCMassOmegaPlus = new TH1F("fHistAsMCMassOmegaPlus","#Omega^{+} candidates associated to MC;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 250,1.5,2.5);
+         fHistAsMCMassOmegaPlus = new TH1F("fHistAsMCMassOmegaPlus","#Omega^{+} candidates associated to MC;M( #bar{#Lambda}^{0} , K^{+} ) (GeV/c^{2});Counts", 500,1.5,2.5);
          fListHistCascade->Add(fHistAsMCMassOmegaPlus);
   }
   
@@ -922,22 +1013,22 @@ if( !fPaveTextBookKeeping){
                //     + having the proper maximum proba of combined PID for the bachelor
   
   if (!f2dHistAsMCandCombPIDGenPtVsGenYXiMinus) {
-     f2dHistAsMCandCombPIDGenPtVsGenYXiMinus = new TH2F("f2dHistAsMCandCombPIDGenPtVsGenYXiMinus", "MC P_{t} Vs MC Y of #Xi^{-} (associated+Bach.PID); Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 240, -1.2, 1.2);
+     f2dHistAsMCandCombPIDGenPtVsGenYXiMinus = new TH2F("f2dHistAsMCandCombPIDGenPtVsGenYXiMinus", "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);
      fListHistCascade->Add(f2dHistAsMCandCombPIDGenPtVsGenYXiMinus);
   }
   
   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., 240, -1.2, 1.2);
+     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);
      fListHistCascade->Add(f2dHistAsMCandCombPIDGenPtVsGenYXiPlus);
   }
   
   if (!f2dHistAsMCandCombPIDGenPtVsGenYOmegaMinus) {
-     f2dHistAsMCandCombPIDGenPtVsGenYOmegaMinus = new TH2F("f2dHistAsMCandCombPIDGenPtVsGenYOmegaMinus", "MC P_{t} Vs MC Y of #Omega^{-} (associated+Bach.PID); Pt_{MC} (GeV/c); Y_{MC}", 200, 0., 10., 240, -1.2, 1.2);
+     f2dHistAsMCandCombPIDGenPtVsGenYOmegaMinus = new TH2F("f2dHistAsMCandCombPIDGenPtVsGenYOmegaMinus", "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);
      fListHistCascade->Add(f2dHistAsMCandCombPIDGenPtVsGenYOmegaMinus);
   }
   
   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., 240, -1.2, 1.2);
+     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);
      fListHistCascade->Add(f2dHistAsMCandCombPIDGenPtVsGenYOmegaPlus);
   }
   
@@ -945,22 +1036,22 @@ if( !fPaveTextBookKeeping){
                // - Generated Pt Vs Generated Y, for the cascade candidates associated with MC
   
   if (!f2dHistAsMCGenPtVsGenYXiMinus) {
-       f2dHistAsMCGenPtVsGenYXiMinus = new TH2F("f2dHistAsMCGenPtVsGenYXiMinus", "MC P_{t} Vs MC Y of gen. #Xi^{-} (associated);Pt_{MC} (GeV/c); Rapidity, Y_{MC}",200, 0., 10., 240, -1.2, 1.2);
+       f2dHistAsMCGenPtVsGenYXiMinus = new TH2F("f2dHistAsMCGenPtVsGenYXiMinus", "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);
          fListHistCascade->Add(f2dHistAsMCGenPtVsGenYXiMinus );
   }
   
   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., 240, -1.2, 1.2);
+         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);
          fListHistCascade->Add(f2dHistAsMCGenPtVsGenYXiPlus );
   }
   
   if (!f2dHistAsMCGenPtVsGenYOmegaMinus) {
-         f2dHistAsMCGenPtVsGenYOmegaMinus = new TH2F("f2dHistAsMCGenPtVsGenYOmegaMinus", "MC P_{t} Vs MC Y of gen. #Omega^{-} (associated);Pt_{MC} (GeV/c); Rapidity, Y_{MC}",200, 0., 10., 240, -1.2, 1.2);
+         f2dHistAsMCGenPtVsGenYOmegaMinus = new TH2F("f2dHistAsMCGenPtVsGenYOmegaMinus", "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);
          fListHistCascade->Add(f2dHistAsMCGenPtVsGenYOmegaMinus );
   }
   
   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., 240, -1.2, 1.2);
+         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);
          fListHistCascade->Add(f2dHistAsMCGenPtVsGenYOmegaPlus );
   } 
   
@@ -1032,7 +1123,27 @@ if( !fPaveTextBookKeeping){
          fListHistCascade->Add(f2dHistAsMCResROmegaPlus);
   }
   
+                // - Resolution in phi as function of generated Pt
+    
+  if(! f2dHistAsMCResPhiXiMinus) {
+          f2dHistAsMCResPhiXiMinus = new TH2F( "f2dHistAsMCResPhiXiMinus", "Resolution in #phi for #Xi^{-}; Pt_{MC} (GeV/c); #phi(MC) - #phi(reco)   (deg)", 200, 0., 10., 60, -30., 30.);
+          fListHistCascade->Add(f2dHistAsMCResPhiXiMinus);
+  }
   
+  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.);
+          fListHistCascade->Add(f2dHistAsMCResPhiXiPlus);
+  }
+  
+  if(! f2dHistAsMCResPhiOmegaMinus) {
+          f2dHistAsMCResPhiOmegaMinus = new TH2F( "f2dHistAsMCResPhiOmegaMinus", "Resolution in #phi for #Omega^{-}; Pt_{MC} (GeV/c); #phi(MC) - #phi(reco)   (deg)", 200, 0., 10., 60, -30., 30.);  
+          fListHistCascade->Add(f2dHistAsMCResPhiOmegaMinus);
+  }
+  
+  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.);
+          fListHistCascade->Add(f2dHistAsMCResPhiOmegaPlus);
+  }
   
   
                 // - PID container
@@ -1041,10 +1152,10 @@ if(! fCFContCascadePIDAsXiMinus)  {
   const Int_t  lNbVariables  =  4 ;
 
   //array for the number of bins in each dimension :
-  Int_t lNbBinsPerVar[4];
+  Int_t lNbBinsPerVar[4] = {0};
   lNbBinsPerVar[0] = 200;
   lNbBinsPerVar[1] = 400;
-  lNbBinsPerVar[2] = 48;
+  lNbBinsPerVar[2] = 44;
   lNbBinsPerVar[3] = 250;
    
   
@@ -1053,17 +1164,17 @@ if(! fCFContCascadePIDAsXiMinus)  {
   //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.2  ,   1.2 );        // Rapidity
+  fCFContCascadePIDAsXiMinus->SetBinLimits(2,  -1.1  ,   1.1 );        // Rapidity
   if(fCollidingSystems) 
-       fCFContCascadePIDAsXiMinus->SetBinLimits(3, 0.0, 20000.0  );    // TPCrefitTrackMultiplicity
+       fCFContCascadePIDAsXiMinus->SetBinLimits(3, 0.0, 20000.0  );    // nTrackPrimaryMultiplicity
   else
-       fCFContCascadePIDAsXiMinus->SetBinLimits(3, 0.0, 250.0  );     // TPCrefitTrackMultiplicity
+       fCFContCascadePIDAsXiMinus->SetBinLimits(3, 0.0, 250.0  );     // nTrackPrimaryMultiplicity
   
   // Setting the step title : one per PID case
   fCFContCascadePIDAsXiMinus->SetStepTitle(0, "No PID");
-  fCFContCascadePIDAsXiMinus->SetStepTitle(1, "TPC PID / 3-#sigma cut on Bachelor track");
-  fCFContCascadePIDAsXiMinus->SetStepTitle(2, "TPC PID / 3-#sigma cut on Bachelor+Baryon tracks");
-  fCFContCascadePIDAsXiMinus->SetStepTitle(3, "TPC PID / 3-#sigma cut on Bachelor+Baryon+Meson tracks");
+  fCFContCascadePIDAsXiMinus->SetStepTitle(1, "TPC PID / 4-#sigma cut on Bachelor track");
+  fCFContCascadePIDAsXiMinus->SetStepTitle(2, "TPC PID / 4-#sigma cut on Bachelor+Baryon tracks");
+  fCFContCascadePIDAsXiMinus->SetStepTitle(3, "TPC PID / 4-#sigma cut on Bachelor+Baryon+Meson tracks");
   fCFContCascadePIDAsXiMinus->SetStepTitle(4, "Comb. PID / Bachelor");
   fCFContCascadePIDAsXiMinus->SetStepTitle(5, "Comb. PID / Bachelor+Baryon");
   fCFContCascadePIDAsXiMinus->SetStepTitle(6, "Comb. PID / Bachelor+Baryon+Meson");
@@ -1072,7 +1183,7 @@ if(! fCFContCascadePIDAsXiMinus)  {
   fCFContCascadePIDAsXiMinus->SetVarTitle(0, "Pt_{cascade} (GeV/c)");
   fCFContCascadePIDAsXiMinus->SetVarTitle(1, "M( #Lambda , #pi^{-} ) (GeV/c^{2})");
   fCFContCascadePIDAsXiMinus->SetVarTitle(2, "Y_{#Xi}");
-  fCFContCascadePIDAsXiMinus->SetVarTitle(3, "TPCrefit track Multiplicity");
+  fCFContCascadePIDAsXiMinus->SetVarTitle(3, "Primary Track Multiplicity");
   
   fListHistCascade->Add(fCFContCascadePIDAsXiMinus);
   
@@ -1083,10 +1194,10 @@ if(! fCFContCascadePIDAsXiPlus)  {
   const Int_t  lNbVariables  =  4 ;
 
   //array for the number of bins in each dimension :
-  Int_t lNbBinsPerVar[4];
+  Int_t lNbBinsPerVar[4] = {0};
   lNbBinsPerVar[0] = 200;
   lNbBinsPerVar[1] = 400;
-  lNbBinsPerVar[2] = 48;
+  lNbBinsPerVar[2] = 44;
   lNbBinsPerVar[3] = 250;
    
   
@@ -1096,17 +1207,17 @@ if(! fCFContCascadePIDAsXiPlus)  {
   //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.2  ,   1.2 ); // Rapidity
+  fCFContCascadePIDAsXiPlus->SetBinLimits(2,  -1.1  ,   1.1 ); // Rapidity
   if(fCollidingSystems) 
-       fCFContCascadePIDAsXiPlus->SetBinLimits(3, 0.0, 20000.0  );    // TPCrefitTrackMultiplicity
+       fCFContCascadePIDAsXiPlus->SetBinLimits(3, 0.0, 20000.0  );    // nTrackPrimaryMultiplicity
   else
-       fCFContCascadePIDAsXiPlus->SetBinLimits(3, 0.0, 250.0  );     // TPCrefitTrackMultiplicity
+       fCFContCascadePIDAsXiPlus->SetBinLimits(3, 0.0, 250.0  );     // nTrackPrimaryMultiplicity
   
   // Setting the step title : one per PID case
   fCFContCascadePIDAsXiPlus->SetStepTitle(0, "No PID");
-  fCFContCascadePIDAsXiPlus->SetStepTitle(1, "TPC PID / 3-#sigma cut on Bachelor track");
-  fCFContCascadePIDAsXiPlus->SetStepTitle(2, "TPC PID / 3-#sigma cut on Bachelor+Baryon tracks");
-  fCFContCascadePIDAsXiPlus->SetStepTitle(3, "TPC PID / 3-#sigma cut on Bachelor+Baryon+Meson tracks");
+  fCFContCascadePIDAsXiPlus->SetStepTitle(1, "TPC PID / 4-#sigma cut on Bachelor track");
+  fCFContCascadePIDAsXiPlus->SetStepTitle(2, "TPC PID / 4-#sigma cut on Bachelor+Baryon tracks");
+  fCFContCascadePIDAsXiPlus->SetStepTitle(3, "TPC PID / 4-#sigma cut on Bachelor+Baryon+Meson tracks");
   fCFContCascadePIDAsXiPlus->SetStepTitle(4, "Comb. PID / Bachelor");
   fCFContCascadePIDAsXiPlus->SetStepTitle(5, "Comb. PID / Bachelor+Baryon");
   fCFContCascadePIDAsXiPlus->SetStepTitle(6, "Comb. PID / Bachelor+Baryon+Meson");
@@ -1115,7 +1226,7 @@ if(! fCFContCascadePIDAsXiPlus)  {
   fCFContCascadePIDAsXiPlus->SetVarTitle(0, "Pt_{cascade} (GeV/c)");
   fCFContCascadePIDAsXiPlus->SetVarTitle(1, "M( #Lambda , #pi^{+} ) (GeV/c^{2})");
   fCFContCascadePIDAsXiPlus->SetVarTitle(2, "Y_{#Xi}");
-  fCFContCascadePIDAsXiPlus->SetVarTitle(3, "TPCrefit track Multiplicity");
+  fCFContCascadePIDAsXiPlus->SetVarTitle(3, "Primary Track Multiplicity");
   
   fListHistCascade->Add(fCFContCascadePIDAsXiPlus);
   
@@ -1127,10 +1238,10 @@ if(! fCFContCascadePIDAsOmegaMinus)  {
   const Int_t  lNbVariables  =  4 ;
 
   //array for the number of bins in each dimension :
-  Int_t lNbBinsPerVar[4];
+  Int_t lNbBinsPerVar[4] = {0};
   lNbBinsPerVar[0] = 200;
   lNbBinsPerVar[1] = 500;
-  lNbBinsPerVar[2] = 48;
+  lNbBinsPerVar[2] = 44;
   lNbBinsPerVar[3] = 250;
    
   
@@ -1140,17 +1251,17 @@ 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.2  ,   1.2 );     // Rapidity
+  fCFContCascadePIDAsOmegaMinus->SetBinLimits(2,  -1.1  ,   1.1 );     // Rapidity
   if(fCollidingSystems) 
-       fCFContCascadePIDAsOmegaMinus->SetBinLimits(3, 0.0, 20000.0  );    // TPCrefitTrackMultiplicity
+       fCFContCascadePIDAsOmegaMinus->SetBinLimits(3, 0.0, 20000.0  );    // nTrackPrimaryMultiplicity
   else
-       fCFContCascadePIDAsOmegaMinus->SetBinLimits(3, 0.0, 250.0  );     // TPCrefitTrackMultiplicity
+       fCFContCascadePIDAsOmegaMinus->SetBinLimits(3, 0.0, 250.0  );     // nTrackPrimaryMultiplicity
   
   // Setting the step title : one per PID case
   fCFContCascadePIDAsOmegaMinus->SetStepTitle(0, "No PID");
-  fCFContCascadePIDAsOmegaMinus->SetStepTitle(1, "TPC PID / 3-#sigma cut on Bachelor track");
-  fCFContCascadePIDAsOmegaMinus->SetStepTitle(2, "TPC PID / 3-#sigma cut on Bachelor+Baryon tracks");
-  fCFContCascadePIDAsOmegaMinus->SetStepTitle(3, "TPC PID / 3-#sigma cut on Bachelor+Baryon+Meson tracks");
+  fCFContCascadePIDAsOmegaMinus->SetStepTitle(1, "TPC PID / 4-#sigma cut on Bachelor track");
+  fCFContCascadePIDAsOmegaMinus->SetStepTitle(2, "TPC PID / 4-#sigma cut on Bachelor+Baryon tracks");
+  fCFContCascadePIDAsOmegaMinus->SetStepTitle(3, "TPC PID / 4-#sigma cut on Bachelor+Baryon+Meson tracks");
   fCFContCascadePIDAsOmegaMinus->SetStepTitle(4, "Comb. PID / Bachelor");
   fCFContCascadePIDAsOmegaMinus->SetStepTitle(5, "Comb. PID / Bachelor+Baryon");
   fCFContCascadePIDAsOmegaMinus->SetStepTitle(6, "Comb. PID / Bachelor+Baryon+Meson");
@@ -1159,7 +1270,7 @@ if(! fCFContCascadePIDAsOmegaMinus)  {
   fCFContCascadePIDAsOmegaMinus->SetVarTitle(0, "Pt_{cascade} (GeV/c)");
   fCFContCascadePIDAsOmegaMinus->SetVarTitle(1, "M( #Lambda , K^{-} ) (GeV/c^{2})");
   fCFContCascadePIDAsOmegaMinus->SetVarTitle(2, "Y_{#Omega}");
-  fCFContCascadePIDAsOmegaMinus->SetVarTitle(3, "TPCrefit track Multiplicity");
+  fCFContCascadePIDAsOmegaMinus->SetVarTitle(3, "Primary Track Multiplicity");
   
   fListHistCascade->Add(fCFContCascadePIDAsOmegaMinus);
   
@@ -1170,10 +1281,10 @@ if(! fCFContCascadePIDAsOmegaPlus)  {
   const Int_t  lNbVariables  =  4 ;
 
   //array for the number of bins in each dimension :
-  Int_t lNbBinsPerVar[4];
+  Int_t lNbBinsPerVar[4]= {0};
   lNbBinsPerVar[0] = 200;
   lNbBinsPerVar[1] = 500;
-  lNbBinsPerVar[2] = 48;
+  lNbBinsPerVar[2] = 44;
   lNbBinsPerVar[3] = 250;
    
   
@@ -1183,17 +1294,17 @@ if(! fCFContCascadePIDAsOmegaPlus)  {
   //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.2  ,   1.2 );      // Rapidity
+  fCFContCascadePIDAsOmegaPlus->SetBinLimits(2,  -1.1  ,   1.1 );      // Rapidity
   if(fCollidingSystems) 
-       fCFContCascadePIDAsOmegaPlus->SetBinLimits(3, 0.0, 20000.0  );    // TPCrefitTrackMultiplicity
+       fCFContCascadePIDAsOmegaPlus->SetBinLimits(3, 0.0, 20000.0  );    // nTrackPrimaryMultiplicity
   else
-       fCFContCascadePIDAsOmegaPlus->SetBinLimits(3, 0.0, 250.0  );     // TPCrefitTrackMultiplicity
+       fCFContCascadePIDAsOmegaPlus->SetBinLimits(3, 0.0, 250.0  );     // nTrackPrimaryMultiplicity
   
   // Setting the step title : one per PID case
   fCFContCascadePIDAsOmegaPlus->SetStepTitle(0, "No PID");
-  fCFContCascadePIDAsOmegaPlus->SetStepTitle(1, "TPC PID / 3-#sigma cut on Bachelor track");
-  fCFContCascadePIDAsOmegaPlus->SetStepTitle(2, "TPC PID / 3-#sigma cut on Bachelor+Baryon tracks");
-  fCFContCascadePIDAsOmegaPlus->SetStepTitle(3, "TPC PID / 3-#sigma cut on Bachelor+Baryon+Meson tracks");
+  fCFContCascadePIDAsOmegaPlus->SetStepTitle(1, "TPC PID / 4-#sigma cut on Bachelor track");
+  fCFContCascadePIDAsOmegaPlus->SetStepTitle(2, "TPC PID / 4-#sigma cut on Bachelor+Baryon tracks");
+  fCFContCascadePIDAsOmegaPlus->SetStepTitle(3, "TPC PID / 4-#sigma cut on Bachelor+Baryon+Meson tracks");
   fCFContCascadePIDAsOmegaPlus->SetStepTitle(4, "Comb. PID / Bachelor");
   fCFContCascadePIDAsOmegaPlus->SetStepTitle(5, "Comb. PID / Bachelor+Baryon");
   fCFContCascadePIDAsOmegaPlus->SetStepTitle(6, "Comb. PID / Bachelor+Baryon+Meson");
@@ -1202,7 +1313,7 @@ if(! fCFContCascadePIDAsOmegaPlus)  {
   fCFContCascadePIDAsOmegaPlus->SetVarTitle(0, "Pt_{cascade} (GeV/c)");
   fCFContCascadePIDAsOmegaPlus->SetVarTitle(1, "M( #Lambda , K^{+} ) (GeV/c^{2})");
   fCFContCascadePIDAsOmegaPlus->SetVarTitle(2, "Y_{#Omega}");
-  fCFContCascadePIDAsOmegaPlus->SetVarTitle(3, "TPCrefit track Multiplicity");
+  fCFContCascadePIDAsOmegaPlus->SetVarTitle(3, "Primary Track Multiplicity");
   
   fListHistCascade->Add(fCFContCascadePIDAsOmegaPlus);
   
@@ -1221,13 +1332,13 @@ if(! fCFContAsCascadeCuts){
   const Int_t  lNbVariables  =  20 ;
   
   //array for the number of bins in each dimension :
-  Int_t lNbBinsPerVar[20];
+  Int_t lNbBinsPerVar[20] = {0};
   lNbBinsPerVar[0]  = 25;
   lNbBinsPerVar[1]  = 25;
   lNbBinsPerVar[2]  = 20;
   lNbBinsPerVar[3]  = 40;
-  lNbBinsPerVar[4]  = 50;
-  lNbBinsPerVar[5]  = 12;
+  lNbBinsPerVar[4]  = 30;
+  lNbBinsPerVar[5]  = 25;
   
   lNbBinsPerVar[6]  = 20;
   lNbBinsPerVar[7]  = 40;
@@ -1235,10 +1346,10 @@ if(! fCFContAsCascadeCuts){
   lNbBinsPerVar[9]  = 25;
   lNbBinsPerVar[10] = 25;
   
-  lNbBinsPerVar[11] = 100; // 2-MeV/c2 bins
-  lNbBinsPerVar[12] = 100; // 2-MeV/c2 bins
+  lNbBinsPerVar[11] = 75; // 2-MeV/c2 bins
+  lNbBinsPerVar[12] = 60; // 2-MeV/c2 bins
   
-  lNbBinsPerVar[13] = 20;
+  lNbBinsPerVar[13] = 100;
   
   lNbBinsPerVar[14] = 44; // 0.05 in rapidity units
   lNbBinsPerVar[15] = 44; // 0.05 in rapidity units
@@ -1246,41 +1357,126 @@ if(! fCFContAsCascadeCuts){
   lNbBinsPerVar[16] = 20;
  
   lNbBinsPerVar[17] = 50;
-  lNbBinsPerVar[18] = 50;
-  lNbBinsPerVar[19] = 35;
-    
- fCFContAsCascadeCuts = new AliCFContainer("fCFContAsCascadeCuts","Cut Container for Asso. Cascades", lNbSteps, lNbVariables, lNbBinsPerVar );
+  lNbBinsPerVar[18] = 100;
+  lNbBinsPerVar[19] = 24;
+   
+   
+  fCFContAsCascadeCuts = new AliCFContainer("fCFContAsCascadeCuts","Cut Container for Asso. Cascades", lNbSteps, lNbVariables, lNbBinsPerVar );
+  
+  //0
+  Double_t *lBinLim0  = new Double_t[ lNbBinsPerVar[0]+1 ];
+        for(Int_t i=0; i< lNbBinsPerVar[0];i++)  lBinLim0[i]  = (Double_t)0.0   + (4.8  - 0.0 )/(lNbBinsPerVar[0]-1)  * (Double_t)i ;
+        lBinLim0[ lNbBinsPerVar[0]  ] = 20.0;
+  fCFContAsCascadeCuts -> SetBinLimits(0,  lBinLim0 );            // DcaXiDaughters : 0.0 to 5.0  
+  delete [] lBinLim0;  
+  //1
+  Double_t *lBinLim1  = new Double_t[ lNbBinsPerVar[1]+1 ];
+        for(Int_t i=0; i< lNbBinsPerVar[1];i++)   lBinLim1[i]  = (Double_t)0.0   + (0.24  - 0.0 )/(lNbBinsPerVar[1]-1)  * (Double_t)i ;
+        lBinLim1[ lNbBinsPerVar[1]  ] = 100.0;
+  fCFContAsCascadeCuts -> SetBinLimits(1,  lBinLim1 );            // DcaBachToPrimVertexXi : 0.0 to 0.25  
+  delete [] lBinLim1;  
+  //2 
+  Double_t *lBinLim2  = new Double_t[ lNbBinsPerVar[2]+1 ];
+        for(Int_t i=1; i< lNbBinsPerVar[2]+1;i++)   lBinLim2[i]  = (Double_t)0.81   + (1.0  - 0.81 )/(lNbBinsPerVar[2]-1)  * (Double_t) (i-1) ;   
+        lBinLim2[0] = 0.0;
+  fCFContAsCascadeCuts -> SetBinLimits(2,  lBinLim2 );            // XiCosineOfPointingAngle : 0.80 to 1.0        
+  delete [] lBinLim2;  
+  //3
+  Double_t *lBinLim3  = new Double_t[ lNbBinsPerVar[3]+1 ];
+        for(Int_t i=0; i< lNbBinsPerVar[3];i++)   lBinLim3[i]  = (Double_t)0.0   + (3.9  - 0.0 )/(lNbBinsPerVar[3]-1)  * (Double_t)i ;
+        lBinLim3[ lNbBinsPerVar[3]  ] = 110.0;
+  fCFContAsCascadeCuts -> SetBinLimits(3,  lBinLim3 );            // XiRadius : 0.0 to 4.0        
+  delete [] lBinLim3;  
+  //4
+  fCFContAsCascadeCuts->SetBinLimits(4,    1.1  ,  1.13 );        // InvMassLambdaAsCascDghter
+  //5
+  Double_t *lBinLim5  = new Double_t[ lNbBinsPerVar[5]+1 ];
+        for(Int_t i=0; i< lNbBinsPerVar[5];i++)   lBinLim5[i]  = (Double_t)0.0   + (4.8  - 0.0 )/(lNbBinsPerVar[5]-1)  * (Double_t)i ;
+        lBinLim5[ lNbBinsPerVar[5]  ] = 20.0;
+  fCFContAsCascadeCuts -> SetBinLimits(5,  lBinLim5 );            // DcaV0DaughtersXi : 0.0 to 5.0        
+  delete [] lBinLim5;  
+  
+  
+  //6
+  Double_t *lBinLim6  = new Double_t[ lNbBinsPerVar[6]+1 ];
+        for(Int_t i=1; i< lNbBinsPerVar[6]+1 ;i++)   lBinLim6[i]  = (Double_t)0.81   + (1.0  - 0.81 )/(lNbBinsPerVar[6]-1)  * (Double_t) (i-1) ;   
+        lBinLim6[0] = 0.0;
+  fCFContAsCascadeCuts -> SetBinLimits(6,  lBinLim6 );            // V0CosineOfPointingAngleXi : 0.80 to 1.0      
+  delete [] lBinLim6;  
+  //7
+  Double_t *lBinLim7  = new Double_t[ lNbBinsPerVar[7]+1 ];
+        for(Int_t i=0; i< lNbBinsPerVar[7];i++)   lBinLim7[i]  = (Double_t)0.0   + (7.8  - 0.0 )/(lNbBinsPerVar[7]-1)  * (Double_t)i ;
+        lBinLim7[ lNbBinsPerVar[7]  ] = 100.0;
+  fCFContAsCascadeCuts -> SetBinLimits(7,  lBinLim7 );            // V0RadiusXi : 0.0 to 8.0      
+  delete [] lBinLim7;  
+  //8
+  Double_t *lBinLim8  = new Double_t[ lNbBinsPerVar[8]+1 ];
+        for(Int_t i=0; i< lNbBinsPerVar[8];i++)   lBinLim8[i]  = (Double_t)0.0   + (0.39  - 0.0 )/(lNbBinsPerVar[8]-1)  * (Double_t)i ;
+        lBinLim8[ lNbBinsPerVar[8]  ] = 100.0;
+  fCFContAsCascadeCuts -> SetBinLimits(8,  lBinLim8 );            // DcaV0ToPrimVertexXi : 0.0 to 0.4     
+  delete [] lBinLim8;  
+  //9
+  Double_t *lBinLim9  = new Double_t[ lNbBinsPerVar[9]+1 ];
+        for(Int_t i=0; i< lNbBinsPerVar[9];i++)   lBinLim9[i]  = (Double_t)0.0   + (0.24  - 0.0 )/(lNbBinsPerVar[9]-1)  * (Double_t)i ;
+        lBinLim9[ lNbBinsPerVar[9]  ] = 100.0;
+  fCFContAsCascadeCuts -> SetBinLimits(9,  lBinLim9 );            // DcaPosToPrimVertexXi : 0.0 to 0.25   
+  delete [] lBinLim9; 
+  //10
+  Double_t *lBinLim10  = new Double_t[ lNbBinsPerVar[10]+1 ];
+        for(Int_t i=0; i< lNbBinsPerVar[10];i++)   lBinLim10[i]  = (Double_t)0.0   + (0.24  - 0.0 )/(lNbBinsPerVar[10]-1)  * (Double_t)i ;
+        lBinLim10[ lNbBinsPerVar[10]  ] = 100.0;
+  fCFContAsCascadeCuts -> SetBinLimits(10,  lBinLim10 );            // DcaPosToPrimVertexXi : 0.0 to 0.25 
+  delete [] lBinLim10; 
+  
+  
+  //11
+  fCFContAsCascadeCuts->SetBinLimits(11,   1.25 ,  1.40 );     // InvMassXi
+  fCFContAsCascadeCuts->SetBinLimits(12,   1.62  , 1.74 );     // InvMassOmega
+  fCFContAsCascadeCuts->SetBinLimits(13,   0.0  , 10.0  );     // XiTransvMom 
+  fCFContAsCascadeCuts->SetBinLimits(14,  -1.1  ,  1.1  );     // Y(Xi)
+  fCFContAsCascadeCuts->SetBinLimits(15,  -1.1  ,  1.1  );     // Y(Omega)
+  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
+  }
+  else{  
+       fCFContAsCascadeCuts->SetBinLimits(17,   0.0, 250.0  );     // nTrackPrimaryMultiplicity
+       fCFContAsCascadeCuts->SetBinLimits(18,   0.0, 200.0  );     // SPDTrackletsMultiplicity
+  }
+  fCFContAsCascadeCuts->SetBinLimits(19,  68.0  ,164.0  );     // BachTPCClusters
   
   
-  //setting the bin limits (valid for v4-18-10-AN on)
-  fCFContAsCascadeCuts->SetBinLimits(0,    0.0  ,  0.25 );     // DcaXiDaughters
+  // Regular binning definition (valid for v4-18-10-AN on)
+  /*
+  //setting the bin limits
+  fCFContAsCascadeCuts->SetBinLimits(0,    0.0  ,  2.5  );     // DcaXiDaughters
   fCFContAsCascadeCuts->SetBinLimits(1,    0.0  ,  0.25 );     // DcaBachToPrimVertexXi
-  fCFContAsCascadeCuts->SetBinLimits(2,    0.995,  1.0  );     // XiCosineOfPointingAngle
+  fCFContAsCascadeCuts->SetBinLimits(2,    0.99 ,  1.0  );     // XiCosineOfPointingAngle
   fCFContAsCascadeCuts->SetBinLimits(3,    0.0  ,  4.0  );     // XiRadius
   fCFContAsCascadeCuts->SetBinLimits(4,    1.1  ,  1.15 );     // InvMassLambdaAsCascDghter
-  fCFContAsCascadeCuts->SetBinLimits(5,    0.0  ,  0.6  );     // DcaV0DaughtersXi
+  fCFContAsCascadeCuts->SetBinLimits(5,    0.0  ,  1.0  );     // DcaV0DaughtersXi
   fCFContAsCascadeCuts->SetBinLimits(6,    0.98 ,  1.0  );     // V0CosineOfPointingAngleXi
   fCFContAsCascadeCuts->SetBinLimits(7,    0.0  , 20.0  );     // V0RadiusXi
   fCFContAsCascadeCuts->SetBinLimits(8,    0.0  ,  1.0  );     // DcaV0ToPrimVertexXi
-  fCFContAsCascadeCuts->SetBinLimits(9,    0.0  ,  2.5  );     // DcaPosToPrimVertexXi
-  fCFContAsCascadeCuts->SetBinLimits(10,   0.0  ,  2.5  );     // DcaNegToPrimVertexXi
-  fCFContAsCascadeCuts->SetBinLimits(11,   1.25 ,  1.45 );     // InvMassXi
-  fCFContAsCascadeCuts->SetBinLimits(12,   1.6  ,  1.8  );     // InvMassOmega
+  fCFContAsCascadeCuts->SetBinLimits(9,    0.0  ,  0.25 );     // DcaPosToPrimVertexXi
+  fCFContAsCascadeCuts->SetBinLimits(10,   0.0  ,  0.25 );     // DcaNegToPrimVertexXi
+  fCFContAsCascadeCuts->SetBinLimits(11,   1.25 ,  1.40 );     // InvMassXi
+  fCFContAsCascadeCuts->SetBinLimits(12,   1.62 ,  1.74 );     // InvMassOmega
   fCFContAsCascadeCuts->SetBinLimits(13,   0.0  , 10.0  );     // pt_MC(Xi)
   fCFContAsCascadeCuts->SetBinLimits(14,  -1.1  ,  1.1  );     // Y_MC(Xi)
   fCFContAsCascadeCuts->SetBinLimits(15,  -1.1  ,  1.1  );     // Y_MC(Omega)
   fCFContAsCascadeCuts->SetBinLimits(16, -10.0  , 10.0  );     // BestPrimaryVtxPosZ
   if(fCollidingSystems){
-       fCFContAsCascadeCuts->SetBinLimits(17,   0.0, 10000.0  );    // TPCrefitTrackMultiplicity
+       fCFContAsCascadeCuts->SetBinLimits(17,   0.0, 10000.0  );    // nTrackPrimaryMultiplicity
        fCFContAsCascadeCuts->SetBinLimits(18,   0.0, 10000.0  );    // SPDTrackletsMultiplicity
   }
   else{  
-       fCFContAsCascadeCuts->SetBinLimits(17,   0.0, 250.0  );     // TPCrefitTrackMultiplicity
-       fCFContAsCascadeCuts->SetBinLimits(18,   0.0, 250.0  );     // SPDTrackletsMultiplicity
+       fCFContAsCascadeCuts->SetBinLimits(17,   0.0, 250.0  );     // nTrackPrimaryMultiplicity
+       fCFContAsCascadeCuts->SetBinLimits(18,   0.0, 200.0  );     // SPDTrackletsMultiplicity
   }
   fCFContAsCascadeCuts->SetBinLimits(19,  25.0  ,165.0  );     // BachTPCClusters
-  
-  
+  */
   
   // Setting the number of steps : one for each cascade species (Xi-, Xi+ and Omega-, Omega+)
   fCFContAsCascadeCuts->SetStepTitle(0, "#Xi^{-} candidates associated to MC");
@@ -1315,7 +1511,7 @@ if(! fCFContAsCascadeCuts){
   
   fCFContAsCascadeCuts->SetVarTitle(16, "Z-position(BestPrimVtx) (cm)");
   
-  fCFContAsCascadeCuts->SetVarTitle(17, "TPCrefit track Multiplicity");
+  fCFContAsCascadeCuts->SetVarTitle(17, "Primary Track Multiplicity");
   fCFContAsCascadeCuts->SetVarTitle(18, "SPD tracklets Multiplicity");
   fCFContAsCascadeCuts->SetVarTitle(19, "Bach.TPC Clusters");
   
@@ -1352,7 +1548,7 @@ void AliAnalysisTaskCheckPerformanceCascade::UserExec(Option_t *)
                lESDevent = dynamic_cast<AliESDEvent*>( InputEvent() );
                if (!lESDevent) {
                        Printf("ERROR: lESDevent not available \n");
-                       cout << "Name of the file with pb :" <<  fInputHandler->GetTree()->GetCurrentFile()->GetName() << endl;  // or AliAnalysisTaskSE::CurrentFileName()
+                       cout << "Name of the file with pb :" <<  CurrentFileName() << endl;  // or AliAnalysisTaskSE::CurrentFileName()
                        return;
                }
        }
@@ -1361,7 +1557,7 @@ void AliAnalysisTaskCheckPerformanceCascade::UserExec(Option_t *)
                lAODevent = dynamic_cast<AliAODEvent*>( InputEvent() ); 
                if (!lAODevent) {
                        Printf("ERROR: lAODevent not available \n");
-                       cout << "Name of the file with pb :" <<  fInputHandler->GetTree()->GetCurrentFile()->GetName() << endl;
+                       cout << "Name of the file with pb :" <<  CurrentFileName() << endl;
                        return;
                }
        }
@@ -1370,14 +1566,14 @@ void AliAnalysisTaskCheckPerformanceCascade::UserExec(Option_t *)
        lMCevent = MCEvent();
        if (!lMCevent) {
                Printf("ERROR: Could not retrieve MC event \n");
-               cout << "Name of the file with pb :" <<  fInputHandler->GetTree()->GetCurrentFile()->GetName() << endl; 
+               cout << "Name of the file with pb :" <<  CurrentFileName() << endl;     
                return;
        }
 
        lMCstack = lMCevent->Stack();
        if (!lMCstack) {
                Printf("ERROR: Could not retrieve MC stack \n");
-               cout << "Name of the file with pb :" <<  fInputHandler->GetTree()->GetCurrentFile()->GetName() << endl;
+               cout << "Name of the file with pb :" <<  CurrentFileName() << endl;
                return;
                
        }
@@ -1395,18 +1591,23 @@ void AliAnalysisTaskCheckPerformanceCascade::UserExec(Option_t *)
 
    // Note : Presuppose the presence of AliPhysicsSelectionTask
    
-        Bool_t isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
+        UInt_t maskIsSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
+        Bool_t isSelected = 0;
+        if(     fTriggerMaskType == "kMB")           isSelected = (maskIsSelected & AliVEvent::kMB) == AliVEvent::kMB;
+        else if(fTriggerMaskType == "kHighMult")     isSelected = (maskIsSelected & AliVEvent::kHighMult) == AliVEvent::kHighMult;
+        else                                         isSelected = 1; // default = select anyway (use case = run without Phys Selection task)
+        
         if ( ! isSelected ) { 
                 PostData(1, fListHistCascade); 
-                return; 
+                return;
         }
         //else Printf("Event selected ... \n");
    
 
   //-------------------------------------------------
   // 1 - Cascade vertexer (ESD)
-        if(fkRerunV0CascVertexers){
-//                 if(fAnalysisType == "ESD" ){
+        if(fkRerunV0CascVertexers){ // FIXME : relaunch V0 and Cascade vertexers
+                if(fAnalysisType == "ESD" ){
 //                         lESDevent->ResetCascades();
 //                         lESDevent->ResetV0s();
 // 
@@ -1418,7 +1619,7 @@ void AliAnalysisTaskCheckPerformanceCascade::UserExec(Option_t *)
 // 
 //                         lV0vtxer.Tracks2V0vertices(lESDevent);
 //                         lCascVtxer.V0sTracks2CascadeVertices(lESDevent);
-//                 }
+                }
         }
 
 
@@ -1450,6 +1651,14 @@ void AliAnalysisTaskCheckPerformanceCascade::UserExec(Option_t *)
                                 return;
                         }
                 }
+                // 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
+                                AliWarning("Pb / Event tagged as pile-up by SPD... return !"); 
+                                PostData(1, fListHistCascade); 
+                                return; 
+                        }
+                }
                 // FIXME : remove TPC-only primary vertex : retain only events with tracking + SPD vertex
                 if(fkQualityCutNoTPConlyPrimVtx) {
                         if (!lPrimarySPDVtx->GetStatus() && !lPrimaryTrackingVtx->GetStatus() ){
@@ -1477,16 +1686,41 @@ void AliAnalysisTaskCheckPerformanceCascade::UserExec(Option_t *)
   else if(fAnalysisType == "AOD")       ncascades = lAODevent->GetNumberOfCascades();
        
   
-  Int_t iNumberOfPrimaries = -1;
-  iNumberOfPrimaries = lMCstack->GetNprimary();
+  Int_t   nNumberOfMCPrimaries       = -1;
+  Int_t   nMCPrimariesInAcceptance   =  0;
+  Int_t   nTrackPrimaryMultiplicity  = -1;
+  
   
-       if(iNumberOfPrimaries < 1) return;
+        nNumberOfMCPrimaries       = lMCstack->GetNprimary();
+        nTrackPrimaryMultiplicity  = fESDtrackCuts->CountAcceptedTracks(lESDevent);
+
+        if(nNumberOfMCPrimaries < 1) return;
     
-       fHistMCTrackMultiplicity->Fill( lMCstack->GetNtrack() );
-   
+        fHistMCTrackMultiplicity->Fill( nNumberOfMCPrimaries );
+    
+//_____________________________________________________________________________        
+// Part 1 - Loop over the MC primaries 
+        
+    for (Int_t iCurrentLabelStack = 0; iCurrentLabelStack < nNumberOfMCPrimaries; iCurrentLabelStack++) 
+    {// This is the begining of the loop on primaries
+      
+        TParticle* lCurrentParticle = 0x0; 
+                   lCurrentParticle = lMCstack->Particle( iCurrentLabelStack );
+        if(!lCurrentParticle){
+                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++;
+    }
+    
+    f2dHistRecoMultVsMCMult->Fill( nTrackPrimaryMultiplicity, nMCPrimariesInAcceptance );
+
+
    // For proton
    /*
-   for (Int_t iCurrentLabelStack = 0; iCurrentLabelStack < iNumberOfPrimaries; iCurrentLabelStack++) 
+   for (Int_t iCurrentLabelStack = 0; iCurrentLabelStack < nNumberOfMCPrimaries; iCurrentLabelStack++) 
        {// This is the begining of the loop on primaries, for protons
           
        TParticle* lCurrentParticle = lMCstack->Particle( iCurrentLabelStack );
@@ -1506,8 +1740,8 @@ void AliAnalysisTaskCheckPerformanceCascade::UserExec(Option_t *)
 
       
        
-//__________________________________________________________________________   
-// Part 1 - Loop over the different types of GENERATED cascades (Xi-+, Omega-+)        
+//_____________________________________________________________________________        
+// Part 2 - Loop over the different types of GENERATED cascades (Xi-+, Omega-+)        
 
        // - Initialisation of useful local variables
                
@@ -1632,7 +1866,7 @@ switch (iCascType)
   }// end switch cascade
 
 
-   for (Int_t iCurrentLabelStack = 0; iCurrentLabelStack < iNumberOfPrimaries; iCurrentLabelStack++) 
+   for (Int_t iCurrentLabelStack = 0; iCurrentLabelStack < nNumberOfMCPrimaries; iCurrentLabelStack++) 
     {// This is the begining of the loop on primaries
       
         TParticle* lCurrentParticle = 0x0; 
@@ -1644,7 +1878,7 @@ switch (iCascType)
        }
         
        if( lCurrentParticle->GetPdgCode() == lPdgCodeCasc ){  // Here !
-               //cout << "Xi- within loop " << iCurrentLabelStack << "/ " << iNumberOfPrimaries << endl;
+               //cout << "Xi- within loop " << iCurrentLabelStack << "/ " << nNumberOfMCPrimaries << endl;
                
                // -  Xi level ... _____________________________________________________________
                TParticle* xiMC = 0x0;
@@ -1698,7 +1932,7 @@ switch (iCascType)
                        if( lLambda->Theta() < TMath::Pi()/4.0  ||    lLambda->Theta() > 3.0*TMath::Pi()/4.0 ) continue;
                        if( lBach->Theta() < TMath::Pi()/4.0    ||    lBach->Theta() > 3.0*TMath::Pi()/4.0 )   continue;
                
-                       if( lBach->Pt() < 0.2 ) continue; //FIXME : maybe tuned for Xi but not for K- from Omega ...
+                       if( lBach->Pt() < 0.150 ) continue; //FIXME : maybe tuned for Xi but not for K- from Omega ...
                        
                
                
@@ -1738,8 +1972,8 @@ switch (iCascType)
                        if( lDghtBarV0->Theta() < TMath::Pi()/4.0  ||  lDghtBarV0->Theta() > 3.0*TMath::Pi()/4.0 ) continue;
                        if( lDghtMesV0->Theta() < TMath::Pi()/4.0  ||  lDghtMesV0->Theta() > 3.0*TMath::Pi()/4.0 ) continue;
                        
-                       if( lDghtBarV0->Pt() < 0.3 ) continue;
-                       if( lDghtMesV0->Pt() < 0.2 ) continue;
+                       if( lDghtBarV0->Pt() < 0.250 ) continue;
+                       if( lDghtMesV0->Pt() < 0.150 ) continue;
                        
                        
                        
@@ -1789,7 +2023,7 @@ lHistPtMesDghter        = 0x0;
  
  
 //__________________________________________________________________________   
-// Part 2 - Loop over the reconstructed candidates
+// Part 3 - Loop over the reconstructed candidates
   
 
 for (Int_t iXi = 0; iXi < ncascades; iXi++) 
@@ -2038,19 +2272,47 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
        }// end if bachelor track with existing combined PID
        
        
-       // 3.1.B - TPC PID : 3-sigma bands on Bethe-Bloch curve
-       // Bachelor
-       if (TMath::Abs(fESDpid->NumberOfSigmasTPC( bachTrackXi,AliPID::kKaon)) < 3) lIsBachelorKaonForTPC = kTRUE;
-       if (TMath::Abs(fESDpid->NumberOfSigmasTPC( bachTrackXi,AliPID::kPion)) < 3) lIsBachelorPionForTPC = kTRUE;
-       
-       // Negative V0 daughter
-       if (TMath::Abs(fESDpid->NumberOfSigmasTPC( nTrackXi,AliPID::kPion   )) < 3) lIsNegPionForTPC   = kTRUE;
-       if (TMath::Abs(fESDpid->NumberOfSigmasTPC( nTrackXi,AliPID::kProton )) < 3) lIsNegProtonForTPC = kTRUE;
-       
-       // Positive V0 daughter
-       if (TMath::Abs(fESDpid->NumberOfSigmasTPC( pTrackXi,AliPID::kPion   )) < 3) lIsPosPionForTPC   = kTRUE;
-       if (TMath::Abs(fESDpid->NumberOfSigmasTPC( pTrackXi,AliPID::kProton )) < 3) lIsPosProtonForTPC = kTRUE;
-
+       // 3.1.B - TPC PID : 4-sigma bands on Bethe-Bloch curve
+        
+        // Bachelor
+        if (TMath::Abs(fESDpid->NumberOfSigmasTPC( bachTrackXi,AliPID::kKaon)) < 4) lIsBachelorKaonForTPC = kTRUE;
+        if (TMath::Abs(fESDpid->NumberOfSigmasTPC( bachTrackXi,AliPID::kPion)) < 4) lIsBachelorPionForTPC = kTRUE;
+        
+        // Negative V0 daughter
+        if (TMath::Abs(fESDpid->NumberOfSigmasTPC( nTrackXi,AliPID::kPion   )) < 4) lIsNegPionForTPC   = kTRUE;
+        if (TMath::Abs(fESDpid->NumberOfSigmasTPC( nTrackXi,AliPID::kProton )) < 4) lIsNegProtonForTPC = kTRUE;
+        
+        // Positive V0 daughter
+        if (TMath::Abs(fESDpid->NumberOfSigmasTPC( pTrackXi,AliPID::kPion   )) < 4) lIsPosPionForTPC   = kTRUE;
+        if (TMath::Abs(fESDpid->NumberOfSigmasTPC( pTrackXi,AliPID::kProton )) < 4) lIsPosProtonForTPC = kTRUE;
+        
+        /*
+        const AliExternalTrackParam *pInnerWallTrackXi    = pTrackXi    ->GetInnerParam(); // Do not use GetTPCInnerWall
+        const AliExternalTrackParam *nInnerWallTrackXi    = nTrackXi    ->GetInnerParam();
+        const AliExternalTrackParam *bachInnerWallTrackXi = bachTrackXi ->GetInnerParam();
+        if(pInnerWallTrackXi && nInnerWallTrackXi && bachInnerWallTrackXi ){
+                
+                Double_t pMomInnerWall    = pInnerWallTrackXi   ->GetP();
+                Double_t nMomInnerWall    = nInnerWallTrackXi   ->GetP();
+                Double_t bachMomInnerWall = bachInnerWallTrackXi->GetP();
+                
+                // Bachelor
+                if (TMath::Abs(fESDpid->NumberOfSigmasTPC( bachTrackXi,AliPID::kPion)) < 3)                              lIsBachelorPionForTPC = kTRUE;
+                if (bachMomInnerWall < 0.350  && TMath::Abs(fESDpid->NumberOfSigmasTPC( bachTrackXi,AliPID::kKaon)) < 5) lIsBachelorKaonForTPC = kTRUE;
+                if (bachMomInnerWall > 0.350  && TMath::Abs(fESDpid->NumberOfSigmasTPC( bachTrackXi,AliPID::kKaon)) < 3) lIsBachelorKaonForTPC = kTRUE;
+                
+                // Negative V0 daughter
+                if (TMath::Abs(fESDpid->NumberOfSigmasTPC( nTrackXi,AliPID::kPion   )) < 3  )                           lIsNegPionForTPC   = kTRUE;
+                if (nMomInnerWall < 0.6  && TMath::Abs(fESDpid->NumberOfSigmasTPC( nTrackXi,AliPID::kProton ) ) < 5 )   lIsNegProtonForTPC = kTRUE;
+                if (nMomInnerWall > 0.6  && TMath::Abs(fESDpid->NumberOfSigmasTPC( nTrackXi,AliPID::kProton ) ) < 3 )   lIsNegProtonForTPC = kTRUE;
+                
+                // Positive V0 daughter
+                if (TMath::Abs(fESDpid->NumberOfSigmasTPC( pTrackXi,AliPID::kPion   )) < 3 )                            lIsPosPionForTPC   = kTRUE;
+                if (pMomInnerWall < 0.6  && TMath::Abs(fESDpid->NumberOfSigmasTPC( pTrackXi,AliPID::kProton )) < 5)     lIsPosProtonForTPC = kTRUE;
+                if (pMomInnerWall > 0.6  && TMath::Abs(fESDpid->NumberOfSigmasTPC( pTrackXi,AliPID::kProton )) < 3)     lIsPosProtonForTPC = kTRUE;
+                
+        }
+        */
                
         // Combined PID TH1s
        if( lChargeXi < 0 && lIsBachelorPion )    fHistMassWithCombPIDXiMinus     ->Fill( lInvMassXiMinus    );
@@ -2220,11 +2482,16 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                                                      (mcMotherBach->Energy() - mcMotherBach->Pz() +1.e-13) );
         Double_t lmcEta            = mcMotherBach->Eta();
         Double_t lmcTransvRadius   = mcBach->R(); // to get the decay point of Xi, = the production vertex of Bachelor ...
+        
+        TVector3 lmcTVect3Mom( mcMotherBach->Px(), mcMotherBach->Py(), mcMotherBach->Pz() );
 
         Double_t lrecoPt           = xiESD->Pt();
         Double_t lrecoTransvRadius = TMath::Sqrt( xiESD->Xv() * xiESD->Xv() + xiESD->Yv() * xiESD->Yv() );
+        
+        TVector3 lrecoTVect3Mom( xiESD->Px(), xiESD->Py(), xiESD->Pz()  );
+        Double_t lDeltaPhiMcReco   = lmcTVect3Mom.DeltaPhi( lrecoTVect3Mom ) * 180.0/TMath::Pi();
 
-
+        
        // - Histos for the cascade candidates associated with MC
        
        if( lChargeXi < 0 && lAssoXiMinus){     
@@ -2234,6 +2501,7 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                fHistAsMCGenEtaXiMinus        ->Fill( lmcEta           );
                f2dHistAsMCResPtXiMinus       ->Fill( lmcPt,           (lrecoPt - lmcPt)/ lmcPt );
                f2dHistAsMCResRXiMinus        ->Fill( lmcTransvRadius, (lrecoTransvRadius - lmcTransvRadius)/ lmcTransvRadius    );
+                f2dHistAsMCResPhiXiMinus      ->Fill( lmcPt, lDeltaPhiMcReco );
        }
        
        else if( lChargeXi > 0 && lAssoXiPlus){ 
@@ -2243,6 +2511,7 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                fHistAsMCGenEtaXiPlus         ->Fill( lmcEta           );
                f2dHistAsMCResPtXiPlus        ->Fill( lmcPt,           (lrecoPt - lmcPt)/ lmcPt );
                f2dHistAsMCResRXiPlus         ->Fill( lmcTransvRadius, (lrecoTransvRadius - lmcTransvRadius)/ lmcTransvRadius    );
+                f2dHistAsMCResPhiXiPlus       ->Fill( lmcPt, lDeltaPhiMcReco );
        }
        
        else if( lChargeXi < 0 && lAssoOmegaMinus){     
@@ -2252,6 +2521,7 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                fHistAsMCGenEtaOmegaMinus        ->Fill( lmcEta             );
                f2dHistAsMCResPtOmegaMinus       ->Fill( lmcPt,           (lrecoPt - lmcPt)/ lmcPt );
                f2dHistAsMCResROmegaMinus        ->Fill( lmcTransvRadius, (lrecoTransvRadius - lmcTransvRadius)/ lmcTransvRadius    );
+                f2dHistAsMCResPhiOmegaMinus      ->Fill( lmcPt, lDeltaPhiMcReco );
        }
        
        else if( lChargeXi > 0 && lAssoOmegaPlus){      
@@ -2261,7 +2531,8 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                fHistAsMCGenEtaOmegaPlus         ->Fill( lmcEta            );
                f2dHistAsMCResPtOmegaPlus        ->Fill( lmcPt,           (lrecoPt - lmcPt)/ lmcPt );
                f2dHistAsMCResROmegaPlus         ->Fill( lmcTransvRadius, (lrecoTransvRadius - lmcTransvRadius)/ lmcTransvRadius    );
-       }
+                f2dHistAsMCResPhiOmegaPlus       ->Fill( lmcPt, lDeltaPhiMcReco );
+        }
         
         
         // - Step 6 : Containers = Cascade cuts + PID
@@ -2326,7 +2597,8 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
         
         
         
-        nTrackWithTPCrefitMultiplicity  = DoESDTrackWithTPCrefitMultiplicity(lESDevent);
+        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();
@@ -2351,38 +2623,42 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
         lContainerCutVars[13] = lmcPt;
 
         lContainerCutVars[16] = lBestPrimaryVtxPos[2];
-        lContainerCutVars[17] = nTrackWithTPCrefitMultiplicity;  // FIXME : nTrackWithTPCrefitMultiplicity not checked for AOD ...
+        lContainerCutVars[17] = nTrackPrimaryMultiplicity;       // FIXME : nTrackPrimaryMultiplicity not checked for AOD ...
         lContainerCutVars[18] = lSPDTrackletsMultiplicity;       // FIXME : SPDTrackletsMultiplicity is not available for AOD ... 
         lContainerCutVars[19] = lBachTPCClusters;                // FIXME : BachTPCClusters          is not available for AOD ... 
 
         // All cases should be covered below
         if( lChargeXi < 0 && lAssoXiMinus    ) {
                 lContainerCutVars[11] = lInvMassXiMinus;
-                lContainerCutVars[12] = 1.75;
+                lContainerCutVars[12] = 1.63;
                 lContainerCutVars[14] = lmcRapCasc;
                 lContainerCutVars[15] = -1.;
-                        fCFContAsCascadeCuts->Fill(lContainerCutVars,0); // for Xi-
+                        if( lIsBachelorPionForTPC   && lIsPosProtonForTPC    && lIsNegPionForTPC )    
+                                fCFContAsCascadeCuts->Fill(lContainerCutVars,0); // for Xi-
         }
         if( lChargeXi > 0 && lAssoXiPlus     ){
                 lContainerCutVars[11] = lInvMassXiPlus;
-                lContainerCutVars[12] = 1.75;
+                lContainerCutVars[12] = 1.26;
                 lContainerCutVars[14] = lmcRapCasc;
                 lContainerCutVars[15] = -1.; 
-                        fCFContAsCascadeCuts->Fill(lContainerCutVars,1); // for Xi+
+                        if( lIsBachelorPionForTPC   && lIsNegProtonForTPC    && lIsPosPionForTPC )    
+                                fCFContAsCascadeCuts->Fill(lContainerCutVars,1); // for Xi+
         }
         if( lChargeXi < 0 && lAssoOmegaMinus )  {
-                lContainerCutVars[11] = 1.4;
+                lContainerCutVars[11] = 1.63;
                 lContainerCutVars[12] = lInvMassOmegaMinus;
                 lContainerCutVars[14] = -1.;
                 lContainerCutVars[15] = lmcRapCasc;
-                        fCFContAsCascadeCuts->Fill(lContainerCutVars,2); // for Omega-
+                        if( lIsBachelorKaonForTPC   && lIsPosProtonForTPC    && lIsNegPionForTPC )    
+                                fCFContAsCascadeCuts->Fill(lContainerCutVars,2); // for Omega-
         }
        if( lChargeXi > 0 && lAssoOmegaPlus  ){
-                lContainerCutVars[11] = 1.4;
+                lContainerCutVars[11] = 1.26;
                 lContainerCutVars[12] = lInvMassOmegaPlus;
                 lContainerCutVars[14] = -1.;
                 lContainerCutVars[15] = lmcRapCasc;
-                        fCFContAsCascadeCuts->Fill(lContainerCutVars,3); // for Omega+
+                        if( lIsBachelorKaonForTPC   && lIsNegProtonForTPC    && lIsPosPionForTPC )    
+                                fCFContAsCascadeCuts->Fill(lContainerCutVars,3); // for Omega+
         }
         
         
@@ -2396,22 +2672,22 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                lContainerPIDVars[0] = lmcPt              ;
                lContainerPIDVars[1] = lInvMassXiMinus    ;
                lContainerPIDVars[2] = lmcRapCasc         ;
-               lContainerPIDVars[3] = nTrackWithTPCrefitMultiplicity ;
+               lContainerPIDVars[3] = nTrackPrimaryMultiplicity ;  // FIXME : nTrackPrimaryMultiplicity is not checked for AOD ... 
                        
                // No PID
                        fCFContCascadePIDAsXiMinus->Fill(lContainerPIDVars, 0); // No PID
                // TPC PID
                if( lIsBachelorPionForTPC  )
-                       fCFContCascadePIDAsXiMinus->Fill(lContainerPIDVars, 1); // TPC PID / 3-#sigma cut on Bachelor track
+                       fCFContCascadePIDAsXiMinus->Fill(lContainerPIDVars, 1); // TPC PID / 4-#sigma cut on Bachelor track
                
                if( lIsBachelorPionForTPC && 
                    lIsPosProtonForTPC     )
-                       fCFContCascadePIDAsXiMinus->Fill(lContainerPIDVars, 2); // TPC PID / 3-#sigma cut on Bachelor+Baryon tracks
+                       fCFContCascadePIDAsXiMinus->Fill(lContainerPIDVars, 2); // TPC PID / 4-#sigma cut on Bachelor+Baryon tracks
                
                if( lIsBachelorPionForTPC && 
                    lIsPosProtonForTPC    && 
                    lIsNegPionForTPC       )
-                       fCFContCascadePIDAsXiMinus->Fill(lContainerPIDVars, 3); // TPC PID / 3-#sigma cut on Bachelor+Baryon+Meson tracks
+                       fCFContCascadePIDAsXiMinus->Fill(lContainerPIDVars, 3); // TPC PID / 4-#sigma cut on Bachelor+Baryon+Meson tracks
                
                // Combined PID
                if( lIsBachelorPion        )
@@ -2434,22 +2710,22 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                lContainerPIDVars[0] = lmcPt              ;
                lContainerPIDVars[1] = lInvMassXiPlus     ;
                lContainerPIDVars[2] = lmcRapCasc           ;
-               lContainerPIDVars[3] = nTrackWithTPCrefitMultiplicity ;
+               lContainerPIDVars[3] = nTrackPrimaryMultiplicity ;    // FIXME : nTrackPrimaryMultiplicity is not checked for AOD ...  
                        
                // No PID
                        fCFContCascadePIDAsXiPlus->Fill(lContainerPIDVars, 0); // No PID
                // TPC PID
                if( lIsBachelorPionForTPC  )
-                       fCFContCascadePIDAsXiPlus->Fill(lContainerPIDVars, 1); // TPC PID / 3-#sigma cut on Bachelor track
+                       fCFContCascadePIDAsXiPlus->Fill(lContainerPIDVars, 1); // TPC PID / 4-#sigma cut on Bachelor track
                
                if( lIsBachelorPionForTPC && 
                    lIsNegProtonForTPC     )
-                       fCFContCascadePIDAsXiPlus->Fill(lContainerPIDVars, 2); // TPC PID / 3-#sigma cut on Bachelor+Baryon tracks
+                       fCFContCascadePIDAsXiPlus->Fill(lContainerPIDVars, 2); // TPC PID / 4-#sigma cut on Bachelor+Baryon tracks
                
                if( lIsBachelorPionForTPC && 
                    lIsNegProtonForTPC    && 
                    lIsPosPionForTPC       )
-                       fCFContCascadePIDAsXiPlus->Fill(lContainerPIDVars, 3); // TPC PID / 3-#sigma cut on Bachelor+Baryon+Meson tracks
+                       fCFContCascadePIDAsXiPlus->Fill(lContainerPIDVars, 3); // TPC PID / 4-#sigma cut on Bachelor+Baryon+Meson tracks
                
                // Combined PID
                if( lIsBachelorPion        )
@@ -2472,22 +2748,22 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                lContainerPIDVars[0] = lmcPt              ;
                lContainerPIDVars[1] = lInvMassOmegaMinus ;
                lContainerPIDVars[2] = lmcRapCasc         ;
-               lContainerPIDVars[3] = nTrackWithTPCrefitMultiplicity ;
+               lContainerPIDVars[3] = nTrackPrimaryMultiplicity ;  // FIXME : nTrackPrimaryMultiplicity is not checked for AOD ... 
                        
                // No PID
                        fCFContCascadePIDAsOmegaMinus->Fill(lContainerPIDVars, 0); // No PID
                // TPC PID
                if( lIsBachelorKaonForTPC  )
-                       fCFContCascadePIDAsOmegaMinus->Fill(lContainerPIDVars, 1); // TPC PID / 3-#sigma cut on Bachelor track
+                       fCFContCascadePIDAsOmegaMinus->Fill(lContainerPIDVars, 1); // TPC PID / 4-#sigma cut on Bachelor track
                
                if( lIsBachelorKaonForTPC && 
                    lIsPosProtonForTPC     )
-                       fCFContCascadePIDAsOmegaMinus->Fill(lContainerPIDVars, 2); // TPC PID / 3-#sigma cut on Bachelor+Baryon tracks
+                       fCFContCascadePIDAsOmegaMinus->Fill(lContainerPIDVars, 2); // TPC PID / 4-#sigma cut on Bachelor+Baryon tracks
                
                if( lIsBachelorKaonForTPC && 
                    lIsPosProtonForTPC    && 
                    lIsNegPionForTPC       )
-                       fCFContCascadePIDAsOmegaMinus->Fill(lContainerPIDVars, 3); // TPC PID / 3-#sigma cut on Bachelor+Baryon+Meson tracks
+                       fCFContCascadePIDAsOmegaMinus->Fill(lContainerPIDVars, 3); // TPC PID / 4-#sigma cut on Bachelor+Baryon+Meson tracks
                
                // Combined PID
                if( lIsBachelorKaon        )
@@ -2510,22 +2786,22 @@ for (Int_t iXi = 0; iXi < ncascades; iXi++)
                lContainerPIDVars[0] = lmcPt              ;
                lContainerPIDVars[1] = lInvMassOmegaPlus  ;
                lContainerPIDVars[2] = lmcRapCasc         ;
-               lContainerPIDVars[3] = nTrackWithTPCrefitMultiplicity ;
+               lContainerPIDVars[3] = nTrackPrimaryMultiplicity ;  // FIXME : nTrackPrimaryMultiplicity is not checked for AOD ... 
                        
                // No PID
                        fCFContCascadePIDAsOmegaPlus->Fill(lContainerPIDVars, 0); // No PID
                // TPC PID
                if( lIsBachelorKaonForTPC  )
-                       fCFContCascadePIDAsOmegaPlus->Fill(lContainerPIDVars, 1); // TPC PID / 3-#sigma cut on Bachelor track
+                       fCFContCascadePIDAsOmegaPlus->Fill(lContainerPIDVars, 1); // TPC PID / 4-#sigma cut on Bachelor track
                
                if( lIsBachelorKaonForTPC && 
                    lIsNegProtonForTPC     )
-                       fCFContCascadePIDAsOmegaPlus->Fill(lContainerPIDVars, 2); // TPC PID / 3-#sigma cut on Bachelor+Baryon tracks
+                       fCFContCascadePIDAsOmegaPlus->Fill(lContainerPIDVars, 2); // TPC PID / 4-#sigma cut on Bachelor+Baryon tracks
                
                if( lIsBachelorKaonForTPC && 
                    lIsNegProtonForTPC    && 
                    lIsPosPionForTPC       )
-                       fCFContCascadePIDAsOmegaPlus->Fill(lContainerPIDVars, 3); // TPC PID / 3-#sigma cut on Bachelor+Baryon+Meson tracks
+                       fCFContCascadePIDAsOmegaPlus->Fill(lContainerPIDVars, 3); // TPC PID / 4-#sigma cut on Bachelor+Baryon+Meson tracks
                
                // Combined PID
                if( lIsBachelorKaon        )