]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiMass.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Nuclei / masses / AliAnalysisNucleiMass.cxx
index acbbc9f039d7890bf1c3479669f75417f97a9ef4..c91b4770899898c911b125d25583639912412c9c 100644 (file)
@@ -40,7 +40,8 @@ AliAnalysisNucleiMass::AliAnalysisNucleiMass():
   iMtof(1),
   kPvtxCorr(1),
   iBconf(0),                                  
-  kTOF(0),               
+  kTOF(0),
+//iTriggerSel(-99),
   fAOD(NULL), 
   fESD(NULL),
   fEvent(NULL),
@@ -48,10 +49,10 @@ AliAnalysisNucleiMass::AliAnalysisNucleiMass():
 {
   Centrality[0]=0.0;
   Centrality[1]=100.0;
-
+  
   EtaLimit[0]=-99.0;
   EtaLimit[1]=99.0;
-
+  
   fList[0]=new TList();
   fList[0]->SetName("results");
   
@@ -73,7 +74,8 @@ AliAnalysisNucleiMass::AliAnalysisNucleiMass(const char *name):
   iMtof(1),
   kPvtxCorr(1),
   iBconf(0),                                  
-  kTOF(0),               
+  kTOF(0),
+  //iTriggerSel(-99),
   fAOD(NULL), 
   fESD(NULL),
   fEvent(NULL),
@@ -148,20 +150,24 @@ void AliAnalysisNucleiMass::UserCreateOutputObjects()
     
     htemp[iB] = new TH1F("htemp","htemp (avoid the problem with the empty list...);B field",20,-10,10);
 
-    hCentrality[iB][0] = new TH1F("hCentrality_Selected","Centrality (selected events);centrality(%)",20,0,100);
-    hCentrality[iB][1] = new TH1F("hCentrality_Analyzed","Centrality (analyzed events);centrality (%)",20,0,100);
+    //htriggerbits[iB] = new TH1I("htriggerbits","htriggerbits; bits",10,-5,5);
+    htriggerbits[iB][0] = new TH1I("htriggerbits_0","trigger mask; bits",45,-5,40);
+    htriggerbits[iB][1] = new TH1I("htriggerbits_1","trigger bits (exclusive); bits",45,-5,40);
+    
+    hCentrality[iB][0] = new TH1F("hCentrality_Selected","Centrality (selected events);centrality(%)",20,0,100);//20,0,100
+    hCentrality[iB][1] = new TH1F("hCentrality_Analyzed","Centrality (analyzed events);centrality (%)",20,0,100);//20,0,100
     
     hZvertex[iB][0] = new TH1F("hZvertex_Selected","Vertex distribution of selected events;z vertex (cm)",240,-30,30);
     hZvertex[iB][1] = new TH1F("hZvertex_Analyzed","Vertex distribution of analyzed events;z vertex (cm)",240,-30,30);
     
-    hEta[iB] = new TH1F("hEta_Analyzed","|#eta| distribution after the track cuts;|#eta|",200,-1.0,1.0);
+    hEta[iB] = new TH1F("hEta_Analyzed","|#eta| distribution after the track cuts;#eta",200,-1.0,1.0);
     
     hPhi[iB] = new TH1F("hPhi_Analyzed","#phi distribution after the track cuts;#phi (rad.)",90,0,6.3);//Each TRD supermodule is divided for 5 (DeltaPhi(TRD)=0.35 theoretical)
     
     Int_t hbins[2];
     if(kSignalCheck!=0) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=100; hbins[1]=90;} to reduce RAM consuming (toram)
     else {hbins[0]=1; hbins[1]=1;}
-    fEtaPhi[iB] = new TH2F("fEtaPhi_Analyzed","#eta vs. #phi after the track cuts;|#eta|;#phi (rad.)",hbins[0],-1.0,1.0,hbins[1],0,6.3);
+    fEtaPhi[iB] = new TH2F("fEtaPhi_Analyzed","#eta vs. #phi after the track cuts;#eta;#phi (rad.)",hbins[0],-1.0,1.0,hbins[1],0,6.3);
 
     hNTpcCluster[iB] = new TH1F("hNTpcCluster","Number of the TPC clusters after the track cuts;n_{cl}^{TPC}",300,0,300);
 
@@ -181,13 +187,13 @@ void AliAnalysisNucleiMass::UserCreateOutputObjects()
       hDeDxExp[iB][i] = new TProfile(name_hDeDxExp[i],title_hDeDxExp[i],1,0,5,0,1,"");//,500,0,5,0,1000,""); toram
     }
 
-    Char_t name_fNsigmaTpc[nPart][200];
-    Char_t title_fNsigmaTpc[nPart][200];
+    Char_t name_fNsigmaTpc[nSpec][200];
+    Char_t title_fNsigmaTpc[nSpec][200];
     if(kSignalCheck==1) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=100; hbins[1]=100;} toram
-    else {hbins[0]=1; hbins[1]=1;}
-    for(Int_t i=0;i<nPart;i++) {
-      snprintf(name_fNsigmaTpc[i],200,"NsigmaTpc_%s",namePart[i]);
-      snprintf(title_fNsigmaTpc[i],200,"NsigmaTpc_%s;p_{TPC}/|z| (GeV/c);n_{#sigma_{TPC}}^{%s}",namePart[i],namePart[i]);
+    else {hbins[0]=100; hbins[1]=100;}//temp!
+    for(Int_t i=0;i<nSpec;i++) {
+      snprintf(name_fNsigmaTpc[i],200,"NsigmaTpc_%s",name[i]);
+      snprintf(title_fNsigmaTpc[i],200,"NsigmaTpc_%s;p_{TPC}/|z| (GeV/c);n_{#sigma_{TPC}}^{%s}",name[i],name[i]);
       fNsigmaTpc[iB][i] = new TH2F(name_fNsigmaTpc[i],title_fNsigmaTpc[i],hbins[0],0,5,hbins[1],-5,5);
     }
     
@@ -197,7 +203,7 @@ void AliAnalysisNucleiMass::UserCreateOutputObjects()
     Char_t title_fNsigmaTpc_kTOF[nSpec][200];
     for(Int_t i=0;i<nSpec;i++) {
       snprintf(name_fNsigmaTpc_kTOF[i],200,"NsigmaTpc_%s_kTOF",name[i]);
-      snprintf(title_fNsigmaTpc_kTOF[i],200,"NsigmaTpc_kTOF_%s in DCAxyCut;p/|z| (GeV/c);n_{#sigma_{TPC}}^{%s}",name[i],name[i]);
+      snprintf(title_fNsigmaTpc_kTOF[i],200,"NsigmaTpc_kTOF_%s;p/|z| (GeV/c);n_{#sigma_{TPC}}^{%s}",name[i],name[i]);
       fNsigmaTpc_kTOF[iB][i] = new TH2F(name_fNsigmaTpc_kTOF[i],title_fNsigmaTpc_kTOF[i],hbins[0],0,5,hbins[1],-5,5);
     }
 
@@ -225,49 +231,27 @@ void AliAnalysisNucleiMass::UserCreateOutputObjects()
       fNsigmaTof[iB][i] = new TH2F(name_fNsigmaTof[i],title_fNsigmaTof[i],hbins[0],0,5,hbins[1],-5,5);
     }
 
-    Char_t name_fNsigmaTof_DcaCut[nSpec][200];
-    Char_t title_fNsigmaTof_DcaCut[nSpec][200];    
-    if(kSignalCheck==1) {hbins[0]=100; hbins[1]=100;}
-    else {hbins[0]=1; hbins[1]=1;}
-    for(Int_t i=0;i<nSpec;i++) {
-      snprintf(name_fNsigmaTof_DcaCut[i],200,"NsigmaTof_DcaCut_%s",name[i]);
-      snprintf(title_fNsigmaTof_DcaCut[i],200,"NsigmaTof_%s with DCAxyCut;p_{T}/|z| (GeV/c);n_{#sigma_{TOF}}^{%s}",name[i],name[i]);
-      fNsigmaTof_DcaCut[iB][i] = new TH2F(name_fNsigmaTof_DcaCut[i],title_fNsigmaTof_DcaCut[i],hbins[0],0,5,hbins[1],-5,5);
-    }
-
-    if(kSignalCheck==1) {hbins[0]=8000; hbins[1]=100;}
-    else {hbins[0]=1; hbins[1]=1;}
-    fM2vsP_NoTpcCut[iB][0][0] = new TH2F("fM2vsP_NoTpcCut_pos","m^{2}/z^{2}_{TOF} vs p/|z| (positive charge);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
-    fM2vsP_NoTpcCut[iB][0][1] = new TH2F("fM2vsP_NoTpcCut_neg","m^{2}/z^{2}_{TOF} vs p/|z| (negative charge);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
-
     if(kSignalCheck==1) {hbins[0]=8000; hbins[1]=100;}
     else if(kSignalCheck==0) {hbins[0]=1; hbins[1]=1;}
     else if(kSignalCheck==2) {hbins[0]=1; hbins[1]=1;}// {hbins[0]=1000; hbins[1]=100;} toram
-    fM2vsP_NoTpcCut[iB][1][0] = new TH2F("fM2vsP_NoTpcCut_DCAxyCut_pos","m^{2}/z^{2}_{TOF} vs p/|z| (positive charge) with DCAxy cut;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
-    fM2vsP_NoTpcCut[iB][1][1] = new TH2F("fM2vsP_NoTpcCut_DCAxyCut_neg","m^{2}/z^{2}_{TOF} vs p/|z| (negative charge) with DCAxy cut;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
+    fM2vsP_NoTpcCut[iB][0][0] = new TH2F("fM2vsP_NoTpcCut_pos","m^{2}/z^{2}_{TOF} vs p/|z| (positive charge);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
+    fM2vsP_NoTpcCut[iB][0][1] = new TH2F("fM2vsP_NoTpcCut_neg","m^{2}/z^{2}_{TOF} vs p/|z| (negative charge);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",hbins[0],0,10,hbins[1],0,5);
 
-    Char_t name_fM2vsP[2][18][300]; 
-    Char_t title_fM2vsP[2][18][300]; 
+    Char_t name_fM2vsP[1][18][300]; 
+    Char_t title_fM2vsP[1][18][300]; 
 
     for(Int_t i=0;i<nSpec;i++) {
       snprintf(name_fM2vsP[0][i],300,"fM2vsPc_%s",name[i]);
       snprintf(title_fM2vsP[0][i],300,"m^{2}/z^{2}_{TOF} vs p/|z| of %s with a NsigmaTpcCut (pReco->pTrue for nuclei);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",name[i]);
       
-      snprintf(name_fM2vsP[1][i],300,"fM2vsPc_%s_DCAxyCut",name[i]);
-      snprintf(title_fM2vsP[1][i],300,"m^{2}/z^{2}_{TOF} vs p/|z| of %s with a NsigmaTpcCut and with the DCAxy cut (pReco->pTrue for nuclei);m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4});p/|z| (GeV/c)",name[i]);
-
       if(kSignalCheck==1) {hbins[0]=8000; hbins[1]=100;}
       else {hbins[0]=1; hbins[1]=1;}
       fM2vsP[iB][0][i] = new TH2F(name_fM2vsP[0][i],title_fM2vsP[0][i],hbins[0],0,10,hbins[1],0,5);
-      
-      if(kSignalCheck==1) {hbins[0]=8000; hbins[1]=100;}
-      else if(kSignalCheck==0) {hbins[0]=1; hbins[1]=1;}
-      else if(kSignalCheck==2) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=1000; hbins[1]=100;} toram
-      fM2vsP[iB][1][i] = new TH2F(name_fM2vsP[1][i],title_fM2vsP[1][i],hbins[0],0,10,hbins[1],0,5);
     }
     
     if(kSignalCheck==1) {hbins[0]=4000; hbins[1]=1000;}
-    else {hbins[0]=1; hbins[1]=1;}
+    else if(kSignalCheck==0) {hbins[0]=1; hbins[1]=1;}
+    else if(kSignalCheck==2) {hbins[0]=1; hbins[1]=1;}//{hbins[0]=1000 oppure 500; hbins[1]=100;} toram
     fM2vsZ[iB][0] = new TH2F("fM2vsZ","m^{2}/z^{2}_{TOF} vs z_{TPC} Integrated p_{T};z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
     fM2vsZ[iB][1] = new TH2F("fM2vsZ_0.5pT1.0","m^{2}/z^{2}_{TOF} vs z_{TPC} 0.5<pT<1.0;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
     fM2vsZ[iB][2] = new TH2F("fM2vsZ_1.0pT1.5","m^{2}/z^{2}_{TOF} vs z_{TPC} 1.0<pT<1.5;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
@@ -278,130 +262,122 @@ void AliAnalysisNucleiMass::UserCreateOutputObjects()
     fM2vsZ[iB][7] = new TH2F("fM2vsZ_3.5pT4.0","m^{2}/z^{2}_{TOF} vs z_{TPC} 3.5<pT<4.0;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
     fM2vsZ[iB][8] = new TH2F("fM2vsZ_4.0pT4.5","m^{2}/z^{2}_{TOF} vs z_{TPC} 4.0<pT<4.5;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
     fM2vsZ[iB][9] = new TH2F("fM2vsZ_4.5pT5.0","m^{2}/z^{2}_{TOF} vs z_{TPC} 2.0<pT<2.5;z_{TPC};m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",hbins[0],-4,4,hbins[1],0,10);
+  
+    Char_t name_h2DCAap[18][200];
+    Char_t title_h2DCAap[18][200];
+    
+    for(Int_t iS=0;iS<nSpec;iS++) {
+      snprintf(name_h2DCAap[iS],200,"h2DCAap_%s",name[iS]);
+      snprintf(title_h2DCAap[iS],200,"h2DCA_%s in for p/z<1.5GeV;DCA_{xy} (cm);DCA_{z} (cm)",name[iS]);
+      if(iS==5 || iS==7 || iS==5+9 || iS==7+9) h2DCAap[iB][iS] = new TH2F(name_h2DCAap[iS],title_h2DCAap[iS],1,-3.5,3.5,1,-3.5,3.5);//1750,-3.5,3.5,1750,-3.5,3.5
+      else h2DCAap[iB][iS] = new TH2F(name_h2DCAap[iS],title_h2DCAap[iS],1,-3.5,3.5,1,-3.5,3.5);//1750,-3.5,3.5,1750,-3.5,3.5
+    }
         
     Char_t name_hDCAxy[18][nbin][200];
     Char_t title_hDCAxy[18][nbin][200];
     Char_t name_hDCAz[18][nbin][200];
     Char_t title_hDCAz[18][nbin][200];
+    
+    //Char_t name_h2DCA[18][nbin][200];
+    //Char_t title_h2DCA[18][nbin][200];
+    
     for(Int_t iS=0;iS<nSpec;iS++) {
       for(Int_t j=0;j<nbin;j++) {
        snprintf(name_hDCAxy[iS][j],200,"hDCAxy_%s_%s",name[iS],name_nbin[j]);
-       snprintf(title_hDCAxy[iS][j],200,"hDCAxy_%s_%s;DCA_{xy} (cm)",name[iS],name_nbin[j]);
-       hDCAxy[iB][iS][j] = new TH1D(name_hDCAxy[iS][j],title_hDCAxy[iS][j],875,-3.5,3.5);
+       snprintf(title_hDCAxy[iS][j],200,"hDCAxy_%s_%s in DCAzCut;DCA_{xy} (cm)",name[iS],name_nbin[j]);
+       if(iS==5 || iS==7 || iS==5+9 || iS==7+9) hDCAxy[iB][iS][j] = new TH1D(name_hDCAxy[iS][j],title_hDCAxy[iS][j],875,-3.5,3.5);
+       else hDCAxy[iB][iS][j] = new TH1D(name_hDCAxy[iS][j],title_hDCAxy[iS][j],1,-3.5,3.5);
 
        snprintf(name_hDCAz[iS][j],200,"hDCAz_%s_%s",name[iS],name_nbin[j]);
-       snprintf(title_hDCAz[iS][j],200,"hDCAz_%s_%s;DCA_{z} (cm)",name[iS],name_nbin[j]);
-       hDCAz[iB][iS][j] = new TH1D(name_hDCAz[iS][j],title_hDCAz[iS][j],875,-3.5,3.5);
+       snprintf(title_hDCAz[iS][j],200,"hDCAz_%s_%s in DCAxyCut;DCA_{z} (cm)",name[iS],name_nbin[j]);
+       if(iS==5 || iS==7 || iS==5+9 || iS==7+9) hDCAz[iB][iS][j] = new TH1D(name_hDCAz[iS][j],title_hDCAz[iS][j],875,-3.5,3.5);
+       else hDCAz[iB][iS][j] = new TH1D(name_hDCAz[iS][j],title_hDCAz[iS][j],1,-3.5,3.5);
+      
+       //snprintf(name_h2DCA[iS][j],200,"h2DCA_%s_%s",name[iS],name_nbin[j]);
+       //snprintf(title_h2DCA[iS][j],200,"h2DCA_%s_%s;DCA_{xy} (cm);DCA_{z} (cm)",name[iS],name_nbin[j]);
+       //if(iS==2 || iS==5 || iS==7 || iS==2+9 || iS==5+9 || iS==7+9) h2DCA[iB][iS][j] = new TH2F(name_h2DCA[iS][j],title_h2DCA[iS][j],1,-4,4,1,-4,4);//,160,-4,4,160,-4,4);
+       //else h2DCA[iB][iS][j] = new TH2F(name_h2DCA[iS][j],title_h2DCA[iS][j],1,-4,4,1,-4,4);
       }
     }
-  
+      
     Char_t name_hM2CutDCAxy[18][nbin][200];
     Char_t title_hM2CutDCAxy[18][nbin][200];
-    Char_t name_hM2CutGroundDCAxy[18][nbin][200];
-    Char_t title_hM2CutGroundDCAxy[18][nbin][200];
     for(Int_t iS=0;iS<nSpec;iS++) {
       for(Int_t j=0;j<nbin;j++) {
        snprintf(name_hM2CutDCAxy[iS][j],200,"hM2_CutDCAxy_%s_%s",name[iS],name_nbin[j]);
-       snprintf(title_hM2CutDCAxy[iS][j],200,"m^{2}/z^{2} Tof distribution of %s in DCAxy cut and in %s;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",name[iS],name_nbin[j]);
-       snprintf(name_hM2CutGroundDCAxy[iS][j],200,"hM2_GroundCatDCAxy_%s_%s",name[iS],name_nbin[j]);
-       snprintf(title_hM2CutGroundDCAxy[iS][j],200,"m^{2}/z^{2} Tof distribution of %s in the bkg. of DCAxy and in %s;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",name[iS],name_nbin[j]);
+       snprintf(title_hM2CutDCAxy[iS][j],200,"m^{2}/z^{2} Tof distribution of %s and in %s;m^{2}/z^{2}_{TOF} (GeV^{2}/c^{4})",name[iS],name_nbin[j]);
       }
     }
 
-    const Int_t BinM2pT[nPart]={1,1,600,250,500,500,1000,400,600};
+    const Int_t BinM2pT[nPart]={1,1,1,1000,500,500,1,400,1};//1,1,600,250,500,500,1000,400,600//1,1,1,250,500,500,1,400,1//1,1,1,1000,500,500,1,400,1
     const Double_t RangeM2min[nPart]={0.0,0.0,-0.1,0.0,0.0,0.0,0.0,0.0,0.0};
     const Double_t RangeM2max[nPart]={1.0,1.0,0.5,2.0,4.0,6.0,12.0,4.0,6.0};
 
     for(Int_t iS=0;iS<nPart;iS++) {
       for(Int_t j=0;j<nbin;j++) {
-       
        hM2CutDCAxy[iB][iS][j] = new TH1D(name_hM2CutDCAxy[iS][j],title_hM2CutDCAxy[iS][j],BinM2pT[iS],RangeM2min[iS],RangeM2max[iS]);
-       hM2CutGroundDCAxy[iB][iS][j] = new TH1D(name_hM2CutGroundDCAxy[iS][j],title_hM2CutGroundDCAxy[iS][j],BinM2pT[iS],RangeM2min[iS],RangeM2max[iS]);
-      
        hM2CutDCAxy[iB][iS+nPart][j] = new TH1D(name_hM2CutDCAxy[iS+nPart][j],title_hM2CutDCAxy[iS+nPart][j],BinM2pT[iS],RangeM2min[iS],RangeM2max[iS]);
-       hM2CutGroundDCAxy[iB][iS+nPart][j] = new TH1D(name_hM2CutGroundDCAxy[iS+nPart][j],title_hM2CutGroundDCAxy[iS+nPart][j],BinM2pT[iS],RangeM2min[iS],RangeM2max[iS]);
       }
     }
 
     Char_t name_fPmeanVsBetaGamma[18][200];
     Char_t title_fPmeanVsBetaGamma[18][200];
     
-    hbins[0]=200; hbins[1]=200;
+    if(iMtof==2) {hbins[0]=1; hbins[1]=1;}//if(iMtof==2) {hbins[0]=200; hbins[1]=200;}
+    else {hbins[0]=1; hbins[1]=1;}
     for(Int_t iS=0;iS<nSpec;iS++) {
       snprintf(name_fPmeanVsBetaGamma[iS],200,"fPmeanVsPvtx_%s",name[iS]);
-      snprintf(title_fPmeanVsBetaGamma[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s (in DCAxyCut);p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",name[iS],name[iS],name[iS]);
+      snprintf(title_fPmeanVsBetaGamma[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s;p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",name[iS],name[iS],name[iS]);
       fPmeanVsBetaGamma[iB][iS]=new TH2F(name_fPmeanVsBetaGamma[iS],title_fPmeanVsBetaGamma[iS],hbins[0],0,10,hbins[1],0.8,1.2);
     }  
     
     Char_t name_prPmeanVsBetaGamma[18][200];
     Char_t title_prPmeanVsBetaGamma[18][200];
     
+    if(iMtof==2) {hbins[0]=1; hbins[1]=1;}//if(iMtof==2) {hbins[0]=200; hbins[1]=200;}
+    else {hbins[0]=1; hbins[1]=1;}
     for(Int_t iS=0;iS<nSpec;iS++) {
       snprintf(name_prPmeanVsBetaGamma[iS],200,"prPmeanVsPvtx_%s",name[iS]);
-      snprintf(title_prPmeanVsBetaGamma[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s (in DCAxyCut);p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",name[iS],name[iS],name[iS]);
+      snprintf(title_prPmeanVsBetaGamma[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s;p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",name[iS],name[iS],name[iS]);
       prPmeanVsBetaGamma[iB][iS]=new TProfile(name_prPmeanVsBetaGamma[iS],title_prPmeanVsBetaGamma[iS],hbins[0],0,10,0.8,1.2,"");
     }  
     
-    //for (bar)d
-    fPvtxTrueVsReco[0]=new TF2("fcorr_d","([0]*TMath::Power(x,[1])+[2])*(TMath::Power((TMath::Exp([3]*x)+[4]),[5]*TMath::Power(y,[6])));|#eta|;p_{true}/p_{reco}",0.0001,100,0,1);//for (bar)d
-    fPvtxTrueVsReco[0]->SetParameter(0,0.031263);
-    fPvtxTrueVsReco[0]->SetParameter(1,-3.276770);
-    fPvtxTrueVsReco[0]->SetParameter(2,1.000113);
-    fPvtxTrueVsReco[0]->SetParameter(3,-5.195875);
-    fPvtxTrueVsReco[0]->SetParameter(4,1.000674);
-    fPvtxTrueVsReco[0]->SetParameter(5,2.870503);
-    fPvtxTrueVsReco[0]->SetParameter(6,3.777729);
-    
-    fPvtxTrueVsReco[0]->SetNpx(fPvtxTrueVsReco[0]->GetNpx()*10);
-        
-    //for (bar)He3
-    fPvtxTrueVsReco[1]=new TF2("fcorr_He","([0]*TMath::Power(x,[1])+[2])*(TMath::Power((TMath::Exp([3]*x)+[4]),[5]*TMath::Power(y,[6])));|#eta|;p_{true}/p_{reco}",0.0001,100,0,1);//for (bar)He3
-    fPvtxTrueVsReco[1]->SetParameter(0,0.037986);
-    fPvtxTrueVsReco[1]->SetParameter(1,-2.707620);
-    fPvtxTrueVsReco[1]->SetParameter(2,1.000742);
-    fPvtxTrueVsReco[1]->SetParameter(3,-4.934743);
-    fPvtxTrueVsReco[1]->SetParameter(4,1.001640);
-    fPvtxTrueVsReco[1]->SetParameter(5,2.744372);
-    fPvtxTrueVsReco[1]->SetParameter(6,3.528561);
+    SetPvtxCorrections();
 
-    fPvtxTrueVsReco[1]->SetNpx(fPvtxTrueVsReco[1]->GetNpx()*10);
+    prPvtxTrueVsReco[iB][0]=new TProfile("prPvtxTrueVsReco_d","p_{true} vs p_{reco} of d and dbar;p_{reco} (GeV/c); p_{true}/p_{reco} (d)",1,0,10);//,100,0,10
+    prPvtxTrueVsReco[iB][1]=new TProfile("prPvtxTrueVsReco_t","p_{true} vs p_{reco} of t and tbar;p_{reco} (GeV/c);p_{true}/p_{reco} (t)",1,0,10);//,100,0,10
+    prPvtxTrueVsReco[iB][2]=new TProfile("prPvtxTrueVsReco_He3","p_{true} vs p_{reco} of He3 and He3bar;p_{reco} (GeV/c);p_{true}/p_{reco} (He3)",1,0,10);//,100,0,10
+    prPvtxTrueVsReco[iB][3]=new TProfile("prPvtxTrueVsReco_He4","p_{true} vs p_{reco} of He4 and He4bar;p_{reco} (GeV/c);p_{true}/p_{reco} (He4)",1,0,10);//,100,0,10
 
-    prPvtxTrueVsReco[iB][0]=new TProfile("prPvtxTrueVsReco_d","p_{true} vs p_{reco} of d and dbar;p_{reco} (GeV/c); p_{true}/p_{reco} (d)",200,0,10);
-    prPvtxTrueVsReco[iB][1]=new TProfile("prPvtxTrueVsReco_He3","p_{true} vs p_{reco} of He3 and He3bar;p_{reco} (GeV/c);p_{true}/p_{reco} (He3)",200,0,10);
-
-    Char_t nameTemp[10][200];
+    SetPmeanCorrections();
+       
+    Char_t nameTemp[14][200];
     snprintf(nameTemp[0],200,"#pi^{+}");
     snprintf(nameTemp[1],200,"K^{+}");
     snprintf(nameTemp[2],200,"p");
     snprintf(nameTemp[3],200,"d");
-    snprintf(nameTemp[4],200,"He3");
-    snprintf(nameTemp[5],200,"#pi^{-}");
-    snprintf(nameTemp[6],200,"K^{-}");
-    snprintf(nameTemp[7],200,"#bar{p}");
-    snprintf(nameTemp[8],200,"#bar{d}");
-    snprintf(nameTemp[9],200,"#bar{He3}");
-    
-    Char_t name_fPmeanVsBGcorr[10][200];
-    for(Int_t i=0;i<10;i++) {
-      snprintf(name_fPmeanVsBGcorr[i],200,"fPmeanVsBGcorr_%s",nameTemp[i]);
-      fPmeanVsBGcorr[0][i]=new TF1(name_fPmeanVsBGcorr[i],"[2]-[0]*TMath::Power(x,[1]);p_{vtx}/m;<p>/p",0.0001,100);
-      fPmeanVsBGcorr[1][i]=new TF1(name_fPmeanVsBGcorr[i],"[2]-[0]*TMath::Power(x,[1]);p_{vtx}/m;<p>/p",0.0001,100);
-      //fPmeanVsBGcorr[i]->SetParameters(pars_fPmeanVsBGcorr[i]);
-      //fPmeanVsBGcorr[i]->SetNpx(fPmeanVsBGcorr[i]->GetNpx()*10);
-    }
-    SetPmeanCorrections();
-       
-    Char_t name_prPmeanVsBGcorr[10][200];
-    Char_t title_prPmeanVsBGcorr[10][200];
+    snprintf(nameTemp[4],200,"t");
+    snprintf(nameTemp[5],200,"He3");
+    snprintf(nameTemp[6],200,"He4");
+    snprintf(nameTemp[7],200,"#pi^{-}");
+    snprintf(nameTemp[8],200,"K^{-}");
+    snprintf(nameTemp[9],200,"#bar{p}");
+    snprintf(nameTemp[10],200,"#bar{d}");
+    snprintf(nameTemp[11],200,"#bar{t}");
+    snprintf(nameTemp[12],200,"#bar{He3}");
+    snprintf(nameTemp[13],200,"#bar{He4}");
+    Char_t name_prPmeanVsBGcorr[14][200];
+    Char_t title_prPmeanVsBGcorr[14][200];
    
     hbins[0]=200;
-    for(Int_t iS=0;iS<10;iS++) {
+    for(Int_t iS=0;iS<14;iS++) {
       snprintf(name_prPmeanVsBGcorr[iS],200,"prPmeanVsBGcorr_%s",nameTemp[iS]);
-      snprintf(title_prPmeanVsBGcorr[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s as parameterized in input TF1 (in DCAxyCut);p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",nameTemp[iS],nameTemp[iS],nameTemp[iS]);
-      prPmeanVsBGcorr[iB][iS]=new TProfile(name_prPmeanVsBGcorr[iS],title_prPmeanVsBGcorr[iS],hbins[0],0,10,0.8,1.2,"");
+      snprintf(title_prPmeanVsBGcorr[iS],200,"<p>/p_{vtx} vs #beta#gamma of %s as parameterized in input TF1;p_{vtx}/m_{%s};<p>_{%s}/p_{vtx}",nameTemp[iS],nameTemp[iS],nameTemp[iS]);
+      prPmeanVsBGcorr[iB][iS]=new TProfile(name_prPmeanVsBGcorr[iS],title_prPmeanVsBGcorr[iS],hbins[0],0,20,0.8,1.2,"");
     }  
 
     fList[iB]->Add(htemp[iB]);
+    for(Int_t i=0;i<2;i++) fList[iB]->Add(htriggerbits[iB][i]);
     for(Int_t i=0;i<2;i++) fList[iB]->Add(hCentrality[iB][i]);
     for(Int_t i=0;i<2;i++) fList[iB]->Add(hZvertex[iB][i]);
     fList[iB]->Add(hEta[iB]);
@@ -411,7 +387,7 @@ void AliAnalysisNucleiMass::UserCreateOutputObjects()
     fList[iB]->Add(hNTrdSlices[iB]);
     //for(Int_t i=0;i<2;i++) fList[iB]->Add(fdEdxVSp[iB][i]);
     //for(Int_t i=0;i<nPart;i++) fList[iB]->Add(hDeDxExp[iB][i]);
-    //for(Int_t i=0;i<nPart;i++) fList[iB]->Add(fNsigmaTpc[iB][i]);
+    for(Int_t i=0;i<nSpec;i++) fList[iB]->Add(fNsigmaTpc[iB][i]);
     for(Int_t i=0;i<nPart;i++) {
       if(kSignalCheck!=1) 
        if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
@@ -421,42 +397,44 @@ void AliAnalysisNucleiMass::UserCreateOutputObjects()
     //for(Int_t i=0;i<2;i++) fList[iB]->Add(fBetaTofVSp[iB][i]);
     //for(Int_t i=0;i<nPart;i++) fList[iB]->Add(hBetaExp[iB][i]);
     //for(Int_t i=0;i<nPart;i++) fList[iB]->Add(fNsigmaTof[iB][i]);
-    for(Int_t i=0;i<nPart;i++) {
-      if(kSignalCheck!=1) 
-       if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
-      //fList[iB]->Add(fNsigmaTof_DcaCut[iB][i]);
-      //fList[iB]->Add(fNsigmaTof_DcaCut[iB][i+nPart]);
-    }
     //for(Int_t i=0;i<2;i++) fList[iB]->Add(fM2vsP_NoTpcCut[iB][0][i]);
-    //for(Int_t i=0;i<2;i++) fList[iB]->Add(fM2vsP_NoTpcCut[iB][1][i]);
     for(Int_t i=0;i<nPart;i++) {
       if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
       //fList[iB]->Add(fM2vsP[iB][0][i]);
       //fList[iB]->Add(fM2vsP[iB][0][i+nPart]);
     }
-    for(Int_t i=0;i<nPart;i++){
-      if(kSignalCheck!=1) 
-       if(i<3 || i==6 || i==8) continue;//e,mu,pi,t,he4 excluded
-      fList[iB]->Add(fM2vsP[iB][1][i]);
-      fList[iB]->Add(fM2vsP[iB][1][i+nPart]);
-    }
+  
     for(Int_t i=0;i<2;i++){
       //fList[iB]->Add(fPvtxTrueVsReco[i]);
-      fList[iB]->Add(prPvtxTrueVsReco[iB][i]);
+      //fList[iB]->Add(prPvtxTrueVsReco[iB][i]);
     }
-    if(iMtof!=1) {
+    if(iMtof==2) {
       for(Int_t i=0;i<nPart;i++){
        if(i<2) continue;//e,mu excluded
-       fList[iB]->Add(fPmeanVsBetaGamma[iB][i]);
-       fList[iB]->Add(prPmeanVsBetaGamma[iB][i]);
-       fList[iB]->Add(fPmeanVsBetaGamma[iB][i+nPart]);
-       fList[iB]->Add(prPmeanVsBetaGamma[iB][i+nPart]);
+       //fList[iB]->Add(fPmeanVsBetaGamma[iB][i]);
+       //fList[iB]->Add(prPmeanVsBetaGamma[iB][i]);
+       //fList[iB]->Add(fPmeanVsBetaGamma[iB][i+nPart]);
+       //fList[iB]->Add(prPmeanVsBetaGamma[iB][i+nPart]);
       }
     }
     if(iMtof>2) {
-      //for(Int_t i=0;i<10;i++)fList[iB]->Add(fPmeanVsBGcorr[i]);
-      for(Int_t i=0;i<10;i++)fList[iB]->Add(prPmeanVsBGcorr[iB][i]);
+      //for(Int_t i=0;i<14;i++)fList[iB]->Add(fPmeanVsBGcorr[i]);
+      //for(Int_t i=0;i<14;i++)fList[iB]->Add(prPmeanVsBGcorr[iB][i]);
     }
+    for(Int_t i=0;i<nPart;i++) {
+      if(i<5 || i==6 || i==8) continue;//e,mu,pi,K,p,t,he4 excluded//i<5 || i==6 || i==8
+      fList[iB]->Add(h2DCAap[iB][i]);
+      fList[iB]->Add(h2DCAap[iB][i+nPart]);
+    }
+    /*
+      for(Int_t i=0;i<nPart;i++) {
+      if(i<5 || i==6 || i==8) continue;//e,mu,pi,K,p,t,he4 excluded//i<5 || i==6 || i==8
+      for(Int_t j=0;j<nbin;j++){
+      fList[iB]->Add(h2DCA[iB][i][j]);
+      fList[iB]->Add(h2DCA[iB][i+nPart][j]);
+      }
+      }
+    */
     //for(Int_t i=0;i<10;i++) fList[iB]->Add(fM2vsZ[iB][i]);
     for(Int_t i=0;i<nPart;i++){
       if(kSignalCheck!=1) 
@@ -465,11 +443,9 @@ void AliAnalysisNucleiMass::UserCreateOutputObjects()
        fList[iB]->Add(hDCAxy[iB][i][j]);
        fList[iB]->Add(hDCAz[iB][i][j]);
        fList[iB]->Add(hM2CutDCAxy[iB][i][j]);
-       fList[iB]->Add(hM2CutGroundDCAxy[iB][i][j]);
        fList[iB]->Add(hDCAxy[iB][i+nPart][j]);
        fList[iB]->Add(hDCAz[iB][i+nPart][j]);
        fList[iB]->Add(hM2CutDCAxy[iB][i+nPart][j]);
-       fList[iB]->Add(hM2CutGroundDCAxy[iB][i+nPart][j]);
       }
     }
     
@@ -523,6 +499,27 @@ void AliAnalysisNucleiMass::UserExec(Option_t *)
   //---------------------------EVENT CUTS-----------------------------
   if(TMath::Abs(zvtx) < 10.0 && v0Centr>Centrality[0] && v0Centr<Centrality[1]){
 
+    //TRIGGER SELECTION
+    Int_t iTrigger=-2;
+
+    if(inputHandler->IsEventSelected() & AliVEvent::kMB) iTrigger = 0;
+    if(inputHandler->IsEventSelected() & AliVEvent::kCentral) iTrigger = 16;
+    if(inputHandler->IsEventSelected() & AliVEvent::kSemiCentral) iTrigger = 17;
+    //if((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()) & AliVEvent::kAny) iTrigger = 35;
+    
+    if(iTriggerSel!=-99) {//if a dedicated trigger is required
+      if(iTrigger!=iTriggerSel) return;
+    }
+    
+    for(Int_t i=0;i<32;i++) {
+      Int_t bit=(1<<i);
+      if(inputHandler->IsEventSelected() & bit) htriggerbits[iBconf][0]->Fill(i);
+    }
+    if(inputHandler->IsEventSelected() & AliVEvent::kAny) htriggerbits[iBconf][0]->Fill(35);
+    if(inputHandler->IsEventSelected() & AliVEvent::kAnyINT) htriggerbits[iBconf][0]->Fill(36);
+    
+    htriggerbits[iBconf][1]->Fill(iTrigger);
+    
     hCentrality[iBconf][1]->Fill(v0Centr);
     hZvertex[iBconf][1]->Fill(zvtx);
     
@@ -550,26 +547,10 @@ void AliAnalysisNucleiMass::UserExec(Option_t *)
       nTpcCluster=track->GetTPCNcls();
       if(nTpcCluster>NminTpcCluster) isMinTpcCluster=kTRUE;
 
-      //-------------------------------------start TRACK CUTS----------------------------------
+      //-------------------------------------start TRACK CUTS (I): for (II) see below--------
       if ((track->Pt() < 0.2) || (eta<EtaLimit[0]) || (eta>EtaLimit[1]) || !trkFlag || !isMinTpcCluster)
        continue;
       
-      //Vertex determination
-      Double_t b[2] = {-99., -99.};
-      Double_t bCov[3] = {-99., -99., -99.};
-      if (!track->PropagateToDCA(fEvent->GetPrimaryVertex(), fEvent->GetMagneticField(), 100., b, bCov))
-       continue;
-      
-      Double_t DCAxy = b[0];
-      Double_t DCAz = b[1];
-      
-      //Cut on the DCAz
-      Bool_t isDCAzCut=kFALSE;
-      if(DCAz<DCAzCut) isDCAzCut=kTRUE;
-
-      if(!isDCAzCut)
-       continue;
-      
       //For the Tpc purity cut
       Double_t dedx = track->GetTPCsignal();
       if(dedx<10) continue;
@@ -578,17 +559,10 @@ void AliAnalysisNucleiMass::UserExec(Option_t *)
       if(nTrdSlices<2 && iTrdCut==1) continue; 
       if(nTrdSlices>0 && iTrdCut==2) continue;
       
-      //-------------------------------------end TRACK CUTS----------------------------------
+      //-------------------------------------end TRACK CUTS (I)----------------------------------
 
       //-------------------------------------Track info--------------------------------------
       Double_t phi= track->Phi();
-      
-      hEta[iBconf]->Fill(eta);
-      hPhi[iBconf]->Fill(phi);
-      fEtaPhi[iBconf]->Fill(eta,phi);
-      hNTpcCluster[iBconf]->Fill(nTpcCluster);
-      hNTrdSlices[iBconf]->Fill(nTrdSlices);
-       
       Double_t charge = (Double_t)track->Charge();
       Double_t p = track->P();
       Double_t pt = track->Pt();
@@ -597,7 +571,16 @@ void AliAnalysisNucleiMass::UserExec(Option_t *)
       Double_t beta = 0.0;
       Double_t M2 = 999.9;
       Double_t Z2 = 999.9;
-           
+      
+       //Vertex determination
+      Double_t b[2] = {-99., -99.};
+      Double_t bCov[3] = {-99., -99., -99.};
+      if (!track->PropagateToDCA(fEvent->GetPrimaryVertex(), fEvent->GetMagneticField(), 100., b, bCov))
+       continue;
+      
+      Double_t DCAxy = b[0];
+      Double_t DCAz = b[1];
+     
       kTOF = (track->GetStatus() & AliVTrack::kTOFout) && (track->GetStatus() & AliVTrack::kTIME);
       
       //-----------------------------TPC info------------------------------
@@ -618,18 +601,42 @@ void AliAnalysisNucleiMass::UserExec(Option_t *)
       Double_t pC[9];
       for(Int_t iS=0;iS<9;iS++)        pC[iS]=p;
       this->MomVertexCorrection(p,pC,eta,FlagPid);
-
+      
+      this->FillDCAdist(DCAxy,DCAz,charge,FlagPid,stdFlagPid,pC);
+      
+      //-------------------------------------start TRACK CUTS (II)-------------------------------------
+      //Cut on the DCAxy
+      Bool_t isDCAxyCut=kFALSE;
+      if(TMath::Abs(DCAxy)<DCAxyCut) isDCAxyCut=kTRUE;
+      
+      //Cut on the DCAz
+      Bool_t isDCAzCut=kFALSE;
+      if(TMath::Abs(DCAz)<DCAzCut) isDCAzCut=kTRUE;
+      
+      if (!isDCAxyCut || !isDCAzCut)
+       continue;
+          
+      //-------------------------------------end TRACK CUTS (II)----------------------------------
+      
+      hEta[iBconf]->Fill(eta);
+      hPhi[iBconf]->Fill(phi);
+      fEtaPhi[iBconf]->Fill(eta,phi);
+      hNTpcCluster[iBconf]->Fill(nTpcCluster);
+      hNTrdSlices[iBconf]->Fill(nTrdSlices);
+      
       //More TPC info:
       for(Int_t iS=0;iS<9;iS++){
        expdedx[iS] = fPIDResponse->GetTPCResponse().GetExpectedSignal(track, (AliPID::EParticleType) iS, AliTPCPIDResponse::kdEdxDefault, kTRUE);
        hDeDxExp[iBconf][iS]->Fill(pTPC,expdedx[iS]);
        nsigmaTPC[iS] = fPIDResponse->NumberOfSigmasTPC(track,(AliPID::EParticleType) iS);
-       fNsigmaTpc[iBconf][iS]->Fill(pTPC,nsigmaTPC[iS]);
+       //fNsigmaTpc[iBconf][iS]->Fill(pTPC,nsigmaTPC[iS]);
        if(charge>0) {//positive particle
-         if(kTOF && (TMath::Abs(DCAxy)<DCAxyCut)) fNsigmaTpc_kTOF[iBconf][iS]->Fill(p,nsigmaTPC[iS]);
+         fNsigmaTpc[iBconf][iS]->Fill(pTPC,nsigmaTPC[iS]);
+         if(kTOF) fNsigmaTpc_kTOF[iBconf][iS]->Fill(p,nsigmaTPC[iS]);
        }
        else {//negative particle
-         if(kTOF && (TMath::Abs(DCAxy)<DCAxyCut)) fNsigmaTpc_kTOF[iBconf][iS+nPart]->Fill(p,nsigmaTPC[iS]);
+         fNsigmaTpc[iBconf][iS+nPart]->Fill(pTPC,nsigmaTPC[iS]);
+         if(kTOF) fNsigmaTpc_kTOF[iBconf][iS+nPart]->Fill(p,nsigmaTPC[iS]);
        }
        /*
          if(TMath::Abs(nsigmaTPC[iS])<NsigmaTpcCut) {
@@ -667,11 +674,9 @@ void AliAnalysisNucleiMass::UserExec(Option_t *)
          fNsigmaTof[iBconf][iS]->Fill(pt,nsigmaTOF[iS]);
          if(charge>0) {
            hBetaExp[iBconf][iS]->Fill(p,exptimes[0]/exptimes[iS]);
-           if(TMath::Abs(DCAxy)<DCAxyCut) fNsigmaTof_DcaCut[iBconf][iS]->Fill(pt,nsigmaTOF[iS]);
          }
          else {
            hBetaExp[iBconf][iS+nPart]->Fill(p,exptimes[0]/exptimes[iS]);
-           if(TMath::Abs(DCAxy)<DCAxyCut) fNsigmaTof_DcaCut[iBconf][iS+nPart]->Fill(pt,nsigmaTOF[iS]);
          }
 
          //TOF identification:
@@ -690,19 +695,18 @@ void AliAnalysisNucleiMass::UserExec(Option_t *)
        //-----------------------------M2 as a function of momentum to the primary vertex if iMtof==1---------------------------------
        if(iMtof==1) this->GetMassFromPvertexCorrected(beta,pC,Mass2);
 
-       if(iMtof>1) this->GetPmeanVsBetaGamma(exptimes,pC,FlagPid,FlagPidTof,charge,DCAxy);
+       if(iMtof==2) this->GetPmeanVsBetaGamma(exptimes,pC,FlagPid,FlagPidTof,charge);
        
        //-----------------------------M2 as a function of expected times---------------------------------
        if(iMtof==2) this->GetMassFromExpTimes(beta,exptimes,Mass2);
         
        //-----------------------------M2 as a function of mean momentum calculated from expected time and extrapolated to the (anti)nuclei---------------------------------
-       if(iMtof>2) this->GetMassFromMeanMom(beta,exptimes,pC,charge,Mass2,FlagPid,FlagPidTof,DCAxy);
+       if(iMtof>2) this->GetMassFromMeanMom(beta,exptimes,pC,eta,charge,Mass2,FlagPid,FlagPidTof);
 
        //-------------------------------Squared Mass TH2 distributions-----------------------
        if(charge>0) {
          //without TPC
          fM2vsP_NoTpcCut[iBconf][0][0]->Fill(M2,p);
-         if(TMath::Abs(DCAxy)<DCAxyCut) fM2vsP_NoTpcCut[iBconf][1][0]->Fill(M2,p);
          //with TPC
          for(Int_t iS=0;iS<9;iS++) {
            M2=999.9;
@@ -710,27 +714,24 @@ void AliAnalysisNucleiMass::UserExec(Option_t *)
            //-----------------
            if(FlagPid & stdFlagPid[iS]) {
              fM2vsP[iBconf][0][iS]->Fill(M2,pC[iS]);
-             if(TMath::Abs(DCAxy)<DCAxyCut) fM2vsP[iBconf][1][iS]->Fill(M2,pC[iS]);
            }
          }
        }
        else {//charge<0
          //without TPC
          fM2vsP_NoTpcCut[iBconf][0][1]->Fill(M2,p);
-         if(TMath::Abs(DCAxy)<DCAxyCut) fM2vsP_NoTpcCut[iBconf][1][1]->Fill(M2,p);
-          //with TPC
+         //with TPC
          for(Int_t iS=0;iS<9;iS++) {
            M2=999.9;
            M2=Mass2[iS];
            //-----------------
            if(FlagPid & stdFlagPid[iS]) {
              fM2vsP[iBconf][0][iS+nPart]->Fill(M2,pC[iS]);
-             if(TMath::Abs(DCAxy)<DCAxyCut) fM2vsP[iBconf][1][iS+nPart]->Fill(M2,pC[iS]);
            }
          }
        }
        
-       //------------------------------start DCA and Squared Mass TH1 distributions-------------------------
+       //------------------------------start Squared Mass TH1 distributions-------------------------
        Double_t binP[nbin+1];
        for(Int_t i=0;i<nbin+1;i++) {
          binP[i]=0.4+i*0.1;
@@ -744,16 +745,7 @@ void AliAnalysisNucleiMass::UserExec(Option_t *)
            if(FlagPid & stdFlagPid[iS]) {
              for(Int_t j=0;j<nbin;j++) {
                if(pC[iS]>binP[j] && pC[iS]<binP[j+1]) {
-                 hDCAxy[iBconf][iS][j]->Fill(DCAxy);
-                 hDCAxy[iBconf][iS][j]->Fill(-DCAxy);
-                 hDCAz[iBconf][iS][j]->Fill(DCAz);
-                 hDCAz[iBconf][iS][j]->Fill(-DCAz);
-                 if(TMath::Abs(DCAxy)<DCAxyCut) {
-                   hM2CutDCAxy[iBconf][iS][j]->Fill(M2);
-                 }
-                 if(TMath::Abs(DCAxy+0.5)<DCAxyCut) {
-                   hM2CutGroundDCAxy[iBconf][iS][j]->Fill(M2);
-                 }
+                 hM2CutDCAxy[iBconf][iS][j]->Fill(M2);
                  break;
                }
              }//end loop on the p bins (j)
@@ -768,16 +760,7 @@ void AliAnalysisNucleiMass::UserExec(Option_t *)
            if(FlagPid & stdFlagPid[iS]) {
              for(Int_t j=0;j<nbin;j++) {
                if(pC[iS]>binP[j] && pC[iS]<binP[j+1]) {
-                 hDCAxy[iBconf][iS+nPart][j]->Fill(DCAxy);
-                 hDCAxy[iBconf][iS+nPart][j]->Fill(-DCAxy);
-                 hDCAz[iBconf][iS+nPart][j]->Fill(DCAz);
-                 hDCAz[iBconf][iS+nPart][j]->Fill(-DCAz);
-                 if(TMath::Abs(DCAxy)<DCAxyCut) {
-                   hM2CutDCAxy[iBconf][iS+nPart][j]->Fill(M2);
-                 }
-                 if(TMath::Abs(DCAxy+0.5)<DCAxyCut) {
-                   hM2CutGroundDCAxy[iBconf][iS+nPart][j]->Fill(M2);
-                 }
+                 hM2CutDCAxy[iBconf][iS+nPart][j]->Fill(M2);
                  break;
                }
              }//end loop on the p bins (j)
@@ -822,16 +805,85 @@ void AliAnalysisNucleiMass::MomVertexCorrection(Double_t p, Double_t *pC, Double
        if(kPvtxCorr==1) pC[iS]=pC[iS]*fPvtxTrueVsReco[0]->Eval(pC[iS],TMath::Abs(eta));//for (bar)d
        prPvtxTrueVsReco[iBconf][0]->Fill(p,pC[iS]/p);
       }
-      else if(iS==7) {
-       if(kPvtxCorr==1) pC[iS]=pC[iS]*fPvtxTrueVsReco[1]->Eval(pC[iS],TMath::Abs(eta));//for (bar)He3
+      else if(iS==6) {
+       if(kPvtxCorr==1) pC[iS]=pC[iS]*fPvtxTrueVsReco[1]->Eval(pC[iS],TMath::Abs(eta));//for (bar)t
        prPvtxTrueVsReco[iBconf][1]->Fill(p,pC[iS]/p);
       }
+      else if(iS==7) {
+       if(kPvtxCorr==1) pC[iS]=pC[iS]*fPvtxTrueVsReco[2]->Eval(pC[iS],TMath::Abs(eta));//for (bar)He3
+       prPvtxTrueVsReco[iBconf][2]->Fill(p,pC[iS]/p);
+      }
+      else if(iS==8) {
+       if(kPvtxCorr==1) pC[iS]=pC[iS]*fPvtxTrueVsReco[3]->Eval(pC[iS],TMath::Abs(eta));//for (bar)He3
+       prPvtxTrueVsReco[iBconf][3]->Fill(p,pC[iS]/p);
+      }
     }
   }
   
   return;
   
 }
+//__________________________________________________________________________________________________
+void AliAnalysisNucleiMass::FillDCAdist(Double_t DCAxy, Double_t DCAz, Double_t charge, Int_t FlagPid, Int_t stdFlagPid[9], Double_t *pC){
+
+  Double_t binP[nbin+1];
+  for(Int_t i=0;i<nbin+1;i++) {
+    binP[i]=0.4+i*0.1;
+  }
+
+  if(charge>0) {
+    for(Int_t iS=0;iS<9;iS++) {
+      if(FlagPid & stdFlagPid[iS]) {
+       if(pC[iS]<1.5) {
+         h2DCAap[iBconf][iS]->Fill(DCAxy,DCAz);
+         h2DCAap[iBconf][iS]->Fill(-DCAxy,-DCAz);
+       }
+       for(Int_t j=0;j<nbin;j++) {
+         if(pC[iS]>binP[j] && pC[iS]<binP[j+1]) {
+           if(TMath::Abs(DCAz)<DCAzCut) {
+             hDCAxy[iBconf][iS][j]->Fill(DCAxy);
+             hDCAxy[iBconf][iS][j]->Fill(-DCAxy);
+           }
+           if(TMath::Abs(DCAxy)<DCAxyCut) {
+             hDCAz[iBconf][iS][j]->Fill(DCAz);
+             hDCAz[iBconf][iS][j]->Fill(-DCAz);
+           }
+           //h2DCA[iBconf][iS][j]->Fill(DCAxy,DCAz);
+           //h2DCA[iBconf][iS][j]->Fill(-DCAxy,-DCAz);
+           break;
+         }
+       }//end loop on the p bins (j)
+      }
+    }//end loop on the particle species (iS)
+  }
+  else {//charge<0
+    for(Int_t iS=0;iS<9;iS++) {
+      if(FlagPid & stdFlagPid[iS]) {
+       if(pC[iS]<1.5) {
+         h2DCAap[iBconf][iS+nPart]->Fill(DCAxy,DCAz);
+         h2DCAap[iBconf][iS+nPart]->Fill(-DCAxy,-DCAz);
+       }
+       for(Int_t j=0;j<nbin;j++) {
+         if(pC[iS]>binP[j] && pC[iS]<binP[j+1]) {
+           if(TMath::Abs(DCAz)<DCAzCut) {
+             hDCAxy[iBconf][iS+nPart][j]->Fill(DCAxy);
+             hDCAxy[iBconf][iS+nPart][j]->Fill(-DCAxy);
+           }
+           if(TMath::Abs(DCAxy)<DCAxyCut) {
+             hDCAz[iBconf][iS+nPart][j]->Fill(DCAz);
+             hDCAz[iBconf][iS+nPart][j]->Fill(-DCAz);
+           }
+           //h2DCA[iBconf][iS+nPart][j]->Fill(DCAxy,DCAz);
+           //h2DCA[iBconf][iS+nPart][j]->Fill(-DCAxy,-DCAz);
+           break;
+         }
+       }//end loop on the p bins (j)
+      }
+    }//end loop on the particle species (iS)
+  } 
+  
+  return;
+}
 //_____________________________________________________________________________
 void AliAnalysisNucleiMass::GetMassFromPvertex(Double_t beta, Double_t p, Double_t &M2) {
   
@@ -904,7 +956,7 @@ void AliAnalysisNucleiMass::GetMassFromExpTimes(Double_t beta, Double_t *IntTime
   return;
 }
 //____________________________________________________________________________________________________________
-void AliAnalysisNucleiMass::GetPmeanVsBetaGamma(Double_t *IntTimes, Double_t *pVtx, Int_t FlagPid, Int_t FlagPidTof, Double_t charge, Double_t DCAxy) {
+void AliAnalysisNucleiMass::GetPmeanVsBetaGamma(Double_t *IntTimes, Double_t *pVtx, Int_t FlagPid, Int_t FlagPidTof, Double_t charge) {
  
   // m = p_exp/beta/gamma where p_exp = mPDG*beta_exp*gamma_exp; beta_exp = L/t_exp/c = t_e/t_exp ; beta=L/tof/c = t_e/tof
   // In this way m_tof = mPDG only if tof=t_exp
@@ -932,7 +984,6 @@ void AliAnalysisNucleiMass::GetPmeanVsBetaGamma(Double_t *IntTimes, Double_t *pV
     pExp[iS]=TMath::Sqrt(p2Exp[iS]);
        
     if((FlagPid & stdFlagPid[iS]) && (FlagPidTof & stdFlagPid[iS])) {
-      if(TMath::Abs(DCAxy)>DCAxyCut) continue;
       if(charge>0){
        fPmeanVsBetaGamma[iBconf][iS]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
        prPmeanVsBetaGamma[iBconf][iS]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
@@ -948,30 +999,23 @@ void AliAnalysisNucleiMass::GetPmeanVsBetaGamma(Double_t *IntTimes, Double_t *pV
   
 }
 //____________________________________________________________________________________________________________
-void AliAnalysisNucleiMass::GetMassFromMeanMom(Double_t beta, Double_t *IntTimes, Double_t *pVtx, Double_t charge, Double_t *Mass2, Int_t FlagPid, Int_t FlagPidTof, Double_t DCAxy) {//Double_t *Mass2, Int_t iCorr
+void AliAnalysisNucleiMass::GetMassFromMeanMom(Double_t beta, Double_t *IntTimes, Double_t *pVtx, Double_t eta, Double_t charge, Double_t *Mass2, Int_t FlagPid, Int_t FlagPidTof) {//Double_t *Mass2, Int_t iCorr
  
   // m = p_exp/beta/gamma where p_exp = mPDG*beta_exp*gamma_exp; beta_exp = L/t_exp/c = t_e/t_exp ; beta=L/tof/c = t_e/tof
   // In this way m_tof = mPDG only if tof=t_exp
   
   Double_t massOverZ[9] = {0.000511,0.105658,0.139570,0.493677,0.938272,1.875612859,2.808921005,1.404195741,1.863689620};
-    
+  
   Double_t beta2Exp[9];
   Double_t p2Exp[9];
   
   Double_t pExp[9];
   
   Int_t stdFlagPid[9] = {1,2,4,8,16,32,64,128,256};//e,#mu,#pi,K,p,d,t,3He,4He
-
+  
   for(Int_t iS=0;iS<9;iS++) {
-    if(iS==2 || iS==3 || iS==4 || iS==5 || iS==7) {
-      if(charge>0) {
-       if(iS!=7) p2Exp[iS]=pVtx[iS]*fPmeanVsBGcorr[iBconf][iS-2]->Eval(pVtx[iS]/massOverZ[iS]);
-       else p2Exp[iS]=pVtx[iS]*fPmeanVsBGcorr[iBconf][iS-3]->Eval(pVtx[iS]/massOverZ[iS]);
-      }
-      else if(charge<0) {
-       if(iS!=7) p2Exp[iS]=pVtx[iS]*fPmeanVsBGcorr[iBconf][iS+3]->Eval(pVtx[iS]/massOverZ[iS]);
-       else p2Exp[iS]=pVtx[iS]*fPmeanVsBGcorr[iBconf][iS+2]->Eval(pVtx[iS]/massOverZ[iS]);
-      }
+    if(iS>1) {
+      p2Exp[iS]=pVtx[iS]*fPmeanVsBGcorr[iS-2]->Eval(pVtx[iS]/massOverZ[iS],TMath::Abs(eta));
       p2Exp[iS]*=p2Exp[iS];
     }
     else {
@@ -983,7 +1027,7 @@ void AliAnalysisNucleiMass::GetMassFromMeanMom(Double_t beta, Double_t *IntTimes
       }
       p2Exp[iS]=massOverZ[iS]*massOverZ[iS]*beta2Exp[iS]/(1-beta2Exp[iS]);
     }
-    //--------------------for MC corrections
+    
     if(p2Exp[iS]<0) {
       Mass2[iS]=999.9;
       continue;
@@ -994,293 +1038,175 @@ void AliAnalysisNucleiMass::GetMassFromMeanMom(Double_t beta, Double_t *IntTimes
     Mass2[iS]=p2Exp[iS]*(1-beta*beta)/(beta*beta);
     
     //-----------
-    if(TMath::Abs(DCAxy)>DCAxyCut) continue;
-    if(iS==2 || iS==3 || iS==4 || iS==5 || iS==7) {
+    
+    if(iS>1) {
       if((FlagPid & stdFlagPid[iS]) && (FlagPidTof & stdFlagPid[iS])) {
        if(charge>0) {
-         if(iS!=7) prPmeanVsBGcorr[iBconf][iS-2]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
-         else prPmeanVsBGcorr[iBconf][iS-3]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
+         prPmeanVsBGcorr[iBconf][iS-2]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
        }
        else if(charge<0) {
-         if(iS!=7) prPmeanVsBGcorr[iBconf][iS+3]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
-         else prPmeanVsBGcorr[iBconf][iS+2]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
+         prPmeanVsBGcorr[iBconf][iS-2+7]->Fill(pVtx[iS]/massOverZ[iS],pExp[iS]/pVtx[iS]);
        }
       }
     }
-
   }//end loop on the particle species
-  
+    
   return;
   
 }
 //________________________________________________________________________________________
+void AliAnalysisNucleiMass::SetPvtxCorrections(){
+  //for (bar)d
+  fPvtxTrueVsReco[0]=new TF2("fcorr_d","([0]*TMath::Power(x,[1])+[2])*(TMath::Power((TMath::Exp([3]*x)+[4]),[5]*TMath::Power(y,[6])));p_{reco};|#eta|;p_{true}/p_{reco}",0.0001,100,0,1);//for (bar)d
+  fPvtxTrueVsReco[0]->SetParameter(0,0.031263);
+  fPvtxTrueVsReco[0]->SetParameter(1,-3.276770);
+  fPvtxTrueVsReco[0]->SetParameter(2,1.000113);
+  fPvtxTrueVsReco[0]->SetParameter(3,-5.195875);
+  fPvtxTrueVsReco[0]->SetParameter(4,1.000674);
+  fPvtxTrueVsReco[0]->SetParameter(5,2.870503);
+  fPvtxTrueVsReco[0]->SetParameter(6,3.777729);
+  
+  //for (bar)t
+  fPvtxTrueVsReco[1]=new TF2("fcorr_t","([0]*TMath::Power(x,[1])+[2])+[3]*y;p_{reco};|#eta|;p_{true}/p_{reco}",0.0001,100,0,1);//for (bar)He3
+  fPvtxTrueVsReco[1]->SetParameter(0,8.79761e-02);
+  fPvtxTrueVsReco[1]->SetParameter(1,-3.23189e+00);
+  fPvtxTrueVsReco[1]->SetParameter(2,9.99578e-01);
+  fPvtxTrueVsReco[1]->SetParameter(3,0.0);
+  
+  //for (bar)He3
+  fPvtxTrueVsReco[2]=new TF2("fcorr_He","([0]*TMath::Power(x,[1])+[2])*(TMath::Power((TMath::Exp([3]*x)+[4]),[5]*TMath::Power(y,[6])));p_{reco};|#eta|;p_{true}/p_{reco}",0.0001,100,0,1);//for (bar)He3
+  fPvtxTrueVsReco[2]->SetParameter(0,0.037986);
+  fPvtxTrueVsReco[2]->SetParameter(1,-2.707620);
+  fPvtxTrueVsReco[2]->SetParameter(2,1.000742);
+  fPvtxTrueVsReco[2]->SetParameter(3,-4.934743);
+  fPvtxTrueVsReco[2]->SetParameter(4,1.001640);
+  fPvtxTrueVsReco[2]->SetParameter(5,2.744372);
+  fPvtxTrueVsReco[2]->SetParameter(6,3.528561);
+  
+  //for (bar)He4
+  fPvtxTrueVsReco[3]=new TF2("fcorr_He4","([0]*TMath::Power(x,[1])+[2])+[3]*y;p_{reco};|#eta|;p_{true}/p_{reco}",0.0001,100,0,1);//for (bar)He3
+  fPvtxTrueVsReco[3]->SetParameter(0,7.08785e-02);
+  fPvtxTrueVsReco[3]->SetParameter(1,-2.87201e+00);
+  fPvtxTrueVsReco[3]->SetParameter(2,1.00070e+00);
+  fPvtxTrueVsReco[3]->SetParameter(3,0.0);
+  
+  for(Int_t i=0;i<4;i++) {
+    fPvtxTrueVsReco[i]->SetNpx(fPvtxTrueVsReco[i]->GetNpx()*10.0);
+  }
+}
+//________________________________________________________________________________________
 void AliAnalysisNucleiMass::SetPmeanCorrections(){
   
-  //iMtof==8 -> different particle and antiparticle parameterization 
+  Char_t nameTemp[14][200];
+  snprintf(nameTemp[0],200,"#pi^{+}");
+  snprintf(nameTemp[1],200,"K^{+}");
+  snprintf(nameTemp[2],200,"p");
+  snprintf(nameTemp[3],200,"d");
+  snprintf(nameTemp[4],200,"t");
+  snprintf(nameTemp[5],200,"He3");
+  snprintf(nameTemp[6],200,"He4");
+  snprintf(nameTemp[7],200,"#pi^{-}");
+  snprintf(nameTemp[8],200,"K^{-}");
+  snprintf(nameTemp[9],200,"#bar{p}");
+  snprintf(nameTemp[10],200,"#bar{d}");
+  snprintf(nameTemp[11],200,"#bar{t}");
+  snprintf(nameTemp[12],200,"#bar{He3}");
+  snprintf(nameTemp[13],200,"#bar{He4}");
   
-  Double_t pars_fPmeanVsBGcorr[nBconf][10][3];
-  //particle
+  Char_t name_fPmeanVsBGcorr[14][200];
+  for(Int_t i=0;i<14;i++) {
+    snprintf(name_fPmeanVsBGcorr[i],200,"fPmeanVsBGcorr_%s",nameTemp[i]);
+  }
 
-  Double_t etaMin=0.0;
-  Double_t etaMax=0.8;
+  //Pions
+  fPmeanVsBGcorr[0]=new TF2(name_fPmeanVsBGcorr[0],"(x>[5])*([2]-[0]*TMath::Power(x,[1]))*([3]+[4]*y*y)+(x<=[5])*[6]",0.0001,100,0,0.8);
+  fPmeanVsBGcorr[0]->SetParameter(0,-0.179607);
+  fPmeanVsBGcorr[0]->SetParameter(1,-0.384809);
+  fPmeanVsBGcorr[0]->SetParameter(2,0.885534);
+  fPmeanVsBGcorr[0]->SetParameter(3,0.992710);
+  fPmeanVsBGcorr[0]->SetParameter(4,0.011390);
+  fPmeanVsBGcorr[0]->SetParameter(5,3.231000);
+  fPmeanVsBGcorr[0]->SetParameter(6,0.999900);
+  //Kaons
+  fPmeanVsBGcorr[1]=new TF2(name_fPmeanVsBGcorr[1],"(x>[8])*([2]-[0]*TMath::Power(x,[1]))*TMath::Power([3]+[4]*TMath::Exp([5]*x),[6]+[7]*y*y)+(x<=[8])*[9]",0.0001,20,0,0.8);
+  fPmeanVsBGcorr[1]->SetParameter(0,0.033500);
+  fPmeanVsBGcorr[1]->SetParameter(1,-2.461673);
+  fPmeanVsBGcorr[1]->SetParameter(2,0.996501);
+  fPmeanVsBGcorr[1]->SetParameter(3,1.000000);
+  fPmeanVsBGcorr[1]->SetParameter(4,0.089715);
+  fPmeanVsBGcorr[1]->SetParameter(5,-2.473531);
+  fPmeanVsBGcorr[1]->SetParameter(6,1.000000);
+  fPmeanVsBGcorr[1]->SetParameter(7,-1.562500);
+  fPmeanVsBGcorr[1]->SetParameter(8,0.253000);
+  fPmeanVsBGcorr[1]->SetParameter(9,0.009387);
+  
+  //Protons
+  fPmeanVsBGcorr[2]=new TF2(name_fPmeanVsBGcorr[2],"(x>[8])*([2]-[0]*TMath::Power(x,[1]))*TMath::Power([3]+[4]*TMath::Exp([5]*x),[6]+[7]*y*y)+(x<=[8])*[9]",0.0001,20,0,0.8);
+  fPmeanVsBGcorr[2]->SetParameter(0,0.015081);
+  fPmeanVsBGcorr[2]->SetParameter(1,-2.927557);
+  fPmeanVsBGcorr[2]->SetParameter(2,0.997904);
+  fPmeanVsBGcorr[2]->SetParameter(3,1.000000);
+  fPmeanVsBGcorr[2]->SetParameter(4,0.102697);
+  fPmeanVsBGcorr[2]->SetParameter(5,-3.399528);
+  fPmeanVsBGcorr[2]->SetParameter(6,1.000000);
+  fPmeanVsBGcorr[2]->SetParameter(7,-1.562500);
+  fPmeanVsBGcorr[2]->SetParameter(8,0.239000);
+  fPmeanVsBGcorr[2]->SetParameter(9,0.002054);
 
-  if(EtaLimit[0]<0.0 || EtaLimit[1]<0.0) {
-    etaMin=TMath::Abs(EtaLimit[1]);
-    etaMax=TMath::Abs(EtaLimit[0]);
-  }
-  else {
-    etaMin=TMath::Abs(EtaLimit[0]);
-    etaMax=TMath::Abs(EtaLimit[1]);
-  }
+  //Deuterons
+  fPmeanVsBGcorr[3]=new TF2(name_fPmeanVsBGcorr[3],"(x>[8])*([2]-[0]*TMath::Power(x,[1]))*TMath::Power([3]+[4]*TMath::Exp([5]*x),[6]+[7]*y*y)+(x<=[8])*[9]",0.0001,20,0,0.8);
+  fPmeanVsBGcorr[3]->SetParameter(0,0.008672);
+  fPmeanVsBGcorr[3]->SetParameter(1,-2.712343);
+  fPmeanVsBGcorr[3]->SetParameter(2,0.997639);
+  fPmeanVsBGcorr[3]->SetParameter(3,1.000000);
+  fPmeanVsBGcorr[3]->SetParameter(4,0.039627);
+  fPmeanVsBGcorr[3]->SetParameter(5,-2.768122);
+  fPmeanVsBGcorr[3]->SetParameter(6,1.000000);
+  fPmeanVsBGcorr[3]->SetParameter(7,-1.562500);
+  fPmeanVsBGcorr[3]->SetParameter(8,0.174000);
+  fPmeanVsBGcorr[3]->SetParameter(9,0.002189);
 
-  if(etaMin>-0.00001 && etaMax<0.10001) {
-    //printf("EtaLimit[0]== %f and EtaLimit[1]== %fAAA\n",EtaLimit[0],EtaLimit[1]);
-    for(Int_t i=0;i<5;i++) {
-      if(i==0) {//pi
-       pars_fPmeanVsBGcorr[0][i][0]=4.16853e-02; pars_fPmeanVsBGcorr[0][i][1]=-7.67091e-01; pars_fPmeanVsBGcorr[0][i][2]=9.98035e-01;//B--
-       pars_fPmeanVsBGcorr[1][i][0]=5.51380e-02; pars_fPmeanVsBGcorr[1][i][1]=-7.58112e-01; pars_fPmeanVsBGcorr[1][i][2]=1.00360e+00;//B++
-      }
-      else if(i==1) {//K
-       pars_fPmeanVsBGcorr[0][i][0]=2.73697e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.43042e+00; pars_fPmeanVsBGcorr[0][i][2]=9.93148e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=3.19397e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.08037e+00; pars_fPmeanVsBGcorr[1][i][2]=9.98016e-01;
-      }
-      else if(i==2) {//p
-       pars_fPmeanVsBGcorr[0][i][0]=1.35721e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.80958e+00; pars_fPmeanVsBGcorr[0][i][2]=9.93925e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=1.63564e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.55914e+00; pars_fPmeanVsBGcorr[1][i][2]=9.98106e-01;
-      }
-      else if(i==3) {//d
-       pars_fPmeanVsBGcorr[0][i][0]=0.009609; pars_fPmeanVsBGcorr[0][i][1]=-2.534810; pars_fPmeanVsBGcorr[0][i][2]=0.993507;
-       pars_fPmeanVsBGcorr[1][i][0]=0.011580; pars_fPmeanVsBGcorr[1][i][1]=-2.308857; pars_fPmeanVsBGcorr[1][i][2]=0.998126;
-      }
-      else if(i==4) {//He3
-       pars_fPmeanVsBGcorr[0][i][0]=0.026420; pars_fPmeanVsBGcorr[0][i][1]=-2.253066; pars_fPmeanVsBGcorr[0][i][2]=0.993507;
-       pars_fPmeanVsBGcorr[1][i][0]=0.031840; pars_fPmeanVsBGcorr[1][i][1]=-2.052228; pars_fPmeanVsBGcorr[1][i][2]=0.998126;
-      }
-    }
-  }
-  else if(etaMin>0.09999 && etaMax<0.20001) {
-    //printf("EtaLimit[0]== %f and EtaLimit[1]== %fBBB\n",EtaLimit[0],EtaLimit[1]);
-    for(Int_t i=0;i<5;i++) {
-      if(i==0) {//pi
-       pars_fPmeanVsBGcorr[0][i][0]=4.98872e-02; pars_fPmeanVsBGcorr[0][i][1]=-3.56884e-01; pars_fPmeanVsBGcorr[0][i][2]=1.01356e+00;
-       pars_fPmeanVsBGcorr[1][i][0]=6.11287e-02; pars_fPmeanVsBGcorr[1][i][1]=-3.65072e-01; pars_fPmeanVsBGcorr[1][i][2]=1.02074e+00;
-      }
-      else if(i==1) {//K
-       pars_fPmeanVsBGcorr[0][i][0]=2.85027e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.04376e+00; pars_fPmeanVsBGcorr[0][i][2]=9.94804e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=3.30937e-02; pars_fPmeanVsBGcorr[1][i][1]=-1.72959e+00; pars_fPmeanVsBGcorr[1][i][2]=9.99966e-01;
-      }
-      else if(i==2) {//p
-       pars_fPmeanVsBGcorr[0][i][0]=1.38640e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.71621e+00; pars_fPmeanVsBGcorr[0][i][2]=9.94151e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=1.74869e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.38269e+00; pars_fPmeanVsBGcorr[1][i][2]=9.98776e-01;
-      }
-      else if(i==3) {//d
-       pars_fPmeanVsBGcorr[0][i][0]=0.009816; pars_fPmeanVsBGcorr[0][i][1]=-2.450567; pars_fPmeanVsBGcorr[0][i][2]=0.994465;
-       pars_fPmeanVsBGcorr[1][i][0]=0.012381; pars_fPmeanVsBGcorr[1][i][1]=-2.149671; pars_fPmeanVsBGcorr[1][i][2]=0.999302;
-      }
-      else if(i==4) {//He3
-       pars_fPmeanVsBGcorr[0][i][0]=0.026988; pars_fPmeanVsBGcorr[0][i][1]=-2.178186; pars_fPmeanVsBGcorr[0][i][2]=0.994465;
-       pars_fPmeanVsBGcorr[1][i][0]=0.034041; pars_fPmeanVsBGcorr[1][i][1]=-1.910736; pars_fPmeanVsBGcorr[1][i][2]=0.999302;
-      }
-    }
-  }
-  else if(etaMin>0.19999 && etaMax<0.30001) {
-    //printf("EtaLimit[0]== %f and EtaLimit[1]== %fCCC\n",EtaLimit[0],EtaLimit[1]);
-    for(Int_t i=0;i<5;i++) {
-      if(i==0) {//pi
-       pars_fPmeanVsBGcorr[0][i][0]=4.71844e-02; pars_fPmeanVsBGcorr[0][i][1]=-6.24048e-01; pars_fPmeanVsBGcorr[0][i][2]=1.00525e+00;
-       pars_fPmeanVsBGcorr[1][i][0]=5.45281e-02; pars_fPmeanVsBGcorr[1][i][1]=-5.87331e-01; pars_fPmeanVsBGcorr[1][i][2]=1.01029e+00;
-      }
-      else if(i==1) {//K
-       pars_fPmeanVsBGcorr[0][i][0]=2.92060e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.15537e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97130e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=3.24550e-02; pars_fPmeanVsBGcorr[1][i][1]=-1.97289e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00059e+00;
-      }
-      else if(i==2) {//p
-       pars_fPmeanVsBGcorr[0][i][0]=1.33594e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.86707e+00; pars_fPmeanVsBGcorr[0][i][2]=9.96053e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=1.57187e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.62957e+00; pars_fPmeanVsBGcorr[1][i][2]=9.99431e-01;
-      }
-      else if(i==3) {//d
-       pars_fPmeanVsBGcorr[0][i][0]=0.009458; pars_fPmeanVsBGcorr[0][i][1]=-2.586677; pars_fPmeanVsBGcorr[0][i][2]=0.996592;
-       pars_fPmeanVsBGcorr[1][i][0]=0.011129; pars_fPmeanVsBGcorr[1][i][1]=-2.372404; pars_fPmeanVsBGcorr[1][i][2]=1.000024;
-      }
-      else if(i==4) {//He3
-       pars_fPmeanVsBGcorr[0][i][0]=0.026006; pars_fPmeanVsBGcorr[0][i][1]=-2.299168; pars_fPmeanVsBGcorr[0][i][2]=0.996592;
-       pars_fPmeanVsBGcorr[1][i][0]=0.030599; pars_fPmeanVsBGcorr[1][i][1]=-2.108711; pars_fPmeanVsBGcorr[1][i][2]=1.000024;
-      }
-    }
-  }
-  else if(etaMin>0.29999 && etaMax<0.40001) {
-    //printf("EtaLimit[0]== %f and EtaLimit[1]== %fDDD\n",EtaLimit[0],EtaLimit[1]);
-    for(Int_t i=0;i<5;i++) {
-      if(i==0) {//pi
-       pars_fPmeanVsBGcorr[0][i][0]=5.25262e-02; pars_fPmeanVsBGcorr[0][i][1]=-3.04325e-01; pars_fPmeanVsBGcorr[0][i][2]=1.02056e+00;
-       pars_fPmeanVsBGcorr[1][i][0]=5.70585e-02; pars_fPmeanVsBGcorr[1][i][1]=-5.95375e-01; pars_fPmeanVsBGcorr[1][i][2]=1.01130e+00;
-      }
-      else if(i==1) {//K
-       pars_fPmeanVsBGcorr[0][i][0]=2.96035e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.17931e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97539e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=3.35067e-02; pars_fPmeanVsBGcorr[1][i][1]=-1.99656e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00128e+00;
-      }
-      else if(i==2) {//p
-       pars_fPmeanVsBGcorr[0][i][0]=1.44529e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.77844e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97130e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=1.68180e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.56489e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00070e+00;
-      }
-      else if(i==3) {//d
-       pars_fPmeanVsBGcorr[0][i][0]=0.010233; pars_fPmeanVsBGcorr[0][i][1]=-2.506714; pars_fPmeanVsBGcorr[0][i][2]=0.997341;
-       pars_fPmeanVsBGcorr[1][i][0]=0.011907; pars_fPmeanVsBGcorr[1][i][1]=-2.314052; pars_fPmeanVsBGcorr[1][i][2]=1.001048;
-      }
-      else if(i==4) {//He3
-       pars_fPmeanVsBGcorr[0][i][0]=0.028135; pars_fPmeanVsBGcorr[0][i][1]=-2.228093; pars_fPmeanVsBGcorr[0][i][2]=0.997341;
-       pars_fPmeanVsBGcorr[1][i][0]=0.032739; pars_fPmeanVsBGcorr[1][i][1]=-2.056845; pars_fPmeanVsBGcorr[1][i][2]=1.001048;
-      }
-    }
-  }
-  else if(etaMin>0.39999 && etaMax<0.50001) {
-    //printf("EtaLimit[0]== %f and EtaLimit[1]== %fEEE\n",EtaLimit[0],EtaLimit[1]);
-    for(Int_t i=0;i<5;i++) {
-      if(i==0) {//pi
-       pars_fPmeanVsBGcorr[0][i][0]=5.72833e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.51868e-01; pars_fPmeanVsBGcorr[0][i][2]=1.02665e+00;
-       pars_fPmeanVsBGcorr[1][i][0]=6.59446e-02; pars_fPmeanVsBGcorr[1][i][1]=-9.09587e-01; pars_fPmeanVsBGcorr[1][i][2]=1.00472e+00;
-      }
-      else if(i==1) {//K
-       pars_fPmeanVsBGcorr[0][i][0]=3.00754e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.18175e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97758e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=3.36764e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.08206e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00094e+00;
-      }
-      else if(i==2) {//p
-       pars_fPmeanVsBGcorr[0][i][0]=1.54832e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.70549e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97921e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=1.75353e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.52898e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00121e+00;
-      }
-      else if(i==3) {//d
-       pars_fPmeanVsBGcorr[0][i][0]=0.010962; pars_fPmeanVsBGcorr[0][i][1]=-2.440895; pars_fPmeanVsBGcorr[0][i][2]=0.997846;
-       pars_fPmeanVsBGcorr[1][i][0]=0.012415; pars_fPmeanVsBGcorr[1][i][1]=-2.281648; pars_fPmeanVsBGcorr[1][i][2]=1.001189;
-      }
-      else if(i==4) {//He3
-       pars_fPmeanVsBGcorr[0][i][0]=0.030140; pars_fPmeanVsBGcorr[0][i][1]=-2.169590; pars_fPmeanVsBGcorr[0][i][2]=0.997846;
-       pars_fPmeanVsBGcorr[1][i][0]=0.034135; pars_fPmeanVsBGcorr[1][i][1]=-2.028043; pars_fPmeanVsBGcorr[1][i][2]=1.001189;
-      }
-    }
-  }
-  else if(etaMin>0.49999 && etaMax<0.60001) {
-    //printf("EtaLimit[0]== %f and EtaLimit[1]== %fFFF\n",EtaLimit[0],EtaLimit[1]);
-    for(Int_t i=0;i<5;i++) {
-      if(i==0) {//pi
-       pars_fPmeanVsBGcorr[0][i][0]=5.29436e-02; pars_fPmeanVsBGcorr[0][i][1]=-5.04070e-01; pars_fPmeanVsBGcorr[0][i][2]=1.00951e+00;
-       pars_fPmeanVsBGcorr[1][i][0]=1.04356e-01; pars_fPmeanVsBGcorr[1][i][1]=-1.19297e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00197e+00;
-      }
-      else if(i==1) {//K
-       pars_fPmeanVsBGcorr[0][i][0]=3.36237e-02; pars_fPmeanVsBGcorr[0][i][1]=-1.89739e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97921e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=3.76386e-02; pars_fPmeanVsBGcorr[1][i][1]=-1.89484e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00097e+00;
-      }
-      else if(i==2) {//p
-       pars_fPmeanVsBGcorr[0][i][0]=1.93889e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.38744e+00; pars_fPmeanVsBGcorr[0][i][2]=9.98551e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=2.12666e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.29606e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00174e+00;
-      }
-      else if(i==3) {//d
-       pars_fPmeanVsBGcorr[0][i][0]=0.013727; pars_fPmeanVsBGcorr[0][i][1]=-2.153951; pars_fPmeanVsBGcorr[0][i][2]=0.998275;
-       pars_fPmeanVsBGcorr[1][i][0]=0.015057; pars_fPmeanVsBGcorr[1][i][1]=-2.071511; pars_fPmeanVsBGcorr[1][i][2]=1.001396;
-      }
-      else if(i==4) {//He3
-       pars_fPmeanVsBGcorr[0][i][0]=0.037743; pars_fPmeanVsBGcorr[0][i][1]=-1.914539; pars_fPmeanVsBGcorr[0][i][2]=0.998275;
-       pars_fPmeanVsBGcorr[1][i][0]=0.041398; pars_fPmeanVsBGcorr[1][i][1]=-1.841262; pars_fPmeanVsBGcorr[1][i][2]=1.001396;
-      }
-    }
-  }
-  else if(etaMin>0.59999 && etaMax<0.70001) {
-    //printf("EtaLimit[0]== %f and EtaLimit[1]== %fGGG\n",EtaLimit[0],EtaLimit[1]);
-    for(Int_t i=0;i<5;i++) {
-      if(i==0) {//pi
-       pars_fPmeanVsBGcorr[0][i][0]=7.18462e-02; pars_fPmeanVsBGcorr[0][i][1]=-1.15676e+00; pars_fPmeanVsBGcorr[0][i][2]=9.99111e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=8.52428e-02; pars_fPmeanVsBGcorr[1][i][1]=-9.11048e-01; pars_fPmeanVsBGcorr[1][i][2]=1.00777e+00;
-      }
-      else if(i==1) {//K
-       pars_fPmeanVsBGcorr[0][i][0]=3.32328e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.30015e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97683e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=3.88555e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.18109e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00130e+00;
-      }
-      else if(i==2) {//p
-       pars_fPmeanVsBGcorr[0][i][0]=1.71488e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.73349e+00; pars_fPmeanVsBGcorr[0][i][2]=9.98517e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=1.89105e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.65564e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00159e+00;
-      }
-      else if(i==3) {//d
-       pars_fPmeanVsBGcorr[0][i][0]=0.012141; pars_fPmeanVsBGcorr[0][i][1]=-2.466162; pars_fPmeanVsBGcorr[0][i][2]=0.998125;
-       pars_fPmeanVsBGcorr[1][i][0]=0.013389; pars_fPmeanVsBGcorr[1][i][1]=-2.395927; pars_fPmeanVsBGcorr[1][i][2]=1.001633;
-      }
-      else if(i==4) {//He3
-       pars_fPmeanVsBGcorr[0][i][0]=0.033383; pars_fPmeanVsBGcorr[0][i][1]=-2.192048; pars_fPmeanVsBGcorr[0][i][2]=0.998125;
-       pars_fPmeanVsBGcorr[1][i][0]=0.036812; pars_fPmeanVsBGcorr[1][i][1]=-2.129620; pars_fPmeanVsBGcorr[1][i][2]=1.001633;
-      }
-    }
-  }
-  else if(etaMin>0.69999 && etaMax<0.80001) {
-    //printf("EtaLimit[0]== %f and EtaLimit[1]== %fHHH\n",EtaLimit[0],EtaLimit[1]);
-    for(Int_t i=0;i<5;i++) {
-      if(i==0) {//pi
-       pars_fPmeanVsBGcorr[0][i][0]=9.56419e-02; pars_fPmeanVsBGcorr[0][i][1]=-1.31941e+00; pars_fPmeanVsBGcorr[0][i][2]=9.98375e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=8.30340e-02; pars_fPmeanVsBGcorr[1][i][1]=-4.46775e-01; pars_fPmeanVsBGcorr[1][i][2]=1.02721e+00;
-      }
-      else if(i==1) {//K
-       pars_fPmeanVsBGcorr[0][i][0]=3.55532e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.25782e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97746e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=4.26998e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.10431e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00185e+00;
-      }
-      else if(i==2) {//p
-       pars_fPmeanVsBGcorr[0][i][0]=1.87103e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.65814e+00; pars_fPmeanVsBGcorr[0][i][2]=9.98847e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=2.07010e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.60124e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00210e+00;
-      }
-      else if(i==3) {//d
-       pars_fPmeanVsBGcorr[0][i][0]=0.013247; pars_fPmeanVsBGcorr[0][i][1]=-2.398177; pars_fPmeanVsBGcorr[0][i][2]=0.998269;
-       pars_fPmeanVsBGcorr[1][i][0]=0.014656; pars_fPmeanVsBGcorr[1][i][1]=-2.346847; pars_fPmeanVsBGcorr[1][i][2]=1.002033;
-      }
-      else if(i==4) {//He3
-       pars_fPmeanVsBGcorr[0][i][0]=0.036422; pars_fPmeanVsBGcorr[0][i][1]=-2.131620; pars_fPmeanVsBGcorr[0][i][2]=0.998269;
-       pars_fPmeanVsBGcorr[1][i][0]=0.040298; pars_fPmeanVsBGcorr[1][i][1]=-2.085995; pars_fPmeanVsBGcorr[1][i][2]=1.002033;
-      }
-    }
-  }
-  else {//for all eta
-    //printf("EtaLimit[0]== %f and EtaLimit[1]== %fIII\n",EtaLimit[0],EtaLimit[1]);
-    for(Int_t i=0;i<5;i++) {
-      if(i==0) {//pi
-       pars_fPmeanVsBGcorr[0][i][0]=4.89956e-02; pars_fPmeanVsBGcorr[0][i][1]=-6.46308e-01; pars_fPmeanVsBGcorr[0][i][2]=1.00462e+00;
-       pars_fPmeanVsBGcorr[1][i][0]=6.36672e-02; pars_fPmeanVsBGcorr[1][i][1]=-6.10966e-01; pars_fPmeanVsBGcorr[1][i][2]=1.01188e+00;
-      }
-      else if(i==1) {//K
-       pars_fPmeanVsBGcorr[0][i][0]=3.06216e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.10247e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97142e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=3.48865e-02; pars_fPmeanVsBGcorr[1][i][1]=-1.89213e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00123e+00;
-      }
-      else if(i==2) {//p
-       pars_fPmeanVsBGcorr[0][i][0]=1.58652e-02; pars_fPmeanVsBGcorr[0][i][1]=-2.64898e+00; pars_fPmeanVsBGcorr[0][i][2]=9.97176e-01;
-       pars_fPmeanVsBGcorr[1][i][0]=1.83264e-02; pars_fPmeanVsBGcorr[1][i][1]=-2.45858e+00; pars_fPmeanVsBGcorr[1][i][2]=1.00079e+00;
-      }
-      else if(i==3) {//d
-       pars_fPmeanVsBGcorr[0][i][0]=0.011233; pars_fPmeanVsBGcorr[0][i][1]=-2.389911; pars_fPmeanVsBGcorr[0][i][2]=0.997176;//0.997210
-       pars_fPmeanVsBGcorr[1][i][0]=0.012975; pars_fPmeanVsBGcorr[1][i][1]=-2.218137; pars_fPmeanVsBGcorr[1][i][2]=1.001091;
-      }
-      else if(i==4) {//He3
-       pars_fPmeanVsBGcorr[0][i][0]=0.030884; pars_fPmeanVsBGcorr[0][i][1]=-2.124273; pars_fPmeanVsBGcorr[0][i][2]=0.997176;//0.997210
-       pars_fPmeanVsBGcorr[1][i][0]=0.035675; pars_fPmeanVsBGcorr[1][i][1]=-1.971591; pars_fPmeanVsBGcorr[1][i][2]=1.001091;
-      }
-    }
-  }
+  //Triton
+  fPmeanVsBGcorr[4]=new TF2(name_fPmeanVsBGcorr[4],"(x>[4])*([2]-[0]*TMath::Power(x,[1])+[3]*y)+(x<=[4])*[5]",0.0001,20,0,0.8);
+  fPmeanVsBGcorr[4]->SetParameter(0,6.79641e-03);
+  fPmeanVsBGcorr[4]->SetParameter(1,-1.92801e+00);
+  fPmeanVsBGcorr[4]->SetParameter(2,1.000000);
+  fPmeanVsBGcorr[4]->SetParameter(3,0.0);
+  fPmeanVsBGcorr[4]->SetParameter(4,0.076);
+  fPmeanVsBGcorr[4]->SetParameter(5,2.25779e-02);
 
-  /*
-  for(Int_t iB=0;iB<nBconf;iB++) {
-    for(Int_t i=0;i<5;i++) {
-      pars_fPmeanVsBGcorr[iB][i][0]=0.02; pars_fPmeanVsBGcorr[iB][i][1]=-2.0; pars_fPmeanVsBGcorr[iB][i][2]=1.0;
-    }
-    }*/
+  //Helium-3
+  fPmeanVsBGcorr[5]=new TF2(name_fPmeanVsBGcorr[5],"(x>[8])*([2]-[0]*TMath::Power(x,[1]))*TMath::Power([3]+[4]*TMath::Exp([5]*x),[6]+[7]*y*y)+(x<=[8])*[9]",0.0001,20,0,0.8);
+  fPmeanVsBGcorr[5]->SetParameter(0,0.024339);
+  fPmeanVsBGcorr[5]->SetParameter(1,-2.922613);
+  fPmeanVsBGcorr[5]->SetParameter(2,0.993761);
+  fPmeanVsBGcorr[5]->SetParameter(3,1.000000);
+  fPmeanVsBGcorr[5]->SetParameter(4,1.087549);
+  fPmeanVsBGcorr[5]->SetParameter(5,-6.216154);
+  fPmeanVsBGcorr[5]->SetParameter(6,1.000000);
+  fPmeanVsBGcorr[5]->SetParameter(7,-1.562500);
+  fPmeanVsBGcorr[5]->SetParameter(8,0.282000);
+  fPmeanVsBGcorr[5]->SetParameter(9,0.009711);
 
-  for(Int_t iB=0;iB<nBconf;iB++) {
-    for(Int_t i=5;i<10;i++) {
-      pars_fPmeanVsBGcorr[iB][i][0]=pars_fPmeanVsBGcorr[iB][i-5][0];
-      pars_fPmeanVsBGcorr[iB][i][1]=pars_fPmeanVsBGcorr[iB][i-5][1];
-      pars_fPmeanVsBGcorr[iB][i][2]=pars_fPmeanVsBGcorr[iB][i-5][2];
-    }
-  }
+  //Helium-4
+  fPmeanVsBGcorr[6]=new TF2(name_fPmeanVsBGcorr[6],"(x>[4])*([2]-[0]*TMath::Power(x,[1])+[3]*y)+(x<=[4])*[5]",0.0001,20,0,0.8);
+  fPmeanVsBGcorr[6]->SetParameter(0,2.34185e-02);
+  fPmeanVsBGcorr[6]->SetParameter(1,-2.31200e+00);
+  fPmeanVsBGcorr[6]->SetParameter(2,1.000000);
+  fPmeanVsBGcorr[6]->SetParameter(3,0.0);
+  fPmeanVsBGcorr[6]->SetParameter(4,0.198);
+  fPmeanVsBGcorr[6]->SetParameter(5,9.9226e-03);
 
-  for(Int_t iB=0;iB<nBconf;iB++) {
-    for(Int_t i=0;i<10;i++) {
-      fPmeanVsBGcorr[iB][i]->SetParameters(pars_fPmeanVsBGcorr[iB][i]);
-      fPmeanVsBGcorr[iB][i]->SetNpx(fPmeanVsBGcorr[iB][i]->GetNpx()*10);
-    }
+  for(Int_t i=7;i<14;i++) {
+    fPmeanVsBGcorr[i]=(TF2 *)fPmeanVsBGcorr[i-7]->Clone();
+    fPmeanVsBGcorr[i]->SetName(name_fPmeanVsBGcorr[i]);
   }
     
+  for(Int_t i=0;i<14;i++) {
+    fPmeanVsBGcorr[i]->SetNpx(fPmeanVsBGcorr[i]->GetNpx()*100.0);
+  }
+
   return;
   
 }