diff --git a/Projects/ana_e850/Analysis.cxx b/Projects/ana_e850/Analysis.cxx
index 0aa090f971352026367e3c8d19b3520ab1d1ee7d..a35f7a53195ee2745e5fcdf8b80680bf8568c4fd 100644
--- a/Projects/ana_e850/Analysis.cxx
+++ b/Projects/ana_e850/Analysis.cxx
@@ -241,7 +241,7 @@ void Analysis::PistaAnalysis(){
     Elab_12C = geloss_C12C->Eval(Elab_12C);
     C12->SetKineticEnergy(Elab_12C);
 
-    // 120Be case //
+    // 10Be case //
     double Elab_10Be;
     Elab_10Be = geloss_Be10Al->Eval(Eres);
     Elab_10Be = geloss_Be10Al->Eval(Elab_10Be);
@@ -252,6 +252,24 @@ void Analysis::PistaAnalysis(){
     Beta_pista = Be10->GetBeta();
 
     Ex240Pu = Transfer10Be->ReconstructRelativistic(Elab_10Be, ThetaLab);
+    TLorentzVector LV_240Pu = Transfer10Be->LorentzAfterReaction(Elab_10Be, ThetaLab);
+    beta_240Pu = LV_240Pu.Beta();
+    gamma_240Pu = LV_240Pu.Gamma();
+    theta_240Pu = LV_240Pu.Angle(TVector3(0,0,1));
+    phi_240Pu = LV_240Pu.Phi();
+
+    TVector3 vector3_FF = TVector3(sin(FF_Theta)*cos(FF_Phi), sin(FF_Theta)*sin(FF_Phi), cos(FF_Theta));
+    TVector3 vector3_fiss = TVector3(sin(theta_240Pu)*cos(phi_240Pu), sin(theta_240Pu)*sin(phi_240Pu), cos(theta_240Pu));
+
+    theta_lab_fission = vector3_FF.Angle(vector3_fiss);
+    gamma_lab_ff = FF_Gamma13;
+    beta_lab_ff  = FF_Beta13;
+    
+    gamma_cm_ff = gamma_240Pu*(gamma_lab_ff - beta_240Pu*beta_lab_ff*gamma_lab_ff*cos(theta_lab_fission));
+    beta_cm_ff = sqrt(pow(gamma_cm_ff,2)-1)/gamma_cm_ff;
+    theta_cm_fission = acos((gamma_240Pu/(beta_cm_ff*gamma_cm_ff))*(beta_lab_ff*gamma_lab_ff*cos(theta_lab_fission) - beta_240Pu*gamma_lab_ff));
+
+    // Other cases
     Ex236U  = Transfer14C->ReconstructRelativistic(Elab, ThetaLab);
     Ex238U  = Elastic->ReconstructRelativistic(Elab_12C, ThetaLab);
     ThetaCM = Transfer10Be->EnergyLabToThetaCM(Elab, ThetaLab)/deg;
@@ -400,11 +418,11 @@ void Analysis::VamosAnalysis(){
 
       FF_Y1  = FPMW->PositionY[0];
       FF_Y3  = FPMW->PositionY[2];
- 
+
       // T13 //
       double path1 = FPMW->GetDetectorPositionZ(0)/10./cos(FPMW->Theta_in)/cos(FPMW->Phi_in);
       double path2 = (FPMW->GetDetectorPositionZ(2)-7600)/10./cos(FPMW->Thetaf);
-     FF_D13 = FF_Path - path1 + path2;
+      FF_D13 = FF_Path - path1 + path2;
       FF_T13 = T13 - 20 + m_T13_Offset[FPMWPat];
       FF_V13 = (FF_D13/FF_T13)*(1-3e-5*FF_Y3);
       FF_Beta13 = FF_V13/29.9792458;
@@ -571,6 +589,17 @@ void Analysis::InitOutputBranch(){
 
   RootOutput::getInstance()->GetTree()->Branch("FF_Etot13",&FF_Etot13,"FF_Etot13/D");
   RootOutput::getInstance()->GetTree()->Branch("FPMW_Section",&FPMW_Section,"FPMW_Section/I");
+  
+  RootOutput::getInstance()->GetTree()->Branch("theta_lab_fission",&theta_lab_fission,"theta_lab_fission/D");
+  RootOutput::getInstance()->GetTree()->Branch("theta_cm_fission",&theta_cm_fission,"theta_cm_fission/D");
+  RootOutput::getInstance()->GetTree()->Branch("theta_240Pu",&theta_240Pu,"theta_240Pu/D");
+  RootOutput::getInstance()->GetTree()->Branch("phi_240Pu",&phi_240Pu,"phi_240Pu/D");
+  RootOutput::getInstance()->GetTree()->Branch("beta_240Pu",&beta_240Pu,"beta_240Pu/D");
+  RootOutput::getInstance()->GetTree()->Branch("gamma_240Pu",&gamma_240Pu,"gamma_240Pu/D");
+  RootOutput::getInstance()->GetTree()->Branch("gamma_lab_ff",&gamma_lab_ff,"gamma_lab_ff/D");
+  RootOutput::getInstance()->GetTree()->Branch("gamma_cm_ff",&gamma_cm_ff,"gamma_cm_ff/D");
+  RootOutput::getInstance()->GetTree()->Branch("beta_lab_ff",&beta_lab_ff,"beta_lab_ff/D");
+  RootOutput::getInstance()->GetTree()->Branch("beta_cm_ff",&beta_cm_ff,"beta_cm_ff/D");
 
   RootOutput::getInstance()->GetTree()->Branch("Elab1",&Elab1);
   RootOutput::getInstance()->GetTree()->Branch("Elab2",&Elab2);
@@ -693,10 +722,21 @@ void Analysis::ReInitValue(){
   FF_AoQ24 = -1;
   FF_Mass24 = -1;
 
-
   FF_Qav = -1;
   FF_Massav = -1;
 
+  theta_lab_fission = -100;
+  theta_cm_fission = -100;
+  theta_240Pu = -100;
+  phi_240Pu = -100;
+  beta_240Pu = -100;
+  gamma_240Pu = -100;
+  gamma_lab_ff = -100;
+  gamma_cm_ff = -100;
+  beta_lab_ff = -100;
+  beta_cm_ff = -100;
+
+
   m_2alpha = 0;
   Elab1.clear();
   Elab2.clear();
diff --git a/Projects/ana_e850/Analysis.h b/Projects/ana_e850/Analysis.h
index 44aae833eaf5f995bdb04eaa327463029b2fc751..0cf066099a7584c32dee204cdc2dc98d84ae023e 100644
--- a/Projects/ana_e850/Analysis.h
+++ b/Projects/ana_e850/Analysis.h
@@ -102,6 +102,17 @@ class Analysis: public NPL::VAnalysis{
     double PISTA_TS_hour;
 
     int FPMW_Section;
+    double theta_lab_fission;
+    double theta_cm_fission;
+    double beta_240Pu;
+    double gamma_240Pu;
+    double theta_240Pu;
+    double phi_240Pu;
+    double gamma_lab_ff;
+    double gamma_cm_ff;
+    double beta_lab_ff;
+    double beta_cm_ff;
+
     double FF_DE;
     double FF_Eres;
     double FF_Z;
diff --git a/Projects/ana_e850/configs/ConfigExogam.dat b/Projects/ana_e850/configs/ConfigExogam.dat
index c8d65f2c6448892bbec17b183b19929751576646..842b8014fcca159a0c6d6bd110d82800e7b98113 100644
--- a/Projects/ana_e850/configs/ConfigExogam.dat
+++ b/Projects/ana_e850/configs/ConfigExogam.dat
@@ -1,5 +1,6 @@
 ConfigExogam
 TDC_THRESHOLDS 0 500000
+DATA_IS_CAL 1
 MAP_EXO 12 3 0
 MAP_EXO 13 3 1
 MAP_EXO 14 3 2
diff --git a/Projects/ana_e850/conversion/convert.C b/Projects/ana_e850/conversion/convert.C
index 6869b92ba10b643eb4200b58c17d585ea6ddb44e..c1de0e0822bdba36e2967bd8668e3f0fe4a1b504 100644
--- a/Projects/ana_e850/conversion/convert.C
+++ b/Projects/ana_e850/conversion/convert.C
@@ -1,15 +1,16 @@
 #include "convert.h"
 
 ///////////////////////////////////////////////////
-void convert(int run=43){
+void convert(int run=48){
   m_pista = new TPISTAData();
   m_fpmw = new TFPMWData();
   m_ic = new TICData();
-  m_exogam = new TExogamData();
+  m_exogam = new TExogamCalData();
 
   // input tree //
   input_tree = new TChain("AD");
-  input_tree->Add(Form("/home/morfouacep/Physics/ganil/pista/analysisenv-e850-2023/RootA/r00%i*.root",run));
+  //input_tree->Add(Form("/home/morfouacep/Physics/ganil/pista/analysisenv-e850-2023/RootA/r00%i*.root",run));
+  input_tree->Add(Form("/run/media/morfouacep/proton/e850/2023/RootA/r00%i*.root",run));
   InitInputTree();
 
 
@@ -27,7 +28,7 @@ void convert(int run=43){
   output_tree->Branch("PISTA","TPISTAData",&m_pista);
   output_tree->Branch("FPMW","TFPMWData",&m_fpmw);
   output_tree->Branch("IC","TICData",&m_ic);
-  output_tree->Branch("Exogam","TExogamData",&m_exogam);
+  output_tree->Branch("Exogam","TExogamCalData",&m_exogam);
   output_tree->Branch("T_TMW0_FPMW0",&T_TMW0_FPMW0,"T_TMW0_FPMW0/F");
   output_tree->Branch("T_TMW0_FPMW1",&T_TMW0_FPMW1,"T_TMW0_FPMW1/F");
   output_tree->Branch("T_TMW1_FPMW0",&T_TMW1_FPMW0,"T_TMW1_FPMW0/F");
@@ -102,17 +103,19 @@ void convert(int run=43){
     }
 
     if(fVAMOS_TS_sec>0 || fPISTA_TS_sec>0){
-      if(Inner6MVM==1){
-        int crystal = Inner6MVN[0];
-        double E = Inner6MV[0];
-        double EHG = Inner20MV[0];
-        double TDC = DeltaTV[0];
-        unsigned long long TS = Inner6MVTS[0];
+      for(int p=0; p<Inner6MVM; p++){
+      //if(Inner6MVM==1){
+        int crystal = Inner6MVN[p];
+        double E = Inner6MV[p];
+        double EHG = Inner20MV[p];
+        double TDC = DeltaTV[p];
+        unsigned long long TS = Inner6MVTS[p];
         int seg = -1;
         double outers1 = -1000;
         double outers2 = -1000;
         double outers3 = -1000;
         double outers4 = -1000;
+        if(OutersVM>25) cout << OutersVM << endl;
         for(int i=0; i<OutersVM; i++){
           seg = OutersVN[i] - 4*crystal;
           if(seg==0) outers1 = OutersV[i];
diff --git a/Projects/ana_e850/conversion/convert.h b/Projects/ana_e850/conversion/convert.h
index dd78a286dd19177efa8486cfa878d69988096cad..3fa04ce1594a89e26007c3999dcff1d64d8d3c80 100644
--- a/Projects/ana_e850/conversion/convert.h
+++ b/Projects/ana_e850/conversion/convert.h
@@ -1,7 +1,7 @@
 TPISTAData* m_pista;
 TFPMWData* m_fpmw;
 TICData* m_ic;
-TExogamData* m_exogam;
+TExogamCalData* m_exogam;
 //TFile* ofile;
 TChain* input_tree;
 //TTree* output_tree;
@@ -63,7 +63,8 @@ ULong64_t Inner6MVTS[12];
 Float_t Inner20MV[12];
 Float_t DeltaTV[12];
 Float_t OutersV[12];
-UShort_t OutersVN[12];
+//UShort_t OutersVN[12];
+Int_t OutersVN[12];
 Int_t OutersVM;
 
 void InitInputTree();
diff --git a/Projects/ana_e850/macro/Mass/PlotYieldEvolution.C b/Projects/ana_e850/macro/Mass/PlotYieldEvolution.C
index ea5776c2ffd80546dfd43e1794a89c3cf3f08652..c8d1bd94db92eb01eab4a2b5b406e6c317925f14 100644
--- a/Projects/ana_e850/macro/Mass/PlotYieldEvolution.C
+++ b/Projects/ana_e850/macro/Mass/PlotYieldEvolution.C
@@ -1,5 +1,6 @@
 TGraphErrors* GetGoodenYield(int A, int year, double scale);
 TGraphErrors* GetTonchevYield(int A);
+TGraphErrors* GetGEFYield(int A, double scale);
 
 //////////////////////////////////////////////////
 void PlotYieldEvolution(int A_asked=99, double scale=1.25){
@@ -37,7 +38,7 @@ void PlotYieldEvolution(int A_asked=99, double scale=1.25){
   h2->GetXaxis()->CenterTitle();
   h2->GetYaxis()->CenterTitle();
   h2->Draw();
-  if(A_asked==140 || A_asked==97 || A_asked==99 || A_asked==147 || A_asked==132 || A_asked==143){
+  if(A_asked==140 || A_asked==97 || A_asked==99 || A_asked==147 || A_asked==132 || A_asked==143 || A_asked==103 || A_asked==135){
     TGraphErrors* ggooden2016 = GetGoodenYield(A_asked,2016,1);
     ggooden2016->SetMarkerStyle(22);
     ggooden2016->SetMarkerColor(2);
@@ -61,8 +62,12 @@ void PlotYieldEvolution(int A_asked=99, double scale=1.25){
     gtonchev->SetMarkerSize(1.5);
     gtonchev->SetName("Tonchev");
     gtonchev->Draw("psame");
+  }
 
-
+  if(A_asked==99 || A_asked==97 || A_asked==147 || A_asked==135){
+    TGraphErrors* ggef = GetGEFYield(A_asked,1.);
+    ggef->SetName("gef");
+    ggef->Draw("psame");
   }
 
   gevol->SetName("ganil");
@@ -73,18 +78,44 @@ void PlotYieldEvolution(int A_asked=99, double scale=1.25){
   //leg->AddEntry("gooden2016","Gooden 2016","lp");
   //leg->AddEntry("gooden2024","Gooden 2024","lp");
   leg->AddEntry("Tonchev","Tonchev et al. 2024","lp");
+  leg->AddEntry("gef","GEF 2024","lp");
   leg->AddEntry("ganil","PISTA 2023","lp");
   leg->Draw("same");
   
-  TCanvas* c2 = new TCanvas("c2","c2",800,800);
-  c2->cd();
-  g_relative->SetMarkerStyle(8);
-  g_relative->Draw("ap");
+  //TCanvas* c2 = new TCanvas("c2","c2",800,800);
+  //c2->cd();
+  //g_relative->SetMarkerStyle(8);
+  //g_relative->Draw("ap");
+
+
+}
+
+//////////////////////////////////////////////////
+TGraphErrors* GetGEFYield(int A, double scale=1){
+  string filename = "GEF/mass_" + to_string(A) + ".dat";
+  ifstream ifile;
+  ifile.open(filename.c_str());
 
+  double En;
+  double Y;
+  TGraphErrors* gerr = new TGraphErrors();
+  int i=0;
+  while(ifile>>En>>Y){
+    gerr->SetPoint(i,En,scale*Y);
+    gerr->SetPointError(i,0,0.01*Y);
+    i++;
+  }
+
+  gerr->SetMarkerStyle(33);
+  gerr->SetMarkerSize(2);
+  gerr->SetMarkerColor(2);
+  gerr->SetLineColor(2);
+  return gerr;
 
 }
 
 
+
 //////////////////////////////////////////////////
 TGraphErrors* GetGoodenYield(int A, int year, double scale=1){
   string filename = "gooden/" + to_string(year) + "/mass_" + to_string(A) + ".dat";
@@ -101,7 +132,7 @@ TGraphErrors* GetGoodenYield(int A, int year, double scale=1){
     gerr->SetPointError(i,0,Yerr);
   }
 
- return gerr;
+  return gerr;
 
 }
 
@@ -122,6 +153,6 @@ TGraphErrors* GetTonchevYield(int A){
     i++;
   }
 
- return gerr;
+  return gerr;
 
 }