From c93ba9a3905d62d4e1c22125832142dbb048f5d3 Mon Sep 17 00:00:00 2001
From: "theodore.efremov" <theodore.efremov@cea.fr>
Date: Fri, 29 Nov 2024 14:47:44 +0100
Subject: [PATCH] Changed some data processing macro

---
 Projects/AlPhaPha/2024/Analysis.cxx           | 771 +++++++++---------
 Projects/AlPhaPha/2024/Analysis.h             |   3 +-
 .../2024/{SnakeFileGeneric => Snakefile}      |   6 +-
 .../2024/convert_snakemake_generic.sh         |   2 +-
 4 files changed, 393 insertions(+), 389 deletions(-)
 rename Projects/AlPhaPha/2024/{SnakeFileGeneric => Snakefile} (86%)

diff --git a/Projects/AlPhaPha/2024/Analysis.cxx b/Projects/AlPhaPha/2024/Analysis.cxx
index 3ad4a5480..679ae7fff 100644
--- a/Projects/AlPhaPha/2024/Analysis.cxx
+++ b/Projects/AlPhaPha/2024/Analysis.cxx
@@ -406,426 +406,429 @@ void Analysis::TwoAlphaAnalysis(){
 
 /////////////////////////////////////////////////////////////////////////////////
 void Analysis::VamosAnalysis(){
-  if(abs(FPMW->XtLin)<5 && abs(FPMW->YtLin)<5){
-    //XTarget = FPMW->Xt*cos(20*deg+FPMW->Theta_in)/cos(FPMW->Theta_in);
-    XTarget = FPMW->Xt*(cos(FPMW->Theta_in)/cos(20*deg+FPMW->Theta_in));
-    YTarget = FPMW->Yt;
-
-    XTargetLin = FPMW->XtLin*(cos(FPMW->Theta_in_Lin)/cos(20*deg+FPMW->Theta_in_Lin));
-    YTargetLin = FPMW->YtLin;
-    ZTarget = 0;
-
-    FF_Theta = FPMW->Theta_in+m_Vamos_Angle*deg;
-    FF_Phi = FPMW->Phi_in;
-
-    Xmean_iter += XTarget;
-    Ymean_iter += YTarget;
-    Xmean_iterLin += XTargetLin;
-    Ymean_iterLin += YTargetLin;
-
-    iteration++;
-    if(iteration%100==0){
-      Xmean = Xmean_iter/iteration;
-      Ymean = Ymean_iter/iteration;
-
-      XmeanLin = Xmean_iterLin/iteration;
-      YmeanLin = Ymean_iterLin/iteration;
-
-      iteration = 0;
-      Xmean_iter = 0;
-      Ymean_iter = 0;
-
-
-      Xmean_iterLin = 0;
-      Ymean_iterLin = 0;
+    if(abs(FPMW->XtLin)<5 && abs(FPMW->YtLin)<5){
+        //XTarget = FPMW->Xt*cos(20*deg+FPMW->Theta_in)/cos(FPMW->Theta_in);
+        XTarget = FPMW->Xt*(cos(FPMW->Theta_in)/cos(20*deg+FPMW->Theta_in));
+        YTarget = FPMW->Yt;
+
+        XTargetLin = FPMW->XtLin*(cos(FPMW->Theta_in_Lin)/cos(20*deg+FPMW->Theta_in_Lin));
+        YTargetLin = FPMW->YtLin;
+        ZTarget = 0;
+
+        FF_Theta = FPMW->Theta_in+m_Vamos_Angle*deg;
+        FF_Phi = FPMW->Phi_in;
+
+        Xmean_iter += XTarget;
+        Ymean_iter += YTarget;
+        Xmean_iterLin += XTargetLin;
+        Ymean_iterLin += YTargetLin;
+
+        iteration++;
+        if(iteration%100==0){
+            Xmean = Xmean_iter/iteration;
+            Ymean = Ymean_iter/iteration;
+
+            XmeanLin = Xmean_iterLin/iteration;
+            YmeanLin = Ymean_iterLin/iteration;
+
+            iteration = 0;
+            Xmean_iter = 0;
+            Ymean_iter = 0;
+
+
+            Xmean_iterLin = 0;
+            Ymean_iterLin = 0;
+        }
+    } //If some linearisation is done 
+    else{
+        XTargetLin = XmeanLin;
+        YTargetLin = YmeanLin;
+        XTarget = Xmean;
+        YTarget = Ymean;
+        ZTarget = 0;
     }
-  } //If some linearisation is done 
-  else{
-    XTargetLin = XmeanLin;
-    YTargetLin = YmeanLin;
-    XTarget = Xmean;
-    YTarget = Ymean;
-    ZTarget = 0;
-  }
-
-  XTarget += m_XTarget_offset;
-  YTarget += m_YTarget_offset;
-  ZTarget += m_ZTarget_offset;
 
-  XTargetLin += m_XTarget_offset;
-  YTargetLin += m_YTarget_offset +0.2;
+    XTarget += m_XTarget_offset;
+    YTarget += m_YTarget_offset;
+    ZTarget += m_ZTarget_offset;
 
-  //cout << XTarget << endl;
+    XTargetLin += m_XTarget_offset;
+    YTargetLin += m_YTarget_offset +0.2;
 
+    //cout << XTarget << endl;
 
-  PositionOnTarget = TVector3(XTarget,YTarget,ZTarget);
-  PositionOnTargetLin = TVector3(XTargetLin,YTargetLin,ZTarget);
 
-  if( MTOF_FP0_T0VM == 1 ){
+    PositionOnTarget = TVector3(XTarget,YTarget,ZTarget);
+    PositionOnTargetLin = TVector3(XTargetLin,YTargetLin,ZTarget);
 
+    if( MTOF_FP0_T0VM == 1 && MTOF_FP0_T1VM ==1 ){
 
-    UShort_t FPMWPat = MTOF_FP0_T0VN[0]; //20 section
-    FPMW_Section = FPMWPat;
-    IC->SetFPMWSection(FPMW_Section);
-    IC->BuildSimplePhysicalEvent();
-    double Theta = -1000;
 
+        UShort_t FPMWPat = MTOF_FP0_T0VN[0]; //20 section
+        FPMW_Section = FPMWPat;
+        IC->SetFPMWSection(FPMW_Section);
+        IC->BuildSimplePhysicalEvent();
+        double Theta = -1000;
 
-    if(FPMW->Xf!=-1000){
 
-      FF_DE   = IC->DE;
-      FF_Eres = IC->Eres;
+        if(FPMW->Xf!=-1000){
 
-      Tracking->CalculateReconstruction(FPMW->Xf, 1000*FPMW->Thetaf, m_Brho_ref, FF_Brho, Theta, FF_Path);
-      // FF_Path is in cm ! 
+            FF_DE   = IC->DE;
+            FF_Eres = IC->Eres;
 
-//      FF_DriftTime = 10*(IC->fIC)Time->GetTime_MWPC13(i)
+            Tracking->CalculateReconstruction(FPMW->Xf, 1000*FPMW->Thetaf, m_Brho_ref, FF_Brho, Theta, FF_Path);
+            // FF_Path is in cm !
+            //
+            FF_Y1  = FPMW->PositionY[0];
+            FF_Y3  = FPMW->PositionY[2];
 
-      FF_Y1  = FPMW->PositionY[0];
-      FF_Y3  = FPMW->PositionY[2];
+            FF_IC_Y = FPMW->Yf + (1442.6+6774.4-7600)*tan(FPMW->Phif/1000);
+            FF_IC_X = FPMW->Xf + (1442.6+6774.4-7600)*tan(FPMW->Thetaf/1000);
 
-      FF_IC_Y = FPMW->Yf + (1442.6+6774.4-7600)*tan(FPMW->Phif/1000);
-      FF_IC_X = FPMW->Xf + (1442.6+6774.4-7600)*tan(FPMW->Thetaf/1000);
+            // 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);
 
-      // 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);
-      
-      //Online
+            //Online
 
-      double Toff[20] = {0, 588.0, 588.5, 587.95, 588.04, 587.72, 587.92, 587.9, 587.9, 588.66, 588.80, 588.67, 588.64, 588.75, 588.47, 588.65, 588.65, 588.67, 589.05, 590.3};
+            double Toff[20] = {0, 588.0, 588.5, 587.95, 588.04, 587.72, 587.92, 587.9, 587.9, 588.66, 588.80, 588.67, 588.64, 588.75, 588.47, 588.65, 588.65, 588.67, 589.05, 590.3};
+            // To know time of electron drift in a section of the chio
+            for (int seg = 0 ; seg < IC->fIC_TS.size() ; seg++){
+                FF_DriftTime.push_back( (IC->fIC_TS.at(seg) - Time->GetTS_MWPC14(0) - (Time->GetTime_MWPC14(0) - Toff[FPMW_Section])));
 
+            }
+            FF_T13 = - MTOF_FP0_T0V[0] + Toff[FPMWPat];
+            FF_D13 = FF_Path - path1 + path2; 
+            FF_V13 = FF_D13/FF_T13;
+            FF_Beta13 = FF_V13/29.9792458;
+            FF_Gamma13 = 1./sqrt(1.0-FF_Beta13*FF_Beta13);
 
-      FF_T13 = - MTOF_FP0_T0V[0] + Toff[FPMWPat];
-      FF_D13 = FF_Path - path1 + path2; 
-      FF_V13 = FF_D13/FF_T13;
-      FF_Beta13 = FF_V13/29.9792458;
-      FF_Gamma13 = 1./sqrt(1.0-FF_Beta13*FF_Beta13);
-      
 
-      FF_AoQ13 = (FF_Brho/(3.107*FF_Beta13*FF_Gamma13));
-      FF_M13 = IC->EtotInit/(931.5016*(FF_Gamma13-1.));
-      FF_Q13 = FF_M13/FF_AoQ13;
+            FF_AoQ13 = (FF_Brho/(3.107*FF_Beta13*FF_Gamma13));
+            FF_M13 = IC->EtotInit/(931.5016*(FF_Gamma13-1.));
+            FF_Q13 = FF_M13/FF_AoQ13;
 
-      FF_Mass13 = int(FF_Q13+0.5)*FF_AoQ13;
+            FF_Mass13 = int(FF_Q13+0.5)*FF_AoQ13;
 
-      //FF_DriftTime[FPMW_Section] = 10*(fVAMOS_TS_sec[FPMW_Section]- MT)
+            //FF_DriftTime[FPMW_Section] = 10*(fVAMOS_TS_sec[FPMW_Section]- MT)
+        }
+    }
+    else{
+        FPMW_Section = -1;
     }
-  }
-  else{
-    FPMW_Section = -1;
-  }
 }
 
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::InitOutputBranch(){
-  RootOutput::getInstance()->GetTree()->Branch("Time",&Time);
-  
-  RootOutput::getInstance()->GetTree()->Branch("BeamEnergy",&BeamEnergy,"BeamEnergy/D");
-
-  RootOutput::getInstance()->GetTree()->Branch("XTarget",&XTarget,"XTarget/D");
-  RootOutput::getInstance()->GetTree()->Branch("XTargetLin",&XTargetLin,"XTargetLin/D");
-  RootOutput::getInstance()->GetTree()->Branch("YTarget",&YTarget,"YTarget/D");
-  RootOutput::getInstance()->GetTree()->Branch("YTargetLin",&YTargetLin,"YTargetLin/D");
-  RootOutput::getInstance()->GetTree()->Branch("ZTarget",&ZTarget,"ZTarget/D");
-
-  RootOutput::getInstance()->GetTree()->Branch("Ex242Pu",&Ex242Pu,"Ex242Pu/D");
-  RootOutput::getInstance()->GetTree()->Branch("Ex240Pu",&Ex240Pu,"Ex240Pu/D");
-  RootOutput::getInstance()->GetTree()->Branch("Ex240PuLin",&Ex240PuLin,"Ex240PuLin/D");
-  RootOutput::getInstance()->GetTree()->Branch("Ex236U",&Ex236U,"Ex236U/D");
-  RootOutput::getInstance()->GetTree()->Branch("Ex238U",&Ex238U,"Ex238U/D");
-  
-  RootOutput::getInstance()->GetTree()->Branch("DeltaE",&DeltaE,"DeltaE/D");
-  RootOutput::getInstance()->GetTree()->Branch("DeltaEcorr",&DeltaEcorr,"DeltaEcorr/D");
-  RootOutput::getInstance()->GetTree()->Branch("Eres",&Eres,"Eres/D");
-
-  RootOutput::getInstance()->GetTree()->Branch("Telescope",&Telescope,"Telescope/I");
-  RootOutput::getInstance()->GetTree()->Branch("PID",&PID,"PID/D");
-  
-  RootOutput::getInstance()->GetTree()->Branch("Elab",&Elab,"Elab/D");
-  RootOutput::getInstance()->GetTree()->Branch("ThetaLab",&ThetaLab,"ThetaLab/D");
-  
-  RootOutput::getInstance()->GetTree()->Branch("Beta_pista",&Beta_pista,"Beta_pista/D");
-  RootOutput::getInstance()->GetTree()->Branch("ThetaLabLin",&ThetaLabLin,"ThetaLabLin/D");
-  RootOutput::getInstance()->GetTree()->Branch("ThetaDetectorSurface",&ThetaDetectorSurface,"ThetaDetectorSurface/D");
-  RootOutput::getInstance()->GetTree()->Branch("PhiLab",&PhiLab,"PhiLab/D");
-  RootOutput::getInstance()->GetTree()->Branch("ThetaCM",&ThetaCM,"ThetaCM/D");
-  
-  RootOutput::getInstance()->GetTree()->Branch("Xcalc",&Xcalc,"Xcalc/D");
-  RootOutput::getInstance()->GetTree()->Branch("Ycalc",&Ycalc,"Ycalc/D");
-  RootOutput::getInstance()->GetTree()->Branch("Zcalc",&Zcalc,"Zcalc/D");
-  
-  RootOutput::getInstance()->GetTree()->Branch("strip_DE",&strip_DE,"strip_DE/I");
-  RootOutput::getInstance()->GetTree()->Branch("strip_E",&strip_E,"strip_E/I");
-  RootOutput::getInstance()->GetTree()->Branch("Time_E",&Time_E,"Time_E/D");
-
-  RootOutput::getInstance()->GetTree()->Branch("Pista_Time_Target",&Pista_Time_Target,"Pista_Time_Target/D");
-  RootOutput::getInstance()->GetTree()->Branch("Vamos_Time_Target",&Vamos_Time_Target,"Vamos_Time_Target/D");
-
-  RootOutput::getInstance()->GetTree()->Branch("FF_DE",&FF_DE,"FF_DE/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_Eres",&FF_Eres,"FF_Eres/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_Z",&FF_Z,"FF_Z/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_Theta",&FF_Theta,"FF_Theta/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_Phi",&FF_Phi,"FF_Phi/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_Brho",&FF_Brho,"FF_Brho/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_Path",&FF_Path,"FF_Path/D");
-
-  RootOutput::getInstance()->GetTree()->Branch("FF_Y1",&FF_Y1,"FF_Y1/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_Y3",&FF_Y3,"FF_Y3/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_IC_Y",&FF_IC_Y,"FF_IC_Y/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_IC_X",&FF_IC_X,"FF_IC_X/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_D13",&FF_D13,"FF_D13/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_T13",&FF_T13,"FF_T13/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_V13",&FF_V13,"FF_V13/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_AoQ13",&FF_AoQ13,"FF_AoQ13/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_Beta13",&FF_Beta13,"FF_Beta13/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_Gamma13",&FF_Gamma13,"FF_Gamma13/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_Q13",&FF_Q13,"FF_Q13/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_M13",&FF_M13,"FF_M13/D");
-  RootOutput::getInstance()->GetTree()->Branch("FF_Mass13",&FF_Mass13,"FF_Mass13/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);
-  RootOutput::getInstance()->GetTree()->Branch("m_2alpha",&m_2alpha,"m_2alpha/I");
-
-  RootOutput::getInstance()->GetTree()->Branch("Exo_cosa",&Exo_cosa,"Exo_cosa/D");
-  RootOutput::getInstance()->GetTree()->Branch("Exo_E",&Exo_E,"Exo_E/D");
-  RootOutput::getInstance()->GetTree()->Branch("Exo_EDC_vamos",&Exo_EDC_vamos,"Exo_EDC_vamos/D");
-  RootOutput::getInstance()->GetTree()->Branch("Exo_EDC_pista",&Exo_EDC_pista,"Exo_EDC_pista/D");
-  RootOutput::getInstance()->GetTree()->Branch("Exo_Theta",&Exo_Theta,"Exo_Theta/D");
-  RootOutput::getInstance()->GetTree()->Branch("Exo_Phi",&Exo_Phi,"Exo_Phi/D");
-
-  RootOutput::getInstance()->GetTree()->Branch("VAMOS_TS_hour",&VAMOS_TS_hour,"VAMOS_TS_hour/D");
-  RootOutput::getInstance()->GetTree()->Branch("PISTA_TS_hour",&PISTA_TS_hour,"PISTA_TS_hour/D");
-
-  
+    RootOutput::getInstance()->GetTree()->Branch("Time",&Time);
+
+    RootOutput::getInstance()->GetTree()->Branch("BeamEnergy",&BeamEnergy,"BeamEnergy/D");
+
+    RootOutput::getInstance()->GetTree()->Branch("XTarget",&XTarget,"XTarget/D");
+    RootOutput::getInstance()->GetTree()->Branch("XTargetLin",&XTargetLin,"XTargetLin/D");
+    RootOutput::getInstance()->GetTree()->Branch("YTarget",&YTarget,"YTarget/D");
+    RootOutput::getInstance()->GetTree()->Branch("YTargetLin",&YTargetLin,"YTargetLin/D");
+    RootOutput::getInstance()->GetTree()->Branch("ZTarget",&ZTarget,"ZTarget/D");
+
+    RootOutput::getInstance()->GetTree()->Branch("Ex242Pu",&Ex242Pu,"Ex242Pu/D");
+    RootOutput::getInstance()->GetTree()->Branch("Ex240Pu",&Ex240Pu,"Ex240Pu/D");
+    RootOutput::getInstance()->GetTree()->Branch("Ex240PuLin",&Ex240PuLin,"Ex240PuLin/D");
+    RootOutput::getInstance()->GetTree()->Branch("Ex236U",&Ex236U,"Ex236U/D");
+    RootOutput::getInstance()->GetTree()->Branch("Ex238U",&Ex238U,"Ex238U/D");
+
+    RootOutput::getInstance()->GetTree()->Branch("DeltaE",&DeltaE,"DeltaE/D");
+    RootOutput::getInstance()->GetTree()->Branch("DeltaEcorr",&DeltaEcorr,"DeltaEcorr/D");
+    RootOutput::getInstance()->GetTree()->Branch("Eres",&Eres,"Eres/D");
+
+    RootOutput::getInstance()->GetTree()->Branch("Telescope",&Telescope,"Telescope/I");
+    RootOutput::getInstance()->GetTree()->Branch("PID",&PID,"PID/D");
+
+    RootOutput::getInstance()->GetTree()->Branch("Elab",&Elab,"Elab/D");
+    RootOutput::getInstance()->GetTree()->Branch("ThetaLab",&ThetaLab,"ThetaLab/D");
+
+    RootOutput::getInstance()->GetTree()->Branch("Beta_pista",&Beta_pista,"Beta_pista/D");
+    RootOutput::getInstance()->GetTree()->Branch("ThetaLabLin",&ThetaLabLin,"ThetaLabLin/D");
+    RootOutput::getInstance()->GetTree()->Branch("ThetaDetectorSurface",&ThetaDetectorSurface,"ThetaDetectorSurface/D");
+    RootOutput::getInstance()->GetTree()->Branch("PhiLab",&PhiLab,"PhiLab/D");
+    RootOutput::getInstance()->GetTree()->Branch("ThetaCM",&ThetaCM,"ThetaCM/D");
+
+    RootOutput::getInstance()->GetTree()->Branch("Xcalc",&Xcalc,"Xcalc/D");
+    RootOutput::getInstance()->GetTree()->Branch("Ycalc",&Ycalc,"Ycalc/D");
+    RootOutput::getInstance()->GetTree()->Branch("Zcalc",&Zcalc,"Zcalc/D");
+
+    RootOutput::getInstance()->GetTree()->Branch("strip_DE",&strip_DE,"strip_DE/I");
+    RootOutput::getInstance()->GetTree()->Branch("strip_E",&strip_E,"strip_E/I");
+    RootOutput::getInstance()->GetTree()->Branch("Time_E",&Time_E,"Time_E/D");
+
+    RootOutput::getInstance()->GetTree()->Branch("Pista_Time_Target",&Pista_Time_Target,"Pista_Time_Target/D");
+    RootOutput::getInstance()->GetTree()->Branch("Vamos_Time_Target",&Vamos_Time_Target,"Vamos_Time_Target/D");
+
+    RootOutput::getInstance()->GetTree()->Branch("FF_DE",&FF_DE,"FF_DE/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_Eres",&FF_Eres,"FF_Eres/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_Z",&FF_Z,"FF_Z/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_Theta",&FF_Theta,"FF_Theta/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_Phi",&FF_Phi,"FF_Phi/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_Brho",&FF_Brho,"FF_Brho/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_Path",&FF_Path,"FF_Path/D");
+
+    RootOutput::getInstance()->GetTree()->Branch("FF_DriftTime",&FF_DriftTime);
+    RootOutput::getInstance()->GetTree()->Branch("FF_Y1",&FF_Y1,"FF_Y1/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_Y3",&FF_Y3,"FF_Y3/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_IC_Y",&FF_IC_Y,"FF_IC_Y/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_IC_X",&FF_IC_X,"FF_IC_X/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_D13",&FF_D13,"FF_D13/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_T13",&FF_T13,"FF_T13/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_V13",&FF_V13,"FF_V13/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_AoQ13",&FF_AoQ13,"FF_AoQ13/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_Beta13",&FF_Beta13,"FF_Beta13/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_Gamma13",&FF_Gamma13,"FF_Gamma13/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_Q13",&FF_Q13,"FF_Q13/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_M13",&FF_M13,"FF_M13/D");
+    RootOutput::getInstance()->GetTree()->Branch("FF_Mass13",&FF_Mass13,"FF_Mass13/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);
+    RootOutput::getInstance()->GetTree()->Branch("m_2alpha",&m_2alpha,"m_2alpha/I");
+
+    RootOutput::getInstance()->GetTree()->Branch("Exo_cosa",&Exo_cosa,"Exo_cosa/D");
+    RootOutput::getInstance()->GetTree()->Branch("Exo_E",&Exo_E,"Exo_E/D");
+    RootOutput::getInstance()->GetTree()->Branch("Exo_EDC_vamos",&Exo_EDC_vamos,"Exo_EDC_vamos/D");
+    RootOutput::getInstance()->GetTree()->Branch("Exo_EDC_pista",&Exo_EDC_pista,"Exo_EDC_pista/D");
+    RootOutput::getInstance()->GetTree()->Branch("Exo_Theta",&Exo_Theta,"Exo_Theta/D");
+    RootOutput::getInstance()->GetTree()->Branch("Exo_Phi",&Exo_Phi,"Exo_Phi/D");
+
+    RootOutput::getInstance()->GetTree()->Branch("VAMOS_TS_hour",&VAMOS_TS_hour,"VAMOS_TS_hour/D");
+    RootOutput::getInstance()->GetTree()->Branch("PISTA_TS_hour",&PISTA_TS_hour,"PISTA_TS_hour/D");
+
+
 
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::InitInputBranch(){
-  RootInput::getInstance()->GetChain()->SetBranchStatus("Time",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("Time",&Time);
-  
-  RootInput::getInstance()->GetChain()->SetBranchStatus("T_TMW0_FPMW0",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("T_TMW0_FPMW0",&T13);
-
-  RootInput::getInstance()->GetChain()->SetBranchStatus("T_TMW0_FPMW1",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("T_TMW0_FPMW1",&T14);
-
-  RootInput::getInstance()->GetChain()->SetBranchStatus("T_TMW1_FPMW0",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("T_TMW1_FPMW0",&T23);
-
-  RootInput::getInstance()->GetChain()->SetBranchStatus("T_TMW1_FPMW1",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("T_TMW1_FPMW1",&T24);
-
-  RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP0_T0VN",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP0_T0VN",&MTOF_FP0_T0VN);
-  RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP0_T1VN",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP0_T1VN",&MTOF_FP0_T1VN);
-  RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP1_T0VN",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP1_T0VN",&MTOF_FP1_T0VN);
-  RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP1_T1VN",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP1_T1VN",&MTOF_FP1_T1VN);
-
-  RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP0_T0V",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP0_T0V",&MTOF_FP0_T0V);
-  RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP0_T1V",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP0_T1V",&MTOF_FP0_T1V);
-  RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP1_T0V",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP1_T0V",&MTOF_FP1_T0V);
-  RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP1_T1V",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP1_T1V",&MTOF_FP1_T1V);
-
-
-  RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP0_T0VM",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP0_T0VM",&MTOF_FP0_T0VM);
-  RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP0_T1VM",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP0_T1VM",&MTOF_FP0_T1VM);
-  RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP1_T0VM",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP1_T0VM",&MTOF_FP1_T0VM);
-  RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP1_T1VM",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP1_T1VM",&MTOF_FP1_T1VM);
-
-  RootInput::getInstance()->GetChain()->SetBranchStatus("fVAMOS_TS_sec",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("fVAMOS_TS_sec",&fVAMOS_TS_sec);
-  RootInput::getInstance()->GetChain()->SetBranchStatus("fPISTA_TS_sec",true);
-  RootInput::getInstance()->GetChain()->SetBranchAddress("fPISTA_TS_sec",&fPISTA_TS_sec);
+    RootInput::getInstance()->GetChain()->SetBranchStatus("Time",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("Time",&Time);
+
+    RootInput::getInstance()->GetChain()->SetBranchStatus("T_TMW0_FPMW0",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("T_TMW0_FPMW0",&T13);
+
+    RootInput::getInstance()->GetChain()->SetBranchStatus("T_TMW0_FPMW1",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("T_TMW0_FPMW1",&T14);
+
+    RootInput::getInstance()->GetChain()->SetBranchStatus("T_TMW1_FPMW0",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("T_TMW1_FPMW0",&T23);
+
+    RootInput::getInstance()->GetChain()->SetBranchStatus("T_TMW1_FPMW1",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("T_TMW1_FPMW1",&T24);
+
+    RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP0_T0VN",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP0_T0VN",&MTOF_FP0_T0VN);
+    RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP0_T1VN",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP0_T1VN",&MTOF_FP0_T1VN);
+    RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP1_T0VN",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP1_T0VN",&MTOF_FP1_T0VN);
+    RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP1_T1VN",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP1_T1VN",&MTOF_FP1_T1VN);
+
+    RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP0_T0V",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP0_T0V",&MTOF_FP0_T0V);
+    RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP0_T1V",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP0_T1V",&MTOF_FP0_T1V);
+    RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP1_T0V",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP1_T0V",&MTOF_FP1_T0V);
+    RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP1_T1V",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP1_T1V",&MTOF_FP1_T1V);
+
+
+    RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP0_T0VM",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP0_T0VM",&MTOF_FP0_T0VM);
+    RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP0_T1VM",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP0_T1VM",&MTOF_FP0_T1VM);
+    RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP1_T0VM",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP1_T0VM",&MTOF_FP1_T0VM);
+    RootInput::getInstance()->GetChain()->SetBranchStatus("MTOF_FP1_T1VM",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("MTOF_FP1_T1VM",&MTOF_FP1_T1VM);
+
+    RootInput::getInstance()->GetChain()->SetBranchStatus("fVAMOS_TS_sec",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("fVAMOS_TS_sec",&fVAMOS_TS_sec);
+    RootInput::getInstance()->GetChain()->SetBranchStatus("fPISTA_TS_sec",true);
+    RootInput::getInstance()->GetChain()->SetBranchAddress("fPISTA_TS_sec",&fPISTA_TS_sec);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::ReInitValue(){
-  BeamEnergy = -1000;
-  Ex242Pu = -1000;
-  Ex240Pu = -1000;
-  Ex240PuLin = -1000;
-  Ex236U = -1000;
-  Ex238U = -1000;
-  DeltaE = -1000;
-  DeltaEcorr = -1000;
-  Eres = -1000;
-  Elab = -1000;
-  ThetaLab = -1000;
-  Beta_pista = -1;
-  ThetaDetectorSurface = -1000;
-  PhiLab = -1000;
-  ThetaCM = -1000;
-  XTarget = -1000;
-  XTargetLin = -1000;
-  YTarget = -1000;
-  YTargetLin = -1000;
-  ZTarget = -1000;
-  Xcalc = -1000;
-  Ycalc = -1000;
-  Zcalc = -1000;
-  PID = -1000;
-  Telescope = -1;
-  strip_DE = -1;
-  strip_E = -1;
-  Time_E = -1000;
-  Pista_Time_Target = -1000;
-  Vamos_Time_Target = -1000;
-
-  Exo_cosa = -100;
-  Exo_E = -100;
-  Exo_EDC_vamos = -100;
-  Exo_EDC_pista = -100;
-  Exo_Theta = -100;
-  Exo_Phi = -100;
-
-  FF_Theta = -100;
-  FF_Phi = -100;
-  FF_Brho = -1;
-  FF_Path = -1;
-  FF_Y1 = -1000;
-  FF_Y3 = -1000;
-  FF_IC_X = -1000;
-  FF_IC_Y = -1000;
-  FF_D13 = -1;
-  FF_T13 = -1;
-  FF_V13 = -1;
-  FF_AoQ13 = -1;
-  FF_Beta13 = -1;
-  FF_Gamma13 = -1;
-  FF_Q13 = -1;
-  FF_M13 = -1;
-  FF_Mass13 = -1;
-  FPMW_Section = -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();
+    BeamEnergy = -1000;
+    Ex242Pu = -1000;
+    Ex240Pu = -1000;
+    Ex240PuLin = -1000;
+    Ex236U = -1000;
+    Ex238U = -1000;
+    DeltaE = -1000;
+    DeltaEcorr = -1000;
+    Eres = -1000;
+    Elab = -1000;
+    ThetaLab = -1000;
+    Beta_pista = -1;
+    ThetaDetectorSurface = -1000;
+    PhiLab = -1000;
+    ThetaCM = -1000;
+    XTarget = -1000;
+    XTargetLin = -1000;
+    YTarget = -1000;
+    YTargetLin = -1000;
+    ZTarget = -1000;
+    Xcalc = -1000;
+    Ycalc = -1000;
+    Zcalc = -1000;
+    PID = -1000;
+    Telescope = -1;
+    strip_DE = -1;
+    strip_E = -1;
+    Time_E = -1000;
+    Pista_Time_Target = -1000;
+    Vamos_Time_Target = -1000;
+
+    Exo_cosa = -100;
+    Exo_E = -100;
+    Exo_EDC_vamos = -100;
+    Exo_EDC_pista = -100;
+    Exo_Theta = -100;
+    Exo_Phi = -100;
+
+    FF_Theta = -100;
+    FF_Phi = -100;
+    FF_Brho = -1;
+    FF_Path = -1;
+    FF_Y1 = -1000;
+    FF_Y3 = -1000;
+    FF_IC_X = -1000;
+    FF_IC_Y = -1000;
+    FF_D13 = -1;
+    FF_T13 = -1;
+    FF_V13 = -1;
+    FF_AoQ13 = -1;
+    FF_Beta13 = -1;
+    FF_Gamma13 = -1;
+    FF_Q13 = -1;
+    FF_M13 = -1;
+    FF_Mass13 = -1;
+    FPMW_Section = -1;
+    FF_DriftTime.clear();
+
+    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();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::ReadAnalysisConfig(){
-  bool ReadingStatus = false;
+    bool ReadingStatus = false;
 
-  string filename = "AnalysisConfig.dat";
+    string filename = "AnalysisConfig.dat";
 
-  // open analysis config file
-  ifstream AnalysisConfigFile;
-  AnalysisConfigFile.open(filename.c_str());
+    // open analysis config file
+    ifstream AnalysisConfigFile;
+    AnalysisConfigFile.open(filename.c_str());
 
-  if (!AnalysisConfigFile.is_open()) {
-    cout << " No AnalysisConfig.dat found: Default parameter loaded for Analayis " << filename << endl;
-    return;
-  }
-  cout << "**** Loading user parameter for Analysis from AnalysisConfig.dat " << endl;
-
-  // Save it in a TAsciiFile
-  TAsciiFile* asciiConfig = RootOutput::getInstance()->GetAsciiFileAnalysisConfig();
-  asciiConfig->AppendLine("%%% AnalysisConfig.dat %%%");
-  asciiConfig->Append(filename.c_str());
-  asciiConfig->AppendLine("");
-  // read analysis config file
-  string LineBuffer,DataBuffer,whatToDo;
-  while (!AnalysisConfigFile.eof()) {
-    // Pick-up next line
-    getline(AnalysisConfigFile, LineBuffer);
-
-    // search for "header"
-    string name = "AnalysisConfig";
-    if (LineBuffer.compare(0, name.length(), name) == 0) 
-      ReadingStatus = true;
-
-    // loop on tokens and data
-    while (ReadingStatus ) {
-      whatToDo="";
-      AnalysisConfigFile >> whatToDo;
-
-      // Search for comment symbol (%)
-      if (whatToDo.compare(0, 1, "%") == 0) {
-        AnalysisConfigFile.ignore(numeric_limits<streamsize>::max(), '\n' );
-      }
-
-      else if (whatToDo=="XTARGET_OFFSET") {
-        AnalysisConfigFile >> DataBuffer;
-        m_XTarget_offset = atof(DataBuffer.c_str());
-        cout << "**** " << whatToDo << " " << m_XTarget_offset << endl;
-      }
-      else if (whatToDo=="YTARGET_OFFSET") {
-        AnalysisConfigFile >> DataBuffer;
-        m_YTarget_offset = atof(DataBuffer.c_str());
-        cout << "**** " << whatToDo << " " << m_YTarget_offset << endl;
-      }
-      else if (whatToDo=="ZTARGET_OFFSET") {
-        AnalysisConfigFile >> DataBuffer;
-        m_ZTarget_offset = atof(DataBuffer.c_str());
-        cout << "**** " << whatToDo << " " << m_ZTarget_offset << endl;
-      }
-      else if (whatToDo=="BEAM_THETAX") {
-        AnalysisConfigFile >> DataBuffer;
-        m_Beam_ThetaX = atof(DataBuffer.c_str());
-        cout << "**** " << whatToDo << " " << m_Beam_ThetaX << endl;
-      }
-      else if (whatToDo=="BEAM_THETAY") {
-        AnalysisConfigFile >> DataBuffer;
-        m_Beam_ThetaY = atof(DataBuffer.c_str());
-        cout << "**** " << whatToDo << " " << m_Beam_ThetaY << endl;
-      }
-      else if (whatToDo=="BRHO_REF") {
-        AnalysisConfigFile >> DataBuffer;
-        m_Brho_ref = atof(DataBuffer.c_str());
-        cout << "**** " << whatToDo << " " << m_Brho_ref << endl;
-      }
-      else if (whatToDo=="VAMOS_ANGLE") {
-        AnalysisConfigFile >> DataBuffer;
-        m_Vamos_Angle = atof(DataBuffer.c_str());
-        cout << "**** " << whatToDo << " " << m_Vamos_Angle << endl;
-      }
-
-      else {
-        ReadingStatus = false;
-      }
+    if (!AnalysisConfigFile.is_open()) {
+        cout << " No AnalysisConfig.dat found: Default parameter loaded for Analayis " << filename << endl;
+        return;
+    }
+    cout << "**** Loading user parameter for Analysis from AnalysisConfig.dat " << endl;
+
+    // Save it in a TAsciiFile
+    TAsciiFile* asciiConfig = RootOutput::getInstance()->GetAsciiFileAnalysisConfig();
+    asciiConfig->AppendLine("%%% AnalysisConfig.dat %%%");
+    asciiConfig->Append(filename.c_str());
+    asciiConfig->AppendLine("");
+    // read analysis config file
+    string LineBuffer,DataBuffer,whatToDo;
+    while (!AnalysisConfigFile.eof()) {
+        // Pick-up next line
+        getline(AnalysisConfigFile, LineBuffer);
+
+        // search for "header"
+        string name = "AnalysisConfig";
+        if (LineBuffer.compare(0, name.length(), name) == 0) 
+            ReadingStatus = true;
+
+        // loop on tokens and data
+        while (ReadingStatus ) {
+            whatToDo="";
+            AnalysisConfigFile >> whatToDo;
+
+            // Search for comment symbol (%)
+            if (whatToDo.compare(0, 1, "%") == 0) {
+                AnalysisConfigFile.ignore(numeric_limits<streamsize>::max(), '\n' );
+            }
+
+            else if (whatToDo=="XTARGET_OFFSET") {
+                AnalysisConfigFile >> DataBuffer;
+                m_XTarget_offset = atof(DataBuffer.c_str());
+                cout << "**** " << whatToDo << " " << m_XTarget_offset << endl;
+            }
+            else if (whatToDo=="YTARGET_OFFSET") {
+                AnalysisConfigFile >> DataBuffer;
+                m_YTarget_offset = atof(DataBuffer.c_str());
+                cout << "**** " << whatToDo << " " << m_YTarget_offset << endl;
+            }
+            else if (whatToDo=="ZTARGET_OFFSET") {
+                AnalysisConfigFile >> DataBuffer;
+                m_ZTarget_offset = atof(DataBuffer.c_str());
+                cout << "**** " << whatToDo << " " << m_ZTarget_offset << endl;
+            }
+            else if (whatToDo=="BEAM_THETAX") {
+                AnalysisConfigFile >> DataBuffer;
+                m_Beam_ThetaX = atof(DataBuffer.c_str());
+                cout << "**** " << whatToDo << " " << m_Beam_ThetaX << endl;
+            }
+            else if (whatToDo=="BEAM_THETAY") {
+                AnalysisConfigFile >> DataBuffer;
+                m_Beam_ThetaY = atof(DataBuffer.c_str());
+                cout << "**** " << whatToDo << " " << m_Beam_ThetaY << endl;
+            }
+            else if (whatToDo=="BRHO_REF") {
+                AnalysisConfigFile >> DataBuffer;
+                m_Brho_ref = atof(DataBuffer.c_str());
+                cout << "**** " << whatToDo << " " << m_Brho_ref << endl;
+            }
+            else if (whatToDo=="VAMOS_ANGLE") {
+                AnalysisConfigFile >> DataBuffer;
+                m_Vamos_Angle = atof(DataBuffer.c_str());
+                cout << "**** " << whatToDo << " " << m_Vamos_Angle << endl;
+            }
+
+            else {
+                ReadingStatus = false;
+            }
+        }
     }
-  }
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -837,20 +840,20 @@ void Analysis::End(){
 //            Construct Method to be pass to the DetectorFactory              //
 ////////////////////////////////////////////////////////////////////////////////
 NPL::VAnalysis* Analysis::Construct(){
-  return (NPL::VAnalysis*) new Analysis();
+    return (NPL::VAnalysis*) new Analysis();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 //            Registering the construct method to the factory                 //
 ////////////////////////////////////////////////////////////////////////////////
 extern "C"{
-  class proxy{
-    public:
-      proxy(){
-        NPL::AnalysisFactory::getInstance()->SetConstructor(Analysis::Construct);
-      }
-  };
-
-  proxy p;
+    class proxy{
+        public:
+            proxy(){
+                NPL::AnalysisFactory::getInstance()->SetConstructor(Analysis::Construct);
+            }
+    };
+
+    proxy p;
 }
 
diff --git a/Projects/AlPhaPha/2024/Analysis.h b/Projects/AlPhaPha/2024/Analysis.h
index 07f10c034..29d6fa77e 100644
--- a/Projects/AlPhaPha/2024/Analysis.h
+++ b/Projects/AlPhaPha/2024/Analysis.h
@@ -37,6 +37,7 @@
 #include "TSpline.h"
 #include "TChain.h"
 #include "TTimeData.h"
+#include <vector>
 
 class Analysis: public NPL::VAnalysis{
   public:
@@ -141,7 +142,7 @@ class Analysis: public NPL::VAnalysis{
     double FF_M13;
     double FF_Mass13;
     double FF_Etot13;
-    Float_t FF_DriftTime[20];
+    vector<long> FF_DriftTime;
 
     double Exo_cosa;
     double Exo_E;
diff --git a/Projects/AlPhaPha/2024/SnakeFileGeneric b/Projects/AlPhaPha/2024/Snakefile
similarity index 86%
rename from Projects/AlPhaPha/2024/SnakeFileGeneric
rename to Projects/AlPhaPha/2024/Snakefile
index 9aa13a1ad..c2b42c166 100644
--- a/Projects/AlPhaPha/2024/SnakeFileGeneric
+++ b/Projects/AlPhaPha/2024/Snakefile
@@ -3,7 +3,7 @@ import subprocess
 
 # Lire le répertoire d'entrée depuis les arguments de configuration
 #input_directory = config["folder"]
-input_directory = os.getcwd() + "/../DataMacro/output/run_241"
+input_directory = os.getcwd() + "/../DataMacro/output/run_247"
 origin = [] 
 # Iterate over files in input_directory
 for filename in os.listdir(input_directory):
@@ -12,14 +12,14 @@ for filename in os.listdir(input_directory):
     origin.append(filename)
 
 # Définir le répertoire de sortie pour les fichiers convertis
-phy_directory = os.getcwd() + "/../DataMacro/output/analysis"
+phy_directory = os.getcwd() + "/../DataMacro/output/analysis/run_247"
 #phy_directory = "./"
 
 # define target files directory
 analysedfile = []
 for inputfile in origin:
   #analysedfile.append("/home/morfouacep/Physics/NPTool/nptool/Projects/ana_e850/root/analysis/"+inputfile.replace("_raw_","_"))
-  analysedfile.append( os.getcwd() + "/../DataMacro/output/analysis/"+inputfile)
+  analysedfile.append( os.getcwd() + "/../DataMacro/output/analysis/run_247/"+inputfile)
 
 ## batch rules
 rule all:
diff --git a/Projects/AlPhaPha/2024/convert_snakemake_generic.sh b/Projects/AlPhaPha/2024/convert_snakemake_generic.sh
index 10a5f3daf..bf228e97a 100755
--- a/Projects/AlPhaPha/2024/convert_snakemake_generic.sh
+++ b/Projects/AlPhaPha/2024/convert_snakemake_generic.sh
@@ -3,4 +3,4 @@ echo "- executing snakemake file for npanalysis..."
 snakemake --cores 30 --forceall --keep-incomplete --keep-going --rerun-incomplete
 echo "- snakemake executed successfully!"
 echo "- Merging file..."
-root -q '../DataMacro/Merger.C(16,"root/analysis","VamosCalib241","../DataMacro/output/analysis/run_raw_241_")'
+root -q '../DataMacro/Merger.C(30,"root/analysis","VamosCalib247","../DataMacro/output/analysis/run_raw_247_")'
-- 
GitLab