diff --git a/NPLib/Detectors/PISTA/TTimeData.cxx b/NPLib/Detectors/PISTA/TTimeData.cxx
index 0ceb7608ec545e1859a83bdfe4d90b062644b272..cb8713f660e51856e867ed046a518bcc9d047484 100644
--- a/NPLib/Detectors/PISTA/TTimeData.cxx
+++ b/NPLib/Detectors/PISTA/TTimeData.cxx
@@ -53,6 +53,10 @@ void TTimeData::Clear() {
   fTime_MWPC14.clear();
   fTime_MWPC23.clear();
   fTime_MWPC24.clear();
+
+  fSection_MWPC3.clear();
+  fSection_MWPC4.clear();
+
 }
 
 
diff --git a/NPLib/Detectors/PISTA/TTimeData.h b/NPLib/Detectors/PISTA/TTimeData.h
index 2d036067cba9fca09e7d971c3933f5f42d82ddb9..d56982141903c3cad350f77b0d3193f5f893f3dd 100644
--- a/NPLib/Detectors/PISTA/TTimeData.h
+++ b/NPLib/Detectors/PISTA/TTimeData.h
@@ -44,6 +44,8 @@ class TTimeData : public TObject {
         vector<float> fTime_MWPC23;
         vector<float> fTime_MWPC24;
 
+        vector<short> fSection_MWPC3;
+        vector<short> fSection_MWPC4;
 
 
 
@@ -80,6 +82,10 @@ class TTimeData : public TObject {
         inline void SetTime_MWPC23(float time ){fTime_MWPC23.push_back(time);};//!
         inline void SetTime_MWPC24(float time ){fTime_MWPC24.push_back(time);};//!
 
+        inline void SetSection_MWPC3(short section ){fSection_MWPC3.push_back(section);};//!
+        inline void SetSection_MWPC4(short section ){fSection_MWPC4.push_back(section);};//!
+
+
 
 
         //////////////////////    GETTERS    ////////////////////////
@@ -100,7 +106,12 @@ class TTimeData : public TObject {
         {return fTime_MWPC23.at(i) ;}//!
         inline float GetTime_MWPC24(const unsigned int &i) const
         {return fTime_MWPC24.at(i) ;}//!
-         
+        
+        inline short GetSection_MWPC3(const unsigned int &i) const
+        {return fSection_MWPC3.at(i) ;}//!
+        inline short GetSection_MWPC4(const unsigned int &i) const
+        {return fSection_MWPC4.at(i) ;}//!
+          
         inline Int_t GetMWPC13Mult() const
         {return static_cast<int>(fTime_MWPC13.size());}         
         inline Int_t GetMWPC14Mult() const
@@ -112,7 +123,7 @@ class TTimeData : public TObject {
 
         //////////////////////////////////////////////////////////////
         // Required for ROOT dictionnary
-        ClassDef(TTimeData,1)  // TimeData structure
+        ClassDef(TTimeData,2)  // TimeData structure
 };
 
 #endif
diff --git a/NPLib/Physics/NPReaction.cxx b/NPLib/Physics/NPReaction.cxx
index 6f890404c9fc15904a6392a296bfb55d3b1d29b6..70f0206a18977458ea78d3ab9b19720b27a215f4 100644
--- a/NPLib/Physics/NPReaction.cxx
+++ b/NPLib/Physics/NPReaction.cxx
@@ -639,10 +639,10 @@ void Reaction::initializePrecomputeVariable() {
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////////
-void Reaction::SetParticle3(double EnergyLab, double ThetaLab) {
+void Reaction::SetParticle3(double EnergyLab, double ThetaLab, double PhiLab) {
   double p3 = sqrt(pow(EnergyLab, 2) + 2 * m3 * EnergyLab);
 
-  fEnergyImpulsionLab_3 = TLorentzVector(p3 * sin(ThetaLab), 0, p3 * cos(ThetaLab), EnergyLab + m3);
+  fEnergyImpulsionLab_3 = TLorentzVector(p3 * sin(ThetaLab) * cos(PhiLab), p3 * sin(ThetaLab) * sin(PhiLab), p3 * cos(ThetaLab), EnergyLab + m3);
   fEnergyImpulsionLab_4 = fTotalEnergyImpulsionLab - fEnergyImpulsionLab_3;
 
   fParticle3.SetEnergyImpulsion(fEnergyImpulsionLab_3);
diff --git a/NPLib/Physics/NPReaction.h b/NPLib/Physics/NPReaction.h
index 52037c6d0e4a14d28b8359d4b1b982be482688e5..fa43b2c6a3046a13d08c9d3554deaa5953965ce3 100644
--- a/NPLib/Physics/NPReaction.h
+++ b/NPLib/Physics/NPReaction.h
@@ -262,7 +262,7 @@ namespace NPL {
     // Check whenever the reaction is allowed at the given energy
     bool IsAllowed(double Energy);
 
-    void SetParticle3(double EnergyLab, double ThetaLab);
+    void SetParticle3(double EnergyLab, double ThetaLab, double PhiLab = 0);
 
     void SetParticle1(Beam p) { fParticle1 = p; };
     void SetParticle2(Particle p) { fParticle2 = p; };
diff --git a/NPSimulation/Detectors/PISTA/PISTA.cc b/NPSimulation/Detectors/PISTA/PISTA.cc
index 462352433a3b06907ccf06ca0755d23f3dcb879d..f7ebec47fb36d9d4b1be5a229764f7222313a1d4 100644
--- a/NPSimulation/Detectors/PISTA/PISTA.cc
+++ b/NPSimulation/Detectors/PISTA/PISTA.cc
@@ -64,26 +64,26 @@ namespace PISTA_NS{
   const double E_ResoEnergy  = 0.018*MeV ;
 
   // Trapezoid dimension PISTA1
-  //const double TrapezoidBaseLarge = 72.3*mm;
-  //const double TrapezoidBaseSmall = 41.0*mm;
-  //const double TrapezoidHeight = 57.7*mm;
-  //const double TrapezoidLength = 1*cm;
-  //const double FirstStageThickness = 300*um;
-  //const double SecondStageThickness = 1.5*mm;
-  //const double DistanceBetweenSi = 4*mm;
-  //const double FirstStageNbrOfStrips = 91;
-  //const double SecondStageNbrOfStrips = 57;
+  double TrapezoidBaseLarge = 72.3*mm;
+  double TrapezoidBaseSmall = 41.0*mm;
+  double TrapezoidHeight = 57.7*mm;
+  double TrapezoidLength = 1*cm;
+  double FirstStageThickness = 300*um;
+  double SecondStageThickness = 1.5*mm;
+  double DistanceBetweenSi = 4*mm;
+  double FirstStageNbrOfStrips = 91;
+  double SecondStageNbrOfStrips = 57;
 
   // Trapezoid dimension PISTA2
-  const double TrapezoidBaseLarge = 53*mm;
-  const double TrapezoidBaseSmall = 34.0*mm;
-  const double TrapezoidHeight = 27*mm;
-  const double TrapezoidLength = 1*cm;
-  const double FirstStageThickness = 0.3*mm;
-  const double SecondStageThickness = 1.5*mm;
-  const double DistanceBetweenSi = 3*mm;
-  const double FirstStageNbrOfStrips = 49;
-  const double SecondStageNbrOfStrips = 45;
+  //double TrapezoidBaseLarge = 53*mm;
+  //double TrapezoidBaseSmall = 34.0*mm;
+  //double TrapezoidHeight = 27*mm;
+  //double TrapezoidLength = 1*cm;
+  //double FirstStageThickness = 0.3*mm;
+  //double SecondStageThickness = 1.5*mm;
+  //double DistanceBetweenSi = 3*mm;
+  //double FirstStageNbrOfStrips = 49;
+  //double SecondStageNbrOfStrips = 45;
 }
 using namespace PISTA_NS;
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -95,6 +95,7 @@ PISTA::PISTA(){
   m_FirstStageScorer = 0;
   m_SecondStageScorer = 0;
   m_TrapezoidDetector = 0;
+  m_version = 1;
 }
 
 PISTA::~PISTA(){
@@ -111,6 +112,29 @@ void PISTA::AddDetector(G4ThreeVector A, G4ThreeVector B, G4ThreeVector C, G4Thr
   m_R.push_back(0);
   m_Theta.push_back(0);
   m_Phi.push_back(0);
+
+  if(m_version==1){
+    TrapezoidBaseLarge = 72.3*mm;
+    TrapezoidBaseSmall = 41.0*mm;
+    TrapezoidHeight = 57.7*mm;
+    TrapezoidLength = 1*cm;
+    FirstStageThickness = 300*um;
+    SecondStageThickness = 1.5*mm;
+    DistanceBetweenSi = 4*mm;
+    FirstStageNbrOfStrips = 91;
+    SecondStageNbrOfStrips = 57;
+  }
+  else if(m_version==2){
+    TrapezoidBaseLarge = 53*mm;
+    TrapezoidBaseSmall = 34.0*mm;
+    TrapezoidHeight = 27*mm;
+    TrapezoidLength = 1*cm;
+    FirstStageThickness = 0.3*mm;
+    SecondStageThickness = 1.5*mm;
+    DistanceBetweenSi = 3*mm;
+    FirstStageNbrOfStrips = 49;
+    SecondStageNbrOfStrips = 45;
+  }
 }
 
 
@@ -225,6 +249,7 @@ void PISTA::ReadConfiguration(NPL::InputParser parser){
       if(NPOptionManager::getInstance()->GetVerboseLevel())
         cout << endl << "////  PISTA " << i+1 <<  endl;
 
+      m_version = blocks[i]->GetInt("VERSION");
       G4ThreeVector A = NPS::ConvertVector(blocks[i]->GetTVector3("POS_A","mm"));
       G4ThreeVector B = NPS::ConvertVector(blocks[i]->GetTVector3("POS_B","mm"));
       G4ThreeVector C = NPS::ConvertVector(blocks[i]->GetTVector3("POS_C","mm"));
@@ -277,7 +302,7 @@ void PISTA::ConstructDetector(G4LogicalVolume* world){
       w = w.unit();
 
       center = (m_A[i] + m_B[i] + m_C[i] + m_D[i])/4;
-    
+
       Rot = new G4RotationMatrix(u,v,w);
       Det_pos = w * TrapezoidLength * 0.5 + center; 
     }
@@ -343,9 +368,9 @@ void PISTA::ReadSensitive(const G4Event* ){
       m_Event->SetPISTA_DE_StripTime(Time);
     }
   }
-  
+
   unsigned int sizeDEBack = FirstStageScorer->GetLengthMult();
-   for(unsigned int i = 0 ; i < sizeDEBack ; i++){
+  for(unsigned int i = 0 ; i < sizeDEBack ; i++){
     double EnergyBack = RandGauss::shoot(FirstStageScorer->GetEnergyLength(i), DE_ResoEnergy);   
     if(EnergyBack>EnergyThreshold){
       double Time = RandGauss::shoot(FirstStageScorer->GetTimeLength(i), ResoTime);
@@ -356,18 +381,18 @@ void PISTA::ReadSensitive(const G4Event* ){
 
     }
   }
-  
+
   /*for(unsigned int i = 0 ; i < sizeDEFront ; i++){
     double EnergyFront = RandGauss::shoot(FirstStageScorer->GetEnergyWidth(i), DE_ResoEnergy);   
     double EnergyBack  = RandGauss::shoot(FirstStageScorer->GetEnergyLength(i), DE_ResoEnergy);   
     if(EnergyFront>EnergyThreshold){
-      double Time = RandGauss::shoot(FirstStageScorer->GetTimeLength(i), ResoTime);
-      int DetNbr  = FirstStageScorer->GetDetectorWidth(i);
-      int StripFront = 92-FirstStageScorer->GetStripWidth(i);
-      m_Event->SetPISTA_DE(DetNbr, StripFront, EnergyFront, EnergyBack, Time, Time);
-      m_Event->SetPISTA_DE_BackDetector(DetNbr);
+    double Time = RandGauss::shoot(FirstStageScorer->GetTimeLength(i), ResoTime);
+    int DetNbr  = FirstStageScorer->GetDetectorWidth(i);
+    int StripFront = 92-FirstStageScorer->GetStripWidth(i);
+    m_Event->SetPISTA_DE(DetNbr, StripFront, EnergyFront, EnergyBack, Time, Time);
+    m_Event->SetPISTA_DE_BackDetector(DetNbr);
     }
-  }*/
+    }*/
   FirstStageScorer->clear();
 
   ///////////
@@ -387,7 +412,7 @@ void PISTA::ReadSensitive(const G4Event* ){
       m_Event->SetPISTA_E_StripTime(Time);
     }
   }
-  
+
   unsigned int sizeEBack = SecondStageScorer->GetWidthMult();
   for(unsigned int i = 0 ; i < sizeEBack ; i++){
     double EnergyBack = RandGauss::shoot(SecondStageScorer->GetEnergyWidth(i), E_ResoEnergy);   
@@ -399,20 +424,20 @@ void PISTA::ReadSensitive(const G4Event* ){
       m_Event->SetPISTA_E_BackTime(Time);
     }
   }
-  
+
 
 
   /*for(unsigned int i = 0 ; i < sizeEFront ; i++){
     double EnergyFront = RandGauss::shoot(SecondStageScorer->GetEnergyLength(i), E_ResoEnergy);   
     double EnergyBack  = RandGauss::shoot(SecondStageScorer->GetEnergyWidth(i), E_ResoEnergy);   
     if(EnergyFront>EnergyThreshold){
-      double Time = RandGauss::shoot(SecondStageScorer->GetTimeLength(i), ResoTime);
-      int DetNbr  = SecondStageScorer->GetDetectorLength(i);
-      int StripFront = SecondStageScorer->GetStripLength(i);
-      m_Event->SetPISTA_E(DetNbr, StripFront, EnergyFront, EnergyBack, Time, Time);
-      m_Event->SetPISTA_E_BackDetector(DetNbr);
+    double Time = RandGauss::shoot(SecondStageScorer->GetTimeLength(i), ResoTime);
+    int DetNbr  = SecondStageScorer->GetDetectorLength(i);
+    int StripFront = SecondStageScorer->GetStripLength(i);
+    m_Event->SetPISTA_E(DetNbr, StripFront, EnergyFront, EnergyBack, Time, Time);
+    m_Event->SetPISTA_E_BackDetector(DetNbr);
     }
-  }*/
+    }*/
   SecondStageScorer->clear();
 
 
diff --git a/NPSimulation/Detectors/PISTA/PISTA.hh b/NPSimulation/Detectors/PISTA/PISTA.hh
index 90548dec841c28b11394d4fafd6fbadcf2ac61a9..4ac6371879228364ade3a01f41da02a296fb327c 100644
--- a/NPSimulation/Detectors/PISTA/PISTA.hh
+++ b/NPSimulation/Detectors/PISTA/PISTA.hh
@@ -98,6 +98,7 @@ class PISTA : public NPS::VDetector{
     ////////////////////////////////////////////////////
   private: // Geometry
     // Detector Coordinate 
+    int m_version;
     vector<bool> m_DefinitionType;
     vector<G4ThreeVector>  m_A; 
     vector<G4ThreeVector>  m_B; 
diff --git a/NPSimulation/Detectors/Vamos/Vamos.cc b/NPSimulation/Detectors/Vamos/Vamos.cc
index 586262abd8747e0fac9e112f58ac40796e2648f7..67c2386f5cc03fbf1a8a8715e572ef1fd15c7c80 100644
--- a/NPSimulation/Detectors/Vamos/Vamos.cc
+++ b/NPSimulation/Detectors/Vamos/Vamos.cc
@@ -59,42 +59,52 @@ using namespace CLHEP;
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 namespace Vamos_NS {
 
-    // Energy,time and position Resolution
-    const G4double EnergyThreshold = -10 * MeV;
-    const G4double ResoTime        = 4.5 * ns;
-    const G4double ResoEnergy      = 0.0001 * MeV;
-    const G4double ResoDriftTime   = 0.0001 * ns;
-    const G4double ResoPosX        = 0.0001 * mm;
-
-    // Drift features
-    const G4double      DriftSpeed = 1 * cm / microsecond;
-    const G4ThreeVector DriftDir   = G4ThreeVector(0, 1, 0);
-
-    // Geometry
-    const G4double E_DCWidth     = 600 * mm;  // Entrance_DriftChamber
-    const G4double E_DCLength    = 150 * mm;
-    const G4double E_DCThickness = 60 * mm;
-
-    const G4double MagnetWidth     = 1000 * mm;
-    const G4double MagnetLenght    = 150 * mm;
-    const G4double MagnetThickness = 200 * mm;
-    const G4double DipolThickness  = 600 * mm;
-
-    const G4double ChamberWidth     = 1000 * mm;
-    const G4double ChamberLength    = 150 * mm;
-    const G4double ChamberThickness = 120 * mm;
-
-    // Mother Volume of Vamos
-    const G4double Phi                  = 0 * deg;
-    const G4double VamosVolumeWidth     = 4500 * mm;
-    const G4double VamosVolumeLength    = 1000 * mm;
-    const G4double VamosVolumeThickness = 5000 * mm;
-
-    // SubVolume of detection
-    const G4double DetectionVolumeThickness = 1300 * mm;
-    const G4double DetectionVolumeWidth     = 1000 * mm;
-    const G4double DetectionVolumeLength    = 1000 * mm;
-    const G4double Det_Theta                = 45 * deg;
+  // Energy,time and position Resolution
+  const G4double EnergyThreshold = -10 * MeV;
+  const G4double ResoTime        = 4.5 * ns;
+  const G4double ResoEnergy      = 0.0001 * MeV;
+  const G4double ResoDriftTime   = 0.0001 * ns;
+  const G4double ResoPosX        = 0.0001 * mm;
+
+  // Drift features
+  const G4double      DriftSpeed = 1 * cm / microsecond;
+  const G4ThreeVector DriftDir   = G4ThreeVector(0, 1, 0);
+
+  // Geometry
+  const G4double E_DCWidth     = 600 * mm;  // Entrance_DriftChamber
+  const G4double E_DCLength    = 150 * mm;
+  const G4double E_DCThickness = 60 * mm;
+
+  const G4double MagnetWidth     = 1000 * mm;
+  const G4double MagnetLenght    = 150 * mm;
+  const G4double MagnetThickness = 200 * mm;
+  const G4double DipolThickness  = 600 * mm;
+
+  const G4double ChamberWidth     = 1000 * mm;
+  const G4double ChamberLength    = 150 * mm;
+  const G4double ChamberThickness = 120 * mm;
+
+  // Mother Volume of Vamos
+  const G4double Phi                  = 0 * deg;
+  const G4double VamosVolumeWidth     = 4500 * mm;
+  const G4double VamosVolumeLength    = 1000 * mm;
+  const G4double VamosVolumeThickness = 5000 * mm;
+
+  // SubVolume of detection
+  const G4double DetectionVolumeThickness = 1300 * mm;
+  const G4double DetectionVolumeWidth     = 1000 * mm;
+  const G4double DetectionVolumeLength    = 1000 * mm;
+  const G4double Det_Theta                = 45 * deg;
+
+  // TMW1-2
+  const G4double TMW1_Width     = 40 * mm;
+  const G4double TMW1_Length    = 61 * mm;
+  const G4double TMW1_Thickness = 5 * mm;
+
+  const G4double TMW2_Width     = 65 * mm;
+  const G4double TMW2_Length    = 93 * mm;
+  const G4double TMW2_Thickness = 5 * mm;
+
 
 } 
 
@@ -105,28 +115,31 @@ namespace Vamos_NS {
 // Vamos Specific Method
 Vamos::Vamos() {
 
-    m_Event             = new TVamosData();
-    m_CalorimeterScorer = 0;
-    m_DCScorer          = 0;
-    m_Quad1             = 0;
-    m_Quad2             = 0;
-    m_Dipol             = 0;
-    m_BeamCatcher       = 0;
-    m_MWPPAC            = 0;
-    m_DC3               = 0;
-    m_DC4               = 0;
-    m_DC1               = 0;
-    m_DC2               = 0;
-
-    ICcounter = 0;
-
-    // RGB Color + Transparency
-    m_VisQuad        = new G4VisAttributes(G4Colour(1.0, 0.0, 0.0));
-    m_VisVolumeVamos = new G4VisAttributes(G4Colour(1.0, 0.0, 0.0, 0.1));
-    m_VisDC          = new G4VisAttributes(G4Colour(0.0, 1.0, 0.0, 0.2));
-    m_VisCatcher     = new G4VisAttributes(G4Colour(0.0, 0.0, 1.0));
-    m_VisGasC4H10    = new G4VisAttributes(G4Colour(0.0, 1.0, 0.0, 0.2));
-    m_VisGasCF4      = new G4VisAttributes(G4Colour(0.0, 0.0, 1.0, 0.2));
+  m_Event             = new TVamosData();
+  m_CalorimeterScorer = 0;
+  m_DCScorer          = 0;
+  m_TMW1Scorer        = 0;
+  m_Quad1             = 0;
+  m_Quad2             = 0;
+  m_Dipol             = 0;
+  m_BeamCatcher       = 0;
+  m_TMW1              = 0;
+  m_TMW2              = 0;
+  m_MWPPAC            = 0;
+  m_DC3               = 0;
+  m_DC4               = 0;
+  m_DC1               = 0;
+  m_DC2               = 0;
+
+  ICcounter = 0;
+
+  // RGB Color + Transparency
+  m_VisQuad        = new G4VisAttributes(G4Colour(1.0, 0.0, 0.0));
+  m_VisVolumeVamos = new G4VisAttributes(G4Colour(1.0, 0.0, 0.0, 0.1));
+  m_VisDC          = new G4VisAttributes(G4Colour(0.0, 1.0, 0.0, 0.2));
+  m_VisCatcher     = new G4VisAttributes(G4Colour(0.0, 0.0, 1.0));
+  m_VisGasC4H10    = new G4VisAttributes(G4Colour(0.0, 1.0, 0.0, 0.2));
+  m_VisGasCF4      = new G4VisAttributes(G4Colour(0.0, 0.0, 1.0, 0.2));
 }
 
 Vamos::~Vamos() {}
@@ -135,200 +148,250 @@ Vamos::~Vamos() {}
 
 using namespace Vamos_NS;
 
+/////////////////////////////////////////////////////////////////////
 void Vamos::AddVamos(G4double R, double Theta) {
-    m_R     = R;
-    m_Theta = Theta;
+  m_R     = R;
+  m_Theta = Theta;
 }
 
+/////////////////////////////////////////////////////////////////////
 void Vamos::AddBeamCatcher(string Material, G4double Width, double Length,
-        double Thickness, G4ThreeVector Pos) {
-    CatcherMaterial  = Material;
-    CatcherWidth     = Width;
-    CatcherLength    = Length;
-    CatcherThickness = Thickness;
-    R_Catcher        = Pos[2];
-    Pos[2]           = -DetectionVolumeThickness * 0.5 + CatcherThickness * 0.5;
-    m_PosCatcher     = Pos;
+    double Thickness, G4ThreeVector Pos) {
+  CatcherMaterial  = Material;
+  CatcherWidth     = Width;
+  CatcherLength    = Length;
+  CatcherThickness = Thickness;
+  R_Catcher        = Pos[2];
+  Pos[2]           = -DetectionVolumeThickness * 0.5 + CatcherThickness * 0.5;
+  m_PosCatcher     = Pos;
 }
 
 // To add DriftChambers and the MWPPAC
+/////////////////////////////////////////////////////////////////////
 void Vamos::AddDetector(G4double Z, string Gas, double Pressure,
-        double Temperature) {
-    m_Z.push_back(Z);
-    m_Gas.push_back(Gas);
-    m_Pressure.push_back(Pressure);
-    m_Temperature.push_back(Temperature);
+    double Temperature) {
+  m_Z.push_back(Z);
+  m_Gas.push_back(Gas);
+  m_Pressure.push_back(Pressure);
+  m_Temperature.push_back(Temperature);
 }
 
+/////////////////////////////////////////////////////////////////////
 void Vamos::AddIC(G4double Z, double Thickness, string Gas, double Pressure,
-        double Temperature) {
-    m_ZIC.push_back(Z);
-    m_ThicknessIC.push_back(Thickness);
-    m_GasIC.push_back(Gas);
-    m_PressureIC.push_back(Pressure);
-    m_TemperatureIC.push_back(Temperature);
+    double Temperature) {
+  m_ZIC.push_back(Z);
+  m_ThicknessIC.push_back(Thickness);
+  m_GasIC.push_back(Gas);
+  m_PressureIC.push_back(Pressure);
+  m_TemperatureIC.push_back(Temperature);
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 
 // The two entry DriftChambers 
+/////////////////////////////////////////////////////////////////////
 G4LogicalVolume* Vamos::BuildDC1() {
-    if (!m_DC1) {
-        G4Box* box = new G4Box("Vamos_DC1", E_DCWidth * 0.5, E_DCLength * 0.5,
-                E_DCThickness * 0.5);
-
-        G4Material* DetectorMaterial
-            = MaterialManager::getInstance()->GetGasFromLibrary(
-                    m_Gas[0], m_Pressure[0], m_Temperature[0]);
-
-        m_DC1 = new G4LogicalVolume(box, DetectorMaterial, "logic_Vamos_DC1", 0, 0,
-                0);
-        m_DC1->SetVisAttributes(m_VisGasC4H10);
-        m_DC1->SetSensitiveDetector(m_DCScorer);
-    }
-    return m_DC1;
+  if (!m_DC1) {
+    G4Box* box = new G4Box("Vamos_DC1", E_DCWidth * 0.5, E_DCLength * 0.5,
+        E_DCThickness * 0.5);
+
+    G4Material* DetectorMaterial
+      = MaterialManager::getInstance()->GetGasFromLibrary(
+          m_Gas[0], m_Pressure[0], m_Temperature[0]);
+
+    m_DC1 = new G4LogicalVolume(box, DetectorMaterial, "logic_Vamos_DC1", 0, 0,
+        0);
+    m_DC1->SetVisAttributes(m_VisGasC4H10);
+    m_DC1->SetSensitiveDetector(m_DCScorer);
+  }
+  return m_DC1;
 }
 
+/////////////////////////////////////////////////////////////////////
 G4LogicalVolume* Vamos::BuildDC2() {
-    if (!m_DC2) {
-        G4Box* box = new G4Box("Vamos_DC2", E_DCWidth * 0.5, E_DCLength * 0.5,
-                E_DCThickness * 0.5);
-
-        G4Material* DetectorMaterial
-            = MaterialManager::getInstance()->GetGasFromLibrary(
-                    m_Gas[1], m_Pressure[1], m_Temperature[1]);
-
-        m_DC2 = new G4LogicalVolume(box, DetectorMaterial, "logic_Vamos_DC2", 0, 0,
-                0);
-        m_DC2->SetVisAttributes(m_VisGasC4H10);
-        m_DC2->SetSensitiveDetector(m_DCScorer);
-    }
-    return m_DC2;
+  if (!m_DC2) {
+    G4Box* box = new G4Box("Vamos_DC2", E_DCWidth * 0.5, E_DCLength * 0.5,
+        E_DCThickness * 0.5);
+
+    G4Material* DetectorMaterial
+      = MaterialManager::getInstance()->GetGasFromLibrary(
+          m_Gas[1], m_Pressure[1], m_Temperature[1]);
+
+    m_DC2 = new G4LogicalVolume(box, DetectorMaterial, "logic_Vamos_DC2", 0, 0,
+        0);
+    m_DC2->SetVisAttributes(m_VisGasC4H10);
+    m_DC2->SetSensitiveDetector(m_DCScorer);
+  }
+  return m_DC2;
 }
 
 // Quadruples and Dipole just to make the visualisation nice
+/////////////////////////////////////////////////////////////////////
 G4LogicalVolume* Vamos::BuildQuad1() {
-    if (!m_Quad1) {
-        G4Box* box = new G4Box("Vamos_Box", Vamos_NS::MagnetWidth * 0.5,
-                Vamos_NS::MagnetLenght * 0.5,
-                Vamos_NS::MagnetThickness * 0.5);
-
-        G4Material* VamosMaterial
-            = MaterialManager::getInstance()->GetMaterialFromLibrary("Vacuum");
-        m_Quad1 = new G4LogicalVolume(box, VamosMaterial, "logic_Quad1", 0, 0, 0);
-        m_Quad1->SetVisAttributes(m_VisQuad);
-    }
-    return m_Quad1;
+  if (!m_Quad1) {
+    G4Box* box = new G4Box("Vamos_Box", Vamos_NS::MagnetWidth * 0.5,
+        Vamos_NS::MagnetLenght * 0.5,
+        Vamos_NS::MagnetThickness * 0.5);
+
+    G4Material* VamosMaterial
+      = MaterialManager::getInstance()->GetMaterialFromLibrary("Vacuum");
+    m_Quad1 = new G4LogicalVolume(box, VamosMaterial, "logic_Quad1", 0, 0, 0);
+    m_Quad1->SetVisAttributes(m_VisQuad);
+  }
+  return m_Quad1;
 }
 
+/////////////////////////////////////////////////////////////////////
 G4LogicalVolume* Vamos::BuildQuad2() {
-    if (!m_Quad2) {
-        G4Box* box = new G4Box("Vamos_Quad2", Vamos_NS::MagnetWidth * 0.5,
-                Vamos_NS::MagnetLenght * 0.5,
-                Vamos_NS::MagnetThickness * 0.5);
-
-        G4Material* VamosMaterial
-            = MaterialManager::getInstance()->GetMaterialFromLibrary("Vacuum");
-        m_Quad1 = new G4LogicalVolume(box, VamosMaterial, "logic_Quad1", 0, 0, 0);
-        m_Quad1->SetVisAttributes(m_VisQuad);
-    }
-    return m_Quad1;
+  if (!m_Quad2) {
+    G4Box* box = new G4Box("Vamos_Quad2", Vamos_NS::MagnetWidth * 0.5,
+        Vamos_NS::MagnetLenght * 0.5,
+        Vamos_NS::MagnetThickness * 0.5);
+
+    G4Material* VamosMaterial
+      = MaterialManager::getInstance()->GetMaterialFromLibrary("Vacuum");
+    m_Quad1 = new G4LogicalVolume(box, VamosMaterial, "logic_Quad1", 0, 0, 0);
+    m_Quad1->SetVisAttributes(m_VisQuad);
+  }
+  return m_Quad1;
 }
 
+/////////////////////////////////////////////////////////////////////
 G4LogicalVolume* Vamos::BuildDipol() {
-    if (!m_Dipol) {
-        G4Box* box = new G4Box("Vamos_Dipol", Vamos_NS::MagnetWidth * 0.5,
-                Vamos_NS::MagnetLenght * 0.5,
-                Vamos_NS::DipolThickness * 0.5);
-
-        G4Material* VamosMaterial
-            = MaterialManager::getInstance()->GetMaterialFromLibrary("Vacuum");
-        m_Dipol = new G4LogicalVolume(box, VamosMaterial, "logic_Dipol", 0, 0, 0);
-        m_Dipol->SetVisAttributes(m_VisQuad);
-    }
-    return m_Dipol;
+  if (!m_Dipol) {
+    G4Box* box = new G4Box("Vamos_Dipol", Vamos_NS::MagnetWidth * 0.5,
+        Vamos_NS::MagnetLenght * 0.5,
+        Vamos_NS::DipolThickness * 0.5);
+
+    G4Material* VamosMaterial
+      = MaterialManager::getInstance()->GetMaterialFromLibrary("Vacuum");
+    m_Dipol = new G4LogicalVolume(box, VamosMaterial, "logic_Dipol", 0, 0, 0);
+    m_Dipol->SetVisAttributes(m_VisQuad);
+  }
+  return m_Dipol;
 }
 
 // Detection at the end of Vamos
+/////////////////////////////////////////////////////////////////////
 G4LogicalVolume* Vamos::BuildBeamCatcher() {
-    if (!m_BeamCatcher) {
-        G4Box* box = new G4Box("Vamos_Catcher", CatcherWidth * 0.5,
-                CatcherLength * 0.5, CatcherThickness * 0.5);
-
-        G4Material* Material
-            = MaterialManager::getInstance()->GetMaterialFromLibrary(
-                    CatcherMaterial);
-        m_BeamCatcher
-            = new G4LogicalVolume(box, Material, "logic_Vamos_Catcher", 0, 0, 0);
-        m_BeamCatcher->SetVisAttributes(m_VisCatcher);
-        m_BeamCatcher->SetSensitiveDetector(m_CalorimeterScorer);
-    }
-    return m_BeamCatcher;
+  if (!m_BeamCatcher) {
+    G4Box* box = new G4Box("Vamos_Catcher", CatcherWidth * 0.5,
+        CatcherLength * 0.5, CatcherThickness * 0.5);
+
+    G4Material* Material
+      = MaterialManager::getInstance()->GetMaterialFromLibrary(
+          CatcherMaterial);
+    m_BeamCatcher
+      = new G4LogicalVolume(box, Material, "logic_Vamos_Catcher", 0, 0, 0);
+    m_BeamCatcher->SetVisAttributes(m_VisCatcher);
+    m_BeamCatcher->SetSensitiveDetector(m_CalorimeterScorer);
+  }
+  return m_BeamCatcher;
 }
 
+/////////////////////////////////////////////////////////////////////
+G4LogicalVolume* Vamos::BuildTMW1() {
+  if (!m_TMW1) {
+    G4Box* box = new G4Box("Vamos_TMW1", TMW1_Width * 0.5,
+        TMW1_Length * 0.5, TMW1_Thickness * 0.5);
+
+    G4Material* DetectorMaterial
+      = MaterialManager::getInstance()->GetGasFromLibrary(
+          m_Gas_TMW1, m_Pressure_TMW1, 295 * kelvin);
+    m_TMW1 = new G4LogicalVolume(box, DetectorMaterial, "logic_Vamos_TMW1",
+        0, 0, 0);
+    m_TMW1->SetVisAttributes(m_VisGasC4H10);
+
+    m_TMW1->SetSensitiveDetector(m_TMW1Scorer);
+  }
+  return m_TMW1;
+
+}
+
+/////////////////////////////////////////////////////////////////////
+G4LogicalVolume* Vamos::BuildTMW2() {
+  if (!m_TMW2) {
+    G4Box* box = new G4Box("Vamos_TMW2", TMW2_Width * 0.5,
+        TMW2_Length * 0.5, TMW2_Thickness * 0.5);
+
+    G4Material* DetectorMaterial
+      = MaterialManager::getInstance()->GetGasFromLibrary(
+          m_Gas_TMW2, m_Pressure_TMW2, 295 * kelvin);
+    m_TMW2 = new G4LogicalVolume(box, DetectorMaterial, "logic_Vamos_TMW2",
+        0, 0, 0);
+    m_TMW2->SetVisAttributes(m_VisGasC4H10);
+  }
+  return m_TMW2;
+
+}
+
+
+/////////////////////////////////////////////////////////////////////
 G4LogicalVolume* Vamos::BuildMWPPAC() {
-    if (!m_MWPPAC) {
-        G4Box* box = new G4Box("Vamos_MWPPAC", ChamberWidth * 0.5,
-                ChamberLength * 0.5, ChamberThickness * 0.5);
-
-        G4Material* DetectorMaterial
-            = MaterialManager::getInstance()->GetGasFromLibrary(
-                    m_Gas[2], m_Pressure[2], m_Temperature[2]);
-        m_MWPPAC = new G4LogicalVolume(box, DetectorMaterial, "logic_Vamos_MWPPAC",
-                0, 0, 0);
-        m_MWPPAC->SetVisAttributes(m_VisGasC4H10);
-    }
-    return m_MWPPAC;
+  if (!m_MWPPAC) {
+    G4Box* box = new G4Box("Vamos_MWPPAC", ChamberWidth * 0.5,
+        ChamberLength * 0.5, ChamberThickness * 0.5);
+
+    G4Material* DetectorMaterial
+      = MaterialManager::getInstance()->GetGasFromLibrary(
+          m_Gas[0], m_Pressure[0], m_Temperature[0]);
+    m_MWPPAC = new G4LogicalVolume(box, DetectorMaterial, "logic_Vamos_MWPPAC",
+        0, 0, 0);
+    m_MWPPAC->SetVisAttributes(m_VisGasC4H10);
+  }
+  return m_MWPPAC;
 }
 
+/////////////////////////////////////////////////////////////////////
 G4LogicalVolume* Vamos::BuildDC3() {
-    if (!m_DC3) {
-        G4Box* box = new G4Box("Vamos_DC3", ChamberWidth * 0.5, ChamberLength * 0.5,
-                ChamberThickness * 0.5);
-
-        G4Material* DetectorMaterial
-            = MaterialManager::getInstance()->GetGasFromLibrary(
-                    m_Gas[3], m_Pressure[3], m_Temperature[3]);
-
-        m_DC3 = new G4LogicalVolume(box, DetectorMaterial, "logic_Vamos_DC3", 0, 0,
-                0);
-        m_DC3->SetVisAttributes(m_VisGasC4H10);
-        m_DC3->SetSensitiveDetector(m_DCScorer);
-    }
-    return m_DC3;
+  if (!m_DC3) {
+    G4Box* box = new G4Box("Vamos_DC3", ChamberWidth * 0.5, ChamberLength * 0.5,
+        ChamberThickness * 0.5);
+
+    G4Material* DetectorMaterial
+      = MaterialManager::getInstance()->GetGasFromLibrary(
+          m_Gas[3], m_Pressure[3], m_Temperature[3]);
+
+    m_DC3 = new G4LogicalVolume(box, DetectorMaterial, "logic_Vamos_DC3", 0, 0,
+        0);
+    m_DC3->SetVisAttributes(m_VisGasC4H10);
+    m_DC3->SetSensitiveDetector(m_DCScorer);
+  }
+  return m_DC3;
 }
 
+/////////////////////////////////////////////////////////////////////
 G4LogicalVolume* Vamos::BuildDC4() {
-    if (!m_DC4) {
-        G4Box* box = new G4Box("Vamos_DC4", ChamberWidth * 0.5, ChamberLength * 0.5,
-                ChamberThickness * 0.5);
-
-        G4Material* DetectorMaterial
-            = MaterialManager::getInstance()->GetGasFromLibrary(
-                    m_Gas[4], m_Pressure[4], m_Temperature[4]);
-
-        m_DC4 = new G4LogicalVolume(box, DetectorMaterial, "logic_Vamos_DC4", 0, 0,
-                0);
-        m_DC4->SetVisAttributes(m_VisGasC4H10);
-        m_DC4->SetSensitiveDetector(m_DCScorer);
-    }
-    return m_DC4;
+  if (!m_DC4) {
+    G4Box* box = new G4Box("Vamos_DC4", ChamberWidth * 0.5, ChamberLength * 0.5,
+        ChamberThickness * 0.5);
+
+    G4Material* DetectorMaterial
+      = MaterialManager::getInstance()->GetGasFromLibrary(
+          m_Gas[4], m_Pressure[4], m_Temperature[4]);
+
+    m_DC4 = new G4LogicalVolume(box, DetectorMaterial, "logic_Vamos_DC4", 0, 0,
+        0);
+    m_DC4->SetVisAttributes(m_VisGasC4H10);
+    m_DC4->SetSensitiveDetector(m_DCScorer);
+  }
+  return m_DC4;
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 // In anticipation of use a macro
 void Vamos::ClearGeometry(){
 
-    m_Z.clear();
-    m_Gas.clear();
-    m_Pressure.clear();
-    m_Temperature.clear();
+  m_Z.clear();
+  m_Gas.clear();
+  m_Pressure.clear();
+  m_Temperature.clear();
 
-    m_ZIC.clear();
-    m_ThicknessIC.clear();
-    m_PressureIC.clear();
-    m_TemperatureIC.clear();
-    m_GasIC.clear();
+  m_ZIC.clear();
+  m_ThicknessIC.clear();
+  m_PressureIC.clear();
+  m_TemperatureIC.clear();
+  m_GasIC.clear();
 
 }   
 
@@ -338,202 +401,237 @@ void Vamos::ClearGeometry(){
 // Read stream at Configfile to pick-up parameters of detector (Position,...)
 // Called in DetecorConstruction::ReadDetectorConfiguration Method
 
+/////////////////////////////////////////////////////////////////////
 void Vamos::ReadConfiguration(NPL::InputParser parser) {
 
-    vector<NPL::InputBlock*> blocks = parser.GetAllBlocksWithToken("Vamos");
-    if (NPOptionManager::getInstance()->GetVerboseLevel())
-        cout << "//// " << blocks.size() << " detectors found " << endl;
-
-    vector<string> TokenBeamCatcher
-        = {"Material", "Width", "Length", "Thickness", "Pos"};
-    vector<string> sphe        = {"R", "Theta"};
-    vector<string> TokenMWPPAC = {"Z", "Gas", "Pressure", "Temperature"};
-    vector<string> TokenDC     = {"Z", "Gas", "Pressure", "Temperature"};
-    vector<string> TokenIC = {"Z", "Thickness", "Gas", "Pressure", "Temperature"};
-
-    for (unsigned int i = 0; i < blocks.size(); i++) {
-        if (blocks[i]->HasTokenList(sphe)) {
-            if (NPOptionManager::getInstance()->GetVerboseLevel())
-                cout << endl << "////  Vamos " << i + 1 << endl;
-            G4double R     = blocks[i]->GetDouble("R", "mm");
-            G4double Theta = blocks[i]->GetDouble("Theta", "deg");
-            AddVamos(R, Theta);
-        }
-
-        else if (blocks[i]->GetMainValue() == "BeamCatcher"
-                && blocks[i]->HasTokenList(TokenBeamCatcher)) {
-            if (NPOptionManager::getInstance()->GetVerboseLevel())
-                cout << endl << "//// BeamCatcher" << i + 1 << endl;
-            string        Material  = blocks[i]->GetString("Material");
-            G4double      Width     = blocks[i]->GetDouble("Width", "mm");
-            G4double      Length    = blocks[i]->GetDouble("Length", "mm");
-            G4double      Thickness = blocks[i]->GetDouble("Thickness", "mm");
-            G4ThreeVector Pos
-                = NPS::ConvertVector(blocks[i]->GetTVector3("Pos", "mm"));
-            AddBeamCatcher(Material, Width, Length, Thickness, Pos);
-        }
-
-        else if (blocks[i]->GetMainValue() == "MWPPAC"
-                && blocks[i]->HasTokenList(TokenMWPPAC)) {
-            if (NPOptionManager::getInstance()->GetVerboseLevel())
-                cout << endl << "//// MWPPAC" << i + 1 << endl;
-            G4double Z           = blocks[i]->GetDouble("Z", "mm");
-            string   Gas         = blocks[i]->GetString("Gas");
-            G4double Pressure    = blocks[i]->GetDouble("Pressure", "bar");
-            G4double Temperature = blocks[i]->GetDouble("Temperature", "kelvin");
-            AddDetector(Z, Gas, Pressure, Temperature);
-        }
-
-        else if (blocks[i]->GetMainValue() == "DC"
-                && blocks[i]->HasTokenList(TokenDC)) {
-            if (NPOptionManager::getInstance()->GetVerboseLevel())
-                cout << endl << "//// DC" << i + 1 << endl;
-            G4double Z           = blocks[i]->GetDouble("Z", "mm");
-            string   Gas         = blocks[i]->GetString("Gas");
-            G4double Pressure    = blocks[i]->GetDouble("Pressure", "bar");
-            G4double Temperature = blocks[i]->GetDouble("Temperature", "kelvin");
-            AddDetector(Z, Gas, Pressure, Temperature);
-        }
-
-        else if (blocks[i]->GetMainValue() == "IC"
-                && blocks[i]->HasTokenList(TokenIC)) {
-            if (NPOptionManager::getInstance()->GetVerboseLevel())
-                cout << endl << "//// IC" << ICcounter+1 << endl;
-            G4double Z           = blocks[i]->GetDouble("Z", "mm");
-            G4double Thickness   = blocks[i]->GetDouble("Thickness", "mm");
-            string   Gas         = blocks[i]->GetString("Gas");
-            G4double Pressure    = blocks[i]->GetDouble("Pressure", "bar");
-            G4double Temperature = blocks[i]->GetDouble("Temperature", "kelvin");
-            AddIC(Z, Thickness, Gas, Pressure, Temperature);
-            ICcounter++;
-        }
-
-        else {
-            cout << "ERROR: check your input file formatting " << endl;
-            exit(1);
-        }
+  vector<NPL::InputBlock*> blocks = parser.GetAllBlocksWithToken("Vamos");
+  if (NPOptionManager::getInstance()->GetVerboseLevel())
+    cout << "//// " << blocks.size() << " detectors found " << endl;
+
+  vector<string> TokenBeamCatcher
+    = {"Material", "Width", "Length", "Thickness", "Pos"};
+  vector<string> sphe        = {"R", "Theta"};
+  vector<string> TokenMWPPAC = {"Z", "Gas", "Pressure", "Temperature"};
+  vector<string> TokenTMW = {"Z", "Gas", "Pressure"};
+  vector<string> TokenDC     = {"Z", "Gas", "Pressure", "Temperature"};
+  vector<string> TokenIC = {"Z", "Thickness", "Gas", "Pressure", "Temperature"};
+
+  for (unsigned int i = 0; i < blocks.size(); i++) {
+    if (blocks[i]->HasTokenList(sphe)) {
+      if (NPOptionManager::getInstance()->GetVerboseLevel())
+        cout << endl << "////  Vamos " << i + 1 << endl;
+      G4double R     = blocks[i]->GetDouble("R", "mm");
+      G4double Theta = blocks[i]->GetDouble("Theta", "deg");
+      AddVamos(R, Theta);
+    }
 
+    else if (blocks[i]->GetMainValue() == "BeamCatcher"
+        && blocks[i]->HasTokenList(TokenBeamCatcher)) {
+      if (NPOptionManager::getInstance()->GetVerboseLevel())
+        cout << endl << "//// BeamCatcher" << i + 1 << endl;
+      string        Material  = blocks[i]->GetString("Material");
+      G4double      Width     = blocks[i]->GetDouble("Width", "mm");
+      G4double      Length    = blocks[i]->GetDouble("Length", "mm");
+      G4double      Thickness = blocks[i]->GetDouble("Thickness", "mm");
+      G4ThreeVector Pos
+        = NPS::ConvertVector(blocks[i]->GetTVector3("Pos", "mm"));
+      AddBeamCatcher(Material, Width, Length, Thickness, Pos);
     }
-}
 
-// Construct detector and inialise sensitive part.
-// Called After DetecorConstruction::AddDetector Method
-void Vamos::ConstructDetector(G4LogicalVolume* world) {
+    else if (blocks[i]->GetMainValue() == "MWPPAC"
+        && blocks[i]->HasTokenList(TokenMWPPAC)) {
+      if (NPOptionManager::getInstance()->GetVerboseLevel())
+        cout << endl << "//// MWPPAC" << i + 1 << endl;
+      G4double Z           = blocks[i]->GetDouble("Z", "mm");
+      string   Gas         = blocks[i]->GetString("Gas");
+      G4double Pressure    = blocks[i]->GetDouble("Pressure", "bar");
+      G4double Temperature = blocks[i]->GetDouble("Temperature", "kelvin");
+      AddDetector(Z, Gas, Pressure, Temperature);
+    }
 
-    // Mother Volume of Vamos
-    G4double R  = m_R + VamosVolumeThickness * 0.5;
+    else if (blocks[i]->GetMainValue() == "TMW1"
+        && blocks[i]->HasTokenList(TokenTMW)) {
+      if (NPOptionManager::getInstance()->GetVerboseLevel())
+        cout << endl << "//// TMW1"  << endl;
+      m_Z_TMW1           = blocks[i]->GetDouble("Z", "mm");
+      m_Gas_TMW1         = blocks[i]->GetString("Gas");
+      m_Pressure_TMW1    = blocks[i]->GetDouble("Pressure", "bar");
+      //AddDetector(Z, Gas, Pressure, Temperature);
+    }
 
-    G4double X = R * sin(m_Theta) * cos(Phi);
-    G4double Y = R * sin(m_Theta) * sin(Phi);
-    G4double Z = R * cos(m_Theta);
-    G4ThreeVector Det_pos = G4ThreeVector(X, Y, Z);
+    else if (blocks[i]->GetMainValue() == "TMW2"
+        && blocks[i]->HasTokenList(TokenTMW)) {
+      if (NPOptionManager::getInstance()->GetVerboseLevel())
+        cout << endl << "//// TMW2"  << endl;
+      m_Z_TMW2           = blocks[i]->GetDouble("Z", "mm");
+      m_Gas_TMW2         = blocks[i]->GetString("Gas");
+      m_Pressure_TMW2    = blocks[i]->GetDouble("Pressure", "bar");
+      //AddDetector(Z, Gas, Pressure, Temperature);
+    }
 
-    G4RotationMatrix* Rot1 = new G4RotationMatrix();
-    Rot1->rotateY(m_Theta);
 
-    G4Box* MotherSolid
-        = new G4Box("MotherVolume", VamosVolumeWidth * 0.5,
-                VamosVolumeLength * 0.5, VamosVolumeThickness * 0.5);
 
-    G4Material* VolumeMaterial
-        = MaterialManager::getInstance()->GetMaterialFromLibrary("Vacuum");
-    G4LogicalVolume* MotherVolume = new G4LogicalVolume(
-            MotherSolid, VolumeMaterial, "MotherVolume", 0, 0, 0);
+    else if (blocks[i]->GetMainValue() == "DC"
+        && blocks[i]->HasTokenList(TokenDC)) {
+      if (NPOptionManager::getInstance()->GetVerboseLevel())
+        cout << endl << "//// DC" << i + 1 << endl;
+      G4double Z           = blocks[i]->GetDouble("Z", "mm");
+      string   Gas         = blocks[i]->GetString("Gas");
+      G4double Pressure    = blocks[i]->GetDouble("Pressure", "bar");
+      G4double Temperature = blocks[i]->GetDouble("Temperature", "kelvin");
+      AddDetector(Z, Gas, Pressure, Temperature);
+    }
 
-    new G4PVPlacement(G4Transform3D(*Rot1, Det_pos), MotherVolume, "MotherVolume",
-            world, false, 0);
-    MotherVolume->SetVisAttributes(m_VisVolumeVamos);
+    else if (blocks[i]->GetMainValue() == "IC"
+        && blocks[i]->HasTokenList(TokenIC)) {
+      if (NPOptionManager::getInstance()->GetVerboseLevel())
+        cout << endl << "//// IC" << ICcounter+1 << endl;
+      G4double Z           = blocks[i]->GetDouble("Z", "mm");
+      G4double Thickness   = blocks[i]->GetDouble("Thickness", "mm");
+      string   Gas         = blocks[i]->GetString("Gas");
+      G4double Pressure    = blocks[i]->GetDouble("Pressure", "bar");
+      G4double Temperature = blocks[i]->GetDouble("Temperature", "kelvin");
+      AddIC(Z, Thickness, Gas, Pressure, Temperature);
+      ICcounter++;
+    }
 
-    // SubVolume of Detection at the end of Vamos
-    // The position of the subvolume is defined by the position of the BeamCatcher
-    G4double R2
-        = R_Catcher - CatcherThickness * 0.5 + DetectionVolumeThickness * 0.5;
+    else {
+      cout << "ERROR: check your input file formatting " << endl;
+      exit(1);
+    }
 
-    G4double      X2 = R2 * sin(Det_Theta) * cos(0);
-    G4double      Z2 = R2 * cos(Det_Theta);
-    G4ThreeVector Det_pos2 = G4ThreeVector(X2, 0, Z2);
+  }
+}
 
-    G4RotationMatrix* Rot2 = new G4RotationMatrix();
-    Rot2->rotateY(Det_Theta);
+// Construct detector and inialise sensitive part.
+// Called After DetecorConstruction::AddDetector Method
+void Vamos::ConstructDetector(G4LogicalVolume* world) {
 
-    G4Box* MotherDetectorSolid
-        = new G4Box("MotherDetector", DetectionVolumeWidth * 0.5,
-                DetectionVolumeLength * 0.5, DetectionVolumeThickness * 0.5);
+  // Mother Volume of Vamos
+  G4double R  = m_R + VamosVolumeThickness * 0.5;
 
-    G4LogicalVolume* MotherDetector = new G4LogicalVolume(
-            MotherDetectorSolid, VolumeMaterial, "MotherDetector", 0, 0, 0);
+  G4double X = R * sin(m_Theta) * cos(Phi);
+  G4double Y = R * sin(m_Theta) * sin(Phi);
+  G4double Z = R * cos(m_Theta);
+  G4ThreeVector Det_pos = G4ThreeVector(X, Y, Z);
 
-    new G4PVPlacement(G4Transform3D(*Rot2, Det_pos2), MotherDetector,
-            "MotherDetector", MotherVolume, false, 0);
-    MotherDetector->SetVisAttributes(m_VisVolumeVamos);
+  G4RotationMatrix* Rot1 = new G4RotationMatrix();
+  Rot1->rotateY(m_Theta);
 
+  G4Box* MotherSolid
+    = new G4Box("MotherVolume", VamosVolumeWidth * 0.5,
+        VamosVolumeLength * 0.5, VamosVolumeThickness * 0.5);
 
-    // Position the entry DCs and the magnets in the MotherVolume
-    new G4PVPlacement(0, G4ThreeVector(0, 0, -VamosVolumeThickness * 0.5 + m_Z[0]),
-            BuildDC1(), "Entrance_DC1", MotherVolume, false, 1);
+  G4Material* VolumeMaterial
+    = MaterialManager::getInstance()->GetMaterialFromLibrary("Vacuum");
+  G4LogicalVolume* MotherVolume = new G4LogicalVolume(
+      MotherSolid, VolumeMaterial, "MotherVolume", 0, 0, 0);
 
-    new G4PVPlacement(0, G4ThreeVector(0, 0, -VamosVolumeThickness * 0.5 + m_Z[1]),
-            BuildDC2(), "Entrance_DC2", MotherVolume, false, 2);
+  new G4PVPlacement(G4Transform3D(*Rot1, Det_pos), MotherVolume, "MotherVolume",
+      world, false, 0);
+  MotherVolume->SetVisAttributes(m_VisVolumeVamos);
 
-    new G4PVPlacement(
-            0,
-            G4ThreeVector(0, 0, (-VamosVolumeThickness + MagnetThickness) * 0.5 + 400),
-            BuildQuad1(), "Vamos", MotherVolume, false, 0);
+  // SubVolume of Detection at the end of Vamos
+  // The position of the subvolume is defined by the position of the BeamCatcher
+  G4double R2
+    = R_Catcher - CatcherThickness * 0.5 + DetectionVolumeThickness * 0.5;
 
-    new G4PVPlacement(
-            0,
-            G4ThreeVector(0, 0,
-                (-VamosVolumeThickness + MagnetThickness) * 0.5 + 700 * mm),
-            BuildQuad2(), "Vamos", MotherVolume, false, 0);
+  G4double      X2 = R2 * sin(Det_Theta) * cos(0);
+  G4double      Z2 = R2 * cos(Det_Theta);
+  G4ThreeVector Det_pos2 = G4ThreeVector(X2, 0, Z2);
 
-    new G4PVPlacement(
-            0,
-            G4ThreeVector(0, 0,
-                (-VamosVolumeThickness + MagnetThickness) * 0.5 + 1500 * mm),
-            BuildDipol(), "Vamos", MotherVolume, false, 0);
+  G4RotationMatrix* Rot2 = new G4RotationMatrix();
+  Rot2->rotateY(Det_Theta);
 
-    // Position the system of detection at the end of Vamos in the sub Volume
-    new G4PVPlacement(0, m_PosCatcher, BuildBeamCatcher(), "BeamCatcher",
-            MotherDetector, false, 3);
+  G4Box* MotherDetectorSolid
+    = new G4Box("MotherDetector", DetectionVolumeWidth * 0.5,
+        DetectionVolumeLength * 0.5, DetectionVolumeThickness * 0.5);
 
-    new G4PVPlacement(
-            0,
-            G4ThreeVector(0, 0,
-                -DetectionVolumeThickness * 0.5
-                + (m_Z[2] - R_Catcher + CatcherThickness * 0.5)),
-            BuildMWPPAC(), "MWPPAC", MotherDetector, false, 4);
+  G4LogicalVolume* MotherDetector = new G4LogicalVolume(
+      MotherDetectorSolid, VolumeMaterial, "MotherDetector", 0, 0, 0);
 
-    new G4PVPlacement(
-            0,
-            G4ThreeVector(0, 0,
-                -DetectionVolumeThickness * 0.5
-                + (m_Z[3] - R_Catcher + CatcherThickness * 0.5)),
-            BuildDC3(), "DC", MotherDetector, false, 5);
+  new G4PVPlacement(G4Transform3D(*Rot2, Det_pos2), MotherDetector,
+      "MotherDetector", MotherVolume, false, 0);
+  MotherDetector->SetVisAttributes(m_VisVolumeVamos);
+
+
+  // Position the entry DCs and the magnets in the MotherVolume
+  /*new G4PVPlacement(0, G4ThreeVector(0, 0, -VamosVolumeThickness * 0.5 + m_Z[0]),
+    BuildDC1(), "Entrance_DC1", MotherVolume, false, 1);
+
+    new G4PVPlacement(0, G4ThreeVector(0, 0, -VamosVolumeThickness * 0.5 + m_Z[1]),
+    BuildDC2(), "Entrance_DC2", MotherVolume, false, 2);*/
+
+  new G4PVPlacement(
+      0,
+      G4ThreeVector(0, 0, (-VamosVolumeThickness + MagnetThickness) * 0.5 + 400),
+      BuildQuad1(), "Vamos", MotherVolume, false, 0);
+
+  new G4PVPlacement(
+      0,
+      G4ThreeVector(0, 0,
+        (-VamosVolumeThickness + MagnetThickness) * 0.5 + 700 * mm),
+      BuildQuad2(), "Vamos", MotherVolume, false, 0);
+
+  new G4PVPlacement(
+      0,
+      G4ThreeVector(0, 0,
+        (-VamosVolumeThickness + MagnetThickness) * 0.5 + 1500 * mm),
+      BuildDipol(), "Vamos", MotherVolume, false, 0);
+
+  // Position the system of detection at the end of Vamos in the sub Volume
+  /*new G4PVPlacement(0, m_PosCatcher, BuildBeamCatcher(), "BeamCatcher",
+    MotherDetector, false, 3);*/
+
+  new G4PVPlacement(
+      0,
+      G4ThreeVector(0, 0, -VamosVolumeThickness * 0.5 + TMW1_Thickness * 0.5),
+      BuildTMW1(), "TMW1", MotherVolume, false, 0);
+
+  new G4PVPlacement(
+      0,
+      G4ThreeVector(0, 0, -VamosVolumeThickness * 0.5 + TMW2_Thickness * 0.5 + m_Z_TMW2),
+      BuildTMW2(), "TMW2", MotherVolume, false, 0);
+
+
+/*  new G4PVPlacement(
+      0,
+      G4ThreeVector(0, 0,
+        -DetectionVolumeThickness * 0.5
+        + (m_Z[0] - R_Catcher + CatcherThickness * 0.5)),
+      BuildMWPPAC(), "MWPPAC", MotherDetector, false, 1);
+*/
+  /*    new G4PVPlacement(
+        0,
+        G4ThreeVector(0, 0,
+        -DetectionVolumeThickness * 0.5
+        + (m_Z[3] - R_Catcher + CatcherThickness * 0.5)),
+        BuildDC3(), "DC", MotherDetector, false, 5);
 
-    new G4PVPlacement(
-            0,
-            G4ThreeVector(0, 0,
-                -DetectionVolumeThickness * 0.5
-                + (m_Z[4] - R_Catcher + CatcherThickness * 0.5)),
-            BuildDC4(), "DC", MotherDetector, false, 6);
-
-    // Construct and position the Ionisations Chambers
-    for (int i = 0; i < ICcounter; i++) {
-        G4Box* box = new G4Box("Vamos_IC", ChamberWidth * 0.5, ChamberLength * 0.5,
-                m_ThicknessIC[i] * 0.5);
-        G4Material* GasIC = MaterialManager::getInstance()->GetGasFromLibrary(
-                m_GasIC[i], m_PressureIC[i], m_TemperatureIC[i]);
-        G4LogicalVolume* IC
-            = new G4LogicalVolume(box, GasIC, "logic_Vamos_IC", 0, 0, 0);
-        IC->SetVisAttributes(m_VisGasCF4);
-        IC->SetSensitiveDetector(m_CalorimeterScorer);
         new G4PVPlacement(
-                0,
-                G4ThreeVector(0, 0,
-                    -DetectionVolumeThickness * 0.5
-                    + (m_ZIC[i] - R_Catcher + CatcherThickness * 0.5)),
-                IC, "IC", MotherDetector, false, i + 7);
-    }
+        0,
+        G4ThreeVector(0, 0,
+        -DetectionVolumeThickness * 0.5
+        + (m_Z[4] - R_Catcher + CatcherThickness * 0.5)),
+        BuildDC4(), "DC", MotherDetector, false, 6);*/
+
+  // Construct and position the Ionisations Chambers
+  /*for (int i = 0; i < ICcounter; i++) {
+    G4Box* box = new G4Box("Vamos_IC", ChamberWidth * 0.5, ChamberLength * 0.5,
+    m_ThicknessIC[i] * 0.5);
+    G4Material* GasIC = MaterialManager::getInstance()->GetGasFromLibrary(
+    m_GasIC[i], m_PressureIC[i], m_TemperatureIC[i]);
+    G4LogicalVolume* IC
+    = new G4LogicalVolume(box, GasIC, "logic_Vamos_IC", 0, 0, 0);
+    IC->SetVisAttributes(m_VisGasCF4);
+    IC->SetSensitiveDetector(m_CalorimeterScorer);
+    new G4PVPlacement(
+    0,
+    G4ThreeVector(0, 0,
+    -DetectionVolumeThickness * 0.5
+    + (m_ZIC[i] - R_Catcher + CatcherThickness * 0.5)),
+    IC, "IC", MotherDetector, false, i + 7);
+    }*/
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -541,12 +639,12 @@ void Vamos::ConstructDetector(G4LogicalVolume* world) {
 // Called After DetecorConstruction::AddDetector Method
 
 void Vamos::InitializeRootOutput() {
-    RootOutput* pAnalysis = RootOutput::getInstance();
-    TTree*      pTree     = pAnalysis->GetTree();
-    if (!pTree->FindBranch("Vamos")) {
-        pTree->Branch("Vamos", "TVamosData", &m_Event);
-    }
-    pTree->SetBranchAddress("Vamos", &m_Event);
+  RootOutput* pAnalysis = RootOutput::getInstance();
+  TTree*      pTree     = pAnalysis->GetTree();
+  if (!pTree->FindBranch("Vamos")) {
+    pTree->Branch("Vamos", "TVamosData", &m_Event);
+  }
+  pTree->SetBranchAddress("Vamos", &m_Event);
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -554,67 +652,71 @@ void Vamos::InitializeRootOutput() {
 // Called at in the EventAction::EndOfEventAvtion
 void Vamos::ReadSensitive(const G4Event*) {
 
-    m_Event->Clear();
-
-    ///////////
-    // Calorimeter scorer
-    CalorimeterScorers::PS_Calorimeter* Scorer
-        = (CalorimeterScorers::PS_Calorimeter*)m_CalorimeterScorer->GetPrimitive(
-                0);
-    unsigned int size = Scorer->GetMult();
-    for (unsigned int i = 0; i < size; i++) {
-        vector<unsigned int> level = Scorer->GetLevel(i);
-        G4double             Energy
-            = RandGauss::shoot(Scorer->GetEnergy(i), Vamos_NS::ResoEnergy);
-        if (Energy > Vamos_NS::EnergyThreshold) {
-            G4double Time = RandGauss::shoot(Scorer->GetTime(i), Vamos_NS::ResoTime);
-            int      DetectorNbr = level[0];
-            m_Event->SetEnergy(DetectorNbr, Energy);
-            m_Event->SetTime(DetectorNbr, Time);
-        }
-    }
-    ///////////
-    // DriftChamber  scorer
-    DriftChamberScorers::PS_DriftChamber* Scorer2
-        = (DriftChamberScorers::PS_DriftChamber*)m_DCScorer->GetPrimitive(0);
-    unsigned int size2 = Scorer2->GetMult();
-    for (unsigned int i = 0; i < size2; i++) {
-        vector<unsigned int> level     = Scorer2->GetLevel(i);
-        G4double               DriftTime 
-            = RandGauss::shoot(Scorer2->GetDriftTime(i)/Scorer2->GetCounter(i), Vamos_NS::ResoDriftTime);
-        G4double               X         
-            = RandGauss::shoot(Scorer2->GetX(i)/Scorer2->GetCounter(i), ResoPosX);
-        int DetectorNbr = level[0];
-        m_Event->SetDrift(DetectorNbr, DriftTime, X);
+  m_Event->Clear();
+
+  ///////////
+  // Calorimeter scorer
+  CalorimeterScorers::PS_Calorimeter* Scorer
+    = (CalorimeterScorers::PS_Calorimeter*)m_CalorimeterScorer->GetPrimitive(0);
+  unsigned int size = Scorer->GetMult();
+  for (unsigned int i = 0; i < size; i++) {
+    vector<unsigned int> level = Scorer->GetLevel(i);
+    G4double             Energy
+      = RandGauss::shoot(Scorer->GetEnergy(i), Vamos_NS::ResoEnergy);
+    if (Energy > Vamos_NS::EnergyThreshold) {
+      G4double Time = RandGauss::shoot(Scorer->GetTime(i), Vamos_NS::ResoTime);
+      int      DetectorNbr = level[0];
+      m_Event->SetEnergy(DetectorNbr, Energy);
+      m_Event->SetTime(DetectorNbr, Time);
     }
+  }
+  ///////////
+  // DriftChamber  scorer
+  DriftChamberScorers::PS_DriftChamber* Scorer2
+    = (DriftChamberScorers::PS_DriftChamber*)m_DCScorer->GetPrimitive(0);
+  unsigned int size2 = Scorer2->GetMult();
+  for (unsigned int i = 0; i < size2; i++) {
+    vector<unsigned int> level     = Scorer2->GetLevel(i);
+    G4double               DriftTime 
+      = RandGauss::shoot(Scorer2->GetDriftTime(i)/Scorer2->GetCounter(i), Vamos_NS::ResoDriftTime);
+    G4double               X         
+      = RandGauss::shoot(Scorer2->GetX(i)/Scorer2->GetCounter(i), ResoPosX);
+    int DetectorNbr = level[0];
+    m_Event->SetDrift(DetectorNbr, DriftTime, X);
+  }
 
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 ////////////////////////////////////////////////////////////////
 void Vamos::InitializeScorers() {
-    // This check is necessary in case the geometry is reloaded
-    bool already_exist  = false;
-    m_DCScorer          = CheckScorer("DCScorer", already_exist);
-    m_CalorimeterScorer = CheckScorer("VamosScorer", already_exist);
-    if (already_exist)
-        return;
-
-    // Otherwise the scorer is initialised
-    vector<int> level;
-    level.push_back(0);
-
-    G4VPrimitiveScorer* Calorimeter
-        = new CalorimeterScorers::PS_Calorimeter("Calorimeter", level, 0);
-    m_CalorimeterScorer->RegisterPrimitive(Calorimeter);
-
-    G4VPrimitiveScorer* Drift = new DriftChamberScorers::PS_DriftChamber(
-            "Drift", level, DriftDir, DriftSpeed, 0);
-    m_DCScorer->RegisterPrimitive(Drift);
-
-    // and register it to the multifunctionnal detector
-    G4SDManager::GetSDMpointer()->AddNewDetector(m_DCScorer);
-    G4SDManager::GetSDMpointer()->AddNewDetector(m_CalorimeterScorer);
+  // This check is necessary in case the geometry is reloaded
+  bool already_exist  = false;
+  m_DCScorer          = CheckScorer("DCScorer", already_exist);
+  m_CalorimeterScorer = CheckScorer("VamosScorer", already_exist);
+  m_TMW1Scorer = CheckScorer("TMW1Scorer", already_exist);
+  if (already_exist)
+    return;
+
+  // Otherwise the scorer is initialised
+  vector<int> level;
+  level.push_back(0);
+
+  G4VPrimitiveScorer* Calorimeter
+    = new CalorimeterScorers::PS_Calorimeter("Calorimeter", level, 0);
+  m_CalorimeterScorer->RegisterPrimitive(Calorimeter);
+
+  G4VPrimitiveScorer* Drift = new DriftChamberScorers::PS_DriftChamber(
+      "Drift", level, DriftDir, DriftSpeed, 0);
+  m_DCScorer->RegisterPrimitive(Drift);
+
+  G4VPrimitiveScorer* InteractionTMW1 = new InteractionScorers::PS_Interactions("InteractionTMW1",ms_InterCoord,0);
+  m_TMW1Scorer->RegisterPrimitive(InteractionTMW1);
+
+  // and register it to the multifunctionnal detector
+  G4SDManager::GetSDMpointer()->AddNewDetector(m_DCScorer);
+  G4SDManager::GetSDMpointer()->AddNewDetector(m_CalorimeterScorer);
+  G4SDManager::GetSDMpointer()->AddNewDetector(m_TMW1Scorer);
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -628,13 +730,13 @@ NPS::VDetector* Vamos::Construct() { return (NPS::VDetector*)new Vamos(); }
 //            Registering the construct method to the factory //
 ////////////////////////////////////////////////////////////////////////////////
 extern "C" {
-    class proxy_nps_Vamos {
-        public:
-            proxy_nps_Vamos() {
-                NPS::DetectorFactory::getInstance()->AddToken("Vamos", "Vamos");
-                NPS::DetectorFactory::getInstance()->AddDetector("Vamos", Vamos::Construct);
-            }
-    };
-
-    proxy_nps_Vamos p_nps_Vamos;
+  class proxy_nps_Vamos {
+    public:
+      proxy_nps_Vamos() {
+        NPS::DetectorFactory::getInstance()->AddToken("Vamos", "Vamos");
+        NPS::DetectorFactory::getInstance()->AddDetector("Vamos", Vamos::Construct);
+      }
+  };
+
+  proxy_nps_Vamos p_nps_Vamos;
 }
diff --git a/NPSimulation/Detectors/Vamos/Vamos.hh b/NPSimulation/Detectors/Vamos/Vamos.hh
index d4e6b3dc0372b2e92ccef1261623cb02a75cc9fc..b33f39dfc66fd70a185331d33590d4620deb546e 100644
--- a/NPSimulation/Detectors/Vamos/Vamos.hh
+++ b/NPSimulation/Detectors/Vamos/Vamos.hh
@@ -39,134 +39,147 @@ using namespace std;
 #include "NPInputParser.h"
 
 class Vamos : public NPS::VDetector{
+  ////////////////////////////////////////////////////
+  /////// Default Constructor and Destructor /////////
+  ////////////////////////////////////////////////////
+  public:
+    Vamos() ;
+    virtual ~Vamos() ;
+
+    ////////////////////////////////////////////////////
+    /////// Specific Function of this Class ///////////
+    ////////////////////////////////////////////////////
+  public:  
+
+    void AddVamos(G4double R,double Theta);  
+    void AddBeamCatcher(string Material, G4double Width, double Length, double Thickness, G4ThreeVector Pos);
+    void AddDetector(G4double Z, string Gas, double Pressure, double Temperature);       
+    void AddIC(G4double Z,  double Thickness, string Gas, double Pressure, double Temperature);
+
+    G4LogicalVolume* BuildDC1();
+    G4LogicalVolume* BuildDC2();
+
+    G4LogicalVolume* BuildQuad1();
+    G4LogicalVolume* BuildQuad2();
+    G4LogicalVolume* BuildDipol();
+
+    G4LogicalVolume* BuildBeamCatcher();
+    G4LogicalVolume* BuildMWPPAC();
+    G4LogicalVolume* BuildDC3();
+    G4LogicalVolume* BuildDC4();
+    G4LogicalVolume* BuildIC(); 
+    G4LogicalVolume* BuildTMW1(); 
+    G4LogicalVolume* BuildTMW2(); 
+
+  private:
+
+    G4LogicalVolume* m_DC1;
+    G4LogicalVolume* m_DC2;
+
+    G4LogicalVolume* m_Quad1;
+    G4LogicalVolume* m_Quad2;
+    G4LogicalVolume* m_Dipol;    
+
+    G4LogicalVolume* m_BeamCatcher;
+    G4LogicalVolume* m_MWPPAC;
+    G4LogicalVolume* m_DC3;
+    G4LogicalVolume* m_DC4;
+    G4LogicalVolume* m_IC;
+    G4LogicalVolume* m_TMW1;
+    G4LogicalVolume* m_TMW2;
+
+    G4double ICcounter;
+
     ////////////////////////////////////////////////////
-    /////// Default Constructor and Destructor /////////
+    //////  Inherite from NPS::VDetector class /////////
     ////////////////////////////////////////////////////
-    public:
-        Vamos() ;
-        virtual ~Vamos() ;
+  public:
+    // Read stream at Configfile to pick-up parameters of detector (Position,...)
+
+    void ClearGeometry();
+
+    // Called in DetecorConstruction::ReadDetextorConfiguration Method
+    void ReadConfiguration(NPL::InputParser) ;
 
-        ////////////////////////////////////////////////////
-        /////// Specific Function of this Class ///////////
-        ////////////////////////////////////////////////////
-    public:  
+    // Construct detector and inialise sensitive part.
+    // Called After DetecorConstruction::AddDetector Method
+    void ConstructDetector(G4LogicalVolume* world) ;
 
-        void AddVamos(G4double R,double Theta);  
-        void AddBeamCatcher(string Material, G4double Width, double Length, double Thickness, G4ThreeVector Pos);
-        void AddDetector(G4double Z, string Gas, double Pressure, double Temperature);       
-        void AddIC(G4double Z,  double Thickness, string Gas, double Pressure, double Temperature);
+    // Add Detector branch to the EventTree.
+    // Called After DetecorConstruction::AddDetector Method
+    void InitializeRootOutput() ;
 
-        G4LogicalVolume* BuildDC1();
-        G4LogicalVolume* BuildDC2();
+    // Read sensitive part and fill the Root tree.
+    // Called at in the EventAction::EndOfEventAvtion
+    void ReadSensitive(const G4Event* event) ;
 
-        G4LogicalVolume* BuildQuad1();
-        G4LogicalVolume* BuildQuad2();
-        G4LogicalVolume* BuildDipol();
-
-        G4LogicalVolume* BuildBeamCatcher();
-        G4LogicalVolume* BuildMWPPAC();
-        G4LogicalVolume* BuildDC3();
-        G4LogicalVolume* BuildDC4();
-        G4LogicalVolume* BuildIC(); 
-
-    private:
-
-        G4LogicalVolume* m_DC1;
-        G4LogicalVolume* m_DC2;
-
-        G4LogicalVolume* m_Quad1;
-        G4LogicalVolume* m_Quad2;
-        G4LogicalVolume* m_Dipol;    
-
-        G4LogicalVolume* m_BeamCatcher;
-        G4LogicalVolume* m_MWPPAC;
-        G4LogicalVolume* m_DC3;
-        G4LogicalVolume* m_DC4;
-        G4LogicalVolume* m_IC;
-
-        G4double ICcounter;
-
-        ////////////////////////////////////////////////////
-        //////  Inherite from NPS::VDetector class /////////
-        ////////////////////////////////////////////////////
-    public:
-        // Read stream at Configfile to pick-up parameters of detector (Position,...)
-
-        void ClearGeometry();
-
-        // Called in DetecorConstruction::ReadDetextorConfiguration Method
-        void ReadConfiguration(NPL::InputParser) ;
-
-        // Construct detector and inialise sensitive part.
-        // Called After DetecorConstruction::AddDetector Method
-        void ConstructDetector(G4LogicalVolume* world) ;
-
-        // Add Detector branch to the EventTree.
-        // Called After DetecorConstruction::AddDetector Method
-        void InitializeRootOutput() ;
-
-        // Read sensitive part and fill the Root tree.
-        // Called at in the EventAction::EndOfEventAvtion
-        void ReadSensitive(const G4Event* event) ;
-
-    public: 
-        // Scorer
-        // Initialize all Scorer used by Vamos
-        void InitializeScorers() ;
-
-        // Associated Scorer
-        G4MultiFunctionalDetector* m_CalorimeterScorer ;
-        G4MultiFunctionalDetector* m_DCScorer ;
-
-        ////////////////////////////////////////////////////
-        ///////////Event class to store Data////////////////
-        ////////////////////////////////////////////////////
-
-    private:
-        TVamosData* m_Event ;
-
-        ////////////////////////////////////////////////////
-        ///////////////Private intern Data//////////////////
-        ////////////////////////////////////////////////////
-
-    private: 
-
-        // Geometry
-
-        G4double R_Catcher        = 0;
-        G4double CatcherWidth     = 0;
-        G4double CatcherLength    = 0;
-        G4double CatcherThickness = 0;
-        G4double       m_R        = 0; // distance Target- Entrance of the Mother Volume
-        G4double       m_Theta    = 0; 
-        // Detector Coordinate  
-
-        string CatcherMaterial;
-
-        G4ThreeVector m_PosCatcher; 
-        vector<G4double> m_Z ;
-        vector<string> m_Gas;
-        vector<G4double> m_Pressure;
-        vector<G4double> m_Temperature;
+  public: 
+    // Scorer
+    // Initialize all Scorer used by Vamos
+    void InitializeScorers() ;
 
-        vector<G4double> m_ZIC;
-        vector<G4double> m_ThicknessIC;
-        vector<G4double> m_PressureIC;
-        vector<G4double> m_TemperatureIC;
-        vector<string> m_GasIC;
+    // Associated Scorer
+    G4MultiFunctionalDetector* m_CalorimeterScorer ;
+    G4MultiFunctionalDetector* m_DCScorer ;
+    G4MultiFunctionalDetector* m_TMW1Scorer ;
 
-        //   Shape type
+    ////////////////////////////////////////////////////
+    ///////////Event class to store Data////////////////
+    ////////////////////////////////////////////////////
+
+  private:
+    TVamosData* m_Event ;
 
-        // Visualisation Attribute
-        G4VisAttributes* m_VisQuad;
-        G4VisAttributes* m_VisDC;
-        G4VisAttributes* m_VisVolumeVamos;
-        G4VisAttributes* m_VisCatcher;
-        G4VisAttributes* m_VisGasC4H10;
-        G4VisAttributes* m_VisGasCF4;
+    ////////////////////////////////////////////////////
+    ///////////////Private intern Data//////////////////
+    ////////////////////////////////////////////////////
 
-    public:
-        static NPS::VDetector* Construct();
+  private: 
+
+    // Geometry
+
+    G4double R_Catcher        = 0;
+    G4double CatcherWidth     = 0;
+    G4double CatcherLength    = 0;
+    G4double CatcherThickness = 0;
+    G4double       m_R        = 0; // distance Target- Entrance of the Mother Volume
+    G4double       m_Theta    = 0; 
+    // Detector Coordinate  
+
+    string CatcherMaterial;
+
+    G4ThreeVector m_PosCatcher; 
+    vector<G4double> m_Z ;
+    vector<string> m_Gas;
+    vector<G4double> m_Pressure;
+    vector<G4double> m_Temperature;
+
+    vector<G4double> m_ZIC;
+    vector<G4double> m_ThicknessIC;
+    vector<G4double> m_PressureIC;
+    vector<G4double> m_TemperatureIC;
+    vector<string> m_GasIC;
+
+    // TMW1-2
+    double m_Z_TMW1;
+    double m_Z_TMW2;
+    string m_Gas_TMW1;
+    string m_Gas_TMW2;
+    double m_Pressure_TMW1;
+    double m_Pressure_TMW2;
+
+    //   Shape type
+
+    // Visualisation Attribute
+    G4VisAttributes* m_VisQuad;
+    G4VisAttributes* m_VisDC;
+    G4VisAttributes* m_VisVolumeVamos;
+    G4VisAttributes* m_VisCatcher;
+    G4VisAttributes* m_VisGasC4H10;
+    G4VisAttributes* m_VisGasCF4;
+
+  public:
+    static NPS::VDetector* Construct();
 };
 
 #endif
diff --git a/NPSimulation/EventGenerator/EventGeneratorGEFReader.cc b/NPSimulation/EventGenerator/EventGeneratorGEFReader.cc
index 8b72743c198db8020b7662e2fbe338a450423d91..c4e64349249c92cc71176129623eaa79360ce272 100644
--- a/NPSimulation/EventGenerator/EventGeneratorGEFReader.cc
+++ b/NPSimulation/EventGenerator/EventGeneratorGEFReader.cc
@@ -160,7 +160,7 @@ void EventGeneratorGEFReader::ReadConfiguration(NPL::InputParser parser){
       {
         it->m_FissioningSystemName=blocks[i]->GetString("FissioningSystem");
         m_FissioningSystem=new NPL::Particle(it->m_FissioningSystemName);
-      	m_FissioningSystem->SetKineticEnergy(0,0,0);
+        m_FissioningSystem->SetKineticEnergy(0,0,0);
       }
       if(blocks[i]->HasToken("SigmaX"))
         it->m_SigmaX=blocks[i]->GetDouble("SigmaX","mm");
@@ -198,8 +198,10 @@ void EventGeneratorGEFReader::GetBoostFromTwoBodyReaction(double Ex){
   m_TwoBodyReaction->KineRelativistic(Theta3,E3,Theta4,E4);
 
   double Phi4 = RandFlat::shoot() * 2 * pi;
+  double Phi3 = Phi4 - pi;
   m_FissioningSystem->SetKineticEnergy(E4,Theta4,Phi4);
 
+  m_TwoBodyReaction->SetParticle3(E3,Theta3,Phi3);
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -229,6 +231,7 @@ void EventGeneratorGEFReader::GenerateEvent(G4Event*){
     NPL::Particle *Proton=new NPL::Particle("1H");
     NPL::Particle *Gamma=new NPL::Particle("gamma");
     NPL::Particle *Fragment;
+    NPL::Particle *Ejectile;
     TVector3 FissioningSystemBoost;
     int it=0;
 
@@ -264,12 +267,13 @@ void EventGeneratorGEFReader::GenerateEvent(G4Event*){
           double Ex  = DataLine.at(25); // Excitation energy at fission
           if(m_isTwoBody){
             GetBoostFromTwoBodyReaction(Ex);
+            Ejectile = m_TwoBodyReaction->GetParticle3();
           }
           FissioningSystemBoost = m_FissioningSystem->GetEnergyImpulsion().BoostVector();
-          
+
           int Z_CN = DataLine.at(1);
           int A_CN = DataLine.at(2);
-        
+
           m_FissionConditions->SetZ_CN(Z_CN);
           m_FissionConditions->SetA_CN(A_CN);
           m_FissionConditions->SetEx_CN(Ex);
@@ -371,29 +375,29 @@ void EventGeneratorGEFReader::GenerateEvent(G4Event*){
         else if(DataLine.size()>0 && DataLine.at(0)==0
             && (AllowedParticles.size()==0 || std::find(AllowedParticles.begin(), AllowedParticles.end(), "neutron") != AllowedParticles.end()))
           for(int it=0;it<(DataLine.size()-1)/3;it++)
-	  {// Promt fission neutron treatment
+          {// Promt fission neutron treatment
 
-          	double ELabn      = DataLine.at(1+3*it);
-          	double cos_thetan = DataLine.at(2+3*it);
-          	double Phin       = DataLine.at(3+3*it) *M_PI/180.;
+            double ELabn      = DataLine.at(1+3*it);
+            double cos_thetan = DataLine.at(2+3*it);
+            double Phin       = DataLine.at(3+3*it) *M_PI/180.;
 
-          	TVector3 NeutronLabAngle(0,0,1.);
-          	NeutronLabAngle.SetMagThetaPhi(1.,acos(cos_thetan),Phin);
-          	NeutronLabAngle.RotateUz(LightFragmentDirection);
-          	Neutron->SetKineticEnergy(ELabn,NeutronLabAngle.Theta(),NeutronLabAngle.Phi());
+            TVector3 NeutronLabAngle(0,0,1.);
+            NeutronLabAngle.SetMagThetaPhi(1.,acos(cos_thetan),Phin);
+            NeutronLabAngle.RotateUz(LightFragmentDirection);
+            Neutron->SetKineticEnergy(ELabn,NeutronLabAngle.Theta(),NeutronLabAngle.Phi());
 
-          	TLorentzVector ImpulsionNeutron = Neutron->GetEnergyImpulsion();
-          	ImpulsionNeutron.Boost(FissioningSystemBoost);
-          	ELabn      = ImpulsionNeutron.E()-Neutron->Mass();
-          	cos_thetan = ImpulsionNeutron.CosTheta();
-          	Phin       = NeutronLabAngle.Phi();
+            TLorentzVector ImpulsionNeutron = Neutron->GetEnergyImpulsion();
+            ImpulsionNeutron.Boost(FissioningSystemBoost);
+            ELabn      = ImpulsionNeutron.E()-Neutron->Mass();
+            cos_thetan = ImpulsionNeutron.CosTheta();
+            Phin       = NeutronLabAngle.Phi();
 
-          	ELab       .push_back(ELabn);
-          	CosThetaLab.push_back(cos_thetan);
-          	PhiLab     .push_back(Phin);
-          	vParticle  .push_back(G4ParticleTable::GetParticleTable()->FindParticle("neutron"));
+            ELab       .push_back(ELabn);
+            CosThetaLab.push_back(cos_thetan);
+            PhiLab     .push_back(Phin);
+            vParticle  .push_back(G4ParticleTable::GetParticleTable()->FindParticle("neutron"));
 
-          	fileParticleMultiplicity++;
+            fileParticleMultiplicity++;
 
           }
 
@@ -476,6 +480,19 @@ void EventGeneratorGEFReader::GenerateEvent(G4Event*){
         NPS::Particle particle(GeneratedParticle, theta,particle_energy,G4ThreeVector(Momentum.x(), Momentum.y(), Momentum.z()),G4ThreeVector(x0, y0, z0));
         m_ParticleStack->AddParticleToStack(particle);
       }
+    
+    if(m_isTwoBody){
+      G4double theta                          = Ejectile->GetImpulsion().Theta();
+      G4double phi                            = Ejectile->GetImpulsion().Phi();
+      G4double particle_energy                = Ejectile->GetEnergy();
+      G4ParticleDefinition* GeneratedParticle = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIon(Ejectile->GetZ(),Ejectile->GetA(),0.);
+
+      Momentum = ShootParticle(theta,phi,par.m_direction);
+      //cout << "particle_energy=" << particle_energy << endl;
+      NPS::Particle particle(GeneratedParticle, theta,particle_energy,G4ThreeVector(Momentum.x(), Momentum.y(), Momentum.z()),G4ThreeVector(x0, y0, z0));
+      m_ParticleStack->AddParticleToStack(particle);
+
+    }
   }
 }
 
diff --git a/Projects/AlPhaPha/2024/Analysis.cxx b/Projects/AlPhaPha/2024/Analysis.cxx
index f9927ec6b0394f8d2004217309603481f8e6115b..8e25260c22852da47032736e0de72b7adadde15c 100644
--- a/Projects/AlPhaPha/2024/Analysis.cxx
+++ b/Projects/AlPhaPha/2024/Analysis.cxx
@@ -482,6 +482,7 @@ void Analysis::VamosAnalysis(){
             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_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);
 
@@ -504,18 +505,13 @@ void Analysis::VamosAnalysis(){
             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++){
-                if (FPMW_Section != 0){
-                    FF_DriftTime.push_back(10* (IC->fIC_TS.at(seg) - Time->GetTS_MWPC13(0) - ((Time->GetTime_MWPC14(0)-Toff14.at(FPMW_Section-1)) - (Time->GetTime_MWPC13(0)- Toff13.at(FPMW_Section-1)))));
-                }
-                else { 
-                    FF_DriftTime.push_back(10* (IC->fIC_TS.at(seg) - Time->GetTS_MWPC13(0) - ((Time->GetTime_MWPC14(0)) - (Time->GetTime_MWPC13(0)))));
-                }
+                    FF_DriftTime.push_back(10* (IC->fIC_TS.at(seg) - Time->GetTS_MWPC13(0)) - ((Time->GetTime_MWPC13(0)+Toff13.at(FPMW_Section))));
             }
 
 
 
-
             FF_T13 = - MTOF_FP0_T0V[0] + Toff[FPMWPat];
+            //FF_T13 = -Time->GetTime_MWPC13(0) - Toff13[FPMW_Section-1] + 589;
             FF_D13 = FF_Path - path1 + path2; 
             FF_V13 = FF_D13/FF_T13;
             FF_Beta13 = FF_V13/29.9792458;
diff --git a/Projects/AlPhaPha/2024/ReadMe.md b/Projects/AlPhaPha/2024/ReadMe.md
index 9f8a2923086cba2d3742f3c0f31cca3b1ec98010..86105c1452fe9c5f8383b7add95aba72e7a50526 100644
--- a/Projects/AlPhaPha/2024/ReadMe.md
+++ b/Projects/AlPhaPha/2024/ReadMe.md
@@ -39,7 +39,7 @@ Don't forget to modify the input file .
 Your project.config must point to the root dir of your computer
 
 # Compatibility AlmaLinux
-Never import a detector class in a macro, if you do be sure to put a 
+Never import a detector class in a macro, if you do, be sure to put a 
 ```
 #ifdef 0
 #include DETECTOR.h
diff --git a/Projects/AlPhaPha/2024/macro/chio/XYCalibration/CorrectXY.C b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/CorrectXY.C
new file mode 100644
index 0000000000000000000000000000000000000000..68d3a24a0d5893da0f3e42a45fbcdae50171ca2f
--- /dev/null
+++ b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/CorrectXY.C
@@ -0,0 +1,163 @@
+#include <TCanvas.h>
+#include <TChain.h>
+#include "ProfileEvaluator.h"
+#include "TICPhysics.h"
+#include "TTimeData.h"
+#include <TStyle.h>
+#include <chrono>
+#include <TH3.h>
+#include <TH2.h>
+
+
+void EvaluateProfileFromFile(const char* filename = "input.root", const char* profname = "prof", Double_t x = 0, Double_t y = 0) ;
+
+vector<double> TxtToVector(const char *Path);
+
+
+void CorrectXY(){
+
+    ProfileEvaluator evaluator;
+    evaluator.LoadProfile("Output/RatioProfile.root","ICOneZeroProfile");
+
+    TChain* chain = new TChain("PhysicsTree");
+    chain->Add("../../../root/analysis/VamosCalib247.root");
+
+    TTimeData *Time = new TTimeData();
+    TICPhysics* IC = new TICPhysics() ;
+    double FF_IC_X, FF_IC_Y, FF_V13, FF_DriftTime;
+
+
+
+    vector<double> Toff13 , Toff14, Toff23, Toff24;
+    const char* Path13 = "../../mwpc/Toff/output/Toff13.txt";
+    const char* Path14 = "../../mwpc/Toff/output/Toff14.txt";
+    const char* Path23 = "../../mwpc/Toff/output/Toff23.txt";
+    const char* Path24 = "../../mwpc/Toff/output/Toff24.txt";
+
+    Toff13 = TxtToVector(Path13);
+    Toff14 = TxtToVector(Path14);
+    Toff23 = TxtToVector(Path23);
+    Toff24 = TxtToVector(Path24);
+
+
+    chain->SetBranchStatus("FF_IC_X", true);
+    chain->SetBranchAddress("FF_IC_X", &FF_IC_X);
+    chain->SetBranchStatus("FF_IC_Y", true);
+    chain->SetBranchAddress("FF_IC_Y", &FF_IC_Y);
+
+    chain->SetBranchStatus("IC", true);
+    chain->SetBranchAddress("IC", &IC);
+
+    chain->SetBranchStatus("Time", true);
+    chain->SetBranchAddress("Time", &Time);
+
+    TProfile2D *Pxyz = new TProfile2D("ICOneZeroProfile","ICOneZeroProfile",100,-1000.0,1000.0,100,-1200.0,1000.0);
+    TProfile2D *PxyzCorr = new TProfile2D("PxyzCorr","PxyzCorr",100,-1000.0,1000.0,100,-1200.0,1000.0);
+
+
+    //int Nentries = chain->GetEntries();
+    int Nentries = 1000000;
+    auto start = std::chrono::high_resolution_clock::now();
+
+    for (int e = 0; e < Nentries; e++) {
+        if (e % 100000  == 0 && e > 0 ) {
+            auto now = std::chrono::high_resolution_clock::now();
+            std::chrono::duration<double> elapsed = now - start;
+            double avgTimePerIteration = elapsed.count() / e;
+            double timeLeft = avgTimePerIteration * (Nentries - e);
+
+            std::cout << "********** Estimated time left: " << int(timeLeft) << " seconds **********" << "\r" << flush;
+        }
+
+        chain->GetEntry(e);
+
+        if(Time->GetMWPC13Mult()==1 && IC->fIC_raw[8] >0){
+            UShort_t FPMW_Section = Time->GetSection_MWPC3(0);
+            FF_DriftTime = 10* (IC->fIC_TS.at(0) - Time->GetTS_MWPC13(0)) - ((Time->GetTime_MWPC13(0)+Toff13.at(FPMW_Section))) ;
+
+
+            Double_t ICRatio =  IC->fIC_raw[1]/IC->fIC_raw[0];
+
+            if(IC->fIC_raw[8] >0 && ICRatio <= 8 && ICRatio >0.1 ) {
+
+                Double_t ICRatioCorr = ICRatio * 1.3 / evaluator.Evaluate(FF_IC_X,FF_DriftTime,true);
+                if (ICRatioCorr >100 ) ICRatioCorr = 1.2;
+                Pxyz->Fill(FF_IC_X,FF_DriftTime,ICRatio);
+                PxyzCorr->Fill(FF_IC_X,FF_DriftTime,ICRatioCorr);
+            }
+        }
+    
+    }
+
+    gStyle->SetCanvasPreferGL(true);
+    TCanvas *c1 = new TCanvas("c1","c1");
+    gStyle->SetPalette(kRainBow);
+    Pxyz->SetXTitle("X");
+    Pxyz->SetYTitle("DriftTime");
+    Pxyz->SetZTitle("RatioIC");
+	Pxyz->SetMinimum(1.0);
+	Pxyz->SetMaximum(1.5);
+	Pxyz->Draw("GL SURF2");    // Configure the 3D view
+    c1->Update();
+   
+    TCanvas *c2 = new TCanvas("c2","c2");
+    gStyle->SetPalette(kRainBow);
+    PxyzCorr->SetXTitle("X");
+    PxyzCorr->SetYTitle("DriftTime");
+    PxyzCorr->SetZTitle("RatioIC");
+	PxyzCorr->SetMinimum(1.0);
+	PxyzCorr->SetMaximum(1.5);
+	PxyzCorr->Draw("GL SURF2");    // Configure the 3D view
+
+    TFile *ofile = new TFile("Output/RatioProfile.root" ,"recreate" );
+    Pxyz ->Write();
+
+}
+
+
+
+void EvaluateProfileFromFile(const char* filename ,
+        const char* profname ,
+        Double_t x ,
+        Double_t y ) {
+    ProfileEvaluator evaluator;
+    if (!evaluator.LoadProfile(filename, profname)) {
+        printf("Failed to load profile\n");
+        return;
+    }
+
+    evaluator.PrintInfo();
+    Double_t z = evaluator.Evaluate(x, y, true);
+    printf("z(%.2f, %.2f) = %.3f\n", x, y, z);
+
+    // Quick visualization
+    TCanvas* c = new TCanvas("c", "Profile View", 800, 400);
+    c->Divide(2,1);
+
+    c->cd(1);
+    evaluator.GetProfile()->Draw("colz");
+
+    c->cd(2);
+    evaluator.GetProfile()->Draw("surf1");
+}
+
+vector<double> TxtToVector(const char *Path){
+	string line;
+	vector<double> values;
+	ifstream file(Path); 
+
+	if (file.is_open()) {
+		while (std::getline(file, line)) {
+			try {
+				values.push_back(std::stod(line));
+			} catch (const std::invalid_argument& e) {
+				std::cerr << "Invalid number in line: " << line << '\n';
+			}
+		}
+		file.close();
+	} else {
+		std::cerr << "Error opening file.\n";
+	}
+
+	return values;
+}
diff --git a/Projects/AlPhaPha/2024/macro/chio/XYCalibration/DECorr.C b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/DECorr.C
new file mode 100644
index 0000000000000000000000000000000000000000..21101091a8d15f3b790ce6d385e3b33e95ab8b50
--- /dev/null
+++ b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/DECorr.C
@@ -0,0 +1,456 @@
+#include "TTimeData.h"
+#include <TICPhysics.h>
+#include <TCanvas.h>
+#include <TChain.h>
+#include <TF1.h>
+#include <TFile.h>
+#include <TH2.h>
+#include <TSpline.h>
+#include <TCutG.h>
+#include <TStyle.h>
+#include <fstream>
+#include <vector>
+#include "ProfileEvaluator.h"
+
+using namespace std;
+vector<double> TxtToVector(const char *Path);
+int GetNumberKey(TFile *infile ,const char* ClassName);
+
+TSpline3* MakeSpline(TH2F* hInput, Int_t NCallee, double XMin , double
+        XMax, double YMin, double YMax);
+//////////////////////////////////////////////////////////////////////////////////////////
+void DECorr(bool cut = false, bool spline = false) {
+    //===========================================================================================================
+    //                           Loading var
+    //===========================================================================================================
+    TChain* chain = new TChain("PhysicsTree");
+    chain->Add("../../../root/analysis/VamosCalib247.root");
+
+    TICPhysics* IC = new TICPhysics() ;
+    TTimeData *Time = new TTimeData();
+    double FF_IC_X, FF_IC_Y, FF_V13, Y;
+
+    chain->SetBranchStatus("FF_IC_X", true);
+    chain->SetBranchAddress("FF_IC_X", &FF_IC_X);
+
+    chain->SetBranchStatus("FF_IC_Y", true);
+    chain->SetBranchAddress("FF_IC_Y", &FF_IC_Y);
+
+    chain->SetBranchStatus("IC", true);
+    chain->SetBranchAddress("IC", &IC); 
+   
+    chain->SetBranchStatus("FF_V13", true);
+    chain->SetBranchAddress("FF_V13", &FF_V13); 
+   
+    chain->SetBranchStatus("Time", true);
+    chain->SetBranchAddress("Time", &Time);
+
+    vector<double> Toff13 , Toff14, Toff23, Toff24;
+    const char* Path13 = "../../mwpc/Toff/output/Toff13.txt";
+    const char* Path14 = "../../mwpc/Toff/output/Toff14.txt";
+    const char* Path23 = "../../mwpc/Toff/output/Toff23.txt";
+    const char* Path24 = "../../mwpc/Toff/output/Toff24.txt";
+
+    Toff13 = TxtToVector(Path13);
+    Toff14 = TxtToVector(Path14);
+    Toff23 = TxtToVector(Path23);
+    Toff24 = TxtToVector(Path24);
+
+    ProfileEvaluator Profile;
+    Profile.LoadProfile("Output/RatioProfile.root","ICOneZeroProfile");
+
+    TCutG *CutZ;
+    TCutG *CutZbis;
+    TFile *fCut;
+    if (cut) {
+        fCut =  TFile::Open("Output/CutDeCorr.root");
+        CutZbis = (TCutG*)fCut->Get("CutZbis") ;
+        CutZ = (TCutG*)fCut->Get("CutZ") ;
+    }
+
+    TFile *fSpline; 
+    TSpline3 *splineDEcorr, *splineDEbis;
+    fSpline= new TFile("Output/splineDE.root","open");
+    splineDEcorr = (TSpline3*) fSpline->Get("SplineDe_0");
+    splineDEbis = (TSpline3*) fSpline->Get("SplineDebis");
+
+    vector<TSpline3*> vsplineDE;
+    // Get number of spline
+    int SplineCountDe = 0 ;
+    TIter next1(fSpline->GetListOfKeys());
+    TKey* key1;
+
+    while ((key1=(TKey*)next1())){
+        if (std::string(key1->GetClassName()) == "TSpline3"){
+            SplineCountDe ++;
+        }
+    }
+    
+    //Fill spline vector
+    for (int i =0 ; i<SplineCountDe ; i++){
+        vsplineDE.push_back((TSpline3*) fSpline->Get(Form("SplineDe_%d",i)));
+    }
+
+    //empty backup one
+    for (int i =0 ; i<SplineCountDe ; i++){
+        if (vsplineDE[i]==nullptr) vsplineDE.erase(vsplineDE.begin()+i);
+    }
+
+
+    //Defining output histo
+    TH2F* hDE_E = new TH2F("DE_E","DE_E",1000,0,22000,1000,0,28000);
+    TH2F* hDE_E_splined = new TH2F("DE_E_splined","DE_E_splined",1000,0,22000,1000,0,28000);
+    TH2F* hDE_Ebis = new TH2F("DE_Ebis","DE_Ebis",1000,0,22000,1000,0,24000);
+
+
+    TH2F* hDE_Y = new TH2F("DE_Y","DE_Y",1000,-1000,1000,1000,0,22000);
+    TH2F* hDE_Y_splined = new TH2F("DE_Ysplined","DE_Ysplined",1000,-1000,1000,1000,0,22000);
+    TH2F* hDE_Y_splined_nocut = new TH2F("DE_Ysplined_nocut","DE_Ysplined_nocut",1000,-1000,1000,1000,0,22000);
+    TH2F* hIC_Y = new TH2F("IC_Y","IC_Y",1000,-1000,1000,1000,0,22000);
+    TH2F* hIC_Y_splined = new TH2F("IC_Ysplined","IC_Ysplined",1000,-1000,1000,1000,0,22000);
+
+
+    TH2F* hDE_Y_corr = new TH2F("DE_Ycorr","DE_Ycorr",1000,-1000,1000,1000,0,22000);
+    TH2F* hDE_Y_corr_nocut = new TH2F("DE_Ycorr_nocut","DE_Ycorr_nocut",1000,-1000,1000,1000,0,22000);
+
+    TH2F* hDE_Y_bis = new TH2F("DE_Ybis","DE_Ybis",1000,-1000,1000,1000,0,22000);
+    TH2F* hDEbis_Y_corr = new TH2F("DE_Ybiscorr","DE_Ybiscorr",1000,-1000,1000,1000,0,22000);
+
+    TH2F* hDE_E_corr = new TH2F("DE_Ecorr","DE_Ecorr",1000,0,22000,1000,0,28000);
+    TH2F* hDE_Ebis_corr = new TH2F("DE_Ebiscorr","DE_Ebiscorr",1000,0,22000,1000,0,24000);
+
+    TH2F* hDE_V = new TH2F("DE_V","DE_V",1000,0,5,1000,0,28000);
+
+    // Def Lim spline
+    double Ymin = -1000 , Ymax =1000;
+    //===========================================================================================================
+    //                                        Event Loop
+    //===========================================================================================================
+    int Nentries = chain->GetEntries();
+    //int Nentries = 1000000;
+    auto start = std::chrono::high_resolution_clock::now();
+
+    for (int e = 0; e < Nentries; e++) {
+        if (e % 100000  == 0 && e > 0 ) {
+            auto now = std::chrono::high_resolution_clock::now();
+            std::chrono::duration<double> elapsed = now - start;
+            double avgTimePerIteration = elapsed.count() / e;
+            double timeLeft = avgTimePerIteration * (Nentries - e);
+
+            std::cout << "********** Estimated time left: " << int(timeLeft) << " seconds **********" << "\r" << flush;
+        }
+
+        chain->GetEntry(e);
+
+
+        if (Time->GetMWPC13Mult() ==1 && IC->fIC_TS.size()>=8){ //only mult 1 event
+            UShort_t FPMW_Section = Time->GetSection_MWPC3(0);
+            double FF_DriftTime = 10* (IC->fIC_TS.at(0) - Time->GetTS_MWPC13(0)) - ((Time->GetTime_MWPC13(0)+Toff13.at(FPMW_Section))) ;
+
+            Double_t ICRatio =  IC->fIC_raw[1]/IC->fIC_raw[0];
+            Double_t ICRatioCorr =  ICRatio *1.3 / Profile.Evaluate(FF_IC_X,FF_DriftTime,true);
+            Double_t ICcorr_Y = IC->fIC_raw[0] / 1.3 * Profile.Evaluate(FF_IC_X,FF_DriftTime,true);
+
+
+            double DE = 0 , DE_splined=0 ,DE_corr=0, DE_Ybis=0;
+            double E =0;
+
+            for (int seg = 0 ;  seg < sizeof(IC->fIC_raw)/sizeof(IC->fIC_raw[0]) ; seg++ ){
+                if (seg >4){
+                    E += double(IC->fIC_raw[seg]) ;
+                }
+            }
+
+
+
+            // ********************* DE setter *********************
+            double IC1corr = (IC->fIC_raw[1]*(1-0.000686068*FF_IC_Y))*(1-4.88238e-05*FF_IC_Y+7.40395e-06*FF_IC_Y*FF_IC_Y);
+            double DE_Bis = 0.5*(IC1corr+IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4];
+
+            DE = 0.5*(double(IC->fIC_raw[0])+ double(IC->fIC_raw[1]) +double(IC->fIC_raw[2])+ double(IC->fIC_raw[3])) + double(IC->fIC_raw[4]);
+            DE_splined = 0.5*(ICcorr_Y+ IC->fIC_raw[1] +IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4];
+
+            //DE_splined = 0.5*( ICcorr_Y[1] +IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4];
+
+
+            //************* Cut ******************
+            bool CutV = abs( FF_V13-3.94)<0.1;
+            bool CutVbis =  abs( FF_V13-3.94)<0.1;
+
+            //bool CutV = true;
+            //bool CutVbis =  true;
+
+            //***********Fill histo*************
+
+            if (FF_DriftTime >Ymin && FF_DriftTime <Ymax ){
+
+                //*************Init DE_E***************** 
+                hDE_E->Fill(E,DE);
+                hDE_E_splined->Fill(E,DE_splined);
+                hDE_Ebis->Fill(E,DE_Bis);
+
+                hDE_V->Fill(FF_V13,DE_splined);    
+
+                //******* Coor DE ************
+                if (spline== true  ){     
+                    DE_corr = DE_splined * splineDEcorr->Eval(0) / splineDEcorr->Eval(FF_DriftTime);
+                    hDE_E_corr->Fill(E,DE_corr);
+
+                    DE_Ybis = DE_Bis * splineDEbis->Eval(0) / splineDEbis->Eval(FF_DriftTime);
+                    hDE_Ebis_corr->Fill(E,DE_Ybis); 
+
+                }   
+
+                else {
+                    DE_corr = DE_splined;
+                    hDE_E_corr->Fill(E,DE_corr);
+
+                    DE_Ybis = DE_Bis ;
+                    hDE_Ebis_corr->Fill(E,DE_Ybis);  
+                }
+
+                bool CutCharge ;
+
+
+                if (cut == true) CutCharge =  CutZ->IsInside(FF_V13,DE_splined);
+                //bool CutChargeBis =  CutZ->IsInside(E,DE_Y_Recur);
+                //bool CutVbis =  CutZbis->IsInside(E,DE_Bis);
+                // DE_Y in a cut
+
+
+                if (cut == true && CutV) {
+                    if ( CutV) {
+                        hDE_Y_corr_nocut->Fill(FF_DriftTime,DE_corr);
+                        hDE_Y_splined_nocut->Fill(FF_DriftTime,DE_splined);
+                        hDE_Y->Fill(FF_DriftTime,DE);
+                        hDE_Y_splined->Fill(FF_DriftTime,DE_splined); 
+                        hDE_Y_corr->Fill(FF_DriftTime,DE_corr);
+
+                        hIC_Y->Fill(FF_DriftTime,IC->fIC_raw[0]);
+                        hIC_Y_splined->Fill(FF_DriftTime,ICcorr_Y);
+                    }
+                }//end cut
+                else {      
+                    hDE_Y->Fill(FF_DriftTime,DE);
+                    hDE_Y_splined->Fill(FF_DriftTime,DE_splined); 
+                    hDE_Y_corr->Fill(FF_DriftTime,DE_corr);
+
+                    hIC_Y->Fill(FF_DriftTime,IC->fIC_raw[0]);
+                    hIC_Y_splined->Fill(FF_DriftTime,ICcorr_Y);
+                }
+
+                if (cut == true && CutVbis) {
+                    hDE_Y_bis->Fill(Y,DE_Bis);
+                    hDEbis_Y_corr->Fill(Y,DE_Ybis);
+                }
+                else{;}
+                //end cut
+            }//end cond Y
+        } // End mult 1
+    } //endl loop event
+
+    // making spline
+
+    TSpline3 *splineDE, *osplineDEbis;
+    if (spline == true){
+        splineDE = MakeSpline(hDE_Y_splined,0,Ymin,Ymax,0,23000); 
+        osplineDEbis = MakeSpline(hDE_Y_bis,1,Ymin,Ymax,0,23000); 
+        TFile *fSpline = new TFile("Output/splineDE.root","recreate");
+        splineDE->SetName("SplineDe_0");
+        splineDE->Write();
+        osplineDEbis->SetName("SplineDebis");
+        osplineDEbis->Write(); 
+        fSpline->Close();
+    }
+    //===========================================================================================================
+    //                                          Drawing histo
+    //===========================================================================================================
+
+    gStyle->SetPalette(kRainBow);
+
+    TCanvas* c = new TCanvas("c","c",1500,1000);
+    c->Divide(2,2);
+    c->cd(1);
+    gPad->SetLogz();
+    hDE_Y->ProfileX()->Draw();
+    c->cd(2);
+    gPad->SetLogz();
+    hDE_Y_splined->ProfileX()->Draw();
+    c->cd(3);
+    gPad->SetLogz();
+    hIC_Y->ProfileX()->Draw();
+    c->cd(4);
+    gPad->SetLogz();
+    hIC_Y_splined->ProfileX()->Draw();
+
+    TCanvas *c4 = new TCanvas("c4","c4",1500,1000);
+    c4->Divide(2);
+    c4->cd(1);
+    hDE_Y_splined_nocut->Draw();
+    c4->cd(2);
+    hDE_Y_corr_nocut->Draw();
+
+    TCanvas *c5 = new TCanvas("c5","c5",1500,1000);
+    hDE_E->Draw("colz");
+
+
+
+    TCanvas *c1 = new TCanvas("c1","c1",1500,1000);
+    hDE_V->Draw();
+
+    TCanvas* c2 = new TCanvas("c2","c2",1500,1000);
+    c2->Divide(3 + 1*spline);
+
+    c2->cd(1);
+    hDE_E->SetTitle("Unmodified");
+    gPad->Modified();
+    gPad->Update(); 
+    hDE_E->Draw("colz");
+    hDE_E->GetXaxis()->SetTitle("E");
+    hDE_E->GetYaxis()->SetTitle("DE");
+
+    c2->cd(2);
+    hDE_Ebis->SetTitle("Online");
+    gPad->Modified();
+    gPad->Update();
+    hDE_Ebis->Draw("colz");
+    hDE_Ebis->GetXaxis()->SetTitle("E");
+    hDE_Ebis->GetYaxis()->SetTitle("DE");
+
+    c2->cd(3);
+    hDE_E_splined->SetTitle("IC Corrected in DT");
+    gPad->Modified();
+    gPad->Update();
+    hDE_E_splined->Draw("colz");
+    hDE_E_splined->GetXaxis()->SetTitle("E");
+    hDE_E_splined->GetYaxis()->SetTitle("DE");
+
+    if ( spline == true){
+        c2->cd(4);
+        hDE_E_corr->SetTitle("DE Corrected");
+        gPad->Modified();
+        gPad->Update();    
+        hDE_E_corr->Draw("colz"); 
+        hDE_E_corr->GetXaxis()->SetTitle("E");
+        hDE_E_corr->GetYaxis()->SetTitle("DE");
+    }
+} // End spline chio XY
+
+
+int GetNumberKey(TFile *infile ,const char* ClassName){
+    // Get number of spline
+    int KeyCount = 0 ;
+    TIter next(infile->GetListOfKeys());
+    TKey* keyFit;
+
+    while ((keyFit=(TKey*)next())){
+        if (std::string(keyFit->GetClassName()) == ClassName){
+            KeyCount ++;
+        }
+    }
+
+    return KeyCount;
+
+}
+
+TSpline3* MakeSpline(TH2F* hInput, Int_t NCallee, double XMin = 0 , double
+        XMax = 1000 , double YMin=0 , double YMax = 100) {
+
+    TSpline3* gspline;
+
+    TH1F* hProfile;
+    TH1F* pfx; // extended hProfile
+
+    TCanvas* canfit = new TCanvas(Form("CanSpline_%02d",NCallee),
+            Form("canfit_%02d",NCallee), 0, 0, 1000, 500);
+
+
+    //===========================================================================================================
+    //                                            Init profile
+    //===========================================================================================================
+
+    // Create the TProfile
+    hProfile = (TH1F*)hInput->ProfileX();
+    hProfile->SetLineWidth(2);
+    hProfile->SetDirectory(0);
+    canfit->cd();
+
+    hProfile->GetYaxis()->SetRangeUser(YMin, YMax);
+    hProfile->Draw();
+    //===========================================================================================================
+    //                                          First and last bin to get to 6k
+    //                                          event get promoted
+    //===========================================================================================================
+    int FirstBin, LastBin;
+    double Treshold = 0;
+    for (int bin =1 ; bin<hProfile->GetNbinsX(); bin++) {
+        FirstBin = bin;
+        if (hProfile->GetBinLowEdge(bin)> XMin) break;
+    }
+    for (int bin = hProfile->GetNbinsX(); bin>1 ; bin--) {
+        LastBin = bin;
+        if (hProfile->GetBinLowEdge(bin)< XMax) break;
+    }
+    //===========================================================================================================
+    //                                          Init Extended profile function
+    //===========================================================================================================
+    // Create the extended TProfile
+    pfx = new TH1F(
+            Form("pfx_%02d", Int_t(NCallee/2)), Form("pfx_%02d", Int_t(NCallee/2)), hProfile->GetNbinsX(), hProfile->GetBinLowEdge(1),
+            hProfile->GetBinLowEdge(hProfile->GetNbinsX()) + hProfile->GetBinWidth(hProfile->GetNbinsX()));
+    pfx->SetLineColor(8);
+    pfx->SetDirectory(0);
+    //===========================================================================================================
+    //                                           Fill extended profile
+    //===========================================================================================================
+
+    // fill the extended TProfile
+    float newval, lastval, lasterr;
+    for (int bin = 1; bin <= FirstBin; bin++) {
+        newval = 0;
+        pfx->SetBinContent(bin, newval);
+    }
+
+
+    for (int bin = FirstBin; bin <= LastBin; bin++) {
+        newval = hProfile->GetBinContent(bin);
+        if (newval != 0) {
+            pfx->SetBinContent(bin, newval);
+            pfx->SetBinError(bin, hProfile->GetBinError(bin));
+            lastval = newval;
+            lasterr = hProfile->GetBinError(bin);
+        }
+        else {
+            pfx->SetBinContent(bin, lastval);
+            pfx->SetBinError(bin, lasterr);
+        }
+    }
+    pfx->Draw("same");
+
+    gspline = new TSpline3(pfx);
+    gspline->SetName(Form("fspline_%d", NCallee + 1));
+
+    return gspline;
+
+} // end makespline
+
+vector<double> TxtToVector(const char *Path){
+    string line;
+    vector<double> values;
+    ifstream file(Path); 
+
+    if (file.is_open()) {
+        while (std::getline(file, line)) {
+            try {
+                values.push_back(std::stod(line));
+            } catch (const std::invalid_argument& e) {
+                std::cerr << "Invalid number in line: " << line << '\n';
+            }
+        }
+        file.close();
+    } else {
+        std::cerr << "Error opening file.\n";
+    }
+
+    return values;
+}
diff --git a/Projects/AlPhaPha/2024/macro/chio/XYCalibration/Output/RatioProfile.root b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/Output/RatioProfile.root
new file mode 100644
index 0000000000000000000000000000000000000000..e181a9879429be4a95e61fd1d388837306f078a2
Binary files /dev/null and b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/Output/RatioProfile.root differ
diff --git a/Projects/AlPhaPha/2024/macro/chio/XYCalibration/Output/ReadMe.md b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/Output/ReadMe.md
new file mode 100644
index 0000000000000000000000000000000000000000..ae505d9092a2a100ef1a1e6f5b3368d68e9fb6f8
--- /dev/null
+++ b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/Output/ReadMe.md
@@ -0,0 +1 @@
+# Put here the output profile
diff --git a/Projects/AlPhaPha/2024/macro/chio/XYCalibration/Output/splineDE.root b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/Output/splineDE.root
new file mode 100644
index 0000000000000000000000000000000000000000..330cfde1c7a3895b11fcdc11f57c399d884723ca
Binary files /dev/null and b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/Output/splineDE.root differ
diff --git a/Projects/AlPhaPha/2024/macro/chio/XYCalibration/ProfileEvaluator.h b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/ProfileEvaluator.h
new file mode 100644
index 0000000000000000000000000000000000000000..0994ba971a8eb0dc2bb445420355b322baf2af80
--- /dev/null
+++ b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/ProfileEvaluator.h
@@ -0,0 +1,127 @@
+#ifndef PROFILE_EVAL
+#define PROFILE_EVAL
+
+#include <TFile.h>
+#include <TProfile2D.h>
+#include <iostream>
+using namespace std;
+  
+class ProfileEvaluator {
+    private:
+        TFile* fFile;
+        TProfile2D* fProfile;
+
+    public:
+
+        //***********************************************************//
+
+        ProfileEvaluator() : fFile(nullptr), fProfile(nullptr) {}
+
+        //***********************************************************//
+
+        bool LoadProfile(const char* filename, const char* profname) {
+            fFile = TFile::Open(filename, "READ");
+            if (!fFile || fFile->IsZombie()) return false;
+
+            fProfile = (TProfile2D*)fFile->Get(profname)->Clone("Profile");
+            fProfile->SetDirectory(0);
+            return fProfile != nullptr;
+        }
+
+        //***********************************************************//
+
+        Double_t Evaluate(Double_t x, Double_t y, Bool_t useInterpolation = true) {
+            if (!fProfile) return 0.0;
+
+            Int_t binx = fProfile->GetXaxis()->FindBin(x);
+            Int_t biny = fProfile->GetYaxis()->FindBin(y);
+
+            if (!useInterpolation) return fProfile->GetBinContent(binx, biny);
+
+            //Def Bin dist
+            Double_t BinDistX = fProfile->GetXaxis()->GetBinCenter(2) - fProfile->GetXaxis()->GetBinCenter(1);
+            Double_t BinDistY = fProfile->GetYaxis()->GetBinCenter(2) - fProfile->GetYaxis()->GetBinCenter(1);
+
+            // Normalisation var
+            Double_t norma = 0;
+
+            // Fetch Bin Center for surrounding 3 by 3 bin and value
+            vector<Double_t> Cx(3) , Cy(3) ;
+            vector<vector<Double_t>> Q(3, vector<Double_t>(3)), W(3,vector<Double_t>(3));        
+
+            for (int i = -1 ; i<=1 ; i++){
+                // Loading nearby bins
+                int TempX = binx +i ;
+                int PosX = i + 1 ;
+
+                // Edge cases handling    
+                if (TempX < 1) TempX = 1 ; 
+                if (TempX > fProfile->GetNbinsX()) TempX = fProfile->GetNbinsX() ;
+
+                // Loading center
+                Cx.at(PosX) = fProfile->GetXaxis()->GetBinCenter(TempX);
+                //Normat that we use POSX here
+
+                // Loading value and weight
+                for (int j = -1 ; j<=1 ; j++){
+                    // Need to translate to acess the vector
+                    int PosY = j + 1 ;
+                    int TempY = biny + j ;
+
+                    if (TempY < 1) TempY = 1 ;  
+                    if (TempY > fProfile->GetNbinsY()) TempY = fProfile->GetNbinsY() ; 
+
+                    Cy.at(PosY) = fProfile->GetYaxis()->GetBinCenter(TempY); 
+                   
+                    // Loading value
+                    Q.at(PosX).at(PosY) = fProfile->GetBinContent(TempX,TempY);
+
+                    // Calculating weight
+                    Double_t Wx = 0 , Wy = 0 ;
+                    Wx = 1 - ( abs( x - Cx.at(PosX)) / (BinDistX) );
+                    Wy = 1 - ( abs( y - Cy.at(PosY)) / (BinDistY) );
+                   
+                    //handling max range 
+                    if(Wx < 0 || Wy < 0) W.at(PosX).at(PosY) = 0;
+                    else W.at(PosX).at(PosY) = Wx * Wy;
+                    // Verifiy that sum of the weight is 1
+                    norma += W.at(PosX).at(PosY) ;
+                }
+            } 
+
+            // now just calculate the return value
+
+            Double_t InterPol = 0 ;
+
+            for (int PosX = 0 ; PosX <= 2 ; PosX ++ ){
+                for (int PosY = 0 ; PosY <= 2 ; PosY ++ ){
+                    InterPol += Q.at(PosX).at(PosY) * W.at(PosX).at(PosY);
+                }
+            }
+            return InterPol;
+        }
+
+        //***********************************************************//
+
+        void PrintInfo() {
+            if (!fProfile) return;
+            printf("Profile: %s\n", fProfile->GetName());
+            printf("X bins: %d, range: [%.2f, %.2f]\n", 
+                    fProfile->GetNbinsX(),
+                    fProfile->GetXaxis()->GetXmin(),
+                    fProfile->GetXaxis()->GetXmax());
+            printf("Y bins: %d, range: [%.2f, %.2f]\n", 
+                    fProfile->GetNbinsY(),
+                    fProfile->GetYaxis()->GetXmin(),
+                    fProfile->GetYaxis()->GetXmax());
+        }
+
+        //***********************************************************//
+
+        TProfile2D* GetProfile() { return fProfile; }
+
+        //***********************************************************//
+        ~ProfileEvaluator() {
+        }
+};
+#endif
diff --git a/Projects/AlPhaPha/2024/macro/chio/XYCalibration/VerifCorrelation.C b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/VerifCorrelation.C
new file mode 100644
index 0000000000000000000000000000000000000000..b8fda7cd0ad7bd7aef63feefbaef0ff10fb1058e
--- /dev/null
+++ b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/VerifCorrelation.C
@@ -0,0 +1,128 @@
+#include "TICPhysics.h"
+#include "TTimeData.h"
+#include <TChain.h>
+#include <TFile.h>
+#include <TH2.h>
+#include <TH3.h>
+#include <TStyle.h>
+#include <TProfile2D.h>
+#include <chrono>
+vector<double> TxtToVector(const char *Path);
+
+void VerifCorrelation(){
+
+    //===========================================================================================================
+    //                           Loading var
+    //===========================================================================================================
+    TChain* chain = new TChain("PhysicsTree");
+    chain->Add("../../../root/analysis/VamosCalib247.root");
+
+    TTimeData *Time = new TTimeData();
+    TICPhysics* IC = new TICPhysics() ;
+    double FF_IC_X, FF_IC_Y, FF_V13, FF_DriftTime;
+
+  
+    vector<double> Toff13 , Toff14, Toff23, Toff24;
+    const char* Path13 = "../../mwpc/Toff/output/Toff13.txt";
+    const char* Path14 = "../../mwpc/Toff/output/Toff14.txt";
+    const char* Path23 = "../../mwpc/Toff/output/Toff23.txt";
+    const char* Path24 = "../../mwpc/Toff/output/Toff24.txt";
+
+    Toff13 = TxtToVector(Path13);
+    Toff14 = TxtToVector(Path14);
+    Toff23 = TxtToVector(Path23);
+    Toff24 = TxtToVector(Path24);
+
+
+    chain->SetBranchStatus("FF_IC_X", true);
+    chain->SetBranchAddress("FF_IC_X", &FF_IC_X);
+    chain->SetBranchStatus("FF_IC_Y", true);
+    chain->SetBranchAddress("FF_IC_Y", &FF_IC_Y);
+
+    chain->SetBranchStatus("IC", true);
+    chain->SetBranchAddress("IC", &IC);
+
+    chain->SetBranchStatus("Time", true);
+    chain->SetBranchAddress("Time", &Time);
+
+    
+    TH3F *ICXY = new TH3F("ICXY","ICXY",100,-550,400,100,-1000,1000,100,0,2);
+    TProfile2D *Pxyz = new TProfile2D("ICOneZeroProfile","ICOneZeroProfile",100,-550.0,400.0,100,-900.0,500.0);
+ 
+    int Nentries = chain->GetEntries();
+    //int Nentries = 1000000;
+    auto start = std::chrono::high_resolution_clock::now();
+
+    for (int e = 0; e < Nentries; e++) {
+        if (e % 100000  == 0 && e > 0 ) {
+            auto now = std::chrono::high_resolution_clock::now();
+            std::chrono::duration<double> elapsed = now - start;
+            double avgTimePerIteration = elapsed.count() / e;
+            double timeLeft = avgTimePerIteration * (Nentries - e);
+
+            std::cout << "********** Estimated time left: " << int(timeLeft) << " seconds **********" << "\r" << flush;
+        }
+
+        chain->GetEntry(e);
+
+
+        if(Time->GetMWPC13Mult()==1 && IC->fIC_raw[8] >0){
+            UShort_t FPMW_Section = Time->GetSection_MWPC3(0);
+            FF_DriftTime = 10* (IC->fIC_TS.at(0) - Time->GetTS_MWPC13(0)) - ((Time->GetTime_MWPC13(0)+Toff13.at(FPMW_Section))) ;
+
+
+            Double_t ICRatio =  IC->fIC_raw[1]/IC->fIC_raw[0];
+
+            if(IC->fIC_raw[8] >0 && ICRatio <= 3 && ICRatio >0.1 ) {
+                ICXY->Fill(FF_IC_X,FF_DriftTime,ICRatio);
+                Pxyz->Fill(FF_IC_X,FF_DriftTime,ICRatio);
+            }
+        }
+    
+    }
+    gStyle->SetCanvasPreferGL(true);
+    TCanvas *c = new TCanvas("c","c");
+    gStyle->SetPalette(kRainBow);
+    ICXY->SetXTitle("X");
+    ICXY->SetYTitle("DriftTime");
+    ICXY->SetZTitle("RatioIC");
+	ICXY->SetMinimum(0);
+	ICXY->Draw("GL");    // Configure the 3D view
+
+	// Update the canvas
+	c->Update();
+
+    TCanvas *c1 = new TCanvas("c1","c1");
+    gStyle->SetPalette(kRainBow);
+    Pxyz->SetXTitle("X");
+    Pxyz->SetYTitle("DriftTime");
+    Pxyz->SetZTitle("RatioIC");
+	Pxyz->SetMinimum(1.0);
+	Pxyz->SetMaximum(1.5);
+	Pxyz->Draw("GL SURF2");    // Configure the 3D view
+
+
+    TFile *ofile = new TFile("Output/RatioProfile.root","recreate");
+    Pxyz->Write();
+}
+
+vector<double> TxtToVector(const char *Path){
+	string line;
+	vector<double> values;
+	ifstream file(Path); 
+
+	if (file.is_open()) {
+		while (std::getline(file, line)) {
+			try {
+				values.push_back(std::stod(line));
+			} catch (const std::invalid_argument& e) {
+				std::cerr << "Invalid number in line: " << line << '\n';
+			}
+		}
+		file.close();
+	} else {
+		std::cerr << "Error opening file.\n";
+	}
+
+	return values;
+}
diff --git a/Projects/AlPhaPha/2024/macro/chio/YCalibration/DECorr.C b/Projects/AlPhaPha/2024/macro/chio/YCalibration/DECorr.C
index 5e6eb7d3eea92eeefe6356653819a83dc8bea771..2b4463b219c2d96a623bbb7a2d64441778a3dfed 100644
--- a/Projects/AlPhaPha/2024/macro/chio/YCalibration/DECorr.C
+++ b/Projects/AlPhaPha/2024/macro/chio/YCalibration/DECorr.C
@@ -201,8 +201,8 @@ void DECorr(bool cut = false, bool spline = false) {
         double IC1corr = (IC->fIC_raw[1]*(1-0.000686068*FF_IC_Y))*(1-4.88238e-05*FF_IC_Y+7.40395e-06*FF_IC_Y*FF_IC_Y);
         double DE_Bis = 0.5*(IC1corr+IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4];
 
-        DE = 0.5*(ICcorr_Y.at(0)+ IC->fIC_raw[1] +IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4];
-        DE_splined = 0.5*(ICcorr_Y[0]+ ICcorr_Y[1] +ICcorr_Y[2]+ICcorr_Y[3])+ICcorr_Y[4];
+        DE = 0.5*(IC->fIC_raw[0]+ IC->fIC_raw[1] +IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4];
+        DE_splined = 0.5*(ICcorr_Y[1] +IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4];
         //DE_splined = 0.5*( ICcorr_Y[1] +IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4];
         
 
@@ -222,7 +222,7 @@ void DECorr(bool cut = false, bool spline = false) {
             hDE_E_splined->Fill(E,DE_splined);
             hDE_Ebis->Fill(E,DE_Bis);
 
-            hDE_V->Fill(FF_V13,DE_splined);    
+            hDE_V->Fill(FF_V13,DE);    
 
             //******* Coor DE ************
             if (spline== true  ){     
@@ -248,23 +248,33 @@ void DECorr(bool cut = false, bool spline = false) {
                 hDE_Ebis_corr->Fill(E,DE_Ybis);  
             }
 
-            bool CutCharge =  CutZ->IsInside(FF_V13,DE_splined);
+            bool CutCharge;
+            if (cut == true) {
+                CutCharge   =  CutZ->IsInside(FF_V13,DE);
+            }
             //bool CutChargeBis =  CutZ->IsInside(E,DE_Y_Recur);
             //bool CutVbis =  CutZbis->IsInside(E,DE_Bis);
             // DE_Y in a cut
             
             hDE_Y_corr_nocut->Fill(FF_IC_Y,DE);
             hDE_Y_splined_nocut->Fill(FF_IC_Y,DE_splined);
-            if (cut == true && CutV && CutCharge) {
-               
+            if (cut == true ) {
+                if (CutV && CutCharge){ 
+                    hDE_Y->Fill(FF_IC_Y,DE);
+                    hDE_Y_splined->Fill(FF_IC_Y,DE_splined); 
+                    hDE_Y_corr->Fill(FF_IC_Y,DE_corr);
+
+                    hIC_Y->Fill(FF_IC_Y,IC->fIC_raw[1]);
+                    hIC_Y_splined->Fill(FF_IC_Y,ICcorr_Y.at(1));
+                }
+            }//end cut
+            else {
                 hDE_Y->Fill(FF_IC_Y,DE);
                 hDE_Y_splined->Fill(FF_IC_Y,DE_splined); 
                 hDE_Y_corr->Fill(FF_IC_Y,DE_corr);
 
                 hIC_Y->Fill(FF_IC_Y,IC->fIC_raw[1]);
-                hIC_Y_splined->Fill(FF_IC_Y,ICcorr_Y.at(1));
-            }//end cut
-            else {;}
+                hIC_Y_splined->Fill(FF_IC_Y,ICcorr_Y.at(1));}
 
             if (cut == true && CutVbis) {
                 hDE_Y_bis->Fill(FF_IC_Y,DE_Bis);
@@ -313,7 +323,7 @@ void DECorr(bool cut = false, bool spline = false) {
     hDE_Y_splined_nocut->ProfileX()->Draw();
     c4->cd(2);
     hDE_Y_corr_nocut->ProfileX()->Draw();
-    
+
 
 
     TCanvas *c1 = new TCanvas("c1","c1",1500,1000);
diff --git a/Projects/AlPhaPha/2024/macro/chio/YCalibration/Legacy/PlotOnline.C b/Projects/AlPhaPha/2024/macro/chio/YCalibration/PlotOnline.C
similarity index 52%
rename from Projects/AlPhaPha/2024/macro/chio/YCalibration/Legacy/PlotOnline.C
rename to Projects/AlPhaPha/2024/macro/chio/YCalibration/PlotOnline.C
index 113fa6f5223d4488fc2ea7a43620e05bc4844b4a..d301d3ccd30b950fa2f91f2c89aecc5d17b330a5 100644
--- a/Projects/AlPhaPha/2024/macro/chio/YCalibration/Legacy/PlotOnline.C
+++ b/Projects/AlPhaPha/2024/macro/chio/YCalibration/PlotOnline.C
@@ -1,4 +1,6 @@
 
+#include <TAxis.h>
+#include <TCanvas.h>
 #include <TF1.h>
 #include <TFile.h>
 #include <TSpline.h>
@@ -9,7 +11,11 @@ void PlotOnline(){
 
 
     TFile *fSplineIC = new TFile("Output/spline_P2P_2024.root","open"); 
-    TSpline3 *spline_X = (TSpline3 *)fSplineIC->Get("fspline_IC1_Y");
+    TSpline3 *spline_Y = (TSpline3 *)fSplineIC->Get("fspline_IC1_Y");
 
+    TCanvas *c = new TCanvas("c","c");
     f1->Draw();
+    f1->SetTitle("Lucas correction");
+    f1->GetXaxis()->SetTitle("Y");
+    f1->GetYaxis()->SetTitle("De Correction");
 }
diff --git a/Projects/AlPhaPha/2024/macro/chio/YCalibration/SplineChioP2P.C b/Projects/AlPhaPha/2024/macro/chio/YCalibration/SplineChioP2P.C
index b7f9f49fdc086db467ce4415e16816398b183b20..2819b39f1c8a617e6f030459944c76a7ce656093 100644
--- a/Projects/AlPhaPha/2024/macro/chio/YCalibration/SplineChioP2P.C
+++ b/Projects/AlPhaPha/2024/macro/chio/YCalibration/SplineChioP2P.C
@@ -53,7 +53,7 @@ void SplineChioP2P() {
     NCallSpline+=1;
 
     SplineAllIC.at(1)= (SplineICurrent); // 
-    SplineAllIC.erase(SplineAllIC.begin() + 1); 
+    ///SplineAllIC.erase(SplineAllIC.begin() + 1); 
                                          ///activate this to not make the
                                          //spline of IC1 
 
@@ -123,7 +123,7 @@ vector<TH2F*> HistoFillerIC(int segment, vector<vector<TSpline3*>> Spline_All_IC
 
     // Input and setters
     TChain* chain = new TChain("PhysicsTree");
-    chain->Add("../../../root/analysis/VamosCalib241.root");
+    chain->Add("../../../root/analysis/VamosCalib247.root");
 
     TICPhysics* IC = new TICPhysics() ; 
     double FF_IC_X, FF_IC_Y;
@@ -180,8 +180,8 @@ vector<TH2F*> HistoFillerIC(int segment, vector<vector<TSpline3*>> Spline_All_IC
     //																	Beginning loop on entries
     //===========================================================================================================
 
-    int Nentries = chain->GetEntries();
-    //int Nentries = 1000000;
+    //int Nentries = chain->GetEntries();
+    int Nentries = 1000000;
     auto start = std::chrono::high_resolution_clock::now();
     for (int e = 0; e < Nentries; e++) {
 
@@ -262,7 +262,7 @@ vector<vector<TH2F*>>HistoFillerICcorr(int segment, vector<vector<TSpline3*>> Sp
 
     // Input and setters
     TChain* chain = new TChain("PhysicsTree");
-    chain->Add("../../../root/analysis/VamosCalib241.root");
+    chain->Add("../../../root/analysis/VamosCalib247.root");
 
     TICPhysics* IC = new TICPhysics() ; 
     double FF_IC_X, FF_IC_Y;
diff --git a/Projects/AlPhaPha/2024/macro/mwpc/Toff/ToffGenerator.cxx b/Projects/AlPhaPha/2024/macro/mwpc/Toff/ToffGenerator.cxx
index 4d01c7cb3ae2c3efe91f126dd353c4580712d7d0..67cdf48e7998a346a967d7822d3081dec826d17d 100644
--- a/Projects/AlPhaPha/2024/macro/mwpc/Toff/ToffGenerator.cxx
+++ b/Projects/AlPhaPha/2024/macro/mwpc/Toff/ToffGenerator.cxx
@@ -1,3 +1,4 @@
+#include "TICPhysics.h"
 #include "TTimeData.h"
 #include <TCanvas.h>
 #include <TChain.h>
@@ -27,7 +28,7 @@ void ToffGenerator(bool Create = true ){
     UShort_t S13[20] , S14[20] , S23[20] , S24[20];
 
     TTimeData *Time = new TTimeData();
-
+    TICPhysics *IC = new TICPhysics();
 
     chain->SetBranchStatus("MTOF_FP0_T0VN", true);
     chain->SetBranchAddress("MTOF_FP0_T0VN", &S13);
@@ -44,6 +45,8 @@ void ToffGenerator(bool Create = true ){
     chain->SetBranchStatus("Time", true);
     chain->SetBranchAddress("Time", &Time);
 
+    chain->SetBranchStatus("IC", true);
+    chain->SetBranchAddress("IC", &IC);
     //===========================================================================================================
     //                              Histograms
     //===========================================================================================================
@@ -53,6 +56,12 @@ void ToffGenerator(bool Create = true ){
     TH2F *hToff23;
     TH2F *hToff24;
 
+    TH2F *hToffOnline13;
+    TH2F *hToffOnline14;
+    TH2F *hToffOnline23;
+    TH2F *hToffOnline24;
+
+
     double xmin[4], xmax[4];
     double ymin[4], ymax[4];
     int binx = 20 , biny = 400;
@@ -62,6 +71,9 @@ void ToffGenerator(bool Create = true ){
     xmin[2] = 0 ; xmax[2] = 20 ; ymin[2] = -10 ; ymax[2] = 10 ;
     xmin[3] = 0 ; xmax[3] = 20 ; ymin[3] = -10 ; ymax[3] = 10 ;
 
+    // Toff from aligning AoQ
+    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};
+
     if (Create == true){
 
         hToff13 = new TH2F("Toff13","Toff13",binx ,xmin[0] , xmax[0], biny, ymin[0], ymax[0]);
@@ -69,6 +81,12 @@ void ToffGenerator(bool Create = true ){
         hToff23 = new TH2F("Toff23","Toff23",binx ,xmin[2] , xmax[2], biny, ymin[2], ymax[2]);
         hToff24 = new TH2F("Toff24","Toff24",binx ,xmin[3] , xmax[3], biny, ymin[3], ymax[3]);
 
+        hToffOnline13 = new TH2F("ToffOnline13","ToffOnline13",binx ,xmin[0] , xmax[0], biny, ymin[0], ymax[0]);
+        hToffOnline14 = new TH2F("ToffOnline14","ToffOnline14",binx ,xmin[1] , xmax[1], biny, ymin[1], ymax[1]);
+        hToffOnline23 = new TH2F("ToffOnline23","ToffOnline23",binx ,xmin[2] , xmax[2], biny, ymin[2], ymax[2]);
+        hToffOnline24 = new TH2F("ToffOnline24","ToffOnline24",binx ,xmin[3] , xmax[3], biny, ymin[3], ymax[3]);
+
+
         //===========================================================================================================
         //                            Loop on entries
         //===========================================================================================================
@@ -94,26 +112,30 @@ void ToffGenerator(bool Create = true ){
             M14 = Time->GetMWPC14Mult();
             M23 = Time->GetMWPC23Mult();
             M24 = Time->GetMWPC24Mult();
-
-
+            
 
             if (M13 == 2 && (abs(S13[0]-S13[1]) == 1)){
                 vector<int> Pos = SortSection(S13);
-                hToff13->Fill(S13[0],Time->GetTime_MWPC13(Pos[0]) - Time->GetTime_MWPC13(Pos[1])); 
+                hToff13->Fill(S13[0],  Time->GetTime_MWPC13(Pos[0])  - Time->GetTime_MWPC13(Pos[1])  );
+
+                hToffOnline13->Fill(S13[0], (Time->GetTime_MWPC13(Pos[0]) - Toff[S13[0]]) -( Time->GetTime_MWPC13(Pos[1]) -Toff[S13[1]]  )); 
             }
             if (M23 == 2 && (abs(S23[0]-S23[1]) == 1)){
                 vector<int> Pos = SortSection(S23);
                 hToff23->Fill(S23[0],Time->GetTime_MWPC23(Pos[0]) - Time->GetTime_MWPC23(Pos[1])); 
+                hToffOnline23->Fill(S23[0],(Time->GetTime_MWPC23(Pos[0]) - Toff[S23[0]]) -( Time->GetTime_MWPC23(Pos[1])  -Toff[S23[1]]  )   ); 
             }
 
             if (M14 == 2 && (abs(S14[0]-S14[1]) == 1)){
                 vector<int> Pos = SortSection(S14);
                 hToff14->Fill(S14[0],Time->GetTime_MWPC14(Pos[0]) - Time->GetTime_MWPC14(Pos[1])); 
+                hToffOnline14->Fill(S14[0],(Time->GetTime_MWPC14(Pos[0]) - Toff[S14[0]]) -( Time->GetTime_MWPC14(Pos[1])  -Toff[S14[1]]  )   ); 
             }
 
             if (M24 == 2 && (abs(S24[0]-S24[1]) == 1)){
                 vector<int> Pos = SortSection(S24);
                 hToff24->Fill(S24[0],Time->GetTime_MWPC24(Pos[0]) - Time->GetTime_MWPC24(Pos[1])); 
+                hToffOnline24->Fill(S24[0],(Time->GetTime_MWPC24(Pos[0]) - Toff[S24[0]]) -( Time->GetTime_MWPC24(Pos[1])  -Toff[S24[1]]  )   ); 
             }
         } // End loop event
 
@@ -122,6 +144,11 @@ void ToffGenerator(bool Create = true ){
         hToff14->Write();
         hToff23->Write();
         hToff24->Write();
+        
+        hToffOnline13->Write();
+        hToffOnline14->Write();
+        hToffOnline23->Write();
+        hToffOnline24->Write();
     }// end if create
 
     else {
@@ -131,6 +158,12 @@ void ToffGenerator(bool Create = true ){
         hToff14 = (TH2F*)in->Get("Toff14");
         hToff23 = (TH2F*)in->Get("Toff23");
         hToff24 = (TH2F*)in->Get("Toff24");
+
+        hToffOnline13 = (TH2F*)in->Get("ToffOnline13");
+        hToffOnline14 = (TH2F*)in->Get("ToffOnline14");
+        hToffOnline23 = (TH2F*)in->Get("ToffOnline23");
+        hToffOnline24 = (TH2F*)in->Get("ToffOnline24");
+
     }
 
     int MinX = 2;
@@ -371,44 +404,27 @@ void ToffGenerator(bool Create = true ){
 
 
         if (M13 == 2 && (abs(S13[0]-S13[1]) == 1)){
-            vector<int> Pos = SortSection(S13);
-
-            if (S13[0] == 0) hCorrToff13->Fill(S13[0],Time->GetTime_MWPC13(Pos[0])  - (Time->GetTime_MWPC13(Pos[1]) + Toff13.at(0) )); 
-
-            else{
-                hCorrToff13->Fill(S13[0],(Time->GetTime_MWPC13(Pos[0]) + Toff13.at(S13[0]-1)) - (Time->GetTime_MWPC13(Pos[1]) + Toff13.at(S13[1]-1)));
-            } 
 
+            vector<int> Pos = SortSection(S13);
+            hCorrToff13->Fill(S13[0],(Time->GetTime_MWPC13(Pos[0]) - double(Time->GetTS_MWPC13(Pos[0]))+ Toff13.at(S13[0])) - (Time->GetTime_MWPC13(Pos[1]) - double(Time->GetTS_MWPC13(Pos[1]))+ Toff13.at(S13[1])));
         }
 
 
         if (M23 == 2 && (abs(S23[0]-S23[1]) == 1)){
             vector<int> Pos = SortSection(S23);
-            if (S23[0] == 0) hCorrToff23->Fill(S23[0],Time->GetTime_MWPC23(Pos[0])  - (Time->GetTime_MWPC23(Pos[1]) + Toff23.at(0) )); 
-
-            else{
-                hCorrToff23->Fill(S23[0],(Time->GetTime_MWPC23(Pos[0]) + Toff23.at(S23[0]-1)) - (Time->GetTime_MWPC23(Pos[1]) + Toff23.at(S23[1]-1)));
-            } 
+            hCorrToff23->Fill(S23[0],(Time->GetTime_MWPC23(Pos[0]) + Toff23.at(S23[0])) - (Time->GetTime_MWPC23(Pos[1]) + Toff23.at(S23[1])));
         }
 
 
         if (M14 == 2 && (abs(S14[0]-S14[1]) == 1)){
             vector<int> Pos = SortSection(S14);
-            if (S14[0] == 0) hCorrToff14->Fill(S14[0],Time->GetTime_MWPC14(Pos[0])  - (Time->GetTime_MWPC14(Pos[1]) + Toff14.at(0) )); 
-
-            else{
-                hCorrToff14->Fill(S14[0],(Time->GetTime_MWPC14(Pos[0]) + Toff14.at(S14[0]-1)) - (Time->GetTime_MWPC14(Pos[1]) + Toff14.at(S14[1]-1)));
-            } 
+            hCorrToff14->Fill(S14[0],(Time->GetTime_MWPC14(Pos[0]) + Toff14.at(S14[0])) - (Time->GetTime_MWPC14(Pos[1]) + Toff14.at(S14[1])));
         }
 
 
         if (M24 == 2 && (abs(S24[0]-S24[1]) == 1)){
             vector<int> Pos = SortSection(S24);
-            if (S24[0] == 0) hCorrToff24->Fill(S24[0],Time->GetTime_MWPC24(Pos[0])  - (Time->GetTime_MWPC24(Pos[1]) + Toff24.at(0) )); 
-
-            else{
-                hCorrToff24->Fill(S24[0],(Time->GetTime_MWPC24(Pos[0]) + Toff24.at(S24[0]-1)) - (Time->GetTime_MWPC24(Pos[1]) + Toff24.at(S24[1]-1)));
-            } 
+            hCorrToff24->Fill(S24[0],(Time->GetTime_MWPC24(Pos[0]) + Toff24.at(S24[0])) - (Time->GetTime_MWPC24(Pos[1]) + Toff24.at(S24[1])));
         }
 
 
@@ -419,39 +435,49 @@ void ToffGenerator(bool Create = true ){
     //===========================================================================================================
 
     TCanvas *c1 = new TCanvas("c1","c1");
-    c1->Divide(2);
+    c1->Divide(3);
 
     c1->cd(1);
     hToff13->Draw("colz");
     c1->cd(2);
     hCorrToff13->Draw("colz");
+    c1->cd(3);
+    hToffOnline13->Draw("colz");
+
 
     TCanvas *c2 = new TCanvas("c2","c2");
-    c2->Divide(2);
+    c2->Divide(3);
 
     c2->cd(1);
     hToff23->Draw("colz");
     c2->cd(2);
     hCorrToff23->Draw("colz");
+    c2->cd(3);
+    hToffOnline23->Draw("colz");
 
 
 
     TCanvas *c3 = new TCanvas("c3","c3");
-    c3->Divide(2);
+    c3->Divide(3);
 
     c3->cd(1);
     hToff14->Draw("colz");
     c3->cd(2);
     hCorrToff14->Draw("colz");
+    c3->cd(3);
+    hToffOnline14->Draw("colz");
 
 
     TCanvas *c4 = new TCanvas("c4","c4");
-    c4->Divide(2);
+    c4->Divide(3);
 
     c4->cd(1);
     hToff24->Draw("colz");
     c4->cd(2);
     hCorrToff24->Draw("colz");
+    c4->cd(3);
+    hToffOnline24->Draw("colz");
+
 }
 
 vector<int> SortSection(UShort_t STargFocal[2]){
@@ -479,6 +505,7 @@ vector<double> ToffCalc(vector<double> ToffP2P){
 
     vector<double> res;
     double Sum = 0;
+    res.push_back(Sum); // first section 
     for (int i=0; i<ToffP2P.size() ; i++){
         Sum += ToffP2P.at(i);
         res.push_back(Sum);
diff --git a/Projects/AlPhaPha/conversion/2024/convert.C b/Projects/AlPhaPha/conversion/2024/convert.C
index 7346962e63dcb52699e88557745e089312eea49b..18862b4db7ae08b352682ad41b75c31096815830 100644
--- a/Projects/AlPhaPha/conversion/2024/convert.C
+++ b/Projects/AlPhaPha/conversion/2024/convert.C
@@ -86,15 +86,17 @@ void convert(int run=204){
     for (int i=0; i<MTOF_FP0_T0VM;i++){
         m_time->SetTS_MWPC13(MTOF_FP0_T0VTS[i]); 
         m_time->SetTime_MWPC13(MTOF_FP0_T0V[i]); 
+        m_time->SetSection_MWPC3(MTOF_FP0_T0VN[i]); 
     }
     for (int i=0; i<MTOF_FP0_T1VM;i++){
-        m_time->SetTS_MWPC14(MTOF_FP0_T1VTS[i]);
-        m_time->SetTime_MWPC14(MTOF_FP0_T1V[i]);
+        m_time->SetTS_MWPC23(MTOF_FP0_T1VTS[i]);
+        m_time->SetTime_MWPC23(MTOF_FP0_T1V[i]);
     }
 
     for (int i=0; i<MTOF_FP1_T0VM;i++){
-        m_time->SetTS_MWPC23(MTOF_FP1_T0VTS[i]); 
-        m_time->SetTime_MWPC23(MTOF_FP1_T0V[i]); 
+        m_time->SetTS_MWPC14(MTOF_FP1_T0VTS[i]); 
+        m_time->SetTime_MWPC14(MTOF_FP1_T0V[i]); 
+        m_time->SetSection_MWPC4(MTOF_FP1_T0VN[i]); 
     }
 
     for (int i=0; i<MTOF_FP1_T1VM;i++){
@@ -273,6 +275,7 @@ void InitInputTree(){
 
     input_tree->SetBranchStatus("ICRawM","true");
     input_tree->SetBranchAddress("ICRawM",&ICRawM);
+
     // FPMW0-X
     input_tree->SetBranchStatus("FPMW0_XRawM","true");
     input_tree->SetBranchAddress("FPMW0_XRawM",&FPMW0_XRawM);
diff --git a/Projects/AlPhaPha/conversion/2024/convert.h b/Projects/AlPhaPha/conversion/2024/convert.h
index 5a0411fd19594b54c7cf5a43614ab62e29d6e715..a53108fc74eba43b2f45270e9e15c3019f82671e 100644
--- a/Projects/AlPhaPha/conversion/2024/convert.h
+++ b/Projects/AlPhaPha/conversion/2024/convert.h
@@ -20,10 +20,10 @@ Float_t MTOF_FP1_T0V[92];
 Float_t MTOF_FP0_T1V[92];
 Float_t MTOF_FP1_T1V[92];
 
-Int_t MTOF_FP0_T0VN[20];
-Int_t MTOF_FP1_T0VN[20];
-Int_t MTOF_FP0_T1VN[20];
-Int_t MTOF_FP1_T1VN[20];
+short MTOF_FP0_T0VN[20];
+short MTOF_FP1_T0VN[20];
+short MTOF_FP0_T1VN[20];
+short MTOF_FP1_T1VN[20];
 
 long MTOF_FP0_T0VTS[20];
 long MTOF_FP0_T1VTS[20];
@@ -49,7 +49,7 @@ ULong64_t fPISTA_TS_sec;
 ULong64_t PISTA_TS;
 
 // IC //
-float IC[11];
+Float_t IC[11];
 long ICRawTS[11];
 int ICRawM;
 
diff --git a/Projects/GRIT_AGATA_GANIL/Analysis.cxx b/Projects/GRIT_AGATA_GANIL/Analysis.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..b44a4895ac303d187383a3df9ae21c4268020b9a
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/Analysis.cxx
@@ -0,0 +1,198 @@
+/*****************************************************************************
+ * Copyright (C) 2009-2014    this file is part of the NPTool Project        *
+ *                                                                           *
+ * For the licensing terms see $NPTOOL/Licence/NPTool_Licence                *
+ * For the list of contributors see $NPTOOL/Licence/Contributors             *
+ *****************************************************************************/
+
+/*****************************************************************************
+ * Original Author: Adrien MATTA  contact address: a.matta@surrey.ac.uk      *
+ *                                                                           *
+ * Creation Date  : march 2025                                               *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ * Class describing the property of an Analysis object                       *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+#include <iostream>
+using namespace std;
+
+#include "Analysis.h"
+#include "NPAnalysisFactory.h"
+#include "NPDetectorManager.h"
+#include "NPFunction.h"
+#include "NPOptionManager.h"
+////////////////////////////////////////////////////////////////////////////////
+Analysis::Analysis() {}
+////////////////////////////////////////////////////////////////////////////////
+Analysis::~Analysis() {}
+
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::Init() {
+  if (NPOptionManager::getInstance()->HasDefinition("simulation")) {
+    cout << "Considering input data as simulation" << endl;
+    simulation = true;
+  }
+  else {
+    cout << "Considering input data as real" << endl;
+    simulation = false;
+  }
+  agata_zShift = 51 * mm;
+
+  // initialize input and output branches
+  if (simulation) {
+    Initial = new TInitialConditions();
+    ReactionConditions = new TReactionConditions();
+  }
+
+  InitOutputBranch();
+  InitInputBranch();
+  // get MUST2 and Gaspard objects
+  GPDTrack = (GaspardTracker*)m_DetectorManager->GetDetector("GaspardTracker");
+
+  // get reaction information
+  reaction.ReadConfigurationFile(NPOptionManager::getInstance()->GetReactionFile());
+  OriginalBeamEnergy = reaction.GetBeamEnergy();
+  // target thickness
+  TargetThickness = m_DetectorManager->GetTargetThickness();
+  string TargetMaterial = m_DetectorManager->GetTargetMaterial();
+  // Cryo target case
+  WindowsThickness = 0;        // m_DetectorManager->GetWindowsThickness();
+  string WindowsMaterial = ""; // m_DetectorManager->GetWindowsMaterial();
+
+  // energy losses
+  string light = NPL::ChangeNameToG4Standard(reaction.GetNucleus3()->GetName());
+  string beam = NPL::ChangeNameToG4Standard(reaction.GetNucleus1()->GetName());
+  LightTarget = NPL::EnergyLoss(light + "_" + TargetMaterial + ".G4table", "G4Table", 100);
+  //  LightAl = NPL::EnergyLoss(light + "_Al.G4table", "G4Table", 100);
+  LightSi = NPL::EnergyLoss(light + "_Si.G4table", "G4Table", 100);
+  BeamCD2 = NPL::EnergyLoss(beam + "_" + TargetMaterial + ".G4table", "G4Table", 100);
+
+  FinalBeamEnergy = BeamCD2.Slow(OriginalBeamEnergy, TargetThickness * 0.5, 0);
+  // FinalBeamEnergy = OriginalBeamEnergy;
+  cout << "Original beam energy: " << OriginalBeamEnergy << " MeV      Mid-target beam energy: " << FinalBeamEnergy
+       << "MeV " << endl;
+  reaction.SetBeamEnergy(FinalBeamEnergy);
+
+  if (WindowsThickness) {
+    cout << "Cryogenic target with windows" << endl;
+    BeamWindow = new NPL::EnergyLoss(beam + "_" + WindowsMaterial + ".G4table", "G4Table", 100);
+    LightWindow = new NPL::EnergyLoss(light + "_" + WindowsMaterial + ".G4table", "G4Table", 100);
+  }
+
+  else {
+    BeamWindow = NULL;
+    LightWindow = NULL;
+  }
+
+  // initialize various parameters
+  Rand = TRandom3();
+  DetectorNumber = 0;
+  ThetaNormalTarget = 0;
+  ThetaM2Surface = 0;
+  ThetaMGSurface = 0;
+  Si_E_M2 = 0;
+  CsI_E_M2 = 0;
+  Energy = 0;
+  ThetaGDSurface = 0;
+  X = 0;
+  Y = 0;
+  Z = 0;
+  dE = 0;
+  BeamDirection = TVector3(0, 0, 1);
+  nbTrack = 0;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::TreatEvent() {
+  // Reinitiate calculated variable
+  ReInitValue();
+  double XTarget, YTarget;
+  TVector3 BeamDirection;
+  XTarget = 0;
+  YTarget = 0;
+  BeamDirection = TVector3(0, 0, 1);
+  OriginalELab = ReactionConditions->GetKineticEnergy(0);
+  OriginalThetaLab = ReactionConditions->GetTheta(0);
+  BeamEnergy = ReactionConditions->GetBeamEnergy();
+  BeamImpact = TVector3(XTarget, YTarget, 0);
+  // determine beam energy for a randomized interaction point in target
+  // 1% FWHM randominastion (E/100)/2.35
+  // reaction.SetBeamEnergy(Rand.Gaus(ReactionConditions->GetIncidentFinalKineticEnergy(),ReactionConditions->GetIncidentFinalKineticEnergy()/235));
+
+  ////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////// GASPARD  //////////////////////////////////
+  ////////////////////////////////////////////////////////////////////////////
+  if ((ELab = GPDTrack->GetEnergyDeposit()) > 0) {
+    TVector3 HitDirection = GPDTrack->GetPositionOfInteraction() - BeamImpact;
+    ELab = GPDTrack->GetEnergyDeposit();
+    ThetaLab = HitDirection.Angle(BeamDirection);
+    ELab = LightTarget.EvaluateInitialEnergy(ELab, TargetThickness * 0.5, 0);
+
+    // Part 3 : Excitation Energy Calculation
+    Ex = reaction.ReconstructRelativistic(ELab, ThetaLab);
+
+    // Part 4 : Theta CM Calculation
+    ThetaCM = reaction.EnergyLabToThetaCM(ELab, ThetaLab) / deg;
+    ThetaLab = ThetaLab / deg;
+  }
+}
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::End() {}
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::InitOutputBranch() {
+  RootOutput::getInstance()->GetTree()->Branch("Ex", &Ex, "Ex/D");
+  RootOutput::getInstance()->GetTree()->Branch("ELab", &ELab, "ELab/D");
+  RootOutput::getInstance()->GetTree()->Branch("ThetaLab", &ThetaLab, "ThetaLab/D");
+  RootOutput::getInstance()->GetTree()->Branch("ThetaCM", &ThetaCM, "ThetaCM/D");
+  RootOutput::getInstance()->GetTree()->Branch("Run", &Run, "Run/I");
+  RootOutput::getInstance()->GetTree()->Branch("X", &X, "X/D");
+  RootOutput::getInstance()->GetTree()->Branch("Y", &Y, "Y/D");
+  RootOutput::getInstance()->GetTree()->Branch("Z", &Z, "Z/D");
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::InitInputBranch() {
+  // RootInput:: getInstance()->GetChain()->SetBranchAddress("GATCONF",&vGATCONF);
+  RootInput::getInstance()->GetChain()->SetBranchStatus("InitialConditions", true);
+  RootInput::getInstance()->GetChain()->SetBranchStatus("fIC_*", true);
+  RootInput::getInstance()->GetChain()->SetBranchAddress("InitialConditions", &Initial);
+  RootInput::getInstance()->GetChain()->SetBranchStatus("ReactionConditions", true);
+  RootInput::getInstance()->GetChain()->SetBranchStatus("fRC_*", true);
+  RootInput::getInstance()->GetChain()->SetBranchAddress("ReactionConditions", &ReactionConditions);
+}
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::ReInitValue() {
+  Ex = -1000;
+  ELab = -1000;
+  BeamEnergy = -1000;
+  ThetaLab = -1000;
+  ThetaCM = -1000;
+  X = -1000;
+  Y = -1000;
+  Z = -1000;
+  dE = -1000;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+//            Construct Method to be pass to the AnalysisFactory              //
+////////////////////////////////////////////////////////////////////////////////
+NPL::VAnalysis* Analysis::Construct() { return (NPL::VAnalysis*)new Analysis(); }
+
+////////////////////////////////////////////////////////////////////////////////
+//            Registering the construct method to the factory                 //
+////////////////////////////////////////////////////////////////////////////////
+extern "C" {
+class proxy_analysis {
+ public:
+  proxy_analysis() { NPL::AnalysisFactory::getInstance()->SetConstructor(Analysis::Construct); }
+};
+
+proxy_analysis p_analysis;
+}
+
diff --git a/Projects/GRIT_AGATA_GANIL/Analysis.h b/Projects/GRIT_AGATA_GANIL/Analysis.h
new file mode 100644
index 0000000000000000000000000000000000000000..306a9cd246265ece9f5310a75a323d43a72deba7
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/Analysis.h
@@ -0,0 +1,122 @@
+#ifndef Analysis_h
+#define Analysis_h
+/*****************************************************************************
+ * Copyright (C) 2009-2014    this file is part of the NPTool Project        *
+ *                                                                           *
+ * For the licensing terms see $NPTOOL/Licence/NPTool_Licence                *
+ * For the list of contributors see $NPTOOL/Licence/Contributors             *
+ *****************************************************************************/
+
+/*****************************************************************************
+ * Original Author: Adrien MATTA  contact address: a.matta@surrey.ac.uk      *
+ *                                                                           *
+ * Creation Date  : march 2025                                               *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ * Class describing the property of an Analysis object                       *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+#include "GaspardTracker.h"
+#include "NPEnergyLoss.h"
+#include "NPReaction.h"
+#include "NPVAnalysis.h"
+#include "RootInput.h"
+#include "RootOutput.h"
+#include "TInitialConditions.h"
+#include "TReactionConditions.h"
+#include <TMath.h>
+#include <TRandom3.h>
+#include <TVector3.h>
+
+class Analysis : public NPL::VAnalysis {
+ public:
+  Analysis();
+  ~Analysis();
+
+ public:
+  void Init();
+  void TreatEvent();
+  void End();
+
+  void InitOutputBranch();
+  void InitInputBranch();
+  void ReInitValue();
+  static NPL::VAnalysis* Construct();
+
+ private:
+  double Ex;
+  double ExNoBeam;
+  double ExNoProton;
+  double EDC;
+  double ELab;
+  double ThetaLab;
+  double ThetaCM;
+  double OriginalELab;
+  double OriginalThetaLab;
+
+  NPL::Reaction reaction;
+  //	Energy loss table: the G4Table are generated by the simulation
+  NPL::EnergyLoss LightTarget;
+  NPL::EnergyLoss LightAl;
+  NPL::EnergyLoss LightSi;
+  NPL::EnergyLoss BeamCD2;
+  NPL::EnergyLoss* BeamWindow;
+  NPL::EnergyLoss* LightWindow;
+
+  double TargetThickness;
+  double WindowsThickness;
+  // Beam Energy
+  double OriginalBeamEnergy; // AMEV
+  double FinalBeamEnergy;
+
+  // intermediate variable
+  TVector3 BeamDirection;
+  TVector3 BeamImpact;
+  TRandom3 Rand;
+  int Run;
+  int DetectorNumber;
+  double ThetaNormalTarget;
+  double ThetaM2Surface;
+  double ThetaMGSurface;
+  double Si_E_M2;
+  double CsI_E_M2;
+  double Energy;
+  double BeamEnergy;
+
+  double ThetaGDSurface;
+  double X;
+  double Y;
+  double Z;
+  // Vamos Branches
+  unsigned long long int LTS;
+
+  // Agata branches
+  double agata_zShift;
+  unsigned long long int TStrack;
+  int nbHits;
+  int nbTrack;
+  float* trackE = new float(100);
+  float* trackX1 = new float(100);
+  float* trackY1 = new float(100);
+  float* trackZ1 = new float(100);
+  float* trackT = new float(100);
+  int* trackCrystalID = new int(100);
+  int nbCores;
+  int* coreId = new int(100);
+  ULong64_t* coreTS = new ULong64_t(100);
+  float* coreE0 = new float(100);
+  //
+  double dE;
+  double dTheta;
+  // Branches and detectors
+  GaspardTracker* GPDTrack;
+  bool simulation;
+  TInitialConditions* Initial;
+  TReactionConditions* ReactionConditions;
+};
+#endif
diff --git a/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba.txt b/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e652c827b56b78778ef7684258cdee6eeb4792e4
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba.txt
@@ -0,0 +1,738 @@
+# Ex=0 - l=1  A
+   Theta       sigma    
+   0.000       19.60    
+   1.000       19.81    
+   2.000       20.43    
+   3.000       21.38    
+   4.000       22.55    
+   5.000       23.83    
+   6.000       25.05    
+   7.000       26.08    
+   8.000       26.79    
+   9.000       27.07    
+   10.00       26.86    
+   11.00       26.13    
+   12.00       24.90    
+   13.00       23.21    
+   14.00       21.15    
+   15.00       18.83    
+   16.00       16.37    
+   17.00       13.89    
+   18.00       11.49    
+   19.00       9.288    
+   20.00       7.345    
+   21.00       5.717    
+   22.00       4.429    
+   23.00       3.483    
+   24.00       2.857    
+   25.00       2.515    
+   26.00       2.409    
+   27.00       2.482    
+   28.00       2.678    
+   29.00       2.944    
+   30.00       3.231    
+   31.00       3.502    
+   32.00       3.728    
+   33.00       3.890    
+   34.00       3.981    
+   35.00       3.999    
+   36.00       3.951    
+   37.00       3.850    
+   38.00       3.710    
+   39.00       3.545    
+   40.00       3.372    
+   41.00       3.202    
+   42.00       3.048    
+   43.00       2.915    
+   44.00       2.808    
+   45.00       2.727    
+   46.00       2.672    
+   47.00       2.637    
+   48.00       2.617    
+   49.00       2.606    
+   50.00       2.598    
+   51.00       2.586    
+   52.00       2.567    
+   53.00       2.535    
+   54.00       2.488    
+   55.00       2.426    
+   56.00       2.349    
+   57.00       2.259    
+   58.00       2.157    
+   59.00       2.048    
+   60.00       1.935    
+   61.00       1.823    
+   62.00       1.713    
+   63.00       1.611    
+   64.00       1.518    
+   65.00       1.436    
+   66.00       1.367    
+   67.00       1.311    
+   68.00       1.268    
+   69.00       1.237    
+   70.00       1.216    
+   71.00       1.203    
+   72.00       1.197    
+   73.00       1.195    
+   74.00       1.195    
+   75.00       1.195    
+   76.00       1.192    
+   77.00       1.185    
+   78.00       1.174    
+   79.00       1.156    
+   80.00       1.132    
+   81.00       1.101    
+   82.00       1.064    
+   83.00       1.022    
+   84.00      0.9744    
+   85.00      0.9230    
+   86.00      0.8688    
+   87.00      0.8131    
+   88.00      0.7570    
+   89.00      0.7017    
+   90.00      0.6481    
+   91.00      0.5971    
+   92.00      0.5496    
+   93.00      0.5060    
+   94.00      0.4668    
+   95.00      0.4321    
+   96.00      0.4021    
+   97.00      0.3766    
+   98.00      0.3553    
+   99.00      0.3379    
+   100.0      0.3240    
+   101.0      0.3130    
+   102.0      0.3045    
+   103.0      0.2979    
+   104.0      0.2927    
+   105.0      0.2884    
+   106.0      0.2845    
+   107.0      0.2807    
+   108.0      0.2767    
+   109.0      0.2722    
+   110.0      0.2670    
+   111.0      0.2610    
+   112.0      0.2541    
+   113.0      0.2464    
+   114.0      0.2378    
+   115.0      0.2286    
+   116.0      0.2187    
+   117.0      0.2084    
+   118.0      0.1977    
+   119.0      0.1868    
+   120.0      0.1760    
+   121.0      0.1652    
+   122.0      0.1547    
+   123.0      0.1446    
+   124.0      0.1350    
+   125.0      0.1260    
+   126.0      0.1176    
+   127.0      0.1100    
+   128.0      0.1031    
+   129.0      0.9697E-01
+   130.0      0.9169E-01
+   131.0      0.8724E-01
+   132.0      0.8361E-01
+   133.0      0.8080E-01
+   134.0      0.7878E-01
+   135.0      0.7752E-01
+   136.0      0.7699E-01
+   137.0      0.7713E-01
+   138.0      0.7788E-01
+   139.0      0.7916E-01
+   140.0      0.8090E-01
+   141.0      0.8298E-01
+   142.0      0.8532E-01
+   143.0      0.8778E-01
+   144.0      0.9025E-01
+   145.0      0.9261E-01
+   146.0      0.9472E-01
+   147.0      0.9648E-01
+   148.0      0.9778E-01
+   149.0      0.9850E-01
+   150.0      0.9858E-01
+   151.0      0.9795E-01
+   152.0      0.9658E-01
+   153.0      0.9446E-01
+   154.0      0.9160E-01
+   155.0      0.8805E-01
+   156.0      0.8388E-01
+   157.0      0.7919E-01
+   158.0      0.7409E-01
+   159.0      0.6870E-01
+   160.0      0.6319E-01
+   161.0      0.5768E-01
+   162.0      0.5232E-01
+   163.0      0.4725E-01
+   164.0      0.4259E-01
+   165.0      0.3843E-01
+   166.0      0.3486E-01
+   167.0      0.3193E-01
+   168.0      0.2965E-01
+   169.0      0.2802E-01
+   170.0      0.2699E-01
+   171.0      0.2652E-01
+   172.0      0.2652E-01
+   173.0      0.2688E-01
+   174.0      0.2750E-01
+   175.0      0.2826E-01
+   176.0      0.2907E-01
+   177.0      0.2981E-01
+   178.0      0.3040E-01
+   179.0      0.3078E-01
+   180.0      0.3092E-01
+
+#Ex=0.7685 - l=3
+   Theta       sigma      
+   0.000      0.5454E-01
+   1.000      0.6588E-01
+   2.000      0.9962E-01
+   3.000      0.1549    
+   4.000      0.2304    
+   5.000      0.3245    
+   6.000      0.4356    
+   7.000      0.5620    
+   8.000      0.7025    
+   9.000      0.8560    
+   10.00       1.021    
+   11.00       1.198    
+   12.00       1.385    
+   13.00       1.581    
+   14.00       1.785    
+   15.00       1.994    
+   16.00       2.204    
+   17.00       2.413    
+   18.00       2.614    
+   19.00       2.802    
+   20.00       2.973    
+   21.00       3.120    
+   22.00       3.238    
+   23.00       3.324    
+   24.00       3.374    
+   25.00       3.386    
+   26.00       3.361    
+   27.00       3.299    
+   28.00       3.204    
+   29.00       3.079    
+   30.00       2.930    
+   31.00       2.762    
+   32.00       2.582    
+   33.00       2.396    
+   34.00       2.209    
+   35.00       2.028    
+   36.00       1.857    
+   37.00       1.699    
+   38.00       1.558    
+   39.00       1.434    
+   40.00       1.329    
+   41.00       1.242    
+   42.00       1.173    
+   43.00       1.118    
+   44.00       1.077    
+   45.00       1.048    
+   46.00       1.027    
+   47.00       1.012    
+   48.00       1.002    
+   49.00      0.9950    
+   50.00      0.9890    
+   51.00      0.9833    
+   52.00      0.9771    
+   53.00      0.9701    
+   54.00      0.9622    
+   55.00      0.9536    
+   56.00      0.9444    
+   57.00      0.9352    
+   58.00      0.9262    
+   59.00      0.9178    
+   60.00      0.9104    
+   61.00      0.9041    
+   62.00      0.8989    
+   63.00      0.8949    
+   64.00      0.8917    
+   65.00      0.8892    
+   66.00      0.8869    
+   67.00      0.8844    
+   68.00      0.8813    
+   69.00      0.8772    
+   70.00      0.8716    
+   71.00      0.8643    
+   72.00      0.8551    
+   73.00      0.8437    
+   74.00      0.8301    
+   75.00      0.8144    
+   76.00      0.7968    
+   77.00      0.7775    
+   78.00      0.7568    
+   79.00      0.7351    
+   80.00      0.7129    
+   81.00      0.6904    
+   82.00      0.6682    
+   83.00      0.6466    
+   84.00      0.6259    
+   85.00      0.6066    
+   86.00      0.5886    
+   87.00      0.5724    
+   88.00      0.5578    
+   89.00      0.5449    
+   90.00      0.5337    
+   91.00      0.5241    
+   92.00      0.5158    
+   93.00      0.5087    
+   94.00      0.5025    
+   95.00      0.4969    
+   96.00      0.4917    
+   97.00      0.4867    
+   98.00      0.4815    
+   99.00      0.4759    
+   100.0      0.4698    
+   101.0      0.4630    
+   102.0      0.4554    
+   103.0      0.4469    
+   104.0      0.4374    
+   105.0      0.4271    
+   106.0      0.4158    
+   107.0      0.4038    
+   108.0      0.3911    
+   109.0      0.3778    
+   110.0      0.3641    
+   111.0      0.3501    
+   112.0      0.3360    
+   113.0      0.3220    
+   114.0      0.3082    
+   115.0      0.2948    
+   116.0      0.2819    
+   117.0      0.2696    
+   118.0      0.2581    
+   119.0      0.2473    
+   120.0      0.2373    
+   121.0      0.2282    
+   122.0      0.2200    
+   123.0      0.2127    
+   124.0      0.2062    
+   125.0      0.2005    
+   126.0      0.1956    
+   127.0      0.1914    
+   128.0      0.1877    
+   129.0      0.1846    
+   130.0      0.1820    
+   131.0      0.1797    
+   132.0      0.1777    
+   133.0      0.1759    
+   134.0      0.1743    
+   135.0      0.1728    
+   136.0      0.1713    
+   137.0      0.1698    
+   138.0      0.1683    
+   139.0      0.1667    
+   140.0      0.1650    
+   141.0      0.1633    
+   142.0      0.1615    
+   143.0      0.1595    
+   144.0      0.1576    
+   145.0      0.1555    
+   146.0      0.1535    
+   147.0      0.1514    
+   148.0      0.1494    
+   149.0      0.1475    
+   150.0      0.1456    
+   151.0      0.1439    
+   152.0      0.1423    
+   153.0      0.1408    
+   154.0      0.1395    
+   155.0      0.1385    
+   156.0      0.1376    
+   157.0      0.1370    
+   158.0      0.1365    
+   159.0      0.1363    
+   160.0      0.1363    
+   161.0      0.1365    
+   162.0      0.1368    
+   163.0      0.1374    
+   164.0      0.1381    
+   165.0      0.1389    
+   166.0      0.1398    
+   167.0      0.1408    
+   168.0      0.1419    
+   169.0      0.1430    
+   170.0      0.1441    
+   171.0      0.1451    
+   172.0      0.1462    
+   173.0      0.1471    
+   174.0      0.1480    
+   175.0      0.1488    
+   176.0      0.1494    
+   177.0      0.1500    
+   178.0      0.1503    
+   179.0      0.1506    
+   180.0      0.1506    
+
+#Ex = 1112.6 - l=1
+
+   Theta       sigma   
+   0.000       8.500    
+   1.000       8.585    
+   2.000       8.828    
+   3.000       9.203    
+   4.000       9.665    
+   5.000       10.16    
+   6.000       10.63    
+   7.000       11.02    
+   8.000       11.26    
+   9.000       11.33    
+   10.00       11.20    
+   11.00       10.85    
+   12.00       10.30    
+   13.00       9.563    
+   14.00       8.683    
+   15.00       7.702    
+   16.00       6.669    
+   17.00       5.635    
+   18.00       4.644    
+   19.00       3.738    
+   20.00       2.944    
+   21.00       2.283    
+   22.00       1.763    
+   23.00       1.383    
+   24.00       1.133    
+   25.00      0.9961    
+   26.00      0.9517    
+   27.00      0.9763    
+   28.00       1.046    
+   29.00       1.139    
+   30.00       1.237    
+   31.00       1.324    
+   32.00       1.390    
+   33.00       1.428    
+   34.00       1.437    
+   35.00       1.417    
+   36.00       1.374    
+   37.00       1.312    
+   38.00       1.240    
+   39.00       1.165    
+   40.00       1.093    
+   41.00       1.031    
+   42.00      0.9832    
+   43.00      0.9521    
+   44.00      0.9391    
+   45.00      0.9441    
+   46.00      0.9652    
+   47.00      0.9996    
+   48.00       1.044    
+   49.00       1.094    
+   50.00       1.145    
+   51.00       1.194    
+   52.00       1.237    
+   53.00       1.271    
+   54.00       1.294    
+   55.00       1.304    
+   56.00       1.301    
+   57.00       1.285    
+   58.00       1.256    
+   59.00       1.217    
+   60.00       1.168    
+   61.00       1.113    
+   62.00       1.052    
+   63.00      0.9887    
+   64.00      0.9248    
+   65.00      0.8622    
+   66.00      0.8026    
+   67.00      0.7473    
+   68.00      0.6973    
+   69.00      0.6531    
+   70.00      0.6150    
+   71.00      0.5831    
+   72.00      0.5570    
+   73.00      0.5362    
+   74.00      0.5200    
+   75.00      0.5077    
+   76.00      0.4983    
+   77.00      0.4910    
+   78.00      0.4850    
+   79.00      0.4795    
+   80.00      0.4738    
+   81.00      0.4674    
+   82.00      0.4599    
+   83.00      0.4508    
+   84.00      0.4401    
+   85.00      0.4277    
+   86.00      0.4136    
+   87.00      0.3980    
+   88.00      0.3809    
+   89.00      0.3628    
+   90.00      0.3438    
+   91.00      0.3244    
+   92.00      0.3047    
+   93.00      0.2851    
+   94.00      0.2659    
+   95.00      0.2474    
+   96.00      0.2296    
+   97.00      0.2129    
+   98.00      0.1972    
+   99.00      0.1828    
+   100.0      0.1697    
+   101.0      0.1578    
+   102.0      0.1471    
+   103.0      0.1376    
+   104.0      0.1292    
+   105.0      0.1218    
+   106.0      0.1153    
+   107.0      0.1096    
+   108.0      0.1046    
+   109.0      0.1002    
+   110.0      0.9623E-01
+   111.0      0.9270E-01
+   112.0      0.8949E-01
+   113.0      0.8653E-01
+   114.0      0.8377E-01
+   115.0      0.8117E-01
+   116.0      0.7868E-01
+   117.0      0.7628E-01
+   118.0      0.7396E-01
+   119.0      0.7170E-01
+   120.0      0.6950E-01
+   121.0      0.6736E-01
+   122.0      0.6526E-01
+   123.0      0.6321E-01
+   124.0      0.6122E-01
+   125.0      0.5926E-01
+   126.0      0.5735E-01
+   127.0      0.5548E-01
+   128.0      0.5364E-01
+   129.0      0.5182E-01
+   130.0      0.5004E-01
+   131.0      0.4826E-01
+   132.0      0.4650E-01
+   133.0      0.4476E-01
+   134.0      0.4302E-01
+   135.0      0.4130E-01
+   136.0      0.3960E-01
+   137.0      0.3793E-01
+   138.0      0.3630E-01
+   139.0      0.3472E-01
+   140.0      0.3321E-01
+   141.0      0.3178E-01
+   142.0      0.3045E-01
+   143.0      0.2923E-01
+   144.0      0.2815E-01
+   145.0      0.2721E-01
+   146.0      0.2642E-01
+   147.0      0.2579E-01
+   148.0      0.2532E-01
+   149.0      0.2501E-01
+   150.0      0.2486E-01
+   151.0      0.2485E-01
+   152.0      0.2497E-01
+   153.0      0.2519E-01
+   154.0      0.2550E-01
+   155.0      0.2588E-01
+   156.0      0.2629E-01
+   157.0      0.2671E-01
+   158.0      0.2710E-01
+   159.0      0.2746E-01
+   160.0      0.2774E-01
+   161.0      0.2794E-01
+   162.0      0.2803E-01
+   163.0      0.2801E-01
+   164.0      0.2785E-01
+   165.0      0.2758E-01
+   166.0      0.2717E-01
+   167.0      0.2666E-01
+   168.0      0.2604E-01
+   169.0      0.2534E-01
+   170.0      0.2457E-01
+   171.0      0.2377E-01
+   172.0      0.2295E-01
+   173.0      0.2215E-01
+   174.0      0.2139E-01
+   175.0      0.2070E-01
+   176.0      0.2009E-01
+   177.0      0.1960E-01
+   178.0      0.1924E-01
+   179.0      0.1901E-01
+   180.0      0.1894E-01
+
+#Ex=3.701 - l=4
+
+   Theta       sigma   
+   0.000      0.2584    
+   1.000      0.2718    
+   2.000      0.3116    
+   3.000      0.3766    
+   4.000      0.4650    
+   5.000      0.5745    
+   6.000      0.7021    
+   7.000      0.8448    
+   8.000      0.9996    
+   9.000       1.163    
+   10.00       1.334    
+   11.00       1.508    
+   12.00       1.685    
+   13.00       1.863    
+   14.00       2.042    
+   15.00       2.222    
+   16.00       2.403    
+   17.00       2.586    
+   18.00       2.770    
+   19.00       2.956    
+   20.00       3.143    
+   21.00       3.332    
+   22.00       3.518    
+   23.00       3.702    
+   24.00       3.880    
+   25.00       4.048    
+   26.00       4.202    
+   27.00       4.340    
+   28.00       4.456    
+   29.00       4.548    
+   30.00       4.611    
+   31.00       4.645    
+   32.00       4.646    
+   33.00       4.616    
+   34.00       4.553    
+   35.00       4.461    
+   36.00       4.340    
+   37.00       4.194    
+   38.00       4.028    
+   39.00       3.845    
+   40.00       3.650    
+   41.00       3.448    
+   42.00       3.243    
+   43.00       3.041    
+   44.00       2.845    
+   45.00       2.658    
+   46.00       2.483    
+   47.00       2.322    
+   48.00       2.177    
+   49.00       2.049    
+   50.00       1.937    
+   51.00       1.841    
+   52.00       1.760    
+   53.00       1.694    
+   54.00       1.641    
+   55.00       1.598    
+   56.00       1.565    
+   57.00       1.540    
+   58.00       1.522    
+   59.00       1.508    
+   60.00       1.498    
+   61.00       1.491    
+   62.00       1.486    
+   63.00       1.482    
+   64.00       1.479    
+   65.00       1.476    
+   66.00       1.473    
+   67.00       1.470    
+   68.00       1.467    
+   69.00       1.463    
+   70.00       1.459    
+   71.00       1.455    
+   72.00       1.449    
+   73.00       1.443    
+   74.00       1.435    
+   75.00       1.426    
+   76.00       1.415    
+   77.00       1.403    
+   78.00       1.388    
+   79.00       1.371    
+   80.00       1.351    
+   81.00       1.329    
+   82.00       1.304    
+   83.00       1.276    
+   84.00       1.247    
+   85.00       1.215    
+   86.00       1.181    
+   87.00       1.146    
+   88.00       1.109    
+   89.00       1.072    
+   90.00       1.035    
+   91.00      0.9974    
+   92.00      0.9609    
+   93.00      0.9255    
+   94.00      0.8916    
+   95.00      0.8594    
+   96.00      0.8293    
+   97.00      0.8014    
+   98.00      0.7760    
+   99.00      0.7530    
+   100.0      0.7326    
+   101.0      0.7145    
+   102.0      0.6987    
+   103.0      0.6850    
+   104.0      0.6732    
+   105.0      0.6630    
+   106.0      0.6542    
+   107.0      0.6464    
+   108.0      0.6394    
+   109.0      0.6329    
+   110.0      0.6266    
+   111.0      0.6202    
+   112.0      0.6135    
+   113.0      0.6064    
+   114.0      0.5986    
+   115.0      0.5901    
+   116.0      0.5808    
+   117.0      0.5705    
+   118.0      0.5594    
+   119.0      0.5474    
+   120.0      0.5347    
+   121.0      0.5212    
+   122.0      0.5070    
+   123.0      0.4924    
+   124.0      0.4775    
+   125.0      0.4623    
+   126.0      0.4472    
+   127.0      0.4321    
+   128.0      0.4173    
+   129.0      0.4028    
+   130.0      0.3889    
+   131.0      0.3757    
+   132.0      0.3632    
+   133.0      0.3516    
+   134.0      0.3409    
+   135.0      0.3311    
+   136.0      0.3224    
+   137.0      0.3147    
+   138.0      0.3080    
+   139.0      0.3023    
+   140.0      0.2975    
+   141.0      0.2937    
+   142.0      0.2908    
+   143.0      0.2886    
+   144.0      0.2872    
+   145.0      0.2863    
+   146.0      0.2861    
+   147.0      0.2862    
+   148.0      0.2868    
+   149.0      0.2876    
+   150.0      0.2885    
+   151.0      0.2896    
+   152.0      0.2906    
+   153.0      0.2916    
+   154.0      0.2925    
+   155.0      0.2932    
+   156.0      0.2936    
+   157.0      0.2937    
+   158.0      0.2935    
+   159.0      0.2930    
+   160.0      0.2922    
+   161.0      0.2910    
+   162.0      0.2895    
+   163.0      0.2877    
+   164.0      0.2855    
+   165.0      0.2832    
+   166.0      0.2806    
+   167.0      0.2778    
+   168.0      0.2750    
+   169.0      0.2721    
+   170.0      0.2692    
+   171.0      0.2663    
+   172.0      0.2636    
+   173.0      0.2610    
+   174.0      0.2586    
+   175.0      0.2566    
+   176.0      0.2548    
+   177.0      0.2534    
+   178.0      0.2524    
+   179.0      0.2518    
+   180.0      0.2515    
+ END
diff --git a/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba_Ex07685_l3.txt b/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba_Ex07685_l3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..498ca340be9bc8b66034f57d6a3768681bd38d44
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba_Ex07685_l3.txt
@@ -0,0 +1,181 @@
+   0.000      0.5454E-01
+   1.000      0.6588E-01
+   2.000      0.9962E-01
+   3.000      0.1549    
+   4.000      0.2304    
+   5.000      0.3245    
+   6.000      0.4356    
+   7.000      0.5620    
+   8.000      0.7025    
+   9.000      0.8560    
+   10.00       1.021    
+   11.00       1.198    
+   12.00       1.385    
+   13.00       1.581    
+   14.00       1.785    
+   15.00       1.994    
+   16.00       2.204    
+   17.00       2.413    
+   18.00       2.614    
+   19.00       2.802    
+   20.00       2.973    
+   21.00       3.120    
+   22.00       3.238    
+   23.00       3.324    
+   24.00       3.374    
+   25.00       3.386    
+   26.00       3.361    
+   27.00       3.299    
+   28.00       3.204    
+   29.00       3.079    
+   30.00       2.930    
+   31.00       2.762    
+   32.00       2.582    
+   33.00       2.396    
+   34.00       2.209    
+   35.00       2.028    
+   36.00       1.857    
+   37.00       1.699    
+   38.00       1.558    
+   39.00       1.434    
+   40.00       1.329    
+   41.00       1.242    
+   42.00       1.173    
+   43.00       1.118    
+   44.00       1.077    
+   45.00       1.048    
+   46.00       1.027    
+   47.00       1.012    
+   48.00       1.002    
+   49.00      0.9950    
+   50.00      0.9890    
+   51.00      0.9833    
+   52.00      0.9771    
+   53.00      0.9701    
+   54.00      0.9622    
+   55.00      0.9536    
+   56.00      0.9444    
+   57.00      0.9352    
+   58.00      0.9262    
+   59.00      0.9178    
+   60.00      0.9104    
+   61.00      0.9041    
+   62.00      0.8989    
+   63.00      0.8949    
+   64.00      0.8917    
+   65.00      0.8892    
+   66.00      0.8869    
+   67.00      0.8844    
+   68.00      0.8813    
+   69.00      0.8772    
+   70.00      0.8716    
+   71.00      0.8643    
+   72.00      0.8551    
+   73.00      0.8437    
+   74.00      0.8301    
+   75.00      0.8144    
+   76.00      0.7968    
+   77.00      0.7775    
+   78.00      0.7568    
+   79.00      0.7351    
+   80.00      0.7129    
+   81.00      0.6904    
+   82.00      0.6682    
+   83.00      0.6466    
+   84.00      0.6259    
+   85.00      0.6066    
+   86.00      0.5886    
+   87.00      0.5724    
+   88.00      0.5578    
+   89.00      0.5449    
+   90.00      0.5337    
+   91.00      0.5241    
+   92.00      0.5158    
+   93.00      0.5087    
+   94.00      0.5025    
+   95.00      0.4969    
+   96.00      0.4917    
+   97.00      0.4867    
+   98.00      0.4815    
+   99.00      0.4759    
+   100.0      0.4698    
+   101.0      0.4630    
+   102.0      0.4554    
+   103.0      0.4469    
+   104.0      0.4374    
+   105.0      0.4271    
+   106.0      0.4158    
+   107.0      0.4038    
+   108.0      0.3911    
+   109.0      0.3778    
+   110.0      0.3641    
+   111.0      0.3501    
+   112.0      0.3360    
+   113.0      0.3220    
+   114.0      0.3082    
+   115.0      0.2948    
+   116.0      0.2819    
+   117.0      0.2696    
+   118.0      0.2581    
+   119.0      0.2473    
+   120.0      0.2373    
+   121.0      0.2282    
+   122.0      0.2200    
+   123.0      0.2127    
+   124.0      0.2062    
+   125.0      0.2005    
+   126.0      0.1956    
+   127.0      0.1914    
+   128.0      0.1877    
+   129.0      0.1846    
+   130.0      0.1820    
+   131.0      0.1797    
+   132.0      0.1777    
+   133.0      0.1759    
+   134.0      0.1743    
+   135.0      0.1728    
+   136.0      0.1713    
+   137.0      0.1698    
+   138.0      0.1683    
+   139.0      0.1667    
+   140.0      0.1650    
+   141.0      0.1633    
+   142.0      0.1615    
+   143.0      0.1595    
+   144.0      0.1576    
+   145.0      0.1555    
+   146.0      0.1535    
+   147.0      0.1514    
+   148.0      0.1494    
+   149.0      0.1475    
+   150.0      0.1456    
+   151.0      0.1439    
+   152.0      0.1423    
+   153.0      0.1408    
+   154.0      0.1395    
+   155.0      0.1385    
+   156.0      0.1376    
+   157.0      0.1370    
+   158.0      0.1365    
+   159.0      0.1363    
+   160.0      0.1363    
+   161.0      0.1365    
+   162.0      0.1368    
+   163.0      0.1374    
+   164.0      0.1381    
+   165.0      0.1389    
+   166.0      0.1398    
+   167.0      0.1408    
+   168.0      0.1419    
+   169.0      0.1430    
+   170.0      0.1441    
+   171.0      0.1451    
+   172.0      0.1462    
+   173.0      0.1471    
+   174.0      0.1480    
+   175.0      0.1488    
+   176.0      0.1494    
+   177.0      0.1500    
+   178.0      0.1503    
+   179.0      0.1506    
+   180.0      0.1506    
diff --git a/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba_Ex1112_l1.txt b/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba_Ex1112_l1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ecc976b4a2021c225c6912e778a6b028d6732f7e
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba_Ex1112_l1.txt
@@ -0,0 +1,181 @@
+   0.000       8.500    
+   1.000       8.585    
+   2.000       8.828    
+   3.000       9.203    
+   4.000       9.665    
+   5.000       10.16    
+   6.000       10.63    
+   7.000       11.02    
+   8.000       11.26    
+   9.000       11.33    
+   10.00       11.20    
+   11.00       10.85    
+   12.00       10.30    
+   13.00       9.563    
+   14.00       8.683    
+   15.00       7.702    
+   16.00       6.669    
+   17.00       5.635    
+   18.00       4.644    
+   19.00       3.738    
+   20.00       2.944    
+   21.00       2.283    
+   22.00       1.763    
+   23.00       1.383    
+   24.00       1.133    
+   25.00      0.9961    
+   26.00      0.9517    
+   27.00      0.9763    
+   28.00       1.046    
+   29.00       1.139    
+   30.00       1.237    
+   31.00       1.324    
+   32.00       1.390    
+   33.00       1.428    
+   34.00       1.437    
+   35.00       1.417    
+   36.00       1.374    
+   37.00       1.312    
+   38.00       1.240    
+   39.00       1.165    
+   40.00       1.093    
+   41.00       1.031    
+   42.00      0.9832    
+   43.00      0.9521    
+   44.00      0.9391    
+   45.00      0.9441    
+   46.00      0.9652    
+   47.00      0.9996    
+   48.00       1.044    
+   49.00       1.094    
+   50.00       1.145    
+   51.00       1.194    
+   52.00       1.237    
+   53.00       1.271    
+   54.00       1.294    
+   55.00       1.304    
+   56.00       1.301    
+   57.00       1.285    
+   58.00       1.256    
+   59.00       1.217    
+   60.00       1.168    
+   61.00       1.113    
+   62.00       1.052    
+   63.00      0.9887    
+   64.00      0.9248    
+   65.00      0.8622    
+   66.00      0.8026    
+   67.00      0.7473    
+   68.00      0.6973    
+   69.00      0.6531    
+   70.00      0.6150    
+   71.00      0.5831    
+   72.00      0.5570    
+   73.00      0.5362    
+   74.00      0.5200    
+   75.00      0.5077    
+   76.00      0.4983    
+   77.00      0.4910    
+   78.00      0.4850    
+   79.00      0.4795    
+   80.00      0.4738    
+   81.00      0.4674    
+   82.00      0.4599    
+   83.00      0.4508    
+   84.00      0.4401    
+   85.00      0.4277    
+   86.00      0.4136    
+   87.00      0.3980    
+   88.00      0.3809    
+   89.00      0.3628    
+   90.00      0.3438    
+   91.00      0.3244    
+   92.00      0.3047    
+   93.00      0.2851    
+   94.00      0.2659    
+   95.00      0.2474    
+   96.00      0.2296    
+   97.00      0.2129    
+   98.00      0.1972    
+   99.00      0.1828    
+   100.0      0.1697    
+   101.0      0.1578    
+   102.0      0.1471    
+   103.0      0.1376    
+   104.0      0.1292    
+   105.0      0.1218    
+   106.0      0.1153    
+   107.0      0.1096    
+   108.0      0.1046    
+   109.0      0.1002    
+   110.0      0.9623E-01
+   111.0      0.9270E-01
+   112.0      0.8949E-01
+   113.0      0.8653E-01
+   114.0      0.8377E-01
+   115.0      0.8117E-01
+   116.0      0.7868E-01
+   117.0      0.7628E-01
+   118.0      0.7396E-01
+   119.0      0.7170E-01
+   120.0      0.6950E-01
+   121.0      0.6736E-01
+   122.0      0.6526E-01
+   123.0      0.6321E-01
+   124.0      0.6122E-01
+   125.0      0.5926E-01
+   126.0      0.5735E-01
+   127.0      0.5548E-01
+   128.0      0.5364E-01
+   129.0      0.5182E-01
+   130.0      0.5004E-01
+   131.0      0.4826E-01
+   132.0      0.4650E-01
+   133.0      0.4476E-01
+   134.0      0.4302E-01
+   135.0      0.4130E-01
+   136.0      0.3960E-01
+   137.0      0.3793E-01
+   138.0      0.3630E-01
+   139.0      0.3472E-01
+   140.0      0.3321E-01
+   141.0      0.3178E-01
+   142.0      0.3045E-01
+   143.0      0.2923E-01
+   144.0      0.2815E-01
+   145.0      0.2721E-01
+   146.0      0.2642E-01
+   147.0      0.2579E-01
+   148.0      0.2532E-01
+   149.0      0.2501E-01
+   150.0      0.2486E-01
+   151.0      0.2485E-01
+   152.0      0.2497E-01
+   153.0      0.2519E-01
+   154.0      0.2550E-01
+   155.0      0.2588E-01
+   156.0      0.2629E-01
+   157.0      0.2671E-01
+   158.0      0.2710E-01
+   159.0      0.2746E-01
+   160.0      0.2774E-01
+   161.0      0.2794E-01
+   162.0      0.2803E-01
+   163.0      0.2801E-01
+   164.0      0.2785E-01
+   165.0      0.2758E-01
+   166.0      0.2717E-01
+   167.0      0.2666E-01
+   168.0      0.2604E-01
+   169.0      0.2534E-01
+   170.0      0.2457E-01
+   171.0      0.2377E-01
+   172.0      0.2295E-01
+   173.0      0.2215E-01
+   174.0      0.2139E-01
+   175.0      0.2070E-01
+   176.0      0.2009E-01
+   177.0      0.1960E-01
+   178.0      0.1924E-01
+   179.0      0.1901E-01
+   180.0      0.1894E-01
diff --git a/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba_Ex3701_l4.txt b/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba_Ex3701_l4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e652c827b56b78778ef7684258cdee6eeb4792e4
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba_Ex3701_l4.txt
@@ -0,0 +1,738 @@
+# Ex=0 - l=1  A
+   Theta       sigma    
+   0.000       19.60    
+   1.000       19.81    
+   2.000       20.43    
+   3.000       21.38    
+   4.000       22.55    
+   5.000       23.83    
+   6.000       25.05    
+   7.000       26.08    
+   8.000       26.79    
+   9.000       27.07    
+   10.00       26.86    
+   11.00       26.13    
+   12.00       24.90    
+   13.00       23.21    
+   14.00       21.15    
+   15.00       18.83    
+   16.00       16.37    
+   17.00       13.89    
+   18.00       11.49    
+   19.00       9.288    
+   20.00       7.345    
+   21.00       5.717    
+   22.00       4.429    
+   23.00       3.483    
+   24.00       2.857    
+   25.00       2.515    
+   26.00       2.409    
+   27.00       2.482    
+   28.00       2.678    
+   29.00       2.944    
+   30.00       3.231    
+   31.00       3.502    
+   32.00       3.728    
+   33.00       3.890    
+   34.00       3.981    
+   35.00       3.999    
+   36.00       3.951    
+   37.00       3.850    
+   38.00       3.710    
+   39.00       3.545    
+   40.00       3.372    
+   41.00       3.202    
+   42.00       3.048    
+   43.00       2.915    
+   44.00       2.808    
+   45.00       2.727    
+   46.00       2.672    
+   47.00       2.637    
+   48.00       2.617    
+   49.00       2.606    
+   50.00       2.598    
+   51.00       2.586    
+   52.00       2.567    
+   53.00       2.535    
+   54.00       2.488    
+   55.00       2.426    
+   56.00       2.349    
+   57.00       2.259    
+   58.00       2.157    
+   59.00       2.048    
+   60.00       1.935    
+   61.00       1.823    
+   62.00       1.713    
+   63.00       1.611    
+   64.00       1.518    
+   65.00       1.436    
+   66.00       1.367    
+   67.00       1.311    
+   68.00       1.268    
+   69.00       1.237    
+   70.00       1.216    
+   71.00       1.203    
+   72.00       1.197    
+   73.00       1.195    
+   74.00       1.195    
+   75.00       1.195    
+   76.00       1.192    
+   77.00       1.185    
+   78.00       1.174    
+   79.00       1.156    
+   80.00       1.132    
+   81.00       1.101    
+   82.00       1.064    
+   83.00       1.022    
+   84.00      0.9744    
+   85.00      0.9230    
+   86.00      0.8688    
+   87.00      0.8131    
+   88.00      0.7570    
+   89.00      0.7017    
+   90.00      0.6481    
+   91.00      0.5971    
+   92.00      0.5496    
+   93.00      0.5060    
+   94.00      0.4668    
+   95.00      0.4321    
+   96.00      0.4021    
+   97.00      0.3766    
+   98.00      0.3553    
+   99.00      0.3379    
+   100.0      0.3240    
+   101.0      0.3130    
+   102.0      0.3045    
+   103.0      0.2979    
+   104.0      0.2927    
+   105.0      0.2884    
+   106.0      0.2845    
+   107.0      0.2807    
+   108.0      0.2767    
+   109.0      0.2722    
+   110.0      0.2670    
+   111.0      0.2610    
+   112.0      0.2541    
+   113.0      0.2464    
+   114.0      0.2378    
+   115.0      0.2286    
+   116.0      0.2187    
+   117.0      0.2084    
+   118.0      0.1977    
+   119.0      0.1868    
+   120.0      0.1760    
+   121.0      0.1652    
+   122.0      0.1547    
+   123.0      0.1446    
+   124.0      0.1350    
+   125.0      0.1260    
+   126.0      0.1176    
+   127.0      0.1100    
+   128.0      0.1031    
+   129.0      0.9697E-01
+   130.0      0.9169E-01
+   131.0      0.8724E-01
+   132.0      0.8361E-01
+   133.0      0.8080E-01
+   134.0      0.7878E-01
+   135.0      0.7752E-01
+   136.0      0.7699E-01
+   137.0      0.7713E-01
+   138.0      0.7788E-01
+   139.0      0.7916E-01
+   140.0      0.8090E-01
+   141.0      0.8298E-01
+   142.0      0.8532E-01
+   143.0      0.8778E-01
+   144.0      0.9025E-01
+   145.0      0.9261E-01
+   146.0      0.9472E-01
+   147.0      0.9648E-01
+   148.0      0.9778E-01
+   149.0      0.9850E-01
+   150.0      0.9858E-01
+   151.0      0.9795E-01
+   152.0      0.9658E-01
+   153.0      0.9446E-01
+   154.0      0.9160E-01
+   155.0      0.8805E-01
+   156.0      0.8388E-01
+   157.0      0.7919E-01
+   158.0      0.7409E-01
+   159.0      0.6870E-01
+   160.0      0.6319E-01
+   161.0      0.5768E-01
+   162.0      0.5232E-01
+   163.0      0.4725E-01
+   164.0      0.4259E-01
+   165.0      0.3843E-01
+   166.0      0.3486E-01
+   167.0      0.3193E-01
+   168.0      0.2965E-01
+   169.0      0.2802E-01
+   170.0      0.2699E-01
+   171.0      0.2652E-01
+   172.0      0.2652E-01
+   173.0      0.2688E-01
+   174.0      0.2750E-01
+   175.0      0.2826E-01
+   176.0      0.2907E-01
+   177.0      0.2981E-01
+   178.0      0.3040E-01
+   179.0      0.3078E-01
+   180.0      0.3092E-01
+
+#Ex=0.7685 - l=3
+   Theta       sigma      
+   0.000      0.5454E-01
+   1.000      0.6588E-01
+   2.000      0.9962E-01
+   3.000      0.1549    
+   4.000      0.2304    
+   5.000      0.3245    
+   6.000      0.4356    
+   7.000      0.5620    
+   8.000      0.7025    
+   9.000      0.8560    
+   10.00       1.021    
+   11.00       1.198    
+   12.00       1.385    
+   13.00       1.581    
+   14.00       1.785    
+   15.00       1.994    
+   16.00       2.204    
+   17.00       2.413    
+   18.00       2.614    
+   19.00       2.802    
+   20.00       2.973    
+   21.00       3.120    
+   22.00       3.238    
+   23.00       3.324    
+   24.00       3.374    
+   25.00       3.386    
+   26.00       3.361    
+   27.00       3.299    
+   28.00       3.204    
+   29.00       3.079    
+   30.00       2.930    
+   31.00       2.762    
+   32.00       2.582    
+   33.00       2.396    
+   34.00       2.209    
+   35.00       2.028    
+   36.00       1.857    
+   37.00       1.699    
+   38.00       1.558    
+   39.00       1.434    
+   40.00       1.329    
+   41.00       1.242    
+   42.00       1.173    
+   43.00       1.118    
+   44.00       1.077    
+   45.00       1.048    
+   46.00       1.027    
+   47.00       1.012    
+   48.00       1.002    
+   49.00      0.9950    
+   50.00      0.9890    
+   51.00      0.9833    
+   52.00      0.9771    
+   53.00      0.9701    
+   54.00      0.9622    
+   55.00      0.9536    
+   56.00      0.9444    
+   57.00      0.9352    
+   58.00      0.9262    
+   59.00      0.9178    
+   60.00      0.9104    
+   61.00      0.9041    
+   62.00      0.8989    
+   63.00      0.8949    
+   64.00      0.8917    
+   65.00      0.8892    
+   66.00      0.8869    
+   67.00      0.8844    
+   68.00      0.8813    
+   69.00      0.8772    
+   70.00      0.8716    
+   71.00      0.8643    
+   72.00      0.8551    
+   73.00      0.8437    
+   74.00      0.8301    
+   75.00      0.8144    
+   76.00      0.7968    
+   77.00      0.7775    
+   78.00      0.7568    
+   79.00      0.7351    
+   80.00      0.7129    
+   81.00      0.6904    
+   82.00      0.6682    
+   83.00      0.6466    
+   84.00      0.6259    
+   85.00      0.6066    
+   86.00      0.5886    
+   87.00      0.5724    
+   88.00      0.5578    
+   89.00      0.5449    
+   90.00      0.5337    
+   91.00      0.5241    
+   92.00      0.5158    
+   93.00      0.5087    
+   94.00      0.5025    
+   95.00      0.4969    
+   96.00      0.4917    
+   97.00      0.4867    
+   98.00      0.4815    
+   99.00      0.4759    
+   100.0      0.4698    
+   101.0      0.4630    
+   102.0      0.4554    
+   103.0      0.4469    
+   104.0      0.4374    
+   105.0      0.4271    
+   106.0      0.4158    
+   107.0      0.4038    
+   108.0      0.3911    
+   109.0      0.3778    
+   110.0      0.3641    
+   111.0      0.3501    
+   112.0      0.3360    
+   113.0      0.3220    
+   114.0      0.3082    
+   115.0      0.2948    
+   116.0      0.2819    
+   117.0      0.2696    
+   118.0      0.2581    
+   119.0      0.2473    
+   120.0      0.2373    
+   121.0      0.2282    
+   122.0      0.2200    
+   123.0      0.2127    
+   124.0      0.2062    
+   125.0      0.2005    
+   126.0      0.1956    
+   127.0      0.1914    
+   128.0      0.1877    
+   129.0      0.1846    
+   130.0      0.1820    
+   131.0      0.1797    
+   132.0      0.1777    
+   133.0      0.1759    
+   134.0      0.1743    
+   135.0      0.1728    
+   136.0      0.1713    
+   137.0      0.1698    
+   138.0      0.1683    
+   139.0      0.1667    
+   140.0      0.1650    
+   141.0      0.1633    
+   142.0      0.1615    
+   143.0      0.1595    
+   144.0      0.1576    
+   145.0      0.1555    
+   146.0      0.1535    
+   147.0      0.1514    
+   148.0      0.1494    
+   149.0      0.1475    
+   150.0      0.1456    
+   151.0      0.1439    
+   152.0      0.1423    
+   153.0      0.1408    
+   154.0      0.1395    
+   155.0      0.1385    
+   156.0      0.1376    
+   157.0      0.1370    
+   158.0      0.1365    
+   159.0      0.1363    
+   160.0      0.1363    
+   161.0      0.1365    
+   162.0      0.1368    
+   163.0      0.1374    
+   164.0      0.1381    
+   165.0      0.1389    
+   166.0      0.1398    
+   167.0      0.1408    
+   168.0      0.1419    
+   169.0      0.1430    
+   170.0      0.1441    
+   171.0      0.1451    
+   172.0      0.1462    
+   173.0      0.1471    
+   174.0      0.1480    
+   175.0      0.1488    
+   176.0      0.1494    
+   177.0      0.1500    
+   178.0      0.1503    
+   179.0      0.1506    
+   180.0      0.1506    
+
+#Ex = 1112.6 - l=1
+
+   Theta       sigma   
+   0.000       8.500    
+   1.000       8.585    
+   2.000       8.828    
+   3.000       9.203    
+   4.000       9.665    
+   5.000       10.16    
+   6.000       10.63    
+   7.000       11.02    
+   8.000       11.26    
+   9.000       11.33    
+   10.00       11.20    
+   11.00       10.85    
+   12.00       10.30    
+   13.00       9.563    
+   14.00       8.683    
+   15.00       7.702    
+   16.00       6.669    
+   17.00       5.635    
+   18.00       4.644    
+   19.00       3.738    
+   20.00       2.944    
+   21.00       2.283    
+   22.00       1.763    
+   23.00       1.383    
+   24.00       1.133    
+   25.00      0.9961    
+   26.00      0.9517    
+   27.00      0.9763    
+   28.00       1.046    
+   29.00       1.139    
+   30.00       1.237    
+   31.00       1.324    
+   32.00       1.390    
+   33.00       1.428    
+   34.00       1.437    
+   35.00       1.417    
+   36.00       1.374    
+   37.00       1.312    
+   38.00       1.240    
+   39.00       1.165    
+   40.00       1.093    
+   41.00       1.031    
+   42.00      0.9832    
+   43.00      0.9521    
+   44.00      0.9391    
+   45.00      0.9441    
+   46.00      0.9652    
+   47.00      0.9996    
+   48.00       1.044    
+   49.00       1.094    
+   50.00       1.145    
+   51.00       1.194    
+   52.00       1.237    
+   53.00       1.271    
+   54.00       1.294    
+   55.00       1.304    
+   56.00       1.301    
+   57.00       1.285    
+   58.00       1.256    
+   59.00       1.217    
+   60.00       1.168    
+   61.00       1.113    
+   62.00       1.052    
+   63.00      0.9887    
+   64.00      0.9248    
+   65.00      0.8622    
+   66.00      0.8026    
+   67.00      0.7473    
+   68.00      0.6973    
+   69.00      0.6531    
+   70.00      0.6150    
+   71.00      0.5831    
+   72.00      0.5570    
+   73.00      0.5362    
+   74.00      0.5200    
+   75.00      0.5077    
+   76.00      0.4983    
+   77.00      0.4910    
+   78.00      0.4850    
+   79.00      0.4795    
+   80.00      0.4738    
+   81.00      0.4674    
+   82.00      0.4599    
+   83.00      0.4508    
+   84.00      0.4401    
+   85.00      0.4277    
+   86.00      0.4136    
+   87.00      0.3980    
+   88.00      0.3809    
+   89.00      0.3628    
+   90.00      0.3438    
+   91.00      0.3244    
+   92.00      0.3047    
+   93.00      0.2851    
+   94.00      0.2659    
+   95.00      0.2474    
+   96.00      0.2296    
+   97.00      0.2129    
+   98.00      0.1972    
+   99.00      0.1828    
+   100.0      0.1697    
+   101.0      0.1578    
+   102.0      0.1471    
+   103.0      0.1376    
+   104.0      0.1292    
+   105.0      0.1218    
+   106.0      0.1153    
+   107.0      0.1096    
+   108.0      0.1046    
+   109.0      0.1002    
+   110.0      0.9623E-01
+   111.0      0.9270E-01
+   112.0      0.8949E-01
+   113.0      0.8653E-01
+   114.0      0.8377E-01
+   115.0      0.8117E-01
+   116.0      0.7868E-01
+   117.0      0.7628E-01
+   118.0      0.7396E-01
+   119.0      0.7170E-01
+   120.0      0.6950E-01
+   121.0      0.6736E-01
+   122.0      0.6526E-01
+   123.0      0.6321E-01
+   124.0      0.6122E-01
+   125.0      0.5926E-01
+   126.0      0.5735E-01
+   127.0      0.5548E-01
+   128.0      0.5364E-01
+   129.0      0.5182E-01
+   130.0      0.5004E-01
+   131.0      0.4826E-01
+   132.0      0.4650E-01
+   133.0      0.4476E-01
+   134.0      0.4302E-01
+   135.0      0.4130E-01
+   136.0      0.3960E-01
+   137.0      0.3793E-01
+   138.0      0.3630E-01
+   139.0      0.3472E-01
+   140.0      0.3321E-01
+   141.0      0.3178E-01
+   142.0      0.3045E-01
+   143.0      0.2923E-01
+   144.0      0.2815E-01
+   145.0      0.2721E-01
+   146.0      0.2642E-01
+   147.0      0.2579E-01
+   148.0      0.2532E-01
+   149.0      0.2501E-01
+   150.0      0.2486E-01
+   151.0      0.2485E-01
+   152.0      0.2497E-01
+   153.0      0.2519E-01
+   154.0      0.2550E-01
+   155.0      0.2588E-01
+   156.0      0.2629E-01
+   157.0      0.2671E-01
+   158.0      0.2710E-01
+   159.0      0.2746E-01
+   160.0      0.2774E-01
+   161.0      0.2794E-01
+   162.0      0.2803E-01
+   163.0      0.2801E-01
+   164.0      0.2785E-01
+   165.0      0.2758E-01
+   166.0      0.2717E-01
+   167.0      0.2666E-01
+   168.0      0.2604E-01
+   169.0      0.2534E-01
+   170.0      0.2457E-01
+   171.0      0.2377E-01
+   172.0      0.2295E-01
+   173.0      0.2215E-01
+   174.0      0.2139E-01
+   175.0      0.2070E-01
+   176.0      0.2009E-01
+   177.0      0.1960E-01
+   178.0      0.1924E-01
+   179.0      0.1901E-01
+   180.0      0.1894E-01
+
+#Ex=3.701 - l=4
+
+   Theta       sigma   
+   0.000      0.2584    
+   1.000      0.2718    
+   2.000      0.3116    
+   3.000      0.3766    
+   4.000      0.4650    
+   5.000      0.5745    
+   6.000      0.7021    
+   7.000      0.8448    
+   8.000      0.9996    
+   9.000       1.163    
+   10.00       1.334    
+   11.00       1.508    
+   12.00       1.685    
+   13.00       1.863    
+   14.00       2.042    
+   15.00       2.222    
+   16.00       2.403    
+   17.00       2.586    
+   18.00       2.770    
+   19.00       2.956    
+   20.00       3.143    
+   21.00       3.332    
+   22.00       3.518    
+   23.00       3.702    
+   24.00       3.880    
+   25.00       4.048    
+   26.00       4.202    
+   27.00       4.340    
+   28.00       4.456    
+   29.00       4.548    
+   30.00       4.611    
+   31.00       4.645    
+   32.00       4.646    
+   33.00       4.616    
+   34.00       4.553    
+   35.00       4.461    
+   36.00       4.340    
+   37.00       4.194    
+   38.00       4.028    
+   39.00       3.845    
+   40.00       3.650    
+   41.00       3.448    
+   42.00       3.243    
+   43.00       3.041    
+   44.00       2.845    
+   45.00       2.658    
+   46.00       2.483    
+   47.00       2.322    
+   48.00       2.177    
+   49.00       2.049    
+   50.00       1.937    
+   51.00       1.841    
+   52.00       1.760    
+   53.00       1.694    
+   54.00       1.641    
+   55.00       1.598    
+   56.00       1.565    
+   57.00       1.540    
+   58.00       1.522    
+   59.00       1.508    
+   60.00       1.498    
+   61.00       1.491    
+   62.00       1.486    
+   63.00       1.482    
+   64.00       1.479    
+   65.00       1.476    
+   66.00       1.473    
+   67.00       1.470    
+   68.00       1.467    
+   69.00       1.463    
+   70.00       1.459    
+   71.00       1.455    
+   72.00       1.449    
+   73.00       1.443    
+   74.00       1.435    
+   75.00       1.426    
+   76.00       1.415    
+   77.00       1.403    
+   78.00       1.388    
+   79.00       1.371    
+   80.00       1.351    
+   81.00       1.329    
+   82.00       1.304    
+   83.00       1.276    
+   84.00       1.247    
+   85.00       1.215    
+   86.00       1.181    
+   87.00       1.146    
+   88.00       1.109    
+   89.00       1.072    
+   90.00       1.035    
+   91.00      0.9974    
+   92.00      0.9609    
+   93.00      0.9255    
+   94.00      0.8916    
+   95.00      0.8594    
+   96.00      0.8293    
+   97.00      0.8014    
+   98.00      0.7760    
+   99.00      0.7530    
+   100.0      0.7326    
+   101.0      0.7145    
+   102.0      0.6987    
+   103.0      0.6850    
+   104.0      0.6732    
+   105.0      0.6630    
+   106.0      0.6542    
+   107.0      0.6464    
+   108.0      0.6394    
+   109.0      0.6329    
+   110.0      0.6266    
+   111.0      0.6202    
+   112.0      0.6135    
+   113.0      0.6064    
+   114.0      0.5986    
+   115.0      0.5901    
+   116.0      0.5808    
+   117.0      0.5705    
+   118.0      0.5594    
+   119.0      0.5474    
+   120.0      0.5347    
+   121.0      0.5212    
+   122.0      0.5070    
+   123.0      0.4924    
+   124.0      0.4775    
+   125.0      0.4623    
+   126.0      0.4472    
+   127.0      0.4321    
+   128.0      0.4173    
+   129.0      0.4028    
+   130.0      0.3889    
+   131.0      0.3757    
+   132.0      0.3632    
+   133.0      0.3516    
+   134.0      0.3409    
+   135.0      0.3311    
+   136.0      0.3224    
+   137.0      0.3147    
+   138.0      0.3080    
+   139.0      0.3023    
+   140.0      0.2975    
+   141.0      0.2937    
+   142.0      0.2908    
+   143.0      0.2886    
+   144.0      0.2872    
+   145.0      0.2863    
+   146.0      0.2861    
+   147.0      0.2862    
+   148.0      0.2868    
+   149.0      0.2876    
+   150.0      0.2885    
+   151.0      0.2896    
+   152.0      0.2906    
+   153.0      0.2916    
+   154.0      0.2925    
+   155.0      0.2932    
+   156.0      0.2936    
+   157.0      0.2937    
+   158.0      0.2935    
+   159.0      0.2930    
+   160.0      0.2922    
+   161.0      0.2910    
+   162.0      0.2895    
+   163.0      0.2877    
+   164.0      0.2855    
+   165.0      0.2832    
+   166.0      0.2806    
+   167.0      0.2778    
+   168.0      0.2750    
+   169.0      0.2721    
+   170.0      0.2692    
+   171.0      0.2663    
+   172.0      0.2636    
+   173.0      0.2610    
+   174.0      0.2586    
+   175.0      0.2566    
+   176.0      0.2548    
+   177.0      0.2534    
+   178.0      0.2524    
+   179.0      0.2518    
+   180.0      0.2515    
+ END
diff --git a/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba_l1.txt b/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba_l1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b9ac0338d7f41b8199a1a6961dc8aadca9d859aa
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/cross_sections/56Ni_dp_dwba_l1.txt
@@ -0,0 +1,181 @@
+   0.000       19.60    
+   1.000       19.81    
+   2.000       20.43    
+   3.000       21.38    
+   4.000       22.55    
+   5.000       23.83    
+   6.000       25.05    
+   7.000       26.08    
+   8.000       26.79    
+   9.000       27.07    
+   10.00       26.86    
+   11.00       26.13    
+   12.00       24.90    
+   13.00       23.21    
+   14.00       21.15    
+   15.00       18.83    
+   16.00       16.37    
+   17.00       13.89    
+   18.00       11.49    
+   19.00       9.288    
+   20.00       7.345    
+   21.00       5.717    
+   22.00       4.429    
+   23.00       3.483    
+   24.00       2.857    
+   25.00       2.515    
+   26.00       2.409    
+   27.00       2.482    
+   28.00       2.678    
+   29.00       2.944    
+   30.00       3.231    
+   31.00       3.502    
+   32.00       3.728    
+   33.00       3.890    
+   34.00       3.981    
+   35.00       3.999    
+   36.00       3.951    
+   37.00       3.850    
+   38.00       3.710    
+   39.00       3.545    
+   40.00       3.372    
+   41.00       3.202    
+   42.00       3.048    
+   43.00       2.915    
+   44.00       2.808    
+   45.00       2.727    
+   46.00       2.672    
+   47.00       2.637    
+   48.00       2.617    
+   49.00       2.606    
+   50.00       2.598    
+   51.00       2.586    
+   52.00       2.567    
+   53.00       2.535    
+   54.00       2.488    
+   55.00       2.426    
+   56.00       2.349    
+   57.00       2.259    
+   58.00       2.157    
+   59.00       2.048    
+   60.00       1.935    
+   61.00       1.823    
+   62.00       1.713    
+   63.00       1.611    
+   64.00       1.518    
+   65.00       1.436    
+   66.00       1.367    
+   67.00       1.311    
+   68.00       1.268    
+   69.00       1.237    
+   70.00       1.216    
+   71.00       1.203    
+   72.00       1.197    
+   73.00       1.195    
+   74.00       1.195    
+   75.00       1.195    
+   76.00       1.192    
+   77.00       1.185    
+   78.00       1.174    
+   79.00       1.156    
+   80.00       1.132    
+   81.00       1.101    
+   82.00       1.064    
+   83.00       1.022    
+   84.00      0.9744    
+   85.00      0.9230    
+   86.00      0.8688    
+   87.00      0.8131    
+   88.00      0.7570    
+   89.00      0.7017    
+   90.00      0.6481    
+   91.00      0.5971    
+   92.00      0.5496    
+   93.00      0.5060    
+   94.00      0.4668    
+   95.00      0.4321    
+   96.00      0.4021    
+   97.00      0.3766    
+   98.00      0.3553    
+   99.00      0.3379    
+   100.0      0.3240    
+   101.0      0.3130    
+   102.0      0.3045    
+   103.0      0.2979    
+   104.0      0.2927    
+   105.0      0.2884    
+   106.0      0.2845    
+   107.0      0.2807    
+   108.0      0.2767    
+   109.0      0.2722    
+   110.0      0.2670    
+   111.0      0.2610    
+   112.0      0.2541    
+   113.0      0.2464    
+   114.0      0.2378    
+   115.0      0.2286    
+   116.0      0.2187    
+   117.0      0.2084    
+   118.0      0.1977    
+   119.0      0.1868    
+   120.0      0.1760    
+   121.0      0.1652    
+   122.0      0.1547    
+   123.0      0.1446    
+   124.0      0.1350    
+   125.0      0.1260    
+   126.0      0.1176    
+   127.0      0.1100    
+   128.0      0.1031    
+   129.0      0.9697E-01
+   130.0      0.9169E-01
+   131.0      0.8724E-01
+   132.0      0.8361E-01
+   133.0      0.8080E-01
+   134.0      0.7878E-01
+   135.0      0.7752E-01
+   136.0      0.7699E-01
+   137.0      0.7713E-01
+   138.0      0.7788E-01
+   139.0      0.7916E-01
+   140.0      0.8090E-01
+   141.0      0.8298E-01
+   142.0      0.8532E-01
+   143.0      0.8778E-01
+   144.0      0.9025E-01
+   145.0      0.9261E-01
+   146.0      0.9472E-01
+   147.0      0.9648E-01
+   148.0      0.9778E-01
+   149.0      0.9850E-01
+   150.0      0.9858E-01
+   151.0      0.9795E-01
+   152.0      0.9658E-01
+   153.0      0.9446E-01
+   154.0      0.9160E-01
+   155.0      0.8805E-01
+   156.0      0.8388E-01
+   157.0      0.7919E-01
+   158.0      0.7409E-01
+   159.0      0.6870E-01
+   160.0      0.6319E-01
+   161.0      0.5768E-01
+   162.0      0.5232E-01
+   163.0      0.4725E-01
+   164.0      0.4259E-01
+   165.0      0.3843E-01
+   166.0      0.3486E-01
+   167.0      0.3193E-01
+   168.0      0.2965E-01
+   169.0      0.2802E-01
+   170.0      0.2699E-01
+   171.0      0.2652E-01
+   172.0      0.2652E-01
+   173.0      0.2688E-01
+   174.0      0.2750E-01
+   175.0      0.2826E-01
+   176.0      0.2907E-01
+   177.0      0.2981E-01
+   178.0      0.3040E-01
+   179.0      0.3078E-01
+   180.0      0.3092E-01
diff --git a/Projects/GRIT_AGATA_GANIL/detector/grit_agata.detector b/Projects/GRIT_AGATA_GANIL/detector/grit_agata.detector
new file mode 100644
index 0000000000000000000000000000000000000000..dfbd67d6c3eb1f6eed9b3f657e69657e7b4733c6
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/detector/grit_agata.detector
@@ -0,0 +1,316 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+Target
+ THICKNESS= 10 micrometer 
+ RADIUS= 7.5 mm 
+ MATERIAL= CD2
+ ANGLE= 0 deg
+ X= 0 mm 
+ Y= 0 mm 
+ Z= 0 mm
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias THIRDSTAGEFRONT
+  Action= Replace
+  Value= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias THIRDSTAGEBACK
+  Action= Replace
+  Value= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias SECONDSTAGEFRONT
+  Action= Replace
+  Value= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias SECONDSTAGEBACK
+  Action= Replace
+  Value= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias SECONDSTAGEBARREL
+  Action= Replace
+  Value= 1 
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Annular Back
+GaspardTracker Annular
+ Z= -156.5 mm 
+ RMIN= 16 mm 
+ RMAX= 52 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Annular Front
+GaspardTracker Annular
+ Z= 156.5 mm 
+ RMIN= 16 mm 
+ RMAX= 52 mm 
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 End-Cap Back
+GaspardTracker Trapezoid
+ X128_Y128= 55.338 -14.346 -146.501 mm
+ X1_Y128= 55.338 14.346 -146.501 mm
+ X128_Y1= 138.519 -48.717 -69.236 mm
+ X1_Y1=  138.518 48.726 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GaspardTracker Trapezoid
+ X128_Y128= 49.215 29.045 -146.501 mm
+ X1_Y128=  28.986 49.274 -146.501 mm
+ X128_Y1= 132.395 63.500 -69.236 mm
+ X1_Y1=  63.492 132.401 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+GaspardTracker Trapezoid
+ X128_Y128= 14.263 55.338 -146.501 mm
+ X1_Y128= -14.346 55.338 -146.501 mm
+ X128_Y1=  48.717 138.519 -69.236 mm
+ X1_Y1=  -48.726 138.518 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+GaspardTracker Trapezoid
+ X128_Y128= -29.045 49.215 -146.501 mm
+ X1_Y128= -49.274 28.986 -146.501 mm
+ X128_Y1= -63.500 132.395 -69.236 mm
+ X1_Y1=  -132.401 63.492 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+GaspardTracker Trapezoid
+ X128_Y128= -55.338 14.346 -146.501 mm
+ X1_Y128= -55.338 -14.346 -146.501 mm
+ X128_Y1= -138.519 48.717 -69.236 mm
+ X1_Y1=  -138.518 -48.726 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+GaspardTracker Trapezoid
+ X128_Y128= -49.215 -29.045 -146.501 mm
+ X1_Y128= -28.986 -49.274 -146.501 mm
+ X128_Y1= -132.395 -63.500 -69.236 mm
+ X1_Y1=  -63.492 -132.401 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+GaspardTracker Trapezoid
+ X128_Y128= -14.263 -55.338 -146.501 mm
+ X1_Y128= 14.346 -55.338 -146.501 mm
+ X128_Y1= -48.717 -138.519 -69.236 mm
+ X1_Y1=  48.726 -138.518 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+GaspardTracker Trapezoid
+ X128_Y128= 29.045 -49.215 -146.501 mm
+ X1_Y128= 49.274 -28.986 -146.501 mm
+ X128_Y1= 63.500 -132.395 -69.236 mm
+ X1_Y1=  132.401 -63.492 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Barrel
+GaspardTracker Square
+ THETA= 90 deg 
+ PHI= 0 deg
+ R= 143 mm 
+ BETA= 0 0 0 deg 
+ FIRSTSTAGE= 1
+ SECONDSTAGE= 1
+ THIRDSTAGE= 0
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GaspardTracker Square
+ THETA= 90 deg 
+ PHI= 45 deg
+ R= 143 mm
+ BETA= 0 0 0 deg
+ FIRSTSTAGE= 1
+ SECONDSTAGE= 1
+ THIRDSTAGE= 0
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+GaspardTracker Square
+ THETA= 90 deg
+ PHI= 90 deg
+ R= 143 mm
+ BETA= 0 0 0 deg
+ FIRSTSTAGE= 1
+ SECONDSTAGE= 1
+ THIRDSTAGE= 0
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+GaspardTracker Square
+ THETA= 90 deg 
+ PHI= 135 deg 
+ R= 143 mm
+ BETA= 0 0 0 deg
+ FIRSTSTAGE= 1
+ SECONDSTAGE= 1
+ THIRDSTAGE= 0
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+GaspardTracker Square
+ THETA= 90 deg
+ PHI= 180 deg 
+ R= 143 mm
+ BETA= 0 0 0 deg
+ FIRSTSTAGE= 1
+ SECONDSTAGE= 1
+ THIRDSTAGE= 0
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+GaspardTracker Square
+ THETA= 90 deg
+ PHI= 225 deg
+ R= 143 mm
+ BETA= 0 0 0 deg
+ FIRSTSTAGE= 1
+ SECONDSTAGE= 1
+ THIRDSTAGE= 0
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+GaspardTracker Square
+ THETA= 90 deg
+ PHI= 270 deg
+ R= 143 mm
+ BETA= 0 0 0 deg
+ FIRSTSTAGE= 1
+ SECONDSTAGE= 1
+ THIRDSTAGE= 0
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+GaspardTracker Square
+ THETA= 90 deg
+ PHI= 315 deg
+ R= 143 mm 
+ BETA= 0 0 0 deg
+ FIRSTSTAGE= 1
+ SECONDSTAGE= 1
+ THIRDSTAGE= 0
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Front-Cap Back
+GaspardTracker Trapezoid
+ X128_Y128= 55.338 14.346 146.501 mm
+ X1_Y128= 55.338 -14.346 146.501 mm
+ X128_Y1= 138.518 48.726 69.237 mm
+ X1_Y1=  138.519 -48.717 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GaspardTracker Trapezoid
+ X128_Y128= 28.986 49.274 146.501 mm
+ X1_Y128= 49.215 29.045 146.501 mm
+ X128_Y1= 63.492 132.401 69.237 mm
+ X1_Y1=  132.395 63.500 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+GaspardTracker Trapezoid
+ X128_Y128= -14.346 55.338 146.501 mm
+ X1_Y128= 14.263 55.338 146.501 mm
+ X128_Y1= -48.726 138.518 69.237 mm
+ X1_Y1=  48.717 138.519 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+GaspardTracker Trapezoid
+ X128_Y128= -49.274 28.986 146.501 mm
+ X1_Y128= -29.045 49.215 146.501 mm
+ X128_Y1= -132.401 63.492 69.237 mm
+ X1_Y1=  -63.500 132.395 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+GaspardTracker Trapezoid
+ X128_Y128= -55.338 -14.346 146.501 mm
+ X1_Y128= -55.338 14.346 146.501 mm
+ X128_Y1= -138.518 -48.726 69.237 mm
+ X1_Y1=  -138.519 48.717 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+GaspardTracker Trapezoid
+ X128_Y128= -28.986 -49.274 146.501 mm
+ X1_Y128= -49.215 -29.045 146.501 mm
+ X128_Y1= -63.492 -132.401 69.237 mm
+ X1_Y1=  -132.395 -63.500 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+GaspardTracker Trapezoid
+ X128_Y128= 14.346 -55.338 146.501 mm
+ X1_Y128= -14.263 -55.338 146.501 mm
+ X128_Y1= 48.726 -138.518 69.237 mm
+ X1_Y1=  -48.717 -138.519 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+GaspardTracker Trapezoid
+ X128_Y128= 49.274 -28.986 146.501 mm
+ X1_Y128= 29.045 -49.215 146.501 mm
+ X128_Y1= 132.401 -63.492 69.237 mm
+ X1_Y1=  63.500 -132.395 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
diff --git a/Projects/GRIT_AGATA_GANIL/detector/small_grit_back.detector b/Projects/GRIT_AGATA_GANIL/detector/small_grit_back.detector
new file mode 100644
index 0000000000000000000000000000000000000000..4ad02c72b4a252c76637cc7305cc02421c42e954
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/detector/small_grit_back.detector
@@ -0,0 +1,120 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+Target
+ THICKNESS= 10 micrometer 
+ RADIUS= 7.5 mm 
+ MATERIAL= CD2
+ ANGLE= 0 deg
+ X= 0 mm 
+ Y= 0 mm 
+ Z= 0 mm
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias THIRDSTAGEFRONT
+  Action= Replace
+  Value= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias THIRDSTAGEBACK
+  Action= Replace
+  Value= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias SECONDSTAGEFRONT
+  Action= Replace
+  Value= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias SECONDSTAGEBACK
+  Action= Replace
+  Value= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias SECONDSTAGEBARREL
+  Action= Replace
+  Value= 1 
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 End-Cap Back
+GaspardTracker Trapezoid
+ X128_Y128= 55.338 -14.346 -146.501 mm
+ X1_Y128= 55.338 14.346 -146.501 mm
+ X128_Y1= 138.519 -48.717 -69.236 mm
+ X1_Y1=  138.518 48.726 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GaspardTracker Trapezoid
+ X128_Y128= 49.215 29.045 -146.501 mm
+ X1_Y128=  28.986 49.274 -146.501 mm
+ X128_Y1= 132.395 63.500 -69.236 mm
+ X1_Y1=  63.492 132.401 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+% GaspardTracker Trapezoid
+%  X128_Y128= 14.263 55.338 -146.501 mm
+%  X1_Y128= -14.346 55.338 -146.501 mm
+%  X128_Y1=  48.717 138.519 -69.236 mm
+%  X1_Y1=  -48.726 138.518 -69.237 mm
+%  FIRSTSTAGE= 1
+%  SECONDSTAGE= @SECONDSTAGEBACK 
+%  THIRDSTAGE= @THIRDSTAGEBACK
+%  EnergyResolution= 50
+%  VIS= all
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+GaspardTracker Trapezoid
+ X128_Y128= -29.045 49.215 -146.501 mm
+ X1_Y128= -49.274 28.986 -146.501 mm
+ X128_Y1= -63.500 132.395 -69.236 mm
+ X1_Y1=  -132.401 63.492 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+GaspardTracker Trapezoid
+ X128_Y128= -55.338 14.346 -146.501 mm
+ X1_Y128= -55.338 -14.346 -146.501 mm
+ X128_Y1= -138.519 48.717 -69.236 mm
+ X1_Y1=  -138.518 -48.726 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+GaspardTracker Trapezoid
+ X128_Y128= -49.215 -29.045 -146.501 mm
+ X1_Y128= -28.986 -49.274 -146.501 mm
+ X128_Y1= -132.395 -63.500 -69.236 mm
+ X1_Y1=  -63.492 -132.401 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+% GaspardTracker Trapezoid
+%  X128_Y128= -14.263 -55.338 -146.501 mm
+%  X1_Y128= 14.346 -55.338 -146.501 mm
+%  X128_Y1= -48.717 -138.519 -69.236 mm
+%  X1_Y1=  48.726 -138.518 -69.237 mm
+%  FIRSTSTAGE= 1
+%  SECONDSTAGE= @SECONDSTAGEBACK 
+%  THIRDSTAGE= @THIRDSTAGEBACK
+%  EnergyResolution= 50
+%  VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+GaspardTracker Trapezoid
+ X128_Y128= 29.045 -49.215 -146.501 mm
+ X1_Y128= 49.274 -28.986 -146.501 mm
+ X128_Y1= 63.500 -132.395 -69.236 mm
+ X1_Y1=  132.401 -63.492 -69.237 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEBACK 
+ THIRDSTAGE= @THIRDSTAGEBACK
+ EnergyResolution= 50
+ VIS= all
+
diff --git a/Projects/GRIT_AGATA_GANIL/detector/small_grit_front.detector b/Projects/GRIT_AGATA_GANIL/detector/small_grit_front.detector
new file mode 100644
index 0000000000000000000000000000000000000000..de2ac07aa231c28543b04534f8b5f82a050c44a6
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/detector/small_grit_front.detector
@@ -0,0 +1,120 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+Target
+ THICKNESS= 10 micrometer 
+ RADIUS= 7.5 mm 
+ MATERIAL= CD2
+ ANGLE= 0 deg
+ X= 0 mm 
+ Y= 0 mm 
+ Z= 0 mm
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias THIRDSTAGEFRONT
+  Action= Replace
+  Value= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias THIRDSTAGEBACK
+  Action= Replace
+  Value= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias SECONDSTAGEFRONT
+  Action= Replace
+  Value= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias SECONDSTAGEBACK
+  Action= Replace
+  Value= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Alias SECONDSTAGEBARREL
+  Action= Replace
+  Value= 1 
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Front-Cap Back
+GaspardTracker Trapezoid
+ X128_Y128= 55.338 14.346 146.501 mm
+ X1_Y128= 55.338 -14.346 146.501 mm
+ X128_Y1= 138.518 48.726 69.237 mm
+ X1_Y1=  138.519 -48.717 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GaspardTracker Trapezoid
+ X128_Y128= 28.986 49.274 146.501 mm
+ X1_Y128= 49.215 29.045 146.501 mm
+ X128_Y1= 63.492 132.401 69.237 mm
+ X1_Y1=  132.395 63.500 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+% GaspardTracker Trapezoid
+%  X128_Y128= -14.346 55.338 146.501 mm
+%  X1_Y128= 14.263 55.338 146.501 mm
+%  X128_Y1= -48.726 138.518 69.237 mm
+%  X1_Y1=  48.717 138.519 69.236 mm
+%  FIRSTSTAGE= 1
+%  SECONDSTAGE= @SECONDSTAGEFRONT 
+%  THIRDSTAGE= @THIRDSTAGEFRONT
+%  EnergyResolution= 50
+%  VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+GaspardTracker Trapezoid
+ X128_Y128= -49.274 28.986 146.501 mm
+ X1_Y128= -29.045 49.215 146.501 mm
+ X128_Y1= -132.401 63.492 69.237 mm
+ X1_Y1=  -63.500 132.395 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+GaspardTracker Trapezoid
+ X128_Y128= -55.338 -14.346 146.501 mm
+ X1_Y128= -55.338 14.346 146.501 mm
+ X128_Y1= -138.518 -48.726 69.237 mm
+ X1_Y1=  -138.519 48.717 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+GaspardTracker Trapezoid
+ X128_Y128= -28.986 -49.274 146.501 mm
+ X1_Y128= -49.215 -29.045 146.501 mm
+ X128_Y1= -63.492 -132.401 69.237 mm
+ X1_Y1=  -132.395 -63.500 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+% GaspardTracker Trapezoid
+%  X128_Y128= 14.346 -55.338 146.501 mm
+%  X1_Y128= -14.263 -55.338 146.501 mm
+%  X128_Y1= 48.726 -138.518 69.237 mm
+%  X1_Y1=  -48.717 -138.519 69.236 mm
+%  FIRSTSTAGE= 1
+%  SECONDSTAGE= @SECONDSTAGEFRONT 
+%  THIRDSTAGE= @THIRDSTAGEFRONT
+%  EnergyResolution= 50
+%  VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+GaspardTracker Trapezoid
+ X128_Y128= 49.274 -28.986 146.501 mm
+ X1_Y128= 29.045 -49.215 146.501 mm
+ X128_Y1= 132.401 -63.492 69.237 mm
+ X1_Y1=  63.500 -132.395 69.236 mm
+ FIRSTSTAGE= 1
+ SECONDSTAGE= @SECONDSTAGEFRONT 
+ THIRDSTAGE= @THIRDSTAGEFRONT
+ EnergyResolution= 50
+ VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
diff --git a/Projects/GRIT_AGATA_GANIL/reaction/132Sndp.reaction b/Projects/GRIT_AGATA_GANIL/reaction/132Sndp.reaction
new file mode 100644
index 0000000000000000000000000000000000000000..e2f516a7b8050b9095941533867282bc6a72781c
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/reaction/132Sndp.reaction
@@ -0,0 +1,31 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%  Reaction file for 60Fe(d,p)61Fe reaction  %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%Beam energy given in MeV ; Excitation in MeV ; emmitance in rad
+Beam
+ Particle= 132Sn
+ Energy= 1320
+ SigmaEnergy= 0 MeV
+ SigmaThetaX= 0.42 deg
+ SigmaPhiY= 0.42 deg
+ SigmaX= 1.7 mm
+ SigmaY= 1.7 mm
+ MeanThetaX= 0.3 deg
+ MeanPhiY= 0 deg
+ MeanX= 1.0 mm
+ MeanY= 2.0 mm
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TwoBodyReaction
+ Beam= 132Sn
+ Target= 2H
+ Light= 1H
+ Heavy= 133Sn
+ ExcitationEnergyLight= 0.0 MeV
+ ExcitationEnergyHeavy= 0.0 MeV
+ CrossSectionPath= 132Sndp_10A_MeV_2f7_ZR_FRC.lis CS
+ HalfOpenAngleMin= 0 deg
+ HalfOpenAngleMax= 180 deg
+ ShootLight= 1
+ ShootHeavy= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Projects/GRIT_AGATA_GANIL/reaction/14Odp.reaction b/Projects/GRIT_AGATA_GANIL/reaction/14Odp.reaction
new file mode 100644
index 0000000000000000000000000000000000000000..8e5834b66d744c2a2dad177514f4ac68cbf34396
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/reaction/14Odp.reaction
@@ -0,0 +1,31 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%  Reaction file for 60Fe(d,p)61Fe reaction  %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%Beam energy given in MeV ; Excitation in MeV ; emmitance in rad
+Beam
+ Particle= 14O
+ Energy= 140
+ SigmaEnergy= 0 MeV
+ SigmaThetaX= 0.42 deg
+ SigmaPhiY= 0.42 deg
+ SigmaX= 1.7 mm
+ SigmaY= 1.7 mm
+ MeanThetaX= 0.3 deg
+ MeanPhiY= 0 deg
+ MeanX= 1.0 mm
+ MeanY= 2.0 mm
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TwoBodyReaction
+ Beam= 14O
+ Target= 2H
+ Light= 1H
+ Heavy= 15O
+ ExcitationEnergyLight= 0.0 MeV
+ ExcitationEnergyHeavy= 0.0 MeV
+ CrossSectionPath= 132Sndp_10A_MeV_2f7_ZR_FRC.lis CS
+ HalfOpenAngleMin= 0 deg
+ HalfOpenAngleMax= 180 deg
+ ShootLight= 1
+ ShootHeavy= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Projects/GRIT_AGATA_GANIL/reaction/14Opd.reaction b/Projects/GRIT_AGATA_GANIL/reaction/14Opd.reaction
new file mode 100644
index 0000000000000000000000000000000000000000..83afa3e501f84793807a888d4809842496777888
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/reaction/14Opd.reaction
@@ -0,0 +1,31 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%  Reaction file for 60Fe(d,p)61Fe reaction  %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%Beam energy given in MeV ; Excitation in MeV ; emmitance in rad
+Beam
+ Particle= 14O
+ Energy= 1400
+ SigmaEnergy= 0 MeV
+ SigmaThetaX= 0.42 deg
+ SigmaPhiY= 0.42 deg
+ SigmaX= 1.7 mm
+ SigmaY= 1.7 mm
+ MeanThetaX= 0.3 deg
+ MeanPhiY= 0 deg
+ MeanX= 1.0 mm
+ MeanY= 2.0 mm
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TwoBodyReaction
+ Beam= 14O
+ Target= 1H
+ Light= 2H
+ Heavy= 13O
+ ExcitationEnergyLight= 0.0 MeV
+ ExcitationEnergyHeavy= 0.0 MeV
+ CrossSectionPath= 132Sndp_10A_MeV_2f7_ZR_FRC.lis CS
+ HalfOpenAngleMin= 0 deg
+ HalfOpenAngleMax= 180 deg
+ ShootLight= 1
+ ShootHeavy= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Projects/GRIT_AGATA_GANIL/reaction/56Nidp.reaction b/Projects/GRIT_AGATA_GANIL/reaction/56Nidp.reaction
new file mode 100644
index 0000000000000000000000000000000000000000..6b777a66bc453918a9cc61d64eba690c00d8435b
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/reaction/56Nidp.reaction
@@ -0,0 +1,31 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%  Reaction file for 60Fe(d,p)61Fe reaction  %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%Beam energy given in MeV ; Excitation in MeV ; emmitance in rad
+Beam
+ Particle= 56Ni
+ Energy= 560
+ SigmaEnergy= 0 MeV
+ SigmaThetaX= 0.42 deg
+ SigmaPhiY= 0.42 deg
+ SigmaX= 1.7 mm
+ SigmaY= 1.7 mm
+ MeanThetaX= 0.3 deg
+ MeanPhiY= 0 deg
+ MeanX= 1.0 mm
+ MeanY= 2.0 mm
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TwoBodyReaction
+ Beam= 56Ni
+ Target= 2H
+ Light= 1H
+ Heavy= 57Ni
+ ExcitationEnergyLight= 0.0 MeV
+ ExcitationEnergyHeavy= 0.0 MeV
+ CrossSectionPath= cross_sections/56Ni_dp_dwba_l1.txt CS
+ HalfOpenAngleMin= 0 deg
+ HalfOpenAngleMax= 180 deg
+ ShootLight= 1
+ ShootHeavy= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Projects/GRIT_AGATA_GANIL/reaction/56Nidp_07685_l3.reaction b/Projects/GRIT_AGATA_GANIL/reaction/56Nidp_07685_l3.reaction
new file mode 100644
index 0000000000000000000000000000000000000000..5687c1a1acc8686b4a4cb00a85deaeec4633be73
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/reaction/56Nidp_07685_l3.reaction
@@ -0,0 +1,31 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%  Reaction file for 60Fe(d,p)61Fe reaction  %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%Beam energy given in MeV ; Excitation in MeV ; emmitance in rad
+Beam
+ Particle= 56Ni
+ Energy= 560
+ SigmaEnergy= 0 MeV
+ SigmaThetaX= 0.42 deg
+ SigmaPhiY= 0.42 deg
+ SigmaX= 1.7 mm
+ SigmaY= 1.7 mm
+ MeanThetaX= 0.3 deg
+ MeanPhiY= 0 deg
+ MeanX= 1.0 mm
+ MeanY= 2.0 mm
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TwoBodyReaction
+ Beam= 56Ni
+ Target= 2H
+ Light= 1H
+ Heavy= 57Ni
+ ExcitationEnergyLight= 0.0 MeV
+ ExcitationEnergyHeavy= 0.7865 MeV
+ CrossSectionPath= cross_sections/56Ni_dp_dwba_Ex07685_l3.txt
+ HalfOpenAngleMin= 0 deg
+ HalfOpenAngleMax= 180 deg
+ ShootLight= 1
+ ShootHeavy= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Projects/GRIT_AGATA_GANIL/reaction/56Nidp_1112_l1.reaction b/Projects/GRIT_AGATA_GANIL/reaction/56Nidp_1112_l1.reaction
new file mode 100644
index 0000000000000000000000000000000000000000..25672310ac46b975e1e6bcb03639bbc821227c07
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/reaction/56Nidp_1112_l1.reaction
@@ -0,0 +1,31 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%  Reaction file for 60Fe(d,p)61Fe reaction  %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%Beam energy given in MeV ; Excitation in MeV ; emmitance in rad
+Beam
+ Particle= 56Ni
+ Energy= 560
+ SigmaEnergy= 0 MeV
+ SigmaThetaX= 0.42 deg
+ SigmaPhiY= 0.42 deg
+ SigmaX= 1.7 mm
+ SigmaY= 1.7 mm
+ MeanThetaX= 0.3 deg
+ MeanPhiY= 0 deg
+ MeanX= 1.0 mm
+ MeanY= 2.0 mm
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TwoBodyReaction
+ Beam= 56Ni
+ Target= 2H
+ Light= 1H
+ Heavy= 57Ni
+ ExcitationEnergyLight= 0.0 MeV
+ ExcitationEnergyHeavy= 1.1126 MeV
+ CrossSectionPath= cross_sections/56Ni_dp_dwba_Ex1112_l1.txt CS
+ HalfOpenAngleMin= 0 deg
+ HalfOpenAngleMax= 180 deg
+ ShootLight= 1
+ ShootHeavy= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Projects/GRIT_AGATA_GANIL/reaction/56Nidp_3701_l4.reaction b/Projects/GRIT_AGATA_GANIL/reaction/56Nidp_3701_l4.reaction
new file mode 100644
index 0000000000000000000000000000000000000000..2cbe2a2ff395c0242056ee50c01339278146b52a
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/reaction/56Nidp_3701_l4.reaction
@@ -0,0 +1,31 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%  Reaction file for 60Fe(d,p)61Fe reaction  %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%Beam energy given in MeV ; Excitation in MeV ; emmitance in rad
+Beam
+ Particle= 56Ni
+ Energy= 560
+ SigmaEnergy= 0 MeV
+ SigmaThetaX= 0.42 deg
+ SigmaPhiY= 0.42 deg
+ SigmaX= 1.7 mm
+ SigmaY= 1.7 mm
+ MeanThetaX= 0.3 deg
+ MeanPhiY= 0 deg
+ MeanX= 1.0 mm
+ MeanY= 2.0 mm
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TwoBodyReaction
+ Beam= 56Ni
+ Target= 2H
+ Light= 1H
+ Heavy= 57Ni
+ ExcitationEnergyLight= 0.0 MeV
+ ExcitationEnergyHeavy= 3.701 MeV
+ CrossSectionPath= cross_sections/56Ni_dp_dwba_Ex3701_l4.txt CS
+ HalfOpenAngleMin= 0 deg
+ HalfOpenAngleMax= 180 deg
+ ShootLight= 1
+ ShootHeavy= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Projects/GRIT_AGATA_GANIL/reaction/56Nidp_gs.reaction b/Projects/GRIT_AGATA_GANIL/reaction/56Nidp_gs.reaction
new file mode 100644
index 0000000000000000000000000000000000000000..6b777a66bc453918a9cc61d64eba690c00d8435b
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/reaction/56Nidp_gs.reaction
@@ -0,0 +1,31 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%  Reaction file for 60Fe(d,p)61Fe reaction  %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%Beam energy given in MeV ; Excitation in MeV ; emmitance in rad
+Beam
+ Particle= 56Ni
+ Energy= 560
+ SigmaEnergy= 0 MeV
+ SigmaThetaX= 0.42 deg
+ SigmaPhiY= 0.42 deg
+ SigmaX= 1.7 mm
+ SigmaY= 1.7 mm
+ MeanThetaX= 0.3 deg
+ MeanPhiY= 0 deg
+ MeanX= 1.0 mm
+ MeanY= 2.0 mm
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TwoBodyReaction
+ Beam= 56Ni
+ Target= 2H
+ Light= 1H
+ Heavy= 57Ni
+ ExcitationEnergyLight= 0.0 MeV
+ ExcitationEnergyHeavy= 0.0 MeV
+ CrossSectionPath= cross_sections/56Ni_dp_dwba_l1.txt CS
+ HalfOpenAngleMin= 0 deg
+ HalfOpenAngleMax= 180 deg
+ ShootLight= 1
+ ShootHeavy= 1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Projects/GRIT_AGATA_GANIL/run.mac b/Projects/GRIT_AGATA_GANIL/run.mac
new file mode 100644
index 0000000000000000000000000000000000000000..506556ed2882f22f4f6013ba592297aba63dec25
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/run.mac
@@ -0,0 +1 @@
+/run/beamOn 100000
diff --git a/Projects/GRIT_AGATA_GANIL/run_simu56Ni.sh b/Projects/GRIT_AGATA_GANIL/run_simu56Ni.sh
new file mode 100755
index 0000000000000000000000000000000000000000..183f93e0c4c1e4a2e4784aac6df195e1c22073b2
--- /dev/null
+++ b/Projects/GRIT_AGATA_GANIL/run_simu56Ni.sh
@@ -0,0 +1,4 @@
+npsimulation -D detector/small_grit_back.detector -E reaction/56Nidp_gs.reaction -B run.mac -O Simu56Nidp_gs.root &
+npsimulation -D detector/small_grit_back.detector -E reaction/56Nidp_07685_l3.reaction -B run.mac -O Simu56Nidp_07685_l3.root &
+npsimulation -D detector/small_grit_back.detector -E reaction/56Nidp_1112_l1.reaction -B run.mac -O Simu56Nidp_1112_l1.root & 
+npsimulation -D detector/small_grit_back.detector -E reaction/56Nidp_3701_l4.reaction -B run.mac -O Simu56Nidp_3701_l4.root &
diff --git a/Projects/PISTA/GEF.source b/Projects/PISTA/GEF.source
new file mode 100755
index 0000000000000000000000000000000000000000..c11d02e25794b76f88dd29c94ad816bb1dfd0020
--- /dev/null
+++ b/Projects/PISTA/GEF.source
@@ -0,0 +1,21 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% An Isotropic Source to be used as EventGenerator %%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%      Energy are given in MeV , Position in mm      % 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GEFReader
+ GEFversion= 2023.33
+ InputDataFile= /home/sofia/Physics/Codes/GEF_2024.3.3/out/240Pu_8MeV.lmd
+ x0= 0 
+ y0= 0 
+ z0= 0 mm
+ TwoBodyReaction= 238U(12C,10Be)240Pu@1428
+ FissioningSystem= 240Pu
+ SigmaX= 0 mm
+ SigmaY= 0 mm
+ Particle= fragments  
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Supported particle type: proton, neutron, gamma, fragments.
+% If you want to see all particles of the file, you may give no argument.
+% KineticEnergy_FS gives additional kinetic energy along Z and boosts fragments
+% and evaporated particles accordingly. To be refined to various angles.
diff --git a/Projects/PISTA/pista.detector b/Projects/PISTA/pista.detector
new file mode 100644
index 0000000000000000000000000000000000000000..6429b8458d912747af604fde2c06cd8babafe171
--- /dev/null
+++ b/Projects/PISTA/pista.detector
@@ -0,0 +1,90 @@
+%%%%%%%%%%%%%%%%%%%%
+Target
+ THICKNESS= 0.44 micrometer
+ RADIUS= 5 mm
+ MATERIAL= C
+ ANGLE= 0 deg
+ X= 0 mm
+ Y= 0 mm
+ Z= 0 mm
+ 
+%%%%%%%%%%%%%%%%%%%%
+Vamos
+ R= 162.7 mm
+ Theta= 20 deg
+
+Vamos TMW1
+ Z = 0 mm
+ Gas= iC4H10
+ Pressure= 0.01 bar
+
+Vamos TMW2
+ Z = 109.3 mm
+ Gas= iC4H10
+ Pressure= 0.01 bar
+
+
+
+%%%%%%%%%%%%%%%%%%%%
+PISTA
+ VERSION= 1
+ POS_A= 36.71 96.1 50.7
+ POS_B= -35.92 95.8 51.3 
+ POS_C= -19.35 56.5 93.4
+ POS_D= 20.8 56.6 93.1
+
+%%%%%%%%%%%%%%%%%%%%
+PISTA
+ VERSION= 1
+ POS_A= -42.15 93.1 51.1
+ POS_B= -93.62 41.8 51.6
+ POS_C= -54.12 25.3 93.6
+ POS_D= -25.66 53.6 93.4
+
+%%%%%%%%%%%%%%%%%%%%
+PISTA
+ VERSION= 1
+ POS_A= -95.98 35.6 51.3
+ POS_B= -95.63 -37.1 51.5
+ POS_C= -56.22 -20.7 93.7
+ POS_D= -56.39 19.5 93.6
+
+%%%%%%%%%%%%%%%%%%%%
+PISTA
+ VERSION= 1
+ POS_A= -93.34 -43.5 50.9
+ POS_B= -41.88 -94.8 51.3
+ POS_C= -25.41 -55.2 93.2
+ POS_D= -53.84 -26.8 93.0
+
+%%%%%%%%%%%%%%%%%%%%
+PISTA
+ VERSION= 1
+ POS_A= -35.66 -97.1 51.3
+ POS_B= 36.98 -96.9 51.1
+ POS_C= 20.9 -57.4 93.4
+ POS_D= -19.24 -57.6 93.5
+
+%%%%%%%%%%%%%%%%%%%%
+PISTA
+ VERSION= 1
+ POS_A= 43.66 -94.4 50.9
+ POS_B= 95.19 -43.3 50.8
+ POS_C= 56.03 -26.6 93.1
+ POS_D= 27.54 -54.9 93.2
+
+%%%%%%%%%%%%%%%%%%%%
+PISTA
+ VERSION= 1
+ POS_A= 96.87 -36.8 50.3
+ POS_B= 97.41 35.8 50.4
+ POS_C= 57.83 20.0 92.6
+ POS_D= 57.52 -20.1 92.6
+
+%%%%%%%%%%%%%%%%%%%%
+PISTA
+ VERSION= 1
+ POS_A= 94.39 42.0 50.8 
+ POS_B= 42.94 93.3 50.7
+ POS_C= 26.47 54.1 93.0
+ POS_D= 54.9 25.7 93.1
diff --git a/Projects/PISTA/project.config b/Projects/PISTA/project.config
new file mode 100644
index 0000000000000000000000000000000000000000..c519edf640d2dcbca6b7a9befa756c910634213c
--- /dev/null
+++ b/Projects/PISTA/project.config
@@ -0,0 +1,5 @@
+Project pista
+ AnalysisOutput= ./root/analysis
+ SimulationOutput= ./root/simulation
+ EnergyLoss= ./EnergyLossTable
+