diff --git a/Inputs/EventGenerator/10He.reaction b/Inputs/EventGenerator/10He.reaction
index ee2cb1ea1089651bdddd99f13061d8086992d5d6..fd541ea4adedd68d3b50a8e3695be77473a5e2ea 100644
--- a/Inputs/EventGenerator/10He.reaction
+++ b/Inputs/EventGenerator/10He.reaction
@@ -7,7 +7,8 @@ TransfertToResonance
 	Target= 2H
 	Light= 3He
 	Heavy= 10He
-	ExcitationEnergy= 1.0
+	ExcitationEnergyLight= 0.0
+	ExcitationEnergyHeavy= 1.0
 	BeamEnergy= 550
 	BeamEnergySpread= 0
 	SigmaThetaX= 0.01
diff --git a/Inputs/EventGenerator/12Li.reaction b/Inputs/EventGenerator/12Li.reaction
index 72e2d4fa12c490e0e612ca4b323998c56f50ed02..d8b2cc58eeea144bcb08a5241a558cd6633b769c 100644
--- a/Inputs/EventGenerator/12Li.reaction
+++ b/Inputs/EventGenerator/12Li.reaction
@@ -8,7 +8,8 @@ Transfert
 	Target= 2H
 	Light= 1H
 	Heavy= 12Li
-	ExcitationEnergy= 1.0
+	ExcitationEnergyLight= 0.0
+	ExcitationEnergyHeavy= 1.0
 	BeamEnergy= 550
 	BeamEnergySpread= 0
 	SigmaThetaX= 0.6921330164
diff --git a/Inputs/EventGenerator/132Sndp.reaction b/Inputs/EventGenerator/132Sndp.reaction
index 6507dc83e390319a9d86f2e4dcf55c9ab6f25533..dc220bd6c9449b5f4e4c328b719f0265535a8373 100644
--- a/Inputs/EventGenerator/132Sndp.reaction
+++ b/Inputs/EventGenerator/132Sndp.reaction
@@ -7,7 +7,8 @@ Transfert
 	Target= 2H
 	Light= 1H
 	Heavy= 133Sn
-	ExcitationEnergy= 0.0
+	ExcitationEnergyLight= 0.0
+	ExcitationEnergyHeavy= 5.0
 	BeamEnergy= 1320
 	BeamEnergySpread= 0
 	SigmaX= 0
diff --git a/Inputs/EventGenerator/132SndpTestMarcIsotropic.reaction b/Inputs/EventGenerator/132SndpTestMarcIsotropic.reaction
index ccc4df42691cf921f4fc67a1b4b4fb64771b4932..3a3f1a6c67db8a048272fd1baf556cff0709a48f 100644
--- a/Inputs/EventGenerator/132SndpTestMarcIsotropic.reaction
+++ b/Inputs/EventGenerator/132SndpTestMarcIsotropic.reaction
@@ -7,7 +7,8 @@ Transfert
 	Target= 2H
 	Light= 1H
 	Heavy= 133Sn
-	ExcitationEnergy= 0.0
+	ExcitationEnergyLight= 0.0
+	ExcitationEnergyHeavy= 0.0
 	BeamEnergy= 1320
 	BeamEnergySpread= 0
 	SigmaX= 0.851
diff --git a/Inputs/EventGenerator/134Snpt.reaction b/Inputs/EventGenerator/134Snpt.reaction
index 6ff89b7fe5c5750df094da8717258743867915b8..5a9d186af754c566aa0226ff32864e729f21e30e 100644
--- a/Inputs/EventGenerator/134Snpt.reaction
+++ b/Inputs/EventGenerator/134Snpt.reaction
@@ -7,7 +7,8 @@ Transfert
 	Target= 1H
 	Light= 3H
 	Heavy= 132Sn
-	ExcitationEnergy= 0.0
+	ExcitationEnergyLight= 0.0
+	ExcitationEnergyHeavy= 0.0
 	BeamEnergy= 1340
 	BeamEnergySpread= 0
 	SigmaX= 0
diff --git a/Inputs/EventGenerator/27Alppp.reaction b/Inputs/EventGenerator/27Alppp.reaction
index 3b5ebe181917689702972e8d16446e39c45524c0..e8190b868da45f7a64ba253dcf1399465dbf65e0 100644
--- a/Inputs/EventGenerator/27Alppp.reaction
+++ b/Inputs/EventGenerator/27Alppp.reaction
@@ -7,7 +7,8 @@ TransfertToResonance
 	Target= 27Al
 	Light= 1H
 	Heavy= 27Al
-	ExcitationEnergy= 13.0
+	ExcitationEnergyLight= 0.0
+	ExcitationEnergyHeavy= 13.0
 	BeamEnergy= 18
 	BeamEnergySpread= 0
 	SigmaThetaX= 0
diff --git a/Inputs/EventGenerator/34Si.reaction b/Inputs/EventGenerator/34Si.reaction
index 41a35ec8e0a24a92782a3bf5202d1700d4c628ac..1e5b5a69320d0988036f71b1348b0f175ccc9fa9 100644
--- a/Inputs/EventGenerator/34Si.reaction
+++ b/Inputs/EventGenerator/34Si.reaction
@@ -3,7 +3,8 @@ Transfert
        Target= 208Pb
        Light= 208Pb
        Heavy= 19C
-       ExcitationEnergy= 5.9
+       ExcitationEnergyLight= 5.9
+       ExcitationEnergyHeavy= 5.9
        BeamEnergy= 722
        BeamEnergySpread= 0
        SigmaThetaX= 0.6921330164
diff --git a/Inputs/EventGenerator/60Fe.reaction b/Inputs/EventGenerator/60Fe.reaction
index ea0874438d3a70b841bdbd8852d269b7e4d3e949..8209d1e8673438c97d39bb957de3be17e56ad10b 100644
--- a/Inputs/EventGenerator/60Fe.reaction
+++ b/Inputs/EventGenerator/60Fe.reaction
@@ -7,7 +7,8 @@ Transfert
 	Target= 2H
 	Light= 1H
 	Heavy= 61Fe
-	ExcitationEnergy= 2.0
+	ExcitationEnergyLight= 0.0
+	ExcitationEnergyHeavy= 2.0
 	BeamEnergy= 1200
 	BeamEnergySpread= 0
 	SigmaX= 3
diff --git a/Inputs/EventGenerator/69Ni.reaction b/Inputs/EventGenerator/69Ni.reaction
index 76d9893d208d6550f08f8965d29bca51e9392fc5..91461447288df0b2fa154ef15dd6acfd80ab8b55 100644
--- a/Inputs/EventGenerator/69Ni.reaction
+++ b/Inputs/EventGenerator/69Ni.reaction
@@ -7,7 +7,8 @@ Transfert
 	Target= 2H
 	Light= 1H
 	Heavy= 69Ni
-	ExcitationEnergy= 2.0
+	ExcitationEnergyLight= 0.0
+	ExcitationEnergyHeavy= 2.0
 	BeamEnergy= 1904
 	BeamEnergySpread= 0
 	SigmaX= 1.5
diff --git a/Inputs/EventGenerator/9He.reaction b/Inputs/EventGenerator/9He.reaction
index 6b34ff1e06157af39bbd0354056b666dab70d0be..efff66a0203b316eba044e1b7aa02851e504b33a 100644
--- a/Inputs/EventGenerator/9He.reaction
+++ b/Inputs/EventGenerator/9He.reaction
@@ -8,7 +8,8 @@ Transfert
 	Target= 2H
 	Light= 4He
 	Heavy= 9He
-	ExcitationEnergy= 1.0
+	ExcitationEnergyLight= 0.0
+	ExcitationEnergyHeavy= 1.0
 	BeamEnergy= 550
 	BeamEnergySpread= 0
 	SigmaThetaX= 0.6921330164
diff --git a/Inputs/EventGenerator/Source.reaction b/Inputs/EventGenerator/Source.reaction
index d430437c75a389988e7b0c3592f7fc2e2990e822..12b39ee5e0424d239a92f8623d71bd436e640ec0 100644
--- a/Inputs/EventGenerator/Source.reaction
+++ b/Inputs/EventGenerator/Source.reaction
@@ -9,7 +9,8 @@ Transfert
 	Target= 2H
 	Light= 1H
 	Heavy= 12Li
-	ExcitationEnergy= 1.0
+	ExcitationEnergyLight= 0.0
+	ExcitationEnergyHeavy= 1.0
 	BeamEnergy= 550
 	BeamEnergySpread= 0
 	SigmaThetaX= 0.6921330164
diff --git a/Inputs/EventGenerator/e569.reaction b/Inputs/EventGenerator/e569.reaction
index c7f8df64e2f11705d0bcb0dfd171f77467d212af..108c421bc77c715ad29e00617257164f8a464862 100644
--- a/Inputs/EventGenerator/e569.reaction
+++ b/Inputs/EventGenerator/e569.reaction
@@ -7,7 +7,8 @@ Transfert
 	Target= 2H
 	Light= 3H
 	Heavy= 13O
-	ExcitationEnergy= 0.0
+	ExcitationEnergyLight= 0.0
+	ExcitationEnergyHeavy= 0.0
 	BeamEnergy= 252
 	BeamEnergySpread= 0
 	SigmaX= 2
diff --git a/NPLib/Makefile b/NPLib/Makefile
index f485a6a30d943c384be7656e65f9a252d5ee6e32..d9939ba9a1ce34a3552d14f10e1fd10ddfd31586 100644
--- a/NPLib/Makefile
+++ b/NPLib/Makefile
@@ -35,6 +35,7 @@ distclean:
 	rm -f ./lib/*
 	rm -f ./include/*.h 
 	rm -f liblist
+	rm -f ./scripts/NPToolLogon_C*
 	./scripts/makefile.sh distclean
 
 .SUFFIXES: .$(SrcSuf)
diff --git a/NPLib/Tools/NPReaction.cxx b/NPLib/Tools/NPReaction.cxx
index 2c85273a770e0bb38608fe73d9e3d5fe0374f1ed..cb3f6a9cf213c9310ef1310f131dedbf8ca1958e 100644
--- a/NPLib/Tools/NPReaction.cxx
+++ b/NPLib/Tools/NPReaction.cxx
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * Copyright (C) 2009-2010 	this file is part of the NPTool Project          *
+ * Copyright (C) 2009-2010 	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             *
@@ -10,23 +10,25 @@
  * Original Author :  Adrien MATTA    contact address: matta@ipno.in2p3.fr   *
  *                                                                           *
  * Creation Date   : March 2009                                              *
- * Last update     :                                                         *
+ * Last update     : January 2011                                            *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
- *	This class deal with Two Body transfert Reaction                         *
- *	Physical parameter (Nuclei mass) are loaded from the nubtab03.asc file   *
- *	(2003 nuclear table of isotopes mass).                                   *
- *	                                                                         *
- *	KineRelativistic: Used in NPSimulation                                   *
- *	A relativistic calculation is made to compute Light and Heavy nuclei     * 
- *	angle given the Theta CM angle.                                          *
- *	                                                                         * 
- *	ReconstructRelativistic: Used in NPAnalysis                              *
- *	A relativistic calculation is made to compute Excitation energy given the*
- *	light angle and energy in Lab frame.                                     *
- *	                                                                         *
+ *	 This class deal with Two Body transfert Reaction                         *
+ *	 Physical parameter (Nuclei mass) are loaded from the nubtab03.asc file   *
+ *	 (2003 nuclear table of isotopes mass).                                   *
+ *	                                                                          *
+ *	 KineRelativistic: Used in NPSimulation                                   *
+ *	 A relativistic calculation is made to compute Light and Heavy nuclei     * 
+ *	 angle given the Theta CM angle.                                          *
+ *	                                                                          * 
+ *	 ReconstructRelativistic: Used in NPAnalysis                              *
+ *	 A relativistic calculation is made to compute Excitation energy given the*
+ *	 light angle and energy in Lab frame.                                     *
+ *	                                                                          *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
+ *    + 20/01/2011: Add support for excitation energy for light ejectile     *
+ *                  (N. de Sereville)                                        *
  *     Based on previous work by N.de Sereville                              *
  *                                                                           *
  *****************************************************************************/
@@ -60,19 +62,24 @@ Reaction::Reaction()
    fNuclei4       = new Nucleus()		;
    fBeamEnergy = 0								;
    fThetaCM    = 0								;
-   fExcitation = 0								;
+   fExcitationLight = 0								;
+   fExcitationHeavy = 0								;
    fQValue     = 0								;
    initializePrecomputeVariable()	;
 }
 
+
+
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 
-Reaction::Reaction(string name1, string name2, string name3, string name4, double BeamEnergy, double ExcitationEnergy,string Path)
+Reaction::Reaction(string name1, string name2, string name3, string name4, double BeamEnergy, double ExcitationEnergyLight, double ExcitationEnergyHeavy ,string Path)
 {
-	SetEveryThing( name1, name2, name3, name4, BeamEnergy, ExcitationEnergy, Path) ;
+	SetEveryThing( name1, name2, name3, name4, BeamEnergy, ExcitationEnergyLight, ExcitationEnergyHeavy, Path) ;
 }
 
+
+
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 
-void Reaction::SetEveryThing(string name1, string name2, string name3, string name4, double BeamEnergy, double ExcitationEnergy,string Path)
+void Reaction::SetEveryThing(string name1, string name2, string name3, string name4, double BeamEnergy, double ExcitationEnergyLight, double ExcitationEnergyHeavy, string Path)
 {
    //------------- Constructor with nuclei names and beam energy ------------
      
@@ -82,7 +89,8 @@ void Reaction::SetEveryThing(string name1, string name2, string name3, string na
    fNuclei4       = new Nucleus(name4);
    fBeamEnergy = BeamEnergy;
    fThetaCM    = 0;
-   fExcitation = ExcitationEnergy;
+   fExcitationLight = ExcitationEnergyLight;
+   fExcitationHeavy = ExcitationEnergyHeavy;
    fQValue     = (  fNuclei1->GetMassExcess() + fNuclei2->GetMassExcess()
 		  - fNuclei3->GetMassExcess() - fNuclei4->GetMassExcess()) / 1000;
 
@@ -137,10 +145,11 @@ Reaction::~Reaction()
 }
 
 
+
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 
 bool Reaction::CheckKinematic()
-	{
-		// Check if kinematics is allowed
+{
+	// Check if kinematics is allowed
 	   
    // case of inverse kinematics
    double theta = fThetaCM;
@@ -151,14 +160,16 @@ bool Reaction::CheckKinematic()
    double W4lab = W4cm * G * (1 + B*beta4cm*cos(theta + M_PI));
    // test for total energy conversion
    if (fabs(WtotLab - (W3lab+W4lab)) > 1e-6) 
-      return false ;
+      return false;
    
-   else return true ;
-	}
+   else return true;
+}
+
+
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 
 void Reaction::KineRelativistic(double &ThetaLab3, double &EnergieLab3,
-			        double &ThetaLab4, double &EnergieLab4) const
+			                       double &ThetaLab4, double &EnergieLab4) const
 {
 // 2-body relativistic kinematics: direct + inverse
 // EnergieLab3,4 : lab energy in MeV of the 2 ejectiles
@@ -190,24 +201,26 @@ void Reaction::KineRelativistic(double &ThetaLab3, double &EnergieLab3,
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 
 double Reaction::ReconstructRelativistic(double EnergyLab, double ThetaLab) const
-	{
-		// EnergyLab in MeV
-		// ThetaLab in rad
-		double P1 = sqrt(2*m1*fBeamEnergy+(fBeamEnergy*fBeamEnergy))	;
-		double P3 = sqrt(2*m3*EnergyLab+(EnergyLab*EnergyLab))			;
-		double P4 = sqrt(P1*P1+P3*P3-(2*P1*P3*cos(ThetaLab)))			;
-		double E4 = fBeamEnergy+m1+m2-(EnergyLab+m3)					;
-		double m4e = sqrt((E4*E4)-(P4*P4))								;
-		double Eex= m4e-fNuclei4->Mass()												;
-		
-		return Eex;
-	}
+{
+   // EnergyLab in MeV
+   // ThetaLab in rad
+   double P1 = sqrt(2*m1*fBeamEnergy+(fBeamEnergy*fBeamEnergy));
+   double P3 = sqrt(2*m3*EnergyLab+(EnergyLab*EnergyLab));
+   double P4 = sqrt(P1*P1+P3*P3-(2*P1*P3*cos(ThetaLab)));
+   double E4 = fBeamEnergy+m1+m2-(EnergyLab+m3);
+   double m4e = sqrt((E4*E4)-(P4*P4));
+   double Eex= m4e-fNuclei4->Mass();
+	
+   return Eex;
+}
+
+
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 
 //Return ThetaCM									
 double  Reaction::EnergyLabToThetaCM( double EnergyLab , double ExcitationEnergy ) const
 	{
-		if(ExcitationEnergy == -500) ExcitationEnergy = fExcitation; 
+		if(ExcitationEnergy == -500) ExcitationEnergy = fExcitationHeavy; 
 
 		double E1 = (fBeamEnergy+m1)			;
 		double E3 = (EnergyLab+m3)				;
@@ -243,7 +256,8 @@ void Reaction::Print() const
 			 << fBeamEnergy << " MeV" 
 		<< endl	;
 		
-		cout << "Exc = " << fExcitation << " MeV" << endl;
+		cout << "Exc Light = " << fExcitationLight << " MeV" << endl;
+		cout << "Exc Heavy = " << fExcitationHeavy << " MeV" << endl;
 		cout << "Qgg = " << fQValue << " MeV" << endl;
 	}
 	
@@ -256,13 +270,14 @@ void Reaction::ReadConfigurationFile(string Path)
 
 		////////Reaction Setting needs///////
 		   string Beam, Target, Heavy, Light, CrossSectionPath ;
-		   double BeamEnergy = 0 , ExcitationEnergy = 0 ;		   
+		   double BeamEnergy = 0 , ExcitationEnergyLight = 0, ExcitationEnergyHeavy = 0;		   
 		   bool ReadingStatus = false ;
 		   bool check_Beam = false ;
 		   bool check_Target = false ;
 		   bool check_Light = false ;
 		   bool check_Heavy = false ;
-		   bool check_ExcitationEnergy = false ;
+		   bool check_ExcitationEnergyLight = false ;
+		   bool check_ExcitationEnergyHeavy = false ;
 		   bool check_BeamEnergy = false ;
 		   bool check_CrossSectionPath = false ;
 
@@ -328,11 +343,18 @@ void Reaction::ReadConfigurationFile(string Path)
 			            cout << "Heavy " << Heavy << endl;
 			         }
 
-			        else if  (DataBuffer=="ExcitationEnergy=") {
-			        	check_ExcitationEnergy = true ;
+			        else if  (DataBuffer=="ExcitationEnergyLight=") {
+			        	check_ExcitationEnergyLight = true ;
+			            ReactionFile >> DataBuffer;
+			            ExcitationEnergyLight = atof(DataBuffer.c_str()) * MeV;
+			            cout << "Excitation Energy Light" << ExcitationEnergyLight / MeV << " MeV" << endl;
+			         }
+
+			        else if  (DataBuffer=="ExcitationEnergyHeavy=") {
+			        	check_ExcitationEnergyHeavy = true ;
 			            ReactionFile >> DataBuffer;
-			            ExcitationEnergy = atof(DataBuffer.c_str()) * MeV;
-			            cout << "Excitation Energy " << ExcitationEnergy / MeV << " MeV" << endl;
+			            ExcitationEnergyHeavy = atof(DataBuffer.c_str()) * MeV;
+			            cout << "Excitation Energy Heavy" << ExcitationEnergyHeavy / MeV << " MeV" << endl;
 			         }
 
 			        else if  (DataBuffer=="BeamEnergy=") {
@@ -356,19 +378,15 @@ void Reaction::ReadConfigurationFile(string Path)
 			         	
 			         ///////////////////////////////////////////////////
 					//	If all Token found toggle out
-			         if(   	check_Beam && check_Target && check_Light && check_Heavy && check_ExcitationEnergy 
-			         	&&  check_BeamEnergy && check_CrossSectionPath )
-			         	ReadingStatus = false ;	
-
+			         if (check_Beam && check_Target && check_Light && check_Heavy && check_ExcitationEnergyLight 
+			         	&& check_ExcitationEnergyHeavy && check_BeamEnergy && check_CrossSectionPath)
+			         	ReadingStatus = false;
 				}
-			        
-
 			}
 		   
-		   
-		   SetEveryThing(Beam, Target, Light, Heavy,BeamEnergy,ExcitationEnergy,CrossSectionPath);
+		   SetEveryThing(Beam, Target, Light, Heavy,BeamEnergy,ExcitationEnergyLight, ExcitationEnergyHeavy,CrossSectionPath);
 
-		   		ReactionFile.close();
+         ReactionFile.close();
 	}
 	
 	
@@ -376,8 +394,8 @@ void Reaction::initializePrecomputeVariable()
 	{ 
 		 m1 = fNuclei1->Mass();
 		 m2 = fNuclei2->Mass();
-		 m3 = fNuclei3->Mass();
-		 m4 = fNuclei4->Mass() + fExcitation;
+		 m3 = fNuclei3->Mass() + fExcitationLight;
+		 m4 = fNuclei4->Mass() + fExcitationHeavy;
 
 		// center-of-mass velocity
 		 WtotLab = (fBeamEnergy + m1) + m2;
@@ -399,12 +417,3 @@ void Reaction::initializePrecomputeVariable()
 		 K3 = B / beta3cm;
 		 K4 = B / beta4cm;
 	}
-	
-	
-	
-	
-	
-	
-	
-	
-	
diff --git a/NPLib/Tools/NPReaction.h b/NPLib/Tools/NPReaction.h
index 771aedbea5e67073f181fcc4fed4424199a0fede..0ce4cce5cfdc91e21ea7b4d5d272e7bdc7c65098 100644
--- a/NPLib/Tools/NPReaction.h
+++ b/NPLib/Tools/NPReaction.h
@@ -1,7 +1,7 @@
 #ifndef __REACTION__
 #define __REACTION__
 /*****************************************************************************
- * Copyright (C) 2009 	this file is part of the NPTool Project              *
+ * Copyright (C) 2009   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             *
@@ -12,23 +12,25 @@
  * Original Author :  Adrien MATTA    contact address: matta@ipno.in2p3.fr   *
  *                                                                           *
  * Creation Date   : March 2009                                              *
- * Last update     :                                                         *
+ * Last update     : January 2011                                            *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
- *	This class deal with Two Body transfert Reaction                         *
- *	Physical parameter (Nuclei mass) are loaded from the nubtab03.asc file   *
- *	(2003 nuclear table of isotopes mass).                                   *
- *	                                                                         *
- *	KineRelativistic: Used in NPSimulation                                   *
- *	A relativistic calculation is made to compute Light and Heavy nuclei     * 
- *	angle given the Theta CM angle.                                          *
- *	                                                                         * 
- *	ReconstructRelativistic: Used in NPAnalysis                              *
- *	A relativistic calculation is made to compute Excitation energy given the*
- *	light angle and energy in Lab frame.                                     *
- *	                                                                         *
+ *  This class deal with Two Body transfert Reaction                         *
+ *  Physical parameter (Nuclei mass) are loaded from the nubtab03.asc file   *
+ *  (2003 nuclear table of isotopes mass).                                   *
+ *                                                                           *
+ *  KineRelativistic: Used in NPSimulation                                   *
+ *  A relativistic calculation is made to compute Light and Heavy nuclei     *
+ *  angle given the Theta CM angle.                                          *
+ *                                                                           *
+ *  ReconstructRelativistic: Used in NPAnalysis                              *
+ *  A relativistic calculation is made to compute Excitation energy given the*
+ *  light angle and energy in Lab frame.                                     *
+ *                                                                           *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
+ *    + 20/01/2011: Add support for excitation energy for light ejectile     *
+ *                  (N. de Sereville)                                        *
  *                                                                           *
  *                                                                           *
  *****************************************************************************/
@@ -40,99 +42,94 @@
 using namespace std;
 //class Nucleus;
 
-namespace NPL 
-	{
-		class Reaction {
-
-		public:	//	Constructors and Destructors
-			Reaction();
-			Reaction(string name1, string name2, string name3, string name4, double BeamEnergy , double ExcitationEnergy, string Path );
-			~Reaction();
-
-		public:	//	Various Method
-			void	SetEveryThing(string name1, string name2, string name3, string name4, double BeamEnergy, double ExcitationEnergy,string Path)	;
-			void	ReadConfigurationFile(string Path)		;
-
-		private:
-			Nucleus			*fNuclei1				;	//	Beam
-			Nucleus			*fNuclei2				;	//	Target
-			Nucleus			*fNuclei3				;	//	Light ejectile
-			Nucleus			*fNuclei4				;	//	Heavy ejectile
-			double	 		fQValue				;	//	Q-value in MeV
-			double	 		fBeamEnergy			;	//	Beam energy in MeV
-			double	 		fThetaCM			;	//	Center-of-mass angle in radian
-			double	 		fExcitation			;	//	Excitation energy in MeV
-			double*			CrossSection		;	//	Differential CrossSection
-			int					CrossSectionSize	;	//	Size of array containing Differention CrossSection
-		   
-		public:
-			// Getters and Setters
-			void				SetBeamEnergy						(double eBeam)	{fBeamEnergy = eBeam;initializePrecomputeVariable();}
-			void				SetThetaCM							(double angle)	{fThetaCM = angle;initializePrecomputeVariable();}
-			void				SetExcitation						(double exci)		{fExcitation = exci;initializePrecomputeVariable();}
-			double			GetBeamEnergy() 				const		 				{return fBeamEnergy;}
-			double			GetThetaCM() 						const 					{return fThetaCM;}
-			double			GetExcitation() 				const 					{return fExcitation;}
-			double			GetQValue() 						const 					{return fQValue;}
-			Nucleus*		GetNucleus1() 					const 					{return fNuclei1;}
-			Nucleus*		GetNucleus2() 					const 					{return fNuclei2;}
-			Nucleus*		GetNucleus3() 					const 					{return fNuclei3;}
-			Nucleus*		GetNucleus4() 					const 					{return fNuclei4;}  
-			double*			GetCrossSection()				const						{return CrossSection;} 
-			int					GetCrossSectionSize()		const						{return CrossSectionSize;} 
-
-
-
-
-		private:	//	intern precompute variable
-			void initializePrecomputeVariable();
-			double m1 ;
-			double m2 ;
-			double m3 ;
-			double m4 ;
-
-			// center-of-mass velocity
-			double WtotLab ;
-			double P1 ;
-			double B ;
-			double G ;
-
-			// total energy of the ejectiles in the center-of-mass
-			double W3cm ;
-			double W4cm ;
-
-			// velocity of the ejectiles in the center-of-mass
-			double beta3cm  ;
-			double beta4cm  ;
-
-			// Constants of the kinematics
-			double K3 ;
-			double K4 ;
-
-			
-		 public:	//	Kinematics
-		  // Check that the reaction is alowed
-		  bool CheckKinematic();
-		 
-		 
-			//	Compute ThetaLab and EnergyLab for product of reaction
-			void		KineRelativistic(	double &ThetaLab3	, 
-										 	double &EnergieLab3	,
-					         		 		double &ThetaLab4	,
-					         		 		double &EnergieLab4	) const;
-					         		 
-			//	Return Excitation Energy		         		 
-			double		ReconstructRelativistic(	double EnergyLab, 
-													double ThetaLab) const;
-			//	Return ThetaCM									
-			double 		EnergyLabToThetaCM( 	double EnergyLab 		,	//	Energy Measured in lab ref
-											   	double ExcitationEnergy = -500) 	//	Excitation Energy previously calculated. If no argument given, fExcitation is used
-												const;
-			
-			//	Other	//
-											   	
-			//	Print private paremeter									
-			void		Print() const;
-		};
+namespace NPL
+{
+   class Reaction
+   {
+
+      public:  // Constructors and Destructors
+         Reaction();
+         Reaction(string name1, string name2, string name3, string name4, double BeamEnergy , double ExcitationEnergyLight, double ExcitationEnergyHeavy, string Path);
+         ~Reaction();
+
+      public:  // Various Method
+         void SetEveryThing(string name1, string name2, string name3, string name4, double BeamEnergy, double ExcitationEnergyLight, double ExcitationEnergyHeavy, string Path) ;
+         void ReadConfigurationFile(string Path);
+
+      private:
+         Nucleus *fNuclei1;         // Beam
+         Nucleus *fNuclei2;         // Target
+         Nucleus *fNuclei3;         // Light ejectile
+         Nucleus *fNuclei4;         // Heavy ejectile
+         double   fQValue;          // Q-value in MeV
+         double   fBeamEnergy;      // Beam energy in MeV
+         double   fThetaCM;         // Center-of-mass angle in radian
+         double   fExcitation;      // Excitation energy in MeV
+         double   fExcitationLight; // Excitation energy in MeV
+         double   fExcitationHeavy; // Excitation energy in MeV
+         double*  CrossSection;     // Differential CrossSection
+         int      CrossSectionSize; // Size of array containing Differention CrossSection
+
+      public:
+         // Getters and Setters
+         void     SetBeamEnergy(double eBeam)      {fBeamEnergy = eBeam;     initializePrecomputeVariable();}
+         void     SetThetaCM(double angle)         {fThetaCM = angle;        initializePrecomputeVariable();}
+         void     SetExcitationLight(double exci)  {fExcitationLight = exci; initializePrecomputeVariable();}
+         void     SetExcitationHeavy(double exci)  {fExcitationHeavy = exci; initializePrecomputeVariable();}
+         double   GetBeamEnergy() const            {return fBeamEnergy;}
+         double   GetThetaCM() const               {return fThetaCM;}
+         double   GetExcitation() const            {return fExcitation;}
+         double   GetQValue() const                {return fQValue;}
+         Nucleus* GetNucleus1() const              {return fNuclei1;}
+         Nucleus* GetNucleus2() const              {return fNuclei2;}
+         Nucleus* GetNucleus3() const              {return fNuclei3;}
+         Nucleus* GetNucleus4() const              {return fNuclei4;}
+         double*  GetCrossSection() const          {return CrossSection;}
+         int      GetCrossSectionSize() const      {return CrossSectionSize;}
+
+      private: // intern precompute variable
+         void initializePrecomputeVariable();
+         double m1;
+         double m2;
+         double m3;
+         double m4;
+
+         // center-of-mass velocity
+         double WtotLab;
+         double P1;
+         double B;
+         double G;
+
+         // total energy of the ejectiles in the center-of-mass
+         double W3cm;
+         double W4cm;
+
+         // velocity of the ejectiles in the center-of-mass
+         double beta3cm;
+         double beta4cm;
+
+         // Constants of the kinematics
+         double K3;
+         double K4;
+
+      public: // Kinematics
+         // Check that the reaction is alowed
+         bool CheckKinematic();
+
+         // Compute ThetaLab and EnergyLab for product of reaction
+         void KineRelativistic(double &ThetaLab3, double &EnergieLab3,
+                               double &ThetaLab4, double &EnergieLab4) const;
+
+         // Return Excitation Energy
+         double ReconstructRelativistic(double EnergyLab, double ThetaLab) const;
+
+         // Return ThetaCM
+         // EnergyLab: energy measured in the laboratory frame
+         // ExcitationEnergy: excitation energy previously calculated. If no argument given, fExcitation is used
+         double EnergyLabToThetaCM(double EnergyLab, double ExcitationEnergy = -500) const;
+
+         // Print private paremeter
+         void Print() const;
+   };
 }
 #endif
diff --git a/NPSimulation/include/EventGeneratorTransfert.hh b/NPSimulation/include/EventGeneratorTransfert.hh
index 1239a93946a42db217d393342365100505065c77..819acf4905c9e1a576b32721c1fbed3d97102c1c 100644
--- a/NPSimulation/include/EventGeneratorTransfert.hh
+++ b/NPSimulation/include/EventGeneratorTransfert.hh
@@ -11,7 +11,7 @@
  * Original Author: Adrien MATTA  contact address: matta@ipno.in2p3.fr       *
  *                                                                           *
  * Creation Date  : January 2009                                             *
- * Last update    :                                                          *
+ * Last update    : January 2011                                             *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
  *  This event Generator is used to simulated two body TransfertReaction.    *
@@ -20,6 +20,8 @@
  *   section shoot. Eleastic scattering can also be simulated.               *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
+ *    + 20/01/2011: Add support for excitation energy for light ejectile     *
+ *                  (N. de Sereville)                                      *
  *                                                                           *
  *                                                                           *
  *****************************************************************************/
@@ -52,7 +54,8 @@ public:     // Constructors and Destructors
                            string name3             ,        // Product of reaction
                            string name4             ,        // Product of reaction
                            double BeamEnergy        ,        // Beam Energy
-                           double ExcitationEnergy  ,        // Excitation of Heavy Nuclei
+                           double ExcitationEnergyLight  ,        // Excitation of Light Nuclei
+                           double ExcitationEnergyHeavy  ,        // Excitation of Heavy Nuclei
                            double BeamEnergySpread  ,
                            double SigmaX            ,
                            double SigmaY            ,
@@ -107,7 +110,8 @@ private: // TTree to store initial value of beam and reaction
 	                     string name3             ,        // Product of reaction
 	                     string name4             ,        // Product of reaction
 	                     double BeamEnergy        ,        // Beam Energy
-	                     double ExcitationEnergy  ,        // Excitation of Heavy Nuclei
+	                     double ExcitationEnergyLight  ,        // Excitation of Light Nuclei
+	                     double ExcitationEnergyHeavy  ,        // Excitation of Heavy Nuclei
 	                     double BeamEnergySpread  ,
 	                     double SigmaX            ,
 	                     double SigmaY            ,
diff --git a/NPSimulation/include/EventGeneratorTransfertToResonance.hh b/NPSimulation/include/EventGeneratorTransfertToResonance.hh
index dbc1873691d164432e23386a1e73f77c03dc4b62..579a1d97071f8afed8ddc022b3aa98b2adf378fd 100644
--- a/NPSimulation/include/EventGeneratorTransfertToResonance.hh
+++ b/NPSimulation/include/EventGeneratorTransfertToResonance.hh
@@ -11,16 +11,18 @@
  * Original Author: Adrien MATTA  contact address: matta@ipno.in2p3.fr       *
  *                                                                           *
  * Creation Date  : January 2009                                             *
- * Last update    :                                                          *
+ * Last update    : January 2011                                             *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
  *  This event Generator is used to simulated two body TransfertReaction.    *
  *  A Phase Space calculation is then performed to decay the Heavy product.  *
  *  The TGenPhaseSpace from ROOT is used to calculate a phase space decay    *
- *  with flat distribution	                                             *
+ *  with flat distribution	                                                  *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
- *   					                                     *
+ *    + 20/01/2011: Add support for excitation energy for light ejectile     *
+ *                  (N. de Sereville)                                        *
+ *   					                                                           *
  *                                                                           *
  *****************************************************************************/
 // C++ header
@@ -54,7 +56,8 @@ class EventGeneratorTransfertToResonance : public VEventGenerator
 	         string   name3          ,        //Product of reaction
 	         string   name4          ,        //Product of reaction
 	         double   BeamEnergy        ,        //Beam Energy
-	         double   ExcitationEnergy  ,        //Excitation of Heavy Nuclei
+	         double   ExcitationEnergyLight  ,        //Excitation of Light Nuclei
+	         double   ExcitationEnergyHeavy  ,        //Excitation of Heavy Nuclei
 	         double   BeamEnergySpread  ,
 	         double   SigmaX         ,
 	         double   SigmaY         ,
@@ -125,7 +128,8 @@ class EventGeneratorTransfertToResonance : public VEventGenerator
 		         string   name3          ,        //Product of reaction
 		         string   name4          ,        //Product of reaction
 		         double   BeamEnergy        ,        //Beam Energy
-		         double   ExcitationEnergy  ,        //Excitation of Heavy Nuclei
+		         double   ExcitationEnergyLight  ,        //Excitation of Light Nuclei
+		         double   ExcitationEnergyHeavy  ,        //Excitation of Heavy Nuclei
 		         double   BeamEnergySpread  ,
 		         double   SigmaX         ,
 		         double   SigmaY         ,
diff --git a/NPSimulation/src/EventGeneratorTransfert.cc b/NPSimulation/src/EventGeneratorTransfert.cc
index 1e251c2a2378a3d0585d49b99a596e303e008d7a..c19188bf92880bf69f4b4e4196c31e45a2191364 100644
--- a/NPSimulation/src/EventGeneratorTransfert.cc
+++ b/NPSimulation/src/EventGeneratorTransfert.cc
@@ -9,7 +9,7 @@
  * Original Author: Adrien MATTA  contact address: matta@ipno.in2p3.fr       *
  *                                                                           *
  * Creation Date  : January 2009                                             *
- * Last update    :                                                          *
+ * Last update    : January 2011                                             *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
  *  This event Generator is used to simulated two body TransfertReaction.    *
@@ -18,6 +18,8 @@
  *   section shoot. Eleastic scattering can also be simulated.               *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
+ *    + 20/01/2011: Add support for excitation energy for light ejectile     *
+ *                  (N. de Sereville)                                        *
  *                                                                           *
  *                                                                           *
  *****************************************************************************/
@@ -87,7 +89,8 @@ EventGeneratorTransfert::EventGeneratorTransfert(string name1             ,
 		             string name3             ,        // Product of reaction
 		             string name4             ,        // Product of reaction
 		             double BeamEnergy        ,        // Beam Energy
-		             double ExcitationEnergy  ,        // Excitation of Heavy Nuclei
+		             double ExcitationEnergyLight  ,        // Excitation of Light Nuclei
+		             double ExcitationEnergyHeavy  ,        // Excitation of Heavy Nuclei
 		             double BeamEnergySpread  ,
 		             double SigmaX         ,
 		             double SigmaY         ,
@@ -102,7 +105,8 @@ EventGeneratorTransfert::EventGeneratorTransfert(string name1             ,
 		              name3             ,        // Product of reaction
 		              name4             ,        // Product of reaction
 		              BeamEnergy        ,        // Beam Energy
-		              ExcitationEnergy  ,        // Excitation of Heavy Nuclei
+		              ExcitationEnergyLight  ,        // Excitation of Light Nuclei
+		              ExcitationEnergyHeavy  ,        // Excitation of Heavy Nuclei
 		              BeamEnergySpread  ,
 		              SigmaX         ,
 		              SigmaY         ,
@@ -143,7 +147,8 @@ void EventGeneratorTransfert::ReadConfiguration(string Path)
 
 ////////Reaction Setting needs///////
    string Beam, Target, Heavy, Light, CrossSectionPath ;
-   G4double BeamEnergy = 0 , ExcitationEnergy = 0 , BeamEnergySpread = 0 , SigmaX = 0 , SigmaY = 0 , SigmaThetaX = 0 , SigmaPhiY=0;
+   G4double BeamEnergy = 0 , ExcitationEnergyLight = 0, ExcitationEnergyHeavy = 0;
+   G4double BeamEnergySpread = 0 , SigmaX = 0 , SigmaY = 0 , SigmaThetaX = 0 , SigmaPhiY=0;
    bool  ShootLight     = false ;
    bool  ShootHeavy      = false ;
    
@@ -152,7 +157,8 @@ void EventGeneratorTransfert::ReadConfiguration(string Path)
    bool check_Target = false ;
    bool check_Light = false ;
    bool check_Heavy = false ;
-   bool check_ExcitationEnergy = false ;
+   bool check_ExcitationEnergyLight = false ;
+   bool check_ExcitationEnergyHeavy = false ;
    bool check_BeamEnergy = false ;
    bool check_BeamEnergySpread = false ;
    bool check_FWHMX = false ;
@@ -215,11 +221,18 @@ while(ReadingStatus){
 	            G4cout << "Heavy " << Heavy << G4endl;
 	         }
 
-	        else if  (DataBuffer.compare(0, 17, "ExcitationEnergy=") == 0) {
-	        	check_ExcitationEnergy = true ;
+	        else if  (DataBuffer.compare(0, 22, "ExcitationEnergyLight=") == 0) {
+	        	check_ExcitationEnergyLight = true ;
 	            ReactionFile >> DataBuffer;
-	            ExcitationEnergy = atof(DataBuffer.c_str()) * MeV;
-	            G4cout << "Excitation Energy " << ExcitationEnergy / MeV << " MeV" << G4endl;
+	            ExcitationEnergyLight = atof(DataBuffer.c_str()) * MeV;
+	            G4cout << "Excitation Energy Light" << ExcitationEnergyLight / MeV << " MeV" << G4endl;
+	         }
+
+	        else if  (DataBuffer.compare(0, 22, "ExcitationEnergyHeavy=") == 0) {
+	        	check_ExcitationEnergyHeavy = true ;
+	            ReactionFile >> DataBuffer;
+	            ExcitationEnergyHeavy = atof(DataBuffer.c_str()) * MeV;
+	            G4cout << "Excitation Energy Heavy" << ExcitationEnergyHeavy / MeV << " MeV" << G4endl;
 	         }
 
 	        else if  (DataBuffer.compare(0, 11, "BeamEnergy=") == 0) {
@@ -294,7 +307,7 @@ while(ReadingStatus){
 	         	
 	         ///////////////////////////////////////////////////
 			//	If all Token found toggle out
-	         if(   	check_Beam && check_Target && check_Light && check_Heavy && check_ExcitationEnergy 
+	         if(check_Beam && check_Target && check_Light && check_Heavy && check_ExcitationEnergyLight && check_ExcitationEnergyHeavy 
 	         	&&  check_BeamEnergy && check_BeamEnergySpread && check_FWHMX && check_FWHMY && check_EmmitanceTheta 
 	         	&&  check_EmmitancePhi && check_CrossSectionPath && check_ShootLight && check_ShootHeavy)
 	         	ReadingStatus = false ;	
@@ -309,7 +322,8 @@ while(ReadingStatus){
          Light          ,
          Heavy          ,
          BeamEnergy        ,
-         ExcitationEnergy  ,
+         ExcitationEnergyLight  ,
+         ExcitationEnergyHeavy  ,
          BeamEnergySpread  ,
          SigmaX         ,
          SigmaY         ,
@@ -514,7 +528,8 @@ void EventGeneratorTransfert::SetEverything(string name1,		// Beam nuclei
                                             string name3,		// Product of reaction
                                             string name4,		// Product of reaction
                                             double BeamEnergy,		// Beam Energy
-                                            double ExcitationEnergy,	// Excitation of Heavy Nuclei
+                                            double ExcitationEnergyLight,	// Excitation of Light Nuclei
+                                            double ExcitationEnergyHeavy,	// Excitation of Heavy Nuclei
                                             double BeamEnergySpread,
                                             double SigmaX,
                                             double SigmaY,
@@ -524,7 +539,7 @@ void EventGeneratorTransfert::SetEverything(string name1,		// Beam nuclei
                                             bool   ShootHeavy,
                                             string Path) 
 {
-   m_Reaction = new Reaction(name1, name2, name3, name4, BeamEnergy, ExcitationEnergy, Path);	
+   m_Reaction = new Reaction(name1, name2, name3, name4, BeamEnergy, ExcitationEnergyLight, ExcitationEnergyHeavy, Path);	
 		
    m_BeamEnergy       =  BeamEnergy;
    m_BeamEnergySpread =  BeamEnergySpread;
diff --git a/NPSimulation/src/EventGeneratorTransfertToResonance.cc b/NPSimulation/src/EventGeneratorTransfertToResonance.cc
index f7338b3a15f0c470c67fe3d69df7e4e45ae31cea..7094ad899a84011b39259a1421f478232bdb78dc 100644
--- a/NPSimulation/src/EventGeneratorTransfertToResonance.cc
+++ b/NPSimulation/src/EventGeneratorTransfertToResonance.cc
@@ -9,16 +9,18 @@
  * Original Author: Adrien MATTA  contact address: matta@ipno.in2p3.fr       *
  *                                                                           *
  * Creation Date  : January 2009                                             *
- * Last update    :                                                          *
+ * Last update    : January 2011                                             *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
  *  This event Generator is used to simulated two body TransfertReaction.    *
  *  A Phase Space calculation is then performed to decay the Heavy product.  *
  *  The TGenPhaseSpace from ROOT is used to calculate a phase space decay    *
- *  with flat distribution	                                             *
+ *  with flat distribution	                                                  *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
- *   									     *
+ *    + 20/01/2011: Add support for excitation energy for light ejectile     *
+ *                  (N. de Sereville)                                        *
+ *   									                                               *
  *                                                                           *
  *****************************************************************************/
 
@@ -87,7 +89,8 @@ EventGeneratorTransfertToResonance::EventGeneratorTransfertToResonance(	  string
 																	      string   	name3          		,
 																	      string   	name4          		,
 																	      double   	BeamEnergy        	,
-																	      double   	ExcitationEnergy    ,
+																	      double   	ExcitationEnergyLight    ,
+																	      double   	ExcitationEnergyHeavy    ,
 																	      double   	BeamEnergySpread  	,
 																	      double   	SigmaX         	,
 																	      double   	SigmaY         	,
@@ -108,7 +111,8 @@ EventGeneratorTransfertToResonance::EventGeneratorTransfertToResonance(	  string
 		            name3          		,        //Product of reaction
 		            name4          		,        //Product of reaction
 		            BeamEnergy        	,        //Beam Energy
-		            ExcitationEnergy 	,        //Excitation of Heavy Nuclei
+		            ExcitationEnergyLight 	,        //Excitation of Heavy Nuclei
+		            ExcitationEnergyHeavy 	,        //Excitation of Heavy Nuclei
 		            BeamEnergySpread  	,
 		            SigmaX         	,
 		            SigmaY         	,
@@ -147,7 +151,8 @@ void EventGeneratorTransfertToResonance::ReadConfiguration(string Path)
 
 ////////Reaction Setting needs///////
    string Beam, Target, Heavy, Light, CrossSectionPath ;
-   G4double BeamEnergy = 0 , ExcitationEnergy = 0 , BeamEnergySpread = 0 , SigmaX = 0 , SigmaY = 0 , SigmaThetaX = 0 , SigmaPhiY=0,  ResonanceWidth = 0 ,ResonanceDecayZ = 0 , ResonanceDecayA = 0  ;
+   G4double BeamEnergy = 0, ExcitationEnergyLight = 0, ExcitationEnergyHeavy = 0;
+   G4double BeamEnergySpread = 0 , SigmaX = 0 , SigmaY = 0 , SigmaThetaX = 0 , SigmaPhiY=0,  ResonanceWidth = 0 ,ResonanceDecayZ = 0 , ResonanceDecayA = 0  ;
    bool  ShootLight     = false ;
    bool  ShootHeavy      = false ;
    bool ShootDecayProduct = false ;
@@ -157,7 +162,8 @@ void EventGeneratorTransfertToResonance::ReadConfiguration(string Path)
    bool check_Target = false ;
    bool check_Light = false ;
    bool check_Heavy = false ;
-   bool check_ExcitationEnergy = false ;
+   bool check_ExcitationEnergyLight = false ;
+   bool check_ExcitationEnergyHeavy = false ;
    bool check_BeamEnergy = false ;
    bool check_BeamEnergySpread = false ;
    bool check_FWHMX = false ;
@@ -224,11 +230,18 @@ while(ReadingStatus){
 	            G4cout << "Heavy " << Heavy << G4endl;
 	         }
 
-	        else if  (DataBuffer.compare(0, 17, "ExcitationEnergy=") == 0) {
-	        	check_ExcitationEnergy = true ;
+	        else if  (DataBuffer.compare(0, 22, "ExcitationEnergyLight=") == 0) {
+	        	check_ExcitationEnergyLight = true ;
 	            ReactionFile >> DataBuffer;
-	            ExcitationEnergy = atof(DataBuffer.c_str()) * MeV;
-	            G4cout << "Excitation Energy " << ExcitationEnergy / MeV << " MeV" << G4endl;
+	            ExcitationEnergyLight = atof(DataBuffer.c_str()) * MeV;
+	            G4cout << "Excitation Energy Light " << ExcitationEnergyLight / MeV << " MeV" << G4endl;
+	         }
+
+	        else if  (DataBuffer.compare(0, 22, "ExcitationEnergyHeavy=") == 0) {
+	        	check_ExcitationEnergyHeavy = true ;
+	            ReactionFile >> DataBuffer;
+	            ExcitationEnergyHeavy = atof(DataBuffer.c_str()) * MeV;
+	            G4cout << "Excitation Energy Heavy " << ExcitationEnergyHeavy / MeV << " MeV" << G4endl;
 	         }
 
 	        else if  (DataBuffer.compare(0, 11, "BeamEnergy=") == 0) {
@@ -332,7 +345,7 @@ while(ReadingStatus){
 	         	
 	         ///////////////////////////////////////////////////
 			//	If all Token found toggle out
-	         if(   	check_Beam && check_Target && check_Light && check_Heavy && check_ExcitationEnergy 
+	         if (check_Beam && check_Target && check_Light && check_Heavy && check_ExcitationEnergyLight && check_ExcitationEnergyHeavy
 	         	&&  check_BeamEnergy && check_BeamEnergySpread && check_FWHMX && check_FWHMY && check_EmmitanceTheta 
 	         	&&  check_EmmitancePhi && check_CrossSectionPath && check_ShootLight && check_ShootHeavy 
 	         	&& check_ResonanceWidth && check_ResonanceDecayZ && check_ResonanceDecayA && check_ShootDecayProduct)
@@ -348,7 +361,8 @@ while(ReadingStatus){
 			         		Light          			,
 			         		Heavy          			,
 			         		BeamEnergy       		,
-			         		ExcitationEnergy  	,
+			         		ExcitationEnergyLight  	,
+			         		ExcitationEnergyHeavy  	,
 			         		BeamEnergySpread  	,
 			         		SigmaX         			,
 			        		SigmaY         			,
@@ -407,13 +421,13 @@ void EventGeneratorTransfertToResonance::GenerateEvent(G4Event* anEvent , G4Part
 	 // EXX should always be more than specific heat of the reaction
  //   double EXX = RandBreitWigner::shoot(m_ResonanceMean,m_ResonanceWidth) ;	 
  double EXX = RandGauss::shoot(m_ResonanceMean,m_ResonanceWidth) ;	 
-    m_Reaction->SetExcitation( EXX );
+    m_Reaction->SetExcitationHeavy( EXX );
 
 		while ( m_Reaction->CheckKinematic()==false ) 
    		{
 //   			EXX = RandBreitWigner::shoot(m_ResonanceMean,m_ResonanceWidth) ;
 				EXX = RandGauss::shoot(m_ResonanceMean,m_ResonanceWidth) ;	 
-  	  	m_Reaction->SetExcitation( EXX );
+  	  	m_Reaction->SetExcitationHeavy( EXX );
   	  }
    // Beam
    G4int BeamZ = m_Reaction->GetNucleus1()->GetZ();
@@ -744,7 +758,8 @@ void EventGeneratorTransfertToResonance::SetEverything(	  string    name1
 													      string   name3          			,
 													      string   name4          			,
 													      double   BeamEnergy        		,
-													      double   Excitation        		,
+													      double   ExcitationLight        		,
+													      double   ExcitationHeavy        		,
 													      double   BeamEnergySpread  		,
 													      double   SigmaX         			,
 													      double   SigmaY         			,
@@ -765,7 +780,8 @@ void EventGeneratorTransfertToResonance::SetEverything(	  string    name1
 								name3 ,
 								name4 ,
 								BeamEnergy,
-								Excitation,
+								ExcitationLight,
+								ExcitationHeavy,
 								Path) ;
    m_BeamEnergy         = BeamEnergy;
    m_BeamEnergySpread   =  BeamEnergySpread  ;
@@ -774,7 +790,7 @@ void EventGeneratorTransfertToResonance::SetEverything(	  string    name1
    m_SigmaThetaX    =  SigmaThetaX    	 ;
    m_SigmaPhiY    =  SigmaPhiY    	 ;
    m_ResonanceWidth	=	ResonanceWidth	;
-   m_ResonanceMean	= Excitation		;
+   m_ResonanceMean	= ExcitationHeavy		;
    m_ResonanceDecayZ =  ResonanceDecayZ      ;
    m_ResonanceDecayA =  ResonanceDecayA      ;
    m_ShootLight      =  ShootLight       	 ;
diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt
index 771b8be5ea478b300ef57fad16d483e57503dbc7..ac401db3e530c8082f475105ece3004a59ddc8a5 100644
--- a/ReleaseNotes.txt
+++ b/ReleaseNotes.txt
@@ -23,6 +23,9 @@ Nicolas de Sereville, IPNO
       + Symbolic links to *.dylib files are done if on a macosx platform.
       + The 'liblist' file at NPLib level is created.
 
+  + NPReaction class
+    + Now it is possible to give excitation to the light nucleus in exit channel.
+
   + NPOptionManager facility
     + This singleton class allows to pass arguments on the command line when
       executing NPSimulation and NPAnalysis.