diff --git a/Inputs/DetectorConfiguration/Riken_65mm.detector b/Inputs/DetectorConfiguration/Riken_65mm.detector
index b9cb10e37b93666dc589fa0891edb6d25c6bf812..5021536af1898b108b5a6171570a96c956b8ba12 100644
--- a/Inputs/DetectorConfiguration/Riken_65mm.detector
+++ b/Inputs/DetectorConfiguration/Riken_65mm.detector
@@ -4,30 +4,30 @@
 %Temperature in K, Pressure in bar
 %Material name according to the target library
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-GeneralTarget
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-Target
-	THICKNESS= 0.001
-	RADIUS=	45
-	MATERIAL= CD2
-	ANGLE= 45
-	X= 0
-	Y= 0
-	Z= 0
-	
-%CryoTarget
-	THICKNESS= 3
-	RADIUS=	45
-	TEMPERATURE= 26
-	PRESSURE= 1
-	MATERIAL= D2	
-	WINDOWSTHICKNESS= 0
-	WINDOWSMATERIAL= Mylar
-	X= 0
-	Y= 0
-	Z= 0			
-			
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%GeneralTarget
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Target
+%	THICKNESS= 0.001
+%	RADIUS=	45
+%	MATERIAL= CD2
+%	ANGLE= 45
+%	X= 0
+%	Y= 0
+%	Z= 0
+%	
+%%CryoTarget
+%	THICKNESS= 3
+%	RADIUS=	45
+%	TEMPERATURE= 26
+%	PRESSURE= 1
+%	MATERIAL= D2	
+%	WINDOWSTHICKNESS= 0
+%	WINDOWSMATERIAL= Mylar
+%	X= 0
+%	Y= 0
+%	Z= 0			
+%			
 %%%%%%%%%%%%%%%%%%%%%			
 MUST2Array			
 %%%%%%% Telescope 1 %%%%%%%			
@@ -85,7 +85,7 @@ SILI=	0
 CSI=	1		
 VIS=	all		
 %%%%%%% Telescope 6 %%%%%%%			
-%M2Telescope 			
+M2Telescope 			
 X1_Y1=	155.77	50.23	8.18
 X1_Y128=	155.77	-50.23	8.18
 X128_Y1=	133.17	50.23	-89.7
@@ -94,16 +94,16 @@ SI=	1
 SILI=	1		
 CSI=	0		
 VIS=	all		
-% Alternate Telescope 6 %%
-M2Telescope
-	THETA= -130
-	PHI= 0
-	R= 150
-	BETA= 0 0 0
-	SI= 1
-	SILI= 1
-	CSI= 0
-	VIS= all					
+%% Alternate Telescope 6 %%
+%M2Telescope
+%	THETA= -130
+%	PHI= 0
+%	R= 150
+%	BETA= 0 0 0
+%	SI= 1
+%	SILI= 1
+%	CSI= 0
+%	VIS= all					
 %%%%%%% Telescope 7 %%%%%%%			
 M2Telescope 			
 X1_Y1=	27.07	50.23	-154.49
diff --git a/NPAnalysis/e530/src/Analysis.cc b/NPAnalysis/e530/src/Analysis.cc
index c6558b4d14a62fec56b77ee541a1472fbb37e269..b5b310a87367047487e9bbbaa95525c9afeba6c1 100644
--- a/NPAnalysis/e530/src/Analysis.cc
+++ b/NPAnalysis/e530/src/Analysis.cc
@@ -83,8 +83,12 @@ int main(int argc,char** argv)
 					// Angle between beam and particle
 					ThetaLab  = ThetaCalculation ( HitDirection , TVector3(0,0,1)   ) ;	
 					ELab = M2 -> Si_E[hit] + M2 -> SiLi_E[hit]	;
+					
 			  }
 			
+			
+			e530Reaction	-> ; 
+			
       RootOutput::getInstance()->GetTree()->Fill()	;
     }
 
diff --git a/NPLib/Tools/NPEnergyLoss.cxx b/NPLib/Tools/NPEnergyLoss.cxx
index 808ac41d82387445cc6e8284d904dcde31fd8009..29fd40ba88ada3d146f3aae0b20445ad99a7b99e 100644
--- a/NPLib/Tools/NPEnergyLoss.cxx
+++ b/NPLib/Tools/NPEnergyLoss.cxx
@@ -295,3 +295,40 @@ double EnergyLoss::EvaluateInitialEnergy(	double Energy 					, // Energy of the
 		return (Energy*fNumberOfMass)	;
 	}
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+double	EnergyLoss::EvaluateMaterialThickness(	double InitialEnergy 	, // Energy of the detected particle
+		   									            double FinalEnergy	  ,
+                                    double ThicknessLimit,
+                                    double ThicknessStep) // Target Thickness at 0 degree
+		   									            const 
+  {
+    double Thickness = ThicknessStep ;
+    double Energy = InitialEnergy;
+    while(Energy<FinalEnergy && Thickness > 0)
+      {
+        Energy = EvaluateInitialEnergy(Energy,ThicknessStep,0);
+        Thickness+=ThicknessStep;
+        if (Thickness>ThicknessLimit)
+          Thickness= -1 ;
+        
+      }
+    
+    return Thickness ;
+
+  }
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/NPLib/Tools/NPEnergyLoss.h b/NPLib/Tools/NPEnergyLoss.h
index 66cb6783c49efc0b1f9ccf3fbe0c58c22203d54f..200cfdef9aac92243b669953b41fad587d2021e5 100644
--- a/NPLib/Tools/NPEnergyLoss.h
+++ b/NPLib/Tools/NPEnergyLoss.h
@@ -16,18 +16,19 @@
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
  *  Deal with energy loss on basis of a dEdX input file, from SRIM or LISE++ *
- *   The class can be used to evaluate energy loss in material or to Evaluate* 
- *   initial energy before crossing the material.                            *
+ *  or Geant4                                                                *
+ *  The class can be used to evaluate energy loss in material or to Evaluate * 
+ *  initial energy before crossing the material.                             *
  *                                                                           *
- *   The use of Interpolator derived form the GSL insure a very good speed of*
- *   execution.                                                              *
+ *  The use of Interpolator derived form the GSL insure a very good speed of *
+ *  execution.                                                               *
  *                                                                           *
  *   Table Should come in the following unit:                                *
  *   Particle Energy: MeV/u                                                  *
  *   dEdX:            MeV/micrometer                                         *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
- *                                                                           *
+ *        Based on N.Desereville previous classes                            *
  *                                                                           *
  *****************************************************************************/
  
@@ -48,14 +49,8 @@ using namespace CLHEP ;
 #include "Math/Interpolator.h"
 using namespace ROOT::Math;
 
-// Class by Nicolas de Sereville.
-// Added and update June 2009
-
-// Used to correct Energy Loss in material using a dE/dX Table input (ASCII) from SRIM or LISE++
-
 namespace NPL 
 	{
-		//class EnergyLoss : public TObject {
 		 class EnergyLoss {
 		 
 		 public :	//	Constructor
@@ -63,50 +58,59 @@ namespace NPL
 		   EnergyLoss(   	string Path 				,	//	Path of dE/dX table file
 		   								string Source  			, // Type of file : Geant4,Lise,SRIM
 		   				 				int NumberOfSlice		, //	Low number = Faster, High Number = more accurate / typical: 100 to 1000
-		   								int LiseColumns=0		,	//	Indicate which model to read in a lise File, set to 0 (Default value) for a SRIM file
+		   								int LiseColumns=0		,	//	Indicate which model to read in a lise File, set to 0 (Default value) for a SRIM / Geant4 file
 		   				 				int NumberOfMass=1	);//	Number of mass A of the nucleus (used only for Lise file)	
 		   ~EnergyLoss();
 		 
 		 private :	//	dE/dX, slice parameter
-		   int				fNumberOfSlice 		;  	 // Number Of Slice used to evaluate energy loss
-		   int				fNumberOfMass		;	 // Number of mass A of the nucleus (used only for Lise file)	
-		   vector<double> 	fEnergy				;    // Energy
-		   vector<double> 	fdEdX_Nuclear		;    // Nuclear Stopping Power
+		   int				      fNumberOfSlice    ;  	 // Number Of Slice used to evaluate energy loss
+		   int				      fNumberOfMass     ;	 // Number of mass A of the nucleus (used only for Lise file)	
+		   vector<double> 	fEnergy           ;    // Energy
+		   vector<double> 	fdEdX_Nuclear		  ;    // Nuclear Stopping Power
 		   vector<double> 	fdEdX_Electronic	;    // Electronic Stopping Power
-		   vector<double> 	fdEdX_Total			;    // Total Stopping Power
-		   Interpolator*    fInter				;	 // Interpolator Used to evaluate Energy loss at given energy
+		   vector<double> 	fdEdX_Total       ;    // Total Stopping Power
+		   Interpolator*    fInter            ;	 // Interpolator Used to evaluate Energy loss at given energy
 		   
 		public : 	//	General Function on dE/dX table		
-		   double	EvaluateNuclearLoss		(double ener) 	const;
+		   double	EvaluateNuclearLoss     (double ener) 	const;
 		   double	EvaluateElectronicLoss	(double ener) 	const;
-		   double	EvaluateTotalLoss		(double ener) 	const;
+		   double	EvaluateTotalLoss		    (double ener) 	const;
 		   
 		public :	//	Function to Slow down particle or reconstruct their initial energy
 		
 		   //	Calculate Energy of a particle after crossing material
-		   double	Slow(	double Energy 			, // Energy of the detected particle
-		   					double TargetThickness	, // Target Thickness at 0 degree
-		   					double Angle			) // Particle Angle
-		   					const;
+		   double	Slow(	double Energy           , // Energy of the detected particle
+	         					double TargetThickness  , // Target Thickness at 0 degree
+	         					double Angle            ) // Particle Angle
+	         					const;
 		   					
       //	Calculate Energy Loss of a particle inside a material		   					
-		   double EnergyLossCalulation(	double Energy 			, // Energy of the detected particle
-		                             					double TargetThickness	, // Target Thickness at 0 degree
-		                             					double Angle			) // Particle Angle
-		                             					const;					
+		   double EnergyLossCalulation(	double Energy           , // Energy of the detected particle
+                           					double TargetThickness	, // Target Thickness at 0 degree
+                           					double Angle            ) // Particle Angle
+                           					const;					
 		                             					
 		   //	Evaluate Initial Energy of particle before crossing material knowing Angle, final Energy 
 		   //   and Target Thickness.
-		   double	EvaluateInitialEnergy(	double energy 			, // Energy of the detected particle
-		   									double TargetThickness	, // Target Thickness at 0 degree
-		   									double Angle			) // Particle Angle
-		   									const ;
+		   double	EvaluateInitialEnergy(	double energy            , // Energy of the detected particle
+		                 									double TargetThickness	, // Target Thickness at 0 degree
+		                 									double Angle            ) // Particle Angle
+		                 									const ;
+		   	
+		   // Evaluate the thickness the particle has been through using the energy loss and initial energy
+		   // usefull for thickness measurement using particle sources
+		   double	EvaluateMaterialThickness(	double InitialEnergy 	, // Energy of the detected particle
+		   									                  double FinalEnergy	  ,
+                                          double ThicknessLimit ,
+                                          double ThicknessStep = 0.1*micrometer) // Target Thickness at 0 degree
+		   									                  const ;
+		   									
 		public	:	//	Usefull function
 			//	Display parameter	
-		   void         Print() const;
+		   void Print() const;
 		   	//	Draw (CERN ROOT)
-		   void         Draw() const;
-		//ClassDef(EnergyLoss,1)   // Une Classe EnergyLoss
+		   void Draw() const;
+
 		};
 	}