diff --git a/Projects/ana_e850/macro/Mass/FillHistoMass.C b/Projects/ana_e850/macro/Mass/FillHistoMass.C
index 2fb7782a7c1eb0476312184c7af8c2c95f6492a5..7f786b24f56a7f59ce3d7b2111ab9b1be14ce74c 100644
--- a/Projects/ana_e850/macro/Mass/FillHistoMass.C
+++ b/Projects/ana_e850/macro/Mass/FillHistoMass.C
@@ -20,7 +20,7 @@ void FillHistoMass(string part="part1"){
     chain->Add("../../root/analysis/run_28.root");
     chain->Add("../../root/analysis/run_29.root");
     chain->Add("../../root/analysis/run_30.root");
-    chain->Add("../../root/analysis/run_31.root");
+    //chain->Add("../../root/analysis/run_31.root");
     chain->Add("../../root/analysis/run_32.root");
     chain->Add("../../root/analysis/run_36.root");
     chain->Add("../../root/analysis/run_37.root");
diff --git a/Projects/ana_e850/macro/Mass/FitMass.C b/Projects/ana_e850/macro/Mass/FitMass.C
index 8df3169fa8b897f39f65b0057c7f2360aee13259..40f662ca1900c13cda3a19c4548dc438a293bb46 100644
--- a/Projects/ana_e850/macro/Mass/FitMass.C
+++ b/Projects/ana_e850/macro/Mass/FitMass.C
@@ -61,7 +61,7 @@ void Fit(TH1F* hmass,string Energy){
     }
  
     g[i]->SetParLimits(1,A-0.1,A+0.1);
-    g[i]->SetParLimits(2,0.25,0.4);
+    g[i]->SetParLimits(2,0.25,0.37);
 
    
     hmass->Fit(g[i],"qBR");
@@ -88,10 +88,11 @@ void Fit(TH1F* hmass,string Energy){
     total->SetParameter(3*i+1,g[i]->GetParameter(1));
     total->SetParameter(3*i+2,g[i]->GetParameter(2));
     total->SetParLimits(3*i+1,A-0.2,A+0.2);
-    total->SetParLimits(3*i+2,g[i]->GetParameter(2)*0.8,g[i]->GetParameter(2)*1.1);
+    total->SetParLimits(3*i+2,g[i]->GetParameter(2)*0.85,g[i]->GetParameter(2)*1.01);
     A++;
   }
   total->SetLineColor(4);
+  total->SetNpx(1000);
 
   hmass->Fit(total,"RBq");
 
@@ -105,6 +106,13 @@ void Fit(TH1F* hmass,string Energy){
     double Amplitude_err = total->GetParError(3*i);
     double mean_err = total->GetParError(3*i+1);
     double sigma_err = total->GetParError(3*i+2);
+ 
+    /*double Amplitude = g[i]->GetParameter(0);
+    double mean = g[i]->GetParameter(1);
+    double sigma = g[i]->GetParameter(2);
+    double Amplitude_err = g[i]->GetParError(0);
+    double mean_err = g[i]->GetParError(1);
+    double sigma_err = g[i]->GetParError(2);*/
     
     //one_gauss->SetParameter(0,Amplitude);
     //one_gauss->SetParameter(1,mean);
diff --git a/Projects/ana_e850/macro/Mass/GetTotalYield.C b/Projects/ana_e850/macro/Mass/GetTotalYield.C
index 63ce3e31b44fc8d1ce2fbf7dee15009fcd6dfbb1..c580bca06e3befc52cafba208d2cf1817005bc96 100644
--- a/Projects/ana_e850/macro/Mass/GetTotalYield.C
+++ b/Projects/ana_e850/macro/Mass/GetTotalYield.C
@@ -48,7 +48,7 @@ void Fit(TH1F* hmass){
   for(int i=0; i<NumberOfA; i++){
     g[i] = new TF1(Form("g%i",i),"gaus",A-0.4,A+0.4);   
     if(i==0){
-      g[i]->SetParameter(0,100);
+      g[i]->SetParameter(0,200);
       g[i]->SetParameter(1,Amin);
       g[i]->SetParameter(2,0.3);
     }
@@ -62,7 +62,7 @@ void Fit(TH1F* hmass){
 
     }
 
-    hmass->Fit(g[i],"qBR");
+    hmass->Fit(g[i],"qBR+");
 
     g[i]->Draw("lsame");
     g[i]->GetParameters(&para[3*i]);
@@ -77,7 +77,7 @@ void Fit(TH1F* hmass){
     total_func += "+" + gaus_func;
   }
 
-  TF1* total = new TF1("total",total_func,Amin-0.5, Amin+NumberOfA-0.5);
+  TF1* total = new TF1("total",total_func,Amin-0.5, Amin+NumberOfA);
   total->SetParameters(para);
   A = Amin;
   for(int i=0; i<NumberOfA; i++){
@@ -85,14 +85,22 @@ void Fit(TH1F* hmass){
     total->SetParameter(3*i+1,g[i]->GetParameter(1));
     total->SetParameter(3*i+2,g[i]->GetParameter(2));
 
+    //cout << A << " " << g[i]->GetParameter(1) << endl;
     total->SetParLimits(3*i+1,A-0.2,A+0.2);
     total->SetParLimits(3*i+2,g[i]->GetParameter(2)*0.85,g[i]->GetParameter(2)*1.15);
     A++;
   }
   total->SetLineColor(4);
+  total->SetNpx(1000);
 
-  hmass->Fit(total,"qR");
+  TFitResultPtr fit_result_total = hmass->Fit(total,"qBRS");
 
+  TMatrixD cov = fit_result_total->GetCovarianceMatrix();
+  cov.Print();
+
+
+  total->Draw("same");
+    
   A = Amin;
   for(int i=0; i<NumberOfA; i++){
 
@@ -102,10 +110,10 @@ void Fit(TH1F* hmass){
     double Amplitude_err = total->GetParError(3*i);
     double sigma_err = total->GetParError(3*i+2);
 
-    cout << "A=  " << A << endl;
+    /*cout << "A=  " << A << endl;
     cout << "Amplitude= " << Amplitude << " / " << g[i]->GetParameter(0) << endl;
     cout << "Mean= " << mean << " / " << g[i]->GetParameter(1) << endl;
-    cout << "Sigma= " << sigma << " / " << g[i]->GetParameter(2) << endl;
+    cout << "Sigma= " << sigma << " / " << g[i]->GetParameter(2) << endl;*/
 
 
     Integral[i] = (12.5/rebin)*Amplitude*sigma*sqrt(2*TMath::Pi());
diff --git a/Projects/ana_e850/macro/Mass/PlotYieldEvolution.C b/Projects/ana_e850/macro/Mass/PlotYieldEvolution.C
index 41c25a808db0347916d8700374c7a0c301e294c9..9b27123255383726c246fe26a16ffbd13cec2b38 100644
--- a/Projects/ana_e850/macro/Mass/PlotYieldEvolution.C
+++ b/Projects/ana_e850/macro/Mass/PlotYieldEvolution.C
@@ -1,4 +1,7 @@
-void PlotYieldEvolution(int A_asked=99){
+TGraphErrors* GetGoodenYield(int A);
+
+//////////////////////////////////////////////////
+void PlotYieldEvolution(int A_asked=132){
   int Energy[11] = {6,7,8,9,10,11,12,13,14,15,16};
   TGraphErrors* gevol = new TGraphErrors();
   TGraphErrors* g_relative = new TGraphErrors();
@@ -14,7 +17,7 @@ void PlotYieldEvolution(int A_asked=99){
     double Sn = 6.534;
     while(ifile>>A>>yield>>yield_err){
       if(A==A_asked){
-        gevol->SetPoint(i,Energy[i]-Sn,yield);
+        gevol->SetPoint(i,Energy[i]-Sn,1.*yield);
         gevol->SetPointError(i,0,yield_err);
 
         g_relative->SetPoint(i,Energy[i]-5.5,yield_err/yield);
@@ -22,7 +25,7 @@ void PlotYieldEvolution(int A_asked=99){
     }
   }
 
-  TH2F* h2 = new TH2F("h2","h2",100,-1,10,100,1,8);
+  TH2F* h2 = new TH2F("h2","h2",100,-1,10,100,1,10);
   TCanvas* c1 = new TCanvas("c1","c1",800,1600);
   c1->Divide(1,2);
   c1->cd(1);
@@ -30,7 +33,36 @@ void PlotYieldEvolution(int A_asked=99){
   gevol->SetMarkerSize(1);
   h2->Draw();
   gevol->Draw("psame");
+  if(A_asked==140 || A_asked==97 || A_asked==99 || A_asked==147 || A_asked==132 || A_asked==143){
+    TGraphErrors* ggooden = GetGoodenYield(A_asked);
+    ggooden->Draw("psame");
+  }
   c1->cd(2);
   g_relative->SetMarkerStyle(8);
   g_relative->Draw("ap");
+
+
+}
+
+
+//////////////////////////////////////////////////
+TGraphErrors* GetGoodenYield(int A){
+  string filename = "gooden/mass_" + to_string(A) + ".dat";
+  ifstream ifile;
+  ifile.open(filename.c_str());
+
+  double En;
+  double Y;
+  double Yerr;
+  TGraphErrors* gerr = new TGraphErrors();
+  for(int i=0; i<8; i++){
+    ifile>>En>>Y>>Yerr;
+    gerr->SetPoint(i,En,Y);
+    gerr->SetPointError(i,0,Yerr);
+  }
+
+  gerr->SetMarkerStyle(22);
+  gerr->SetMarkerColor(2);
+  return gerr;
+
 }