diff --git a/Projects/s455/Analysis.cxx b/Projects/s455/Analysis.cxx
index 54da2c1e14c5604caa0d8b819d13f8ca96609ff9..20a36c55c203f63578b8de130506825caa3bdbe3 100644
--- a/Projects/s455/Analysis.cxx
+++ b/Projects/s455/Analysis.cxx
@@ -62,6 +62,8 @@ struct TofPair
   double x1 = -1000;
   double x2 = -1000;
   double x3 = -1000;
+  double y1 = -1000;
+  double y2 = -1000;
   double y3 = -1000;
   double x3lab = 0;
   double z3lab = 0;
@@ -354,6 +356,11 @@ void Analysis::FissionFragmentAnalysis(int which_cathode){
       TofHit[iright].x1 = X1[0];
     }
   }
+  if(Y1.size()==1){
+    TofHit[0].y1 = Y1[0];
+    TofHit[1].y1 = Y1[0];
+  }
+
 
   if(X2.size()==2){
     if(X2[0]>X2[1]){
@@ -365,6 +372,11 @@ void Analysis::FissionFragmentAnalysis(int which_cathode){
       TofHit[iright].x2 = X2[0];
     }
   }
+  if(Y2.size()==1){
+    TofHit[0].y2 = Y2[0];
+    TofHit[1].y2 = Y2[0];
+  }
+
 
 
 
@@ -619,7 +631,7 @@ void Analysis::FissionFragmentAnalysis(int which_cathode){
         }
       }
 
-  
+
       double ATToG = fDistanceStartToG - fDistancePlasticToCathode[which_cathode-1];
       double ATToA = fDistanceStartToA - fDistancePlasticToCathode[which_cathode-1];
       double GToTof = (fDistanceGToMW3 + fDistanceMW3ToToF) * cos(20*deg);
@@ -644,12 +656,12 @@ void Analysis::FissionFragmentAnalysis(int which_cathode){
       double ZD = 0;
       double MagB = m_GladField->GetB()/1000;
       for(int i=0; i<2; i++){
-       XA = TofHit[i].DT;
-       YA = (ATToA/Zdistance)*TofHit[i].y;
-       TofHit[i].phi_in = atan(TofHit[i].y/Zdistance);
-      
-       if(XA != -1e6 && SofBeamID->GetBeta()>0){
-     
+        XA = TofHit[i].DT;
+        YA = (ATToA/Zdistance)*TofHit[i].y;
+        TofHit[i].phi_in = atan(TofHit[i].y/Zdistance);
+
+        if(XA != -1e6 && SofBeamID->GetBeta()>0){
+
           TVector3 vG = TVector3(0,0,ZG);
           TVector3 vA = TVector3(XA,YA,ZA);
           // *** Extroplate to C position *** //
@@ -661,9 +673,9 @@ void Analysis::FissionFragmentAnalysis(int which_cathode){
           TofHit[i].zc = ZC;
 
           /*int ix, iy;
-          ix = (int)(TofHit[0].xc - m_GladField->GetXmin())/m_GladField->GetBin();
-          iy = (int)(TofHit[0].yc - m_GladField->GetYmin())/m_GladField->GetBin();
-          TofHit[i].Leff = m_GladField->GetLeff(ix,iy);*/
+            ix = (int)(TofHit[0].xc - m_GladField->GetXmin())/m_GladField->GetBin();
+            iy = (int)(TofHit[0].yc - m_GladField->GetYmin())/m_GladField->GetBin();
+            TofHit[i].Leff = m_GladField->GetLeff(ix,iy);*/
 
           X3lab = TofHit[i].x3*cos(Theta0) + XMW3;
           Z3lab = TofHit[i].x3*sin(Theta0) + ZMW3;
@@ -676,8 +688,8 @@ void Analysis::FissionFragmentAnalysis(int which_cathode){
           TofHit[i].theta_out = angle;
           TofHit[i].psi = TofHit[i].theta_in - TofHit[i].theta_out;
           TofHit[i].rho = TofHit[i].Leff/(2*sin(0.5*TofHit[i].psi)*cos(Tilt-0.5*TofHit[i].psi));
-          //TofHit[i].Brho = MagB*TofHit[i].rho;
-          TofHit[i].Brho = m_GladField->FindBrho(vA,dir,vE);
+          TofHit[i].Brho = MagB*TofHit[i].rho;
+          //TofHit[i].Brho = m_GladField->FindBrho(vA,dir,vE);
 
 
           // *** Extrapolate to B position *** //
@@ -712,10 +724,10 @@ void Analysis::FissionFragmentAnalysis(int which_cathode){
           double Path1 = v1.Mag();
           double Path2 = TofHit[i].rho*TofHit[i].omega;
           double Path3 = v3.Mag();
-          
+
           double delta_theta = TofHit[i].theta_out - m_GladField->GetCentralTheta();
-          //double PathLength = Path1 + Path2 + Path3 + fDistanceMW3ToToF/cos(delta_theta);
-          double PathLength = m_GladField->GetFlightPath(vStart, TofHit[i].Brho, vA, dir) + fDistanceMW3ToToF/cos(delta_theta);
+          double PathLength = Path1 + Path2 + Path3 + fDistanceMW3ToToF/cos(delta_theta);
+          //double PathLength = m_GladField->GetFlightPath(vStart, TofHit[i].Brho, vA, dir) + fDistanceMW3ToToF/cos(delta_theta);
           PathLength = PathLength/1000.;
 
           double BeamTimeOffset1 = 0;
@@ -733,7 +745,7 @@ void Analysis::FissionFragmentAnalysis(int which_cathode){
           double par2= 1.070;
           new_beta =  par0*SofBeamID->GetBeta() + par1*exp(par2*SofBeamID->GetBeta());
           BeamTimeOffset2 = fDistanceBetweenCathode/(new_beta*NPUNITS::c_light);
-          
+
           // BeamTimeOffset between second and third cathode //
           par0= 1.028;
           par1= -0.013;
@@ -747,7 +759,7 @@ void Analysis::FissionFragmentAnalysis(int which_cathode){
             BeamTimeOffset = BeamTimeOffset1 + BeamTimeOffset2;
           else if(which_cathode==3)// 2nd Lead
             BeamTimeOffset = BeamTimeOffset1 + BeamTimeOffset2 + BeamTimeOffset3;
-      
+
           TofHit[i].tof = TofHit[i].tof - BeamTimeOffset;
           TofHit[i].flight_path = PathLength;
           TofHit[i].velocity = PathLength/TofHit[i].tof;
@@ -763,7 +775,7 @@ void Analysis::FissionFragmentAnalysis(int which_cathode){
           TofHit[i].Z = Z;
           TofHit[i].iZ = iZ;
           TofHit[i].A = TofHit[i].AoQ * TofHit[i].iZ;
-          
+
           TVector3 vCG = vG - vC;
           TVector3 vCA = vA - vC;
 
@@ -793,6 +805,8 @@ void Analysis::FissionFragmentAnalysis(int which_cathode){
         SofFF->SetPosZD(TofHit[i].zd);
         SofFF->SetPosX1(TofHit[i].x1);
         SofFF->SetPosX2(TofHit[i].x2);
+        SofFF->SetPosY1(TofHit[i].y1);
+        SofFF->SetPosY2(TofHit[i].y2);
         SofFF->SetPosX3lab(TofHit[i].x3lab);
         SofFF->SetPosZ3lab(TofHit[i].z3lab);
         SofFF->SetThetaIn(TofHit[i].theta_in/deg);
@@ -938,9 +952,9 @@ void Analysis::End(){
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::InitParameter(){
-  
+
   fK_LS2 = -30e-8;
-  
+
   //fLS2_0 = 135.614;
   //fDS2   = 8000;
   //fDCC   = -10000;
@@ -1093,6 +1107,7 @@ void Analysis::LoadActiveTargetCuts()
     filename3[i]= "./macro/cuts/"+element[i]+"/cut_C.root";
 
     file = new TFile(filename1[i],"read");
+    cout << "--- " << i+1 << " ---" << endl;
     cout << "- " << filename1[i] << endl;
     cut_Pb1[i] = (TCutG*) file->FindObjectAny("cut_Pb1");
     cut_Pb1[i]->SetName(element[i]+"_Pb1");
@@ -1115,7 +1130,7 @@ void Analysis::ReadAnalysisConfig()
   bool ReadingStatus = false;
 
   string filename = "AnalysisConfig.dat";
-  
+
   // open analysis config file
   ifstream AnalysisConfigFile;
   AnalysisConfigFile.open(filename.c_str());
diff --git a/Projects/s455/macro/yields/ShowIndividualYield.C b/Projects/s455/macro/yields/ShowIndividualYield.C
new file mode 100644
index 0000000000000000000000000000000000000000..e7629102f4be87100a237eaf7a1b772bb41c390c
--- /dev/null
+++ b/Projects/s455/macro/yields/ShowIndividualYield.C
@@ -0,0 +1,211 @@
+TGraphErrors* GetYield(string);
+TGraphErrors* GetCorrectedYield(string);
+
+double GetMean(TGraphErrors* gerr);
+double GetManualRMS(TGraphErrors* gerr);
+void LoadEfficiency(string name);
+
+void Draw(TString isotope, TGraphErrors* ge);
+
+TH2F* h2;
+
+double m_Efficiency[100];
+
+////////////////////////////////////////////
+void ShowIndividualYield(string nucleus="182Hg")
+{
+  gROOT->SetStyle("pierre_style");
+  h2 = new TH2F("h2","h2",500,25,60,500,0,25);
+  h2->GetXaxis()->SetTitle("Z");
+  h2->GetYaxis()->SetTitle("Y(Z) (%)");
+  h2->GetXaxis()->CenterTitle();
+  h2->GetYaxis()->CenterTitle();
+
+  TLatex* iso;
+  TLatex* text_rms;
+
+  //***  ***//
+  string name = "dat/yield_" + nucleus + ".dat";
+  TGraphErrors* gerr = GetYield(name) ;
+  gerr->SetLineStyle(9);
+  
+  LoadEfficiency(nucleus);
+  TGraphErrors* gcorr = GetCorrectedYield(name) ;
+  gcorr->SetMarkerColor(2); 
+  gcorr->SetLineColor(2); 
+
+  TCanvas* c1 = new TCanvas("c1","c1",800,800);
+  //c1->Divide(2,1);
+  c1->cd();
+  gerr->Draw("apl");
+  gcorr->Draw("plsame");
+
+  int npoint = gerr->GetN();
+  double Z;
+  double Y, Ycorr;
+  for(int i=0; i<npoint; i++){
+    gerr->GetPoint(i,Z,Y);
+    gcorr->GetPoint(i,Z,Ycorr);
+
+    cout << Z << " " << Y << " " << Ycorr << " / " << (Y-Ycorr)/Y*100 << endl;
+  }
+
+  //Draw("",gerr);
+  //c1->cd(2);
+  //Draw("",gcorr);
+}
+
+////////////////////////////////////////////
+void Draw(TString isotope, TGraphErrors* ge){
+  double rms = GetManualRMS(ge)/2;
+  TLatex* iso = new TLatex(48,25,isotope);
+  TLatex* text_rms = new TLatex(28,25,Form("RMS=%f",rms));
+
+  h2->Draw();
+  //iso->Draw();
+  //text_rms->Draw();
+  ge->Draw("plsame");
+}
+
+////////////////////////////////////////////
+TGraphErrors* GetYield(string filename)
+{
+  ifstream ifile;
+
+  ifile.open(filename.c_str());
+
+  int Z;
+  double yield;
+  double yield_err;
+  TGraphErrors* g = new TGraphErrors();
+  int i=0;
+  while(!ifile.eof()){
+    ifile >> Z >> yield >> yield_err;
+    //cout << Z << " " << yield << " " << yield_err << endl;
+    if(yield>0 && yield_err>0){
+      g->SetPoint(i,Z,yield);
+      g->SetPointError(i,0,yield_err);
+      i++;
+    }
+  }
+
+  g->SetMarkerStyle(8);
+
+  ifile.close();
+  return g;
+}
+
+////////////////////////////////////////////
+TGraphErrors* GetCorrectedYield(string filename)
+{
+  ifstream ifile;
+
+  ifile.open(filename.c_str());
+
+  int Z;
+  double yield[100];
+  double yield_err[100];
+  for(int i=0; i<100; i++){
+    yield[i]=0;
+    yield_err[i]=0;
+  }
+
+  double sum_yield = 0;
+  TGraphErrors* g = new TGraphErrors();
+  int i=0;
+  while(!ifile.eof()){
+    ifile >> Z >> yield[Z] >> yield_err[Z];
+    if(yield[Z]>0 && yield_err[Z]>0 && m_Efficiency[Z]>0){
+      yield[Z] = yield[Z]/m_Efficiency[Z];
+      sum_yield += yield[Z];
+      g->SetPoint(i,Z,yield[Z]);
+      g->SetPointError(i,0,yield_err[Z]);
+      i++;
+    }
+  }
+
+  cout << "sum= " << sum_yield << endl;
+
+  double scale = 200./sum_yield;
+
+  for(int i=0; i<g->GetN(); i++){
+    g->SetPoint(i,g->GetPointX(i),g->GetPointY(i)*scale);
+  }
+
+  g->SetMarkerStyle(8);
+
+  ifile.close();
+  return g;
+}
+
+
+////////////////////////////////////////////
+void LoadEfficiency(string name)
+{
+  for(int i=0; i<100;i++)
+    m_Efficiency[i] = 0;
+
+  ifstream ifile;
+  string input_filename = "efficiency/eff_" + name + ".dat";
+  cout << "Loadfing efficiency filename: " << input_filename << endl;
+
+  ifile.open(input_filename.c_str());
+
+  int Z=0;
+  double eff=0;
+  while(!ifile.eof()){
+    ifile >> Z >> eff;
+
+    m_Efficiency[Z] = eff;
+  }
+
+}
+////////////////////////////////////////////
+double GetMean(TGraphErrors* gerr)
+{
+  double Y;
+  double Z;
+  double weight;
+  double sum=0;
+  double sumY=0;
+  for(int i=0; i<gerr->GetN(); i++){
+    gerr->GetPoint(i,Z,Y);
+    if(Y>0){
+      weight = Z*Y;
+      sumY += Y;
+      sum += weight;
+    }
+  }
+
+  double mean;
+  mean = sum/sumY;
+
+  return mean;
+}
+
+
+////////////////////////////////////////////
+double GetManualRMS(TGraphErrors* gerr)
+{
+  double mean = GetMean(gerr);
+  double Y;
+  double Z;
+  double weight;
+  double sum2=0;
+  double sumY=0;
+  for(int i=0; i<gerr->GetN(); i++){
+    gerr->GetPoint(i,Z,Y);
+    if(Y>0){
+      weight = Z*Y;
+      sumY += Y;
+      sum2 += pow(Y*(Z-mean),2);
+    }
+  }
+
+  double rms;
+  rms = sqrt(sum2/sumY);
+
+  return rms;
+}
+
+
diff --git a/Projects/s455/macro/yields/efficiency/eff_180Hg.dat b/Projects/s455/macro/yields/efficiency/eff_180Hg.dat
new file mode 100644
index 0000000000000000000000000000000000000000..b243c0dd3ade8eacb11deb38989275966dfebf8b
--- /dev/null
+++ b/Projects/s455/macro/yields/efficiency/eff_180Hg.dat
@@ -0,0 +1,33 @@
+24 0.541667
+25 0.775
+26 0.72
+27 0.731364
+28 0.736383
+29 0.741813
+30 0.752647
+31 0.78268
+32 0.781534
+33 0.797357
+34 0.803068
+35 0.822877
+36 0.820329
+37 0.829009
+38 0.824913
+39 0.818352
+40 0.822372
+41 0.818352
+42 0.824913
+43 0.829009
+44 0.820329
+45 0.822877
+46 0.803068
+47 0.797357
+48 0.781534
+49 0.78268
+50 0.752647
+51 0.741813
+52 0.736383
+53 0.731364
+54 0.72
+55 0.775
+56 0.541667
diff --git a/Projects/s455/macro/yields/efficiency/eff_181Hg.dat b/Projects/s455/macro/yields/efficiency/eff_181Hg.dat
new file mode 100644
index 0000000000000000000000000000000000000000..f34bca35cddfb8c5e639e525dd92cdef259abd75
--- /dev/null
+++ b/Projects/s455/macro/yields/efficiency/eff_181Hg.dat
@@ -0,0 +1,35 @@
+23 0.769231
+24 0.621795
+25 0.638177
+26 0.715618
+27 0.702564
+28 0.733868
+29 0.727072
+30 0.755504
+31 0.778359
+32 0.784425
+33 0.801417
+34 0.806464
+35 0.819013
+36 0.82701
+37 0.828354
+38 0.823999
+39 0.82007
+40 0.817524
+41 0.82007
+42 0.823999
+43 0.828354
+44 0.82701
+45 0.819013
+46 0.806464
+47 0.801417
+48 0.784425
+49 0.778359
+50 0.755504
+51 0.727072
+52 0.733868
+53 0.702564
+54 0.715618
+55 0.638177
+56 0.621795
+57 0.769231
diff --git a/Projects/s455/macro/yields/efficiency/eff_182Hg.dat b/Projects/s455/macro/yields/efficiency/eff_182Hg.dat
new file mode 100644
index 0000000000000000000000000000000000000000..4499fa7d2f2020426643a401a3ae0401b58c8e65
--- /dev/null
+++ b/Projects/s455/macro/yields/efficiency/eff_182Hg.dat
@@ -0,0 +1,29 @@
+26 0.625
+27 0.678977
+28 0.733949
+29 0.733408
+30 0.760356
+31 0.780135
+32 0.79764
+33 0.81001
+34 0.815494
+35 0.828154
+36 0.833051
+37 0.831881
+38 0.830824
+39 0.829736
+40 0.826439
+41 0.829736
+42 0.830824
+43 0.831881
+44 0.833051
+45 0.828154
+46 0.815494
+47 0.81001
+48 0.79764
+49 0.780135
+50 0.760356
+51 0.733408
+52 0.733949
+53 0.678977
+54 0.625
diff --git a/Projects/s455/macro/yields/efficiency/eff_183Hg.dat b/Projects/s455/macro/yields/efficiency/eff_183Hg.dat
new file mode 100644
index 0000000000000000000000000000000000000000..5df3a26bf915eab19c90b5bab8b79fb3d5440388
--- /dev/null
+++ b/Projects/s455/macro/yields/efficiency/eff_183Hg.dat
@@ -0,0 +1,31 @@
+25 0.723077
+26 0.636364
+27 0.715751
+28 0.706496
+29 0.734289
+30 0.754255
+31 0.785462
+32 0.789406
+33 0.816743
+34 0.817223
+35 0.828616
+36 0.83203
+37 0.833957
+38 0.833331
+39 0.829888
+40 0.829068
+41 0.829888
+42 0.833331
+43 0.833957
+44 0.83203
+45 0.828616
+46 0.817223
+47 0.816743
+48 0.789406
+49 0.785462
+50 0.754255
+51 0.734289
+52 0.706496
+53 0.715751
+54 0.636364
+55 0.723077
diff --git a/Projects/s455/macro/yields/efficiency/eff_184Hg.dat b/Projects/s455/macro/yields/efficiency/eff_184Hg.dat
new file mode 100644
index 0000000000000000000000000000000000000000..dcb5d141b513d1f0e488e2ca3b7e34f77d65d901
--- /dev/null
+++ b/Projects/s455/macro/yields/efficiency/eff_184Hg.dat
@@ -0,0 +1,33 @@
+24 0.4125
+25 0.90625
+26 0.683333
+27 0.792308
+28 0.757366
+29 0.730761
+30 0.784525
+31 0.789226
+32 0.804706
+33 0.814317
+34 0.824603
+35 0.832987
+36 0.835677
+37 0.839531
+38 0.833401
+39 0.835777
+40 0.832533
+41 0.835777
+42 0.833401
+43 0.839531
+44 0.835677
+45 0.832987
+46 0.824603
+47 0.814317
+48 0.804706
+49 0.789226
+50 0.784525
+51 0.730761
+52 0.757366
+53 0.792308
+54 0.683333
+55 0.90625
+56 0.4125
diff --git a/Projects/s455/macro/yields/efficiency/eff_185Hg.dat b/Projects/s455/macro/yields/efficiency/eff_185Hg.dat
new file mode 100644
index 0000000000000000000000000000000000000000..67cc91f69adcdce73ed4a6b186c238d5d360ca20
--- /dev/null
+++ b/Projects/s455/macro/yields/efficiency/eff_185Hg.dat
@@ -0,0 +1,33 @@
+24 0.35
+25 0.733333
+26 0.666667
+27 0.679
+28 0.769845
+29 0.735721
+30 0.756805
+31 0.792795
+32 0.813339
+33 0.815715
+34 0.822744
+35 0.83485
+36 0.838398
+37 0.839978
+38 0.838477
+39 0.839587
+40 0.836308
+41 0.839587
+42 0.838477
+43 0.839978
+44 0.838398
+45 0.83485
+46 0.822744
+47 0.815715
+48 0.813339
+49 0.792795
+50 0.756805
+51 0.735721
+52 0.769845
+53 0.679
+54 0.666667
+55 0.733333
+56 0.35
diff --git a/Projects/s455/macro/yields/efficiency/eff_186Hg.dat b/Projects/s455/macro/yields/efficiency/eff_186Hg.dat
new file mode 100644
index 0000000000000000000000000000000000000000..accb11994fdf784b2e3a5c826871f19dc11ccdf3
--- /dev/null
+++ b/Projects/s455/macro/yields/efficiency/eff_186Hg.dat
@@ -0,0 +1,33 @@
+24 0.05
+25 0.85
+26 0.58125
+27 0.673214
+28 0.727778
+29 0.735877
+30 0.771326
+31 0.790087
+32 0.810318
+33 0.819101
+34 0.829515
+35 0.83789
+36 0.840345
+37 0.848647
+38 0.840734
+39 0.842641
+40 0.843604
+41 0.842641
+42 0.840734
+43 0.848647
+44 0.840345
+45 0.83789
+46 0.829515
+47 0.819101
+48 0.810318
+49 0.790087
+50 0.771326
+51 0.735877
+52 0.727778
+53 0.673214
+54 0.58125
+55 0.85
+56 0.05