diff --git a/NPAnalysis/10He_Riken/Analysis b/NPAnalysis/10He_Riken/Analysis
deleted file mode 100755
index 801b0f0f9e7cdb9d7fa1f5354098e6f1415ab2d4..0000000000000000000000000000000000000000
Binary files a/NPAnalysis/10He_Riken/Analysis and /dev/null differ
diff --git a/NPAnalysis/Gaspard/include/ObjectManager.hh b/NPAnalysis/Gaspard/include/ObjectManager.hh
index beaa696da29c95da8214bffd50b8990f0cd8217e..c1a4d0cb2f862efe906208f311a9735b3c616095 100644
--- a/NPAnalysis/Gaspard/include/ObjectManager.hh
+++ b/NPAnalysis/Gaspard/include/ObjectManager.hh
@@ -104,7 +104,9 @@ using namespace NPL ;
 namespace ENERGYLOSS
 {
    // Declare your Energy loss here
-   EnergyLoss DeutonTargetCD2 = EnergyLoss("deuton_cd2.txt", 100, 1, 2);
+//   EnergyLoss LightTargetCD2 = EnergyLoss("proton_cd2.txt", 100, 1, 1); // LISE++
+   EnergyLoss LightTarget = EnergyLoss("proton_CD2.G4table", "G4Table", 1000);          // G4
+   EnergyLoss BeamTarget  = EnergyLoss("Sn132[0.0]_CD2.G4table", "G4Table", 1000);      // G4
 }
 
 using namespace ENERGYLOSS ;
diff --git a/NPAnalysis/Gaspard/src/Analysis.cc b/NPAnalysis/Gaspard/src/Analysis.cc
index fd5fa023e10a1a60c23a092593a36c8a452ced69..9239da4a9b48fd1cb0ab68758d86146c590a6bc7 100644
--- a/NPAnalysis/Gaspard/src/Analysis.cc
+++ b/NPAnalysis/Gaspard/src/Analysis.cc
@@ -30,8 +30,14 @@ int main(int argc,char** argv)
    NPA::DetectorManager* myDetector = new DetectorManager;
    myDetector->ReadConfigurationFile(detectorfileName);
 
-   // Print target thickness
-   cout << myDetector->GetTargetThickness() << endl;
+   // nominal beam energy
+   Double_t BeamEnergyNominal = myReaction->GetBeamEnergy() * MeV;
+   cout << BeamEnergyNominal << endl;
+   // slow beam at target middle
+   Double_t BeamEnergy = BeamEnergyNominal - BeamTarget.Slow(BeamEnergyNominal, myDetector->GetTargetThickness()/2 * micrometer, 0);
+   cout << BeamEnergy << endl;
+   // set energy beam at target middle
+   myReaction->SetBeamEnergy(BeamEnergy);
 
    // Attach more branch to the output
    double Ex = 0 ; double ExNoStrips = 0 ; double EE = 0 ; double TT = 0 ; double X = 0 ; double Y = 0 ; int det ;
@@ -81,7 +87,7 @@ int main(int argc,char** argv)
          ThetaStrip = ThetaCalculation (A ,TVector3(0,0,1));
 
          // Correct for energy loss in the target
-         E = DeutonTargetCD2.EvaluateInitialEnergy(E, 5.15*micrometer, ThetaStrip);
+         E = LightTarget.EvaluateInitialEnergy(E, myDetector->GetTargetThickness()/2 * micrometer, ThetaStrip);
 
          // Calculate excitation energy
          if (Theta/deg > 90) {
diff --git a/NPLib/Makefile b/NPLib/Makefile
index b9158c7b7aac4171648a27652076a40eefd30898..39b24f4098774d6cd05912264b62e00345601712 100644
--- a/NPLib/Makefile
+++ b/NPLib/Makefile
@@ -425,6 +425,7 @@ endif
 	make distclean -C ./InteractionCoordinates
 	make distclean -C ./InitialConditions
 	make distclean -C ./DummyDetector
+	make distclean -C ./Plastic
 .SUFFIXES: .$(SrcSuf)
 
 ###
diff --git a/NPSimulation/src/EventGeneratorTransfert.cc b/NPSimulation/src/EventGeneratorTransfert.cc
index 894f882a5727d920bd1ac0f2b1f87dc7c838b37c..e30585f7f0bace34e7f3eeea56fda8ba6e05d8da 100644
--- a/NPSimulation/src/EventGeneratorTransfert.cc
+++ b/NPSimulation/src/EventGeneratorTransfert.cc
@@ -62,18 +62,20 @@ EventGeneratorTransfert::EventGeneratorTransfert()
    m_ShootLight		= 0;
    m_ShootHeavy		= 0;
 }
+
+
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-void	EventGeneratorTransfert::SetTarget(Target* Target) 
-   {
-   	if(Target!=0)	
-   		{
-   			m_Target = Target;
-   			G4int LightZ = m_Reaction->GetNucleus3()->GetZ() ;
-  			G4int LightA = m_Reaction->GetNucleus3()->GetA() ;
-   			m_Target->WriteDEDXTable(G4ParticleTable::GetParticleTable()->GetIon(LightZ,LightA, 0.) ,0, m_BeamEnergy);
-   		}
-   
+void EventGeneratorTransfert::SetTarget(Target* Target) 
+{
+   if (Target != 0) {
+      m_Target = Target;
+      G4int LightZ = m_Reaction->GetNucleus3()->GetZ();
+      G4int LightA = m_Reaction->GetNucleus3()->GetA();
+      m_Target->WriteDEDXTable(G4ParticleTable::GetParticleTable()->GetIon(LightZ,LightA, 0.) ,0, m_BeamEnergy);
    }
+}
+
+
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 EventGeneratorTransfert::~EventGeneratorTransfert()
 {
@@ -384,16 +386,16 @@ void EventGeneratorTransfert::GenerateEvent(G4Event* anEvent , G4ParticleGun* pa
    G4double FinalBeamEnergy = 0 ;
    G4double InitialBeamEnergy = RandGauss::shoot(m_BeamEnergy, m_BeamEnergySpread);
    
-	m_Target->CalculateBeamInteraction(	0, m_SigmaX, 0, m_SigmaThetaX,
-                            					0, m_SigmaY, 0, m_SigmaPhiY,
-				                            	InitialBeamEnergy,
-				                            	BeamName,
-				                           	 	InterCoord, Beam_thetaX, Beam_phiY,
-                            					Beam_theta, Beam_phi,
-				                           	 	FinalBeamEnergy);
+   m_Target->CalculateBeamInteraction(0, m_SigmaX, 0, m_SigmaThetaX,
+                                      0, m_SigmaY, 0, m_SigmaPhiY,
+				      InitialBeamEnergy,
+				      BeamName,
+				      InterCoord, Beam_thetaX, Beam_phiY,
+                                      Beam_theta, Beam_phi,
+				      FinalBeamEnergy);
 				                           	 	
-	m_Reaction->SetBeamEnergy(FinalBeamEnergy);
-  m_InitConditions->SetICIncidentEnergy(FinalBeamEnergy / MeV);
+   m_Reaction->SetBeamEnergy(FinalBeamEnergy);
+   m_InitConditions->SetICIncidentEnergy(FinalBeamEnergy / MeV);
   
    // write vertex position to ROOT file
    G4double x0 = InterCoord.x();
diff --git a/NPSimulation/src/Target.cc b/NPSimulation/src/Target.cc
index 51eba32448deaa208974316e2729fddc5e7b8902..09bf750a14c7532cd4fd669bcb26abaf43467de1 100644
--- a/NPSimulation/src/Target.cc
+++ b/NPSimulation/src/Target.cc
@@ -292,7 +292,7 @@ void Target::ReadConfiguration(string Path)
 	            cout  << m_TargetZ / mm << " )" << endl ;           
 	         }
 
-	        else if (DataBuffer.compare(0, 9, "NbLayers=") == 0) {
+	        else if (DataBuffer.compare(0, 9, "NBLAYERS=") == 0) {
 	        	check_m_TargetNbLayers = true ;
 	            ConfigFile >> DataBuffer;
 	            m_TargetNbLayers = atoi(DataBuffer.c_str());
@@ -386,7 +386,7 @@ void Target::ReadConfiguration(string Path)
 	            cout << m_TargetZ / mm << " )" << endl ;
 	         }
 
-	        else if (DataBuffer.compare(0, 9, "m_TargetNbLayers=") == 0) {
+	        else if (DataBuffer.compare(0, 9, "NBLAYERS=") == 0) {
 	        	check_m_TargetNbLayers = true ;
 	            ConfigFile >> DataBuffer;
 	            m_TargetNbLayers = atoi(DataBuffer.c_str());