diff --git a/source/branches/CLASSV3/include/CLASSBackEnd.hxx b/source/branches/CLASSV3/include/CLASSBackEnd.hxx
index 22f93623a93c1a7b2a6b8339ab150997382d4cb5..6ca1a599a6ccd38e44901b7c98aea9760d000e27 100644
--- a/source/branches/CLASSV3/include/CLASSBackEnd.hxx
+++ b/source/branches/CLASSV3/include/CLASSBackEnd.hxx
@@ -39,8 +39,8 @@ class CLASSBackEnd : public CLASSFacility
 	public :
 	///< Normal Constructor.
 	CLASSBackEnd(int type = 0);
-	CLASSBackEnd(LogFile* log,int type = 0);
-	CLASSBackEnd(LogFile* log, cSecond cycletime, int type = 0);
+	CLASSBackEnd(CLASSLogger* log,int type = 0);
+	CLASSBackEnd(CLASSLogger* log, cSecond cycletime, int type = 0);
 
 	//********* Get Method *********//
 	/*!
@@ -72,6 +72,9 @@ class CLASSBackEnd : public CLASSFacility
 	virtual	void	SetIVArray(vector<IsotopicVector> ivarray)	{ fIVArray = ivarray; }		//!< Set The isotopicVector Array
 	virtual void	SetOutBackEndFacility(CLASSBackEnd* befacility)	{ fOutBackEndFacility = befacility;
 									  fIsStorageType = true; } //! Set a Out Facility for the fuel
+
+	using CLASSFacility::SetName;
+
 	//@}
 
 
diff --git a/source/branches/CLASSV3/include/CLASSFacility.hxx b/source/branches/CLASSV3/include/CLASSFacility.hxx
index 445518328bb77aad107ff93178af4bf1644dbdaf..0aa316dda0fccfa80b5aea7fcc6a7f71d7c616c9 100644
--- a/source/branches/CLASSV3/include/CLASSFacility.hxx
+++ b/source/branches/CLASSV3/include/CLASSFacility.hxx
@@ -41,10 +41,10 @@ class CLASSFacility : public CLASSObject
 public :
 		///< Normal Constructor.
 	CLASSFacility(int type = 0);
-	CLASSFacility(LogFile* log, int type = 0);
-	CLASSFacility(LogFile* log, cSecond cycletime, int type = 0);
-	CLASSFacility(LogFile* log, cSecond creationtime, cSecond lifetime, int type = 0);
-	CLASSFacility(LogFile* log, cSecond startingtime, cSecond lifetime, cSecond cycletime, int type = 0);
+	CLASSFacility(CLASSLogger* log, int type = 0);
+	CLASSFacility(CLASSLogger* log, cSecond cycletime, int type = 0);
+	CLASSFacility(CLASSLogger* log, cSecond creationtime, cSecond lifetime, int type = 0);
+	CLASSFacility(CLASSLogger* log, cSecond startingtime, cSecond lifetime, cSecond cycletime, int type = 0);
 	
 		//********* Get Method *********//
 	/*!
@@ -81,6 +81,7 @@ public :
 											/// \li 4 start/End of reactor cycle,
 											/// \li 8 end of Cooling,
 											/// \li 16 fuel Fabrication
+	using CLASSObject::SetName;
 
 
 	void SetInsideIV(IsotopicVector isotopicvector)	{ fInsideIV = isotopicvector; }	//!< Set the IV inside the Facility Core
diff --git a/source/branches/CLASSV3/include/CLASSHeaders.hxx b/source/branches/CLASSV3/include/CLASSHeaders.hxx
index 6d1a07642383ec0d9ab1a4f9d5bbb1816428cac2..9c322e2eeba9c500d4c27a0e4023b2271e965477 100755
--- a/source/branches/CLASSV3/include/CLASSHeaders.hxx
+++ b/source/branches/CLASSV3/include/CLASSHeaders.hxx
@@ -13,7 +13,7 @@
 #include "Storage.hxx"
 #include "IsotopicVector.hxx"
 #include "ZAI.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 
 #include "EvolutionData.hxx"
 #include "PhysicModels.hxx"
@@ -21,5 +21,4 @@
 
 #include "ZAIMass.hxx"
 
-
 #endif
diff --git a/source/branches/CLASSV3/include/CLASSLogger.hxx b/source/branches/CLASSV3/include/CLASSLogger.hxx
new file mode 100755
index 0000000000000000000000000000000000000000..c47c7d3f273e8d963d41ebe9e95f01f066408d67
--- /dev/null
+++ b/source/branches/CLASSV3/include/CLASSLogger.hxx
@@ -0,0 +1,182 @@
+#ifndef _LOG_CLASS_
+#define _LOG_CLASS_
+
+
+/*!
+ \file 
+ \brief Header file for CLASSLogger class. 
+
+ 
+ @author BaM
+ @version 2.0
+ */
+
+#include <string>
+#include <fstream>
+
+#include <iostream>
+#include <cstring>
+#include <sstream>
+#include "stdlib.h"
+using namespace std;
+
+
+#ifndef __CINT__
+
+#define ERROR		if(fLog->GetMaxOutPutLVL() >= 0) fLog->E() << "!!!ERROR!!! " << "[" << __FILE__ << ":" << __FUNCTION__ << "]"
+#define WARNING		if(fLog->GetMaxOutPutLVL() >= 1) fLog->W() << "!!WARNING!! " << "[" << __FILE__ << ":" << __FUNCTION__ << "]"
+#define INFO		if(fLog->GetMaxOutPutLVL() >= 2) fLog->I() << "!!!!INFO!!! " << "[" << __FILE__ << "]"
+
+#define DBGL		if(fLog->GetMaxOutPutLVL() >= 3) fLog->D() << __FILE__ << " : " << __LINE__ << " [" << __FUNCTION__ << "]" << endl;
+#define DBGV(x)		if(fLog->GetMaxOutPutLVL() >= 3) fLog->D() << __FILE__ << " : " << __LINE__ << " [" << __FUNCTION__ << "]" << endl;
+
+#else
+
+#define ERROR		cout
+#define INFO		cout
+#define WARNING		cout
+#define DBGL
+#define DBGV(x)
+
+
+#endif
+
+
+
+//-----------------------------------------------------------------------------//
+/*!
+ Define a CLASSLogger.
+ The aim of this class is to centralize the all CLASS software message inside a file.
+
+
+ @author BaM
+ @version 2.0
+ */
+//________________________________________________________________________
+#ifndef _LOGTYPE_CLASS
+#define _LOGTYPE_CLASS
+
+
+
+class LogType
+{
+public:
+	//********* Constructor/Destructor Method *********//
+
+	/*!
+	 \name Constructor/Desctructor
+	 */
+	//@{
+
+
+	LogType(ostream &Log) { fLog = &Log; fLog2 = 0; }	//!< Normal Constructor
+
+	~LogType()  {}	//!< Normal Destructor
+
+	//@}
+
+	//********* In/Out Method *********//
+
+	/*!
+	 \name In/Out
+	 */
+	//@{
+	string GetCLASSLoggerName() const { return fCLASSLoggerName; }	//!w return the CLASSLogger name
+
+	LogType &operator<<(std::ostream& (*manip)(std::ostream &))
+	{
+		manip( *(this->fLog) );
+		if(fLog2)
+			manip( *(this->fLog2) );
+		return *this;
+	}
+
+
+	template<typename T>
+	inline LogType& operator<<(T something)
+	{
+                *(this->fLog) << something;
+		if(fLog2)
+			*(this->fLog2) << something;
+		 return *this;
+	}
+
+
+	void SetSecondOutput(ostream &log) {fLog2 = &log;}
+
+	private :
+
+	ostream *fLog;
+	ostream *fLog2;
+
+	string fCLASSLoggerName;		//!< Log File name
+};
+
+
+#endif
+
+
+#ifndef _CLASSLogger_CLASS
+#define _CLASSLogger_CLASS
+
+
+
+class CLASSLogger
+{
+public:
+
+	//********* Constructor/Destructor Method *********//
+
+	/*!
+	 \name Constructor/Desctructor
+	 */
+	//@{
+
+
+	CLASSLogger(string CLASSLoggerName = "CLASS_OUTPUT.log", int VerboseLvl = 0, int OutputLvl = 1 );	//!< Normal Constructor
+
+	~CLASSLogger();	//!< Normal Destructor
+
+	//@}
+
+	//********* In/Out Method *********//
+
+	/*!
+	 \name In/Out
+	 */
+	//@{
+	string GetCLASSLoggerName() const { return fCLASSLoggerName; }	//!w return the CLASSLogger name
+	int GetMaxOutPutLVL()	const { return fMaxOutPutLVL; }
+	int GetVerboseLVL()	const { return fVerboseLVL; }
+
+	LogType E() {return *fError;}
+	LogType W() {return *fWarning;}
+	LogType D() {return *fDebug;}
+	LogType I() {return *fInfo;}
+
+//@}
+
+
+
+	
+	private :
+	int fMaxOutPutLVL;
+	int fVerboseLVL;
+
+	LogType* fError;
+	LogType* fInfo;
+	LogType* fWarning;
+	LogType* fDebug;
+
+	ofstream fOutPutFile;
+	string fCLASSLoggerName;		//!< Log File name
+};
+
+#endif
+
+
+
+#endif
+
+
+
diff --git a/source/branches/CLASSV3/include/CLASSObject.hxx b/source/branches/CLASSV3/include/CLASSObject.hxx
index 90f2b039c3ca9b36910b32974acfd5e65c55b5e2..9f8217c57def5d57cb1584e433e58b440131bb0c 100644
--- a/source/branches/CLASSV3/include/CLASSObject.hxx
+++ b/source/branches/CLASSV3/include/CLASSObject.hxx
@@ -15,7 +15,7 @@
 #include <string>
 #include <fstream>
 
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 
 #include "TNamed.h"
 
@@ -39,19 +39,24 @@ class CLASSObject : public TNamed
 public :
 	///< Normal Constructor.
 	CLASSObject();
-	CLASSObject(LogFile* log);
+	CLASSObject(CLASSLogger* log);
+
 	
 	virtual CLASSObject* Clone()	{ return new CLASSObject(*this); } //!< Correct way to copy a CLASSObject in case of derivation
 
 
-	void		SetLog(LogFile* log)	{ fLog = log; fIsLog = true; }		//!< Set the LogFile
+	void		SetLog(CLASSLogger* log)	{ fLog = log; fIsLog = true; }		//!< Set the CLASSLogger
+
+	CLASSLogger*	GetLog()		{ return fLog; }		//!< Return the Pointer to the Log
+	bool		IsLog()			{ return fIsLog; }		//!< reutrn true if a CLASSLogger is defined
+
+	using TNamed::SetName;
+protected :
+	CLASSLogger*	fLog;			//!< Pointer to the Log
+
 
-	LogFile*	GetLog()		{ return fLog; }		//!< Return the Pointer to the Log
-	bool		IsLog()			{ return fIsLog; }		//!< reutrn true if a LogFile is defined
-	
 private :
- 	LogFile*	fLog;			//!< Pointer to the Log
-	bool		fIsLog;			//!< Set at true if a LogFile are define
+	bool		fIsLog;			//!< Set at true if a CLASSLogger are define
 	
 	ClassDef(CLASSObject,0);
 };
diff --git a/source/branches/CLASSV3/include/DecayDataBank.hxx b/source/branches/CLASSV3/include/DecayDataBank.hxx
index aae4df63c8242b6bbbf274cc261dd5932d3fd3f7..fdef163ce36db7fb966a9327ef9aefef52b128b3 100644
--- a/source/branches/CLASSV3/include/DecayDataBank.hxx
+++ b/source/branches/CLASSV3/include/DecayDataBank.hxx
@@ -21,7 +21,7 @@ using namespace std;
 typedef long long int cSecond;
 
 class ZAI;
-class LogFile;
+class CLASSLogger;
 
 double ReactionRateWeightedDistance(IsotopicVector IV1, EvolutionData DB );
 double ReactionRateWeightedDistance(EvolutionData DB, IsotopicVector IV1  );
@@ -60,13 +60,13 @@ class DecayDataBank : public CLASSObject
 	//{
 	/// Special Constructor.
 	/*!
-	 Use to load a LogFile
-	 \param LogFile LogFile used for the log...
+	 Use to load a CLASSLogger
+	 \param CLASSLogger CLASSLogger used for the log...
 	 \param DB_index_file path to the index file
-	 \param setlog if the log are stored in the LogFile
+	 \param setlog if the log are stored in the CLASSLogger
 	 \param olfreadmethod true if the old format of EvolutionData are used (ie without the key word such as Inv, XSFiss...)
 	 */
-	DecayDataBank(LogFile* Log, string DB_index_file, bool setlog = true, bool olfreadmethod = true );
+	DecayDataBank(CLASSLogger* Log, string DB_index_file, bool setlog = true, bool olfreadmethod = true );
 	//}
 	
 	//{
diff --git a/source/branches/CLASSV3/include/EQM_LIN_PWR_MOX.hxx b/source/branches/CLASSV3/include/EQM_LIN_PWR_MOX.hxx
index ae84ae30b794ada2ac69f1edf0feb60ca676d921..e6faa430c3fdbbffd90044b5d7268535ff64fa0c 100644
--- a/source/branches/CLASSV3/include/EQM_LIN_PWR_MOX.hxx
+++ b/source/branches/CLASSV3/include/EQM_LIN_PWR_MOX.hxx
@@ -32,7 +32,7 @@ class EQM_LIN_PWR_MOX : public EquivalenceModel
 	public :
 
 	EQM_LIN_PWR_MOX(string WeightPath);
-	EQM_LIN_PWR_MOX(LogFile* log, string WeightPath);
+	EQM_LIN_PWR_MOX(CLASSLogger* log, string WeightPath);
 	~EQM_LIN_PWR_MOX();
 
 	vector<double> BuildFuel(double BurnUp, double HMMass, vector<IsotopicVector> FissilArray, vector<IsotopicVector> FertilArray );
diff --git a/source/branches/CLASSV3/include/EquivalenceModel.hxx b/source/branches/CLASSV3/include/EquivalenceModel.hxx
index 88e25b1395436ecb63f8e4d19aeb1459be7decd4..9bd5dfd78814ecfdce1971c782a07bb70684fc61 100644
--- a/source/branches/CLASSV3/include/EquivalenceModel.hxx
+++ b/source/branches/CLASSV3/include/EquivalenceModel.hxx
@@ -35,7 +35,7 @@ class EquivalenceModel : public CLASSObject
 	public :
 
 	EquivalenceModel();
-	EquivalenceModel(LogFile* log);
+	EquivalenceModel(CLASSLogger* log);
 
 	virtual ~EquivalenceModel();
 
diff --git a/source/branches/CLASSV3/include/EvolutionData.hxx b/source/branches/CLASSV3/include/EvolutionData.hxx
index ec45b24a99e9ee27fcc98dbb7abb8b3445a1a68a..97fb8b8be58ea449ff7cc7443caaac4c90bd5106 100755
--- a/source/branches/CLASSV3/include/EvolutionData.hxx
+++ b/source/branches/CLASSV3/include/EvolutionData.hxx
@@ -18,7 +18,7 @@
 
 class TGraph;
 class EvolutionData;
-class LogFile;
+class CLASSLogger;
 
 using namespace std;
 typedef long long int cSecond;
@@ -65,24 +65,24 @@ public :
 
 
 	//{
-	/// LogFile Constructor.
+	/// CLASSLogger Constructor.
 	/*!
-	 Use create an empty EvolutionData loading a LogFile
-	 \param LogFile LogFile used for the log...
+	 Use create an empty EvolutionData loading a CLASSLogger
+	 \param CLASSLogger CLASSLogger used for the log...
 	 */
-	EvolutionData(LogFile* Log); 	///< Make a new Evolutive Product evolution
+	EvolutionData(CLASSLogger* Log); 	///< Make a new Evolutive Product evolution
 	//}
 
 	//{
 	/// Special Constructor.
 	/*!
 	 Make a new EvolutionData
-	 \param Log LogFile used for the log...
+	 \param Log CLASSLogger used for the log...
 	 \param DB_file path to the DataBase file
 	 \param oldread true if the oldmethod should be use to read the DatBase File
 	 \param zai set the ZAI if you want to add a stable nuclei.
 	 */
-	EvolutionData(LogFile* Log, string DB_file, bool oldread = true, ZAI zai = ZAI(0,0,0) );
+	EvolutionData(CLASSLogger* Log, string DB_file, bool oldread = true, ZAI zai = ZAI(0,0,0) );
 	//}
 
 
diff --git a/source/branches/CLASSV3/include/FabricationPlant.hxx b/source/branches/CLASSV3/include/FabricationPlant.hxx
index 0932af3fd4e03ad2285287f62e94ab17c1bd0d91..1411c7aac29abab9b47adfdd8f6bf2726d27a927 100644
--- a/source/branches/CLASSV3/include/FabricationPlant.hxx
+++ b/source/branches/CLASSV3/include/FabricationPlant.hxx
@@ -18,7 +18,7 @@
 #include "Scenario.hxx"
 #include "Storage.hxx"
 #include "Reactor.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 #include "ZAI.hxx"
 
 using namespace std;
@@ -63,12 +63,12 @@ public :
 	/// Special Constructor.
 	/*!
 	 Make a new FabricationPlant evolution
-	 \param LogFile LogFile used for the log...
+	 \param CLASSLogger CLASSLogger used for the log...
 	 \param storage storage used to build the reprocessed fuel
 	 \param reusable storage used to store all separated material not used in the fabrication process
 	 \param fabricationtime duration of the fabrication process (2 years by default).
 	 */
-	FabricationPlant(LogFile* log, double fabricationtime = 365.25*24*3600*2);
+	FabricationPlant(CLASSLogger* log, double fabricationtime = 365.25*24*3600*2);
 	//}
 
 	~FabricationPlant(); 	///< Normal Destructor.
@@ -95,6 +95,9 @@ public :
 			{ fReactorNextStep.insert( pair<int,cSecond> (reactorid, (cSecond)creationtime-GetCycleTime() ) ); }	//!< Add a new reactor
 
 	void SetReUsableStorage(Storage* store) { fReUsable = store;}
+
+	using CLASSFacility::SetName;
+
 	//@}
 
 
diff --git a/source/branches/CLASSV3/include/IM_Matrix.hxx b/source/branches/CLASSV3/include/IM_Matrix.hxx
index 3b14f64aebdd3ac1e959361330624127043f6629..5e107bb7c625330c40c3a139a38c604fa446c35d 100644
--- a/source/branches/CLASSV3/include/IM_Matrix.hxx
+++ b/source/branches/CLASSV3/include/IM_Matrix.hxx
@@ -17,7 +17,7 @@
 using namespace std;
 
 
-class LogFile;
+class CLASSLogger;
 
 //-----------------------------------------------------------------------------//
 /*!
@@ -38,7 +38,7 @@ class IM_Matrix : public IrradiationModel, DynamicalSystem
 	public :
 
 	IM_Matrix();
-	IM_Matrix(LogFile* log);
+	IM_Matrix(CLASSLogger* log);
 
 
 
diff --git a/source/branches/CLASSV3/include/IM_RK4.hxx b/source/branches/CLASSV3/include/IM_RK4.hxx
index b41738a10118521cb7772d95878c15444f3e61be..2a8f9a9a2c31d81caad228739afdd095a7788651 100644
--- a/source/branches/CLASSV3/include/IM_RK4.hxx
+++ b/source/branches/CLASSV3/include/IM_RK4.hxx
@@ -17,7 +17,7 @@
 using namespace std;
 
 
-class LogFile;
+class CLASSLogger;
 
 //-----------------------------------------------------------------------------//
 /*!
@@ -38,7 +38,7 @@ class IM_RK4 : public IrradiationModel, DynamicalSystem
 	public :
 
 	IM_RK4();
-	IM_RK4(LogFile* Log);
+	IM_RK4(CLASSLogger* Log);
 
 
 
diff --git a/source/branches/CLASSV3/include/IrradiationModel.hxx b/source/branches/CLASSV3/include/IrradiationModel.hxx
index 4c28397a817f4260054e166a0b8cc2241975e3c3..a3f726cec2252ab9bfde4abd5821b45d14f0594f 100644
--- a/source/branches/CLASSV3/include/IrradiationModel.hxx
+++ b/source/branches/CLASSV3/include/IrradiationModel.hxx
@@ -25,7 +25,7 @@ using namespace std;
 typedef long long int cSecond;
 
 class ZAI;
-class LogFile;
+class CLASSLogger;
 //-----------------------------------------------------------------------------//
 /*!
  Define a IrradiationModel.
@@ -46,7 +46,7 @@ class IrradiationModel : public CLASSObject
 	
 	IrradiationModel();
 
-	IrradiationModel(LogFile* log);
+	IrradiationModel(CLASSLogger* log);
 
 	/// virtueal method called to perform the irradiation calculation using a set of cross section.
 	/*!
diff --git a/source/branches/CLASSV3/include/PWR_THPU_FabricationPlant.hxx b/source/branches/CLASSV3/include/PWR_THPU_FabricationPlant.hxx
index f0b357956610b100c2b33c6582e2f25567d5ec74..428e367a247cd48900e866895c9591a795a2e3bf 100644
--- a/source/branches/CLASSV3/include/PWR_THPU_FabricationPlant.hxx
+++ b/source/branches/CLASSV3/include/PWR_THPU_FabricationPlant.hxx
@@ -29,9 +29,9 @@ class PWR_THPU_FabricationPlant : public FabricationPlant
 	//on a besoin de surcherger le constructeur que si
 public :
 	PWR_THPU_FabricationPlant();
-	PWR_THPU_FabricationPlant(LogFile* log);
+	PWR_THPU_FabricationPlant(CLASSLogger* log);
 	
-	PWR_THPU_FabricationPlant(LogFile* log, Storage* storage, Storage* reusable, double fabricationtime = 365.25*24*3600*2);
+	PWR_THPU_FabricationPlant(CLASSLogger* log, Storage* storage, Storage* reusable, double fabricationtime = 365.25*24*3600*2);
 	///< Normal Destructor.
 	~PWR_THPU_FabricationPlant();
 	
diff --git a/source/branches/CLASSV3/include/PWR_THU_FabricationPlant.hxx b/source/branches/CLASSV3/include/PWR_THU_FabricationPlant.hxx
index 464a4735404415cac67d996f63cee5f408bfaaa6..2698854ab423d14026da340f7e94996bee6469d5 100644
--- a/source/branches/CLASSV3/include/PWR_THU_FabricationPlant.hxx
+++ b/source/branches/CLASSV3/include/PWR_THU_FabricationPlant.hxx
@@ -30,9 +30,9 @@ class PWR_THU_FabricationPlant : public FabricationPlant
 	//on a besoin de surcherger le constructeur que si
 public :
 	PWR_THU_FabricationPlant();
-	PWR_THU_FabricationPlant(LogFile* log);
+	PWR_THU_FabricationPlant(CLASSLogger* log);
 	
-	PWR_THU_FabricationPlant(LogFile* log, Storage* storage, Storage* reusable, double fabricationtime = 365.25*24*3600*2);
+	PWR_THU_FabricationPlant(CLASSLogger* log, Storage* storage, Storage* reusable, double fabricationtime = 365.25*24*3600*2);
 	///< Normal Destructor.
 	~PWR_THU_FabricationPlant();
 	
diff --git a/source/branches/CLASSV3/include/Pool.hxx b/source/branches/CLASSV3/include/Pool.hxx
index 04bf4b402d1da580d51d9ac7552809147a71b6ed..20379177afced835a8108379e4245c83725e9270 100755
--- a/source/branches/CLASSV3/include/Pool.hxx
+++ b/source/branches/CLASSV3/include/Pool.hxx
@@ -15,7 +15,7 @@ using namespace std;
 typedef long long int cSecond;
 
 class CLASSBackEnd;
-class LogFile;
+class CLASSLogger;
 class DecayDataBank;
 
 //-----------------------------------------------------------------------------//
@@ -49,11 +49,11 @@ public :
 	/// Special Constructor.
 	/*!
 	 Make a new EvolutionData
-	 \param Log LogFile used for the log...
+	 \param Log CLASSLogger used for the log...
 	 \param abstime time to start the Pool
 	 \param coolingtime duration of the cooling.
 	 */
-	Pool(LogFile* Log, cSecond coolingtime = 5*3600.*24.*365.25); //!<
+	Pool(CLASSLogger* Log, cSecond coolingtime = 5*3600.*24.*365.25); //!<
 	//}
 
 
@@ -61,12 +61,12 @@ public :
 	/// Special Special Constructor.
 	/*!
 	 Make a new EvolutionData
-	 \param Log LogFile used for the log...
+	 \param Log CLASSLogger used for the log...
 	 \param Storage storage which get the fuel after the cooling
 	 \param abstime time to start the Pool
 	 \param coolingtime duration of the cooling.
 	 */
-	Pool(LogFile* log, CLASSBackEnd* Storage,
+	Pool(CLASSLogger* log, CLASSBackEnd* Storage,
 			 cSecond coolingtime = 5*3600.*24.*365.25); //!<
 	//}
 
@@ -94,6 +94,9 @@ public :
 	void SetIVArray(vector<IsotopicVector> ivarray);			//! not use there (Does nothing!!!)
 	void SetIVArray(vector<IsotopicVector> ivarray, vector<cSecond> timearray); //!< Set The isotopicVector Array at the corresponding time
 
+
+	using CLASSBackEnd::SetName;
+
 	//@}
 
 
diff --git a/source/branches/CLASSV3/include/Reactor.hxx b/source/branches/CLASSV3/include/Reactor.hxx
index cf61ff411316ddd95e0f2822a3a17d6f9ca8cb6f..a9b8d933826de830309365002483cf4815cb9fb2 100755
--- a/source/branches/CLASSV3/include/Reactor.hxx
+++ b/source/branches/CLASSV3/include/Reactor.hxx
@@ -23,7 +23,7 @@ class EvolutionData;
 class PhysicModels;
 class FabricationPlant;
 class Storage;
-class LogFile;
+class CLASSLogger;
 
 //-----------------------------------------------------------------------------//
 /*!
@@ -53,25 +53,25 @@ public :
 	Reactor();		///< Normal Constructor.
 
 	//{
-	/// LogFile Constructor.
+	/// CLASSLogger Constructor.
 	/*!
-	 Use create an empty Reactor loading a LogFile
-	 \param LogFile LogFile used for the log...
+	 Use create an empty Reactor loading a CLASSLogger
+	 \param CLASSLogger CLASSLogger used for the log...
 	 */
-	Reactor(LogFile* log);
+	Reactor(CLASSLogger* log);
 	//}
 
 	//{
 	/// Special Constructor for reprocessed fuel.
 	/*!
 	 Make a new reactor
-	 \param LogFile LogFile used for the log...
+	 \param CLASSLogger CLASSLogger used for the log...
 	 \param fueltypeDB Databank describing the evolution of the fuel
 	 \param CLASSBAckEnd Pool used facility wich get the fuel after iradiation
 	 \param creationtime creation time
 	 \param lifetime working time duration.
 	 */
-	Reactor(LogFile* log, PhysicModels* 	fueltypeDB,
+	Reactor(CLASSLogger* log, PhysicModels* 	fueltypeDB,
 		FabricationPlant* fabricationplant, CLASSBackEnd* Pool,
 		cSecond creationtime , cSecond lifetime);
 	//}
@@ -80,7 +80,7 @@ public :
 	 /// Special Constructor for reprocessed fuel using cycletime and Burn-Up.
 	 /*!
 	  Make a new reactor
-	 \param LogFile LogFile used for the log...
+	 \param CLASSLogger CLASSLogger used for the log...
 	 \param fueltypeDB Databank describing the evolution of the fuel
 	 \param CLASSBAckEnd Pool used facility wich get the fuel after iradiation
 	 \param creationtime creation time
@@ -89,7 +89,7 @@ public :
 	 \param HMMass Mass of Heavy Metal in the Reactor
 	 \param BurnUp Burnup reach by the fuel at the end of the cycle
 	 */
-	Reactor(LogFile* log, PhysicModels* 	fueltypeDB,
+	Reactor(CLASSLogger* log, PhysicModels* 	fueltypeDB,
 		FabricationPlant* fabricationplant, CLASSBackEnd* Pool,
 		cSecond creationtime , cSecond lifetime, cSecond cycletime,
 		double HMMass, double BurnUp);
@@ -99,7 +99,7 @@ public :
 	/// Special Constructor for reprocessed fuel using Power and Burn-Up.
 	/*!
 	 Make a new reactor
-	 \param LogFile LogFile used for the log...
+	 \param CLASSLogger CLASSLogger used for the log...
 	 \param fueltypeDB Databank describing the evolution of the fuel
 	 \param CLASSBAckEnd Pool used facility wich get the fuel after iradiation
 	 \param creationtime creation time
@@ -109,7 +109,7 @@ public :
 	 \param BurnUp Burnup reach by the fuel at the end of the cycle
 	 \param ChargeFactor effective charge of the reactor.
 	 */
-	Reactor(LogFile* log, PhysicModels* 	fueltypeDB,
+	Reactor(CLASSLogger* log, PhysicModels* 	fueltypeDB,
 		FabricationPlant* fabricationplant, CLASSBackEnd* Pool,
 		cSecond creationtime , cSecond lifetime,
 		double Power, double HMMass, double BurnUp, double ChargeFactor);
@@ -119,7 +119,7 @@ public :
 	/// Special Constructor for fixed fuel using Power and Burn-Up.
 	/*!
 	 Make a new reactor
-	 \param LogFile LogFile used for the log...
+	 \param CLASSLogger CLASSLogger used for the log...
 	 \param evolutivedb EvolutionData describing the evolution of the fuel
 	 \param CLASSBAckEnd Pool used facility wich get the fuel after iradiation
 	 \param creationtime creation time
@@ -129,7 +129,7 @@ public :
 	 \param BurnUp Burnup reach by the fuel at the end of the cycle
 	 \param ChargeFactor effective charge of the reactor.
 	 */
-	Reactor(LogFile* log, EvolutionData evolutivedb, CLASSBackEnd* Pool,
+	Reactor(CLASSLogger* log, EvolutionData evolutivedb, CLASSBackEnd* Pool,
 		cSecond creationtime, cSecond lifetime,
 		double power, double HMMass, double BurnUp, double ChargeFactor = 1);
 	//}
@@ -215,6 +215,9 @@ public :
 	void	SetLoadingPlan(map<cSecond, pair<EvolutionData, double> > loadingplan)
 					{ fLoadingPlan = loadingplan; fNextPlan = fLoadingPlan.begin(); }
 										//!< Set a LaodingPlan to change the Fuel after some cycle
+
+	using CLASSFacility::SetName;
+
 	//@}
 
 
diff --git a/source/branches/CLASSV3/include/Scenario.hxx b/source/branches/CLASSV3/include/Scenario.hxx
index b3ebff30a976a5d58272745e48636f7096a6cb9c..ed5b57bdc8a41b4510d4ca6bab9457ce1d86f828 100755
--- a/source/branches/CLASSV3/include/Scenario.hxx
+++ b/source/branches/CLASSV3/include/Scenario.hxx
@@ -54,14 +54,14 @@ public :
 
 
 
-	Scenario(LogFile* Log);	///< Log Constructor.
+	Scenario(CLASSLogger* Log= new CLASSLogger(), cSecond abstime = 0);	///< Log Constructor.
  	/*!
-	 Use to load a LogFile
-	 \param LogFile: LogFile used for the log...
+	 Use to load a CLASSLogger
+	 \param CLASSLogger: CLASSLogger used for the log...
 	 */
 
 
-	Scenario(double abstime);	///< Time Constructor.
+	Scenario(cSecond abstime, CLASSLogger* log = new CLASSLogger());	///< Time Constructor.
  	/*!
 	 Use to set the starting time of the Parc
 	 \param abstime: Starting time of the Parc in second
diff --git a/source/branches/CLASSV3/include/Storage.hxx b/source/branches/CLASSV3/include/Storage.hxx
index 6382a548d20aee0eab9f6f0b051f4e1a541b05df..60388f9da260555ff96e9e779f651330f3fb1523 100644
--- a/source/branches/CLASSV3/include/Storage.hxx
+++ b/source/branches/CLASSV3/include/Storage.hxx
@@ -16,7 +16,7 @@
 using namespace std;
 typedef long long int cSecond;
 
-class LogFile;
+class CLASSLogger;
 class DecayDataBank;
 
 //-----------------------------------------------------------------------------//
@@ -46,12 +46,12 @@ public :
  	Storage();		///< Normal Constructor.
 
 	//{
-	/// LogFile Constructor.
+	/// CLASSLogger Constructor.
 	/*!
-	 Use create an empty Stotarage loading a LogFile
-	 \param LogFile LogFile used for the log...
+	 Use create an empty Stotarage loading a CLASSLogger
+	 \param CLASSLogger CLASSLogger used for the log...
 	 */
- 	Storage(LogFile* log);
+ 	Storage(CLASSLogger* log);
 	//}
 
 
@@ -59,10 +59,10 @@ public :
 	/// Special Constructor.
 	/*!
 	 Make a new reactor
-	 \param LogFile LogFile used for the log...
+	 \param CLASSLogger CLASSLogger used for the log...
 	 \param evolutivedb DataBank for decay management
 	 */
-	Storage(LogFile* log, DecayDataBank* evolutivedb);
+	Storage(CLASSLogger* log, DecayDataBank* evolutivedb);
 	//}
 
 
@@ -79,6 +79,10 @@ public :
 	 \name Set Method
 	 */
 	//@{
+
+	using CLASSBackEnd::SetName;
+	using CLASSBackEnd::SetIsStorageType;
+
 	//@}
 
 
@@ -135,7 +139,7 @@ public :
 	/// Write the Isotope composition of all IsotopicVector stored.
 	/*!
 	 Make a new reactor
-	 \param filenam LogFile used for the log...
+	 \param filenam CLASSLogger used for the log...
 	 \param data only use to srite a date in the file, theyr is not treatment of the date in this method....
 	 */
 	void Write(string filename,cSecond date = -1);
diff --git a/source/branches/CLASSV3/include/XSM_CLOSEST.hxx b/source/branches/CLASSV3/include/XSM_CLOSEST.hxx
index a4381a9f789130275e4f776a9a7613f3febae601..b6e1666c68d325ab0aab1d9d2ee330ab3f2f97a0 100644
--- a/source/branches/CLASSV3/include/XSM_CLOSEST.hxx
+++ b/source/branches/CLASSV3/include/XSM_CLOSEST.hxx
@@ -43,7 +43,7 @@ public :
 	 */
 	//@{
 
-	XSM_CLOSEST(LogFile* Log, string DB_index_file, bool oldreadmethod = true );	
+	XSM_CLOSEST(CLASSLogger* Log, string DB_index_file, bool oldreadmethod = true );	
 	~XSM_CLOSEST();
 	//{
 
diff --git a/source/branches/CLASSV3/include/XSM_MLP_PWR_MOX.hxx b/source/branches/CLASSV3/include/XSM_MLP_PWR_MOX.hxx
index cb0c11a38d10b27e9cdad5b725a7a6b864848d07..34c1e730ac35a46a9e6c4f19b904e98e9e07bd4f 100644
--- a/source/branches/CLASSV3/include/XSM_MLP_PWR_MOX.hxx
+++ b/source/branches/CLASSV3/include/XSM_MLP_PWR_MOX.hxx
@@ -42,7 +42,7 @@ public :
 	 */
 	//@{
 
-	XSM_MLP_PWR_MOX(LogFile* Log,string TMVA_Weight_Directory,string InformationFile="",bool IsTimeStep=true);	
+	XSM_MLP_PWR_MOX(CLASSLogger* Log,string TMVA_Weight_Directory,string InformationFile="",bool IsTimeStep=true);	
 	~XSM_MLP_PWR_MOX(); 
 	//{
 
diff --git a/source/branches/CLASSV3/include/XSModel.hxx b/source/branches/CLASSV3/include/XSModel.hxx
index 607a19c8bb247f163a16d58a04582ef7e6cd3520..3e8fbf15b227f8d2469eee7b1448337af6479e63 100644
--- a/source/branches/CLASSV3/include/XSModel.hxx
+++ b/source/branches/CLASSV3/include/XSModel.hxx
@@ -43,7 +43,7 @@ class XSModel : public CLASSObject
 	public : 
 
 	XSModel();
-	XSModel(LogFile* log);
+	XSModel(CLASSLogger* log);
 
 	virtual  EvolutionData GetCrossSections(IsotopicVector IV,double t=0) {return 0;} 
 
diff --git a/source/branches/CLASSV3/src/CLASSBackEnd.cxx b/source/branches/CLASSV3/src/CLASSBackEnd.cxx
index 359f57a2d5258828a2dcebaa3ff5939bc1488101..2f347d704c3bce7115d7f04390934a640c9b4919 100644
--- a/source/branches/CLASSV3/src/CLASSBackEnd.cxx
+++ b/source/branches/CLASSV3/src/CLASSBackEnd.cxx
@@ -2,7 +2,7 @@
 
 #include "DecayDataBank.hxx"
 #include "Scenario.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 
 
 #include <sstream>
@@ -26,13 +26,13 @@ CLASSBackEnd::CLASSBackEnd(int type):CLASSFacility(type)
 	fDecayDataBase = 0;
 }
 
-CLASSBackEnd::CLASSBackEnd(LogFile* log, int type):CLASSFacility(log, type)
+CLASSBackEnd::CLASSBackEnd(CLASSLogger* log, int type):CLASSFacility(log, type)
 {
 	fDecayDataBase = 0;
 }
 
 
-CLASSBackEnd::CLASSBackEnd(LogFile* log, cSecond cycletime, int type):CLASSFacility(log, cycletime, type)
+CLASSBackEnd::CLASSBackEnd(CLASSLogger* log, cSecond cycletime, int type):CLASSFacility(log, cycletime, type)
 {
 	fDecayDataBase = 0;
 }
diff --git a/source/branches/CLASSV3/src/CLASSFacility.cxx b/source/branches/CLASSV3/src/CLASSFacility.cxx
index 6af195a65eeb6827e3fc52fda4e8ffc5ef6275ff..bf110feaca4a9256f5e6a920e7b229816bb8a8e9 100644
--- a/source/branches/CLASSV3/src/CLASSFacility.cxx
+++ b/source/branches/CLASSV3/src/CLASSFacility.cxx
@@ -28,7 +28,7 @@ CLASSFacility::CLASSFacility(int type):CLASSObject()
 	fCycleTime = -1;
 }
 
-CLASSFacility::CLASSFacility(LogFile* log, int type):CLASSObject(log)
+CLASSFacility::CLASSFacility(CLASSLogger* log, int type):CLASSObject(log)
 {
 	fParc = 0;
 
@@ -40,7 +40,7 @@ CLASSFacility::CLASSFacility(LogFile* log, int type):CLASSObject(log)
 }
 
 
-CLASSFacility::CLASSFacility(LogFile* log, cSecond cycletime, int type):CLASSObject(log)
+CLASSFacility::CLASSFacility(CLASSLogger* log, cSecond cycletime, int type):CLASSObject(log)
 {
 	fParc = 0;
 
@@ -51,7 +51,7 @@ CLASSFacility::CLASSFacility(LogFile* log, cSecond cycletime, int type):CLASSObj
 	fCycleTime = cycletime;
 }
 
-CLASSFacility::CLASSFacility(LogFile* log, cSecond creationtime, cSecond lifetime, int type):CLASSObject(log)
+CLASSFacility::CLASSFacility(CLASSLogger* log, cSecond creationtime, cSecond lifetime, int type):CLASSObject(log)
 {
 	fParc = 0;
 
@@ -64,7 +64,7 @@ CLASSFacility::CLASSFacility(LogFile* log, cSecond creationtime, cSecond lifetim
 	fLifeTime = lifetime;
 }
 
-CLASSFacility::CLASSFacility(LogFile* log, cSecond creationtime, cSecond lifetime, cSecond cycletime, int type):CLASSObject(log)
+CLASSFacility::CLASSFacility(CLASSLogger* log, cSecond creationtime, cSecond lifetime, cSecond cycletime, int type):CLASSObject(log)
 {
 	fParc = 0;
 
diff --git a/source/branches/CLASSV3/src/CLASSLogger.cxx b/source/branches/CLASSV3/src/CLASSLogger.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..7ea89237106e5e582000f5394f736e6ad2dbc25c
--- /dev/null
+++ b/source/branches/CLASSV3/src/CLASSLogger.cxx
@@ -0,0 +1,114 @@
+
+#include "CLASSLogger.hxx"
+
+#include <iostream>
+#include <ostream>
+#include <algorithm>
+using namespace std;
+
+//________________________________________________________________________
+//
+//		CLASSLogger
+//
+//
+//
+//
+//________________________________________________________________________
+
+CLASSLogger::CLASSLogger(string CLASSLoggerName, int VerboseLvl, int OutputLvl )
+{
+	fCLASSLoggerName = CLASSLoggerName;
+	fOutPutFile.open(CLASSLoggerName.c_str());
+	fVerboseLVL = VerboseLvl; 
+	if(!fOutPutFile)
+	{
+		cout << "Could not open the CLASSLogger: " << CLASSLoggerName << " !" << endl;
+		exit(-1);
+	}
+	else
+		cout << "CLASSLogger: " << CLASSLoggerName << " opened." << endl;
+	fError = 0;
+	fWarning = 0;
+	fDebug = 0;
+	fInfo = 0;
+
+	if (VerboseLvl <= OutputLvl)
+		fMaxOutPutLVL = OutputLvl;
+	else
+		fMaxOutPutLVL = VerboseLvl;
+
+	if(VerboseLvl >= 0)
+	{
+		if (!fError)
+			fError = new LogType(std::cout);
+		else
+			fError->SetSecondOutput(std::cout);
+	}
+
+	if(VerboseLvl >= 1)
+	{
+		if (!fWarning)
+			fWarning = new LogType(std::cout);
+		else
+			fWarning->SetSecondOutput(std::cout);
+	}
+	if(VerboseLvl >= 2)
+	{
+		if (!fInfo)
+			fInfo = new LogType(std::cout);
+		else
+			fInfo->SetSecondOutput(std::cout);
+	}
+	if(VerboseLvl >= 3)
+	{
+	if (!fDebug)
+			fDebug = new LogType(std::cout);
+		else
+			fDebug->SetSecondOutput(std::cout);
+	}
+
+
+	if(OutputLvl >= 0)
+	{
+		if (!fError)
+			fError = new LogType(fOutPutFile);
+		else
+			fError->SetSecondOutput(fOutPutFile);
+	}
+	if(OutputLvl >= 1)
+	{
+		if (!fWarning)
+			fWarning = new LogType(fOutPutFile);
+		else
+			fWarning->SetSecondOutput(fOutPutFile);
+	}
+	if(OutputLvl >= 2)
+	{
+		if (!fInfo)
+			fInfo = new LogType(fOutPutFile);
+		else
+			fInfo->SetSecondOutput(fOutPutFile);
+	}
+	if(OutputLvl >= 3)
+	{
+		if (!fDebug)
+			fDebug = new LogType(fOutPutFile);
+		else
+			fDebug->SetSecondOutput(fOutPutFile);
+	}
+
+
+
+}
+
+//________________________________________________________________________
+CLASSLogger::~CLASSLogger()
+{
+
+	fOutPutFile.close();
+
+}
+
+
+
+
diff --git a/source/branches/CLASSV3/src/CLASSObject.cxx b/source/branches/CLASSV3/src/CLASSObject.cxx
index 6e3781a0377e1aa067bdfcaa42a869617c4a9187..2fbface2cd38878ce1e199ea4f89e231928e9d5d 100644
--- a/source/branches/CLASSV3/src/CLASSObject.cxx
+++ b/source/branches/CLASSV3/src/CLASSObject.cxx
@@ -1,6 +1,6 @@
 #include "CLASSObject.hxx"
 
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 
 using namespace std;
 
@@ -21,7 +21,7 @@ CLASSObject::CLASSObject()
 	fIsLog = false;
 }
 
-CLASSObject::CLASSObject(LogFile* log)
+CLASSObject::CLASSObject(CLASSLogger* log)
 {
 	SetLog(log);
 }
\ No newline at end of file
diff --git a/source/branches/CLASSV3/src/DecayDataBank.cxx b/source/branches/CLASSV3/src/DecayDataBank.cxx
index 8e1ef583b5c6f42e1256532ed05558ebcdb2f619..64172f423ff2d46799ba7ba656eb5e17341aa794 100644
--- a/source/branches/CLASSV3/src/DecayDataBank.cxx
+++ b/source/branches/CLASSV3/src/DecayDataBank.cxx
@@ -1,7 +1,7 @@
 #include "DecayDataBank.hxx"
 
 #include "IsotopicVector.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 #include "StringLine.hxx"
 
 #include <TGraph.h>
@@ -35,7 +35,7 @@ DecayDataBank::DecayDataBank():CLASSObject()
 //________________________________________________________________________
 //________________________________________________________________________
 
-DecayDataBank::DecayDataBank(LogFile* Log, string DB_index_file, bool setlog, bool olfreadmethod)
+DecayDataBank::DecayDataBank(CLASSLogger* Log, string DB_index_file, bool setlog, bool olfreadmethod)
 {
 	
 	SetLog(Log);
@@ -46,11 +46,8 @@ DecayDataBank::DecayDataBank(LogFile* Log, string DB_index_file, bool setlog, bo
 	// Warning
 	if(IsLog())
 	{
-		cout	<< "!!INFO!! !!!DecayDataBank!!! A EvolutionData has been define :" << endl;
-		cout	<< "\t His index is : \"" << DB_index_file << "\"" << endl << endl;
-		
-		GetLog()->fLog 	<< "!!INFO!! !!!DecayDataBank!!! A EvolutionData has been define :" << endl;
-		GetLog()->fLog	<< "\t His index is : \"" << DB_index_file << "\"" << endl << endl;
+		INFO 	<< " A EvolutionData has been define :" << endl;
+		INFO	<< "\t His index is : \"" << DB_index_file << "\"" << endl << endl;
 	}
 	
 }
@@ -64,7 +61,7 @@ DecayDataBank::~DecayDataBank()
 //________________________________________________________________________
 IsotopicVector	DecayDataBank::Evolution(const ZAI& zai, double dt)
 {
-	
+DBGL
 	IsotopicVector	returnIV;
 	
 	map<ZAI ,EvolutionData >::iterator it = fDecayDataBank.find(zai);
@@ -74,8 +71,7 @@ IsotopicVector	DecayDataBank::Evolution(const ZAI& zai, double dt)
 		ifstream DB_index(fDataBaseIndex.c_str());
 		if( !DB_index)
 		{
-			cout << "!!!EVOLUTIVE DB!!!! Can't open \"" << fDataBaseIndex << "\"" << endl;
-			GetLog()->fLog << "!!!EVOLUTIVE DB!!!! Can't open \"" << fDataBaseIndex << "\"" << endl;
+			ERROR << " Can't open \"" << fDataBaseIndex << "\"" << endl;
 			exit (1);
 		}
 		bool zaifind = false;
@@ -107,8 +103,8 @@ IsotopicVector	DecayDataBank::Evolution(const ZAI& zai, double dt)
 		
 		if(!zaifind)
 		{
-			GetLog()->fLog << "!!Warning!! !!!EVOLUTIVE DB!!! Oups... Can't Find the ZAI : " ;
-			GetLog()->fLog << zai.Z() << " " << zai.A() << " "	<< zai.I() << "!!! It will be considered as stable !!" << endl;
+			WARNING << " Oups... Can't Find the ZAI : "
+			<< zai.Z() << " " << zai.A() << " "	<< zai.I() << "!!! It will be considered as stable !!" << endl;
 			
 			EvolutionData evolutionproduct = EvolutionData(GetLog()," " , false, zai);
 			{fDecayDataBank.insert( pair<ZAI, EvolutionData >(zai, evolutionproduct) );}
@@ -120,7 +116,8 @@ IsotopicVector	DecayDataBank::Evolution(const ZAI& zai, double dt)
 		
 	}
 	else	returnIV = (*it).second.GetIsotopicVectorAt(dt);
-	
+
+DBGL
 	return returnIV;
 }
 
@@ -142,7 +139,7 @@ bool DecayDataBank::IsDefine(const ZAI& zai) const
 //________________________________________________________________________
 IsotopicVector DecayDataBank::GetDecay(IsotopicVector isotopicvector, cSecond t)
 {
-
+DBGL
 	IsotopicVector IV;
 
 	map<ZAI ,double> isotopicquantity = isotopicvector.GetIsotopicQuantity();
@@ -156,8 +153,8 @@ IsotopicVector DecayDataBank::GetDecay(IsotopicVector isotopicvector, cSecond t)
 		}
 	}
 
+DBGL
 	return IV;
-	
 }
 //________________________________________________________________________
 //________________________________________________________________________
diff --git a/source/branches/CLASSV3/src/EQM_LIN_PWR_MOX.cxx b/source/branches/CLASSV3/src/EQM_LIN_PWR_MOX.cxx
index f243a91e5bc65ed309705fa63c3d661e8a8fa791..11201cefea71de51679c7f6928a088bdddcc542e 100644
--- a/source/branches/CLASSV3/src/EQM_LIN_PWR_MOX.cxx
+++ b/source/branches/CLASSV3/src/EQM_LIN_PWR_MOX.cxx
@@ -5,7 +5,7 @@
 #include <vector>
 
 #include "StringLine.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 #include "IsotopicVector.hxx"
 
 
@@ -16,7 +16,7 @@ EQM_LIN_PWR_MOX::EQM_LIN_PWR_MOX(string WeightPath):EquivalenceModel()
 
 	ifstream DataDB(fWeightPath.c_str());							// Open the File
 	if(!DataDB)
-		cout << "!!Warning!! !!!EQM QUAD PWR MOX!!! \n Can't open \"" << fWeightPath << "\"\n" << endl;
+		WARNING << "Can't open \"" << fWeightPath << "\"\n" << endl;
 
 	string line;
 	int start = 0;	// First Get Fuel Parameter
@@ -24,13 +24,13 @@ EQM_LIN_PWR_MOX::EQM_LIN_PWR_MOX(string WeightPath):EquivalenceModel()
 
 	if( StringLine::NextWord(line, start, ' ') != "PARAM")
 	{
-		cout << "!!Bad Trouble!! !!!EQM QUAD PWR MOX!!! Bad Database file : " <<  fWeightPath << " Can't find the Parameter of the DataBase"<< endl;
+		ERROR << " Bad Database file : " <<  fWeightPath << " Can't find the Parameter of the DataBase " << endl;
 		exit (1);
 	}
 	while(start < (int)line.size())
 		fFuelParameter.push_back(atof(StringLine::NextWord(line, start, ' ').c_str()));
 
-	cout << "!!INFO!! !!!EQM QUAD PWR MOX!!! " <<  fFuelParameter.size() << " have been read"<< endl;
+	INFO << fFuelParameter.size() << " have been read " << endl;
 
 
 
@@ -62,13 +62,13 @@ EQM_LIN_PWR_MOX::EQM_LIN_PWR_MOX(string WeightPath):EquivalenceModel()
 }
 
 
-EQM_LIN_PWR_MOX::EQM_LIN_PWR_MOX(LogFile* log, string WeightPath):EquivalenceModel(log)
+EQM_LIN_PWR_MOX::EQM_LIN_PWR_MOX(CLASSLogger* log, string WeightPath):EquivalenceModel(log)
 {
 	fWeightPath =  WeightPath;
 
 	ifstream DataDB(fWeightPath.c_str());							// Open the File
 	if(!DataDB)
-		cout << "!!Warning!! !!!EQM QUAD PWR MOX!!! \n Can't open \"" << fWeightPath << "\"\n" << endl;
+		WARNING << " Can't open \"" << fWeightPath << "\"\n" << endl;
 
 	string line;
 	int start = 0;	// First Get Fuel Parameter
@@ -76,13 +76,13 @@ EQM_LIN_PWR_MOX::EQM_LIN_PWR_MOX(LogFile* log, string WeightPath):EquivalenceMod
 
 	if( StringLine::NextWord(line, start, ' ') != "PARAM")
 	{
-		cout << "!!Bad Trouble!! !!!EQM QUAD PWR MOX!!! Bad Database file : " <<  fWeightPath << " Can't find the Parameter of the DataBase"<< endl;
+		ERROR << " Bad Database file : " <<  fWeightPath << " Can't find the Parameter of the DataBase"<< endl;
 		exit (1);
 	}
 	while(start < (int)line.size())
 		fFuelParameter.push_back(atof(StringLine::NextWord(line, start, ' ').c_str()));
 
-	cout << "!!INFO!! !!!EQM QUAD PWR MOX!!! " <<  fFuelParameter.size() << " have been read"<< endl;
+	INFO << fFuelParameter.size() << " have been read"<< endl;
 
 
 
@@ -222,8 +222,7 @@ vector<double> EQM_LIN_PWR_MOX::BuildFuel(double BurnUp, double HMMass,vector<Is
 
 		if(StockFactionToUse < 0)
 		{
-			cout << "!!Bad Trouble!! !!!FabricationPlant!!! Oups Bug in calculating stock fraction to use "<< endl;
-			//GetLog()->fLog << "!!Bad Trouble!! !!!FabricationPlant!!! Oups Bug in calculating stock fraction to use" << endl;
+			WARNING << "!!!FabricationPlant!!! Oups Bug in calculating stock fraction to use "<< endl;
 			lambda[N_FissilStock_OnCheck] = 0.;
 			N_FissilStock_OnCheck++;
 			FuelBuild = false;
diff --git a/source/branches/CLASSV3/src/EQM_MLP_PWR_MOX.cxx b/source/branches/CLASSV3/src/EQM_MLP_PWR_MOX.cxx
index c3d0d1f1a46f2a9b2f369b8d12ffbb0ea8d1adc4..04976d236e8b565d3c1cb2d2583d6b9a7ac9c369 100644
--- a/source/branches/CLASSV3/src/EQM_MLP_PWR_MOX.cxx
+++ b/source/branches/CLASSV3/src/EQM_MLP_PWR_MOX.cxx
@@ -1,6 +1,6 @@
 #include "EquivalenceModel.hxx"
 #include "EQM_MLP_PWR_MOX.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 #include "StringLine.hxx"
 
 #include <string>
@@ -16,8 +16,6 @@
 #include "TMVA/MethodCuts.h"
 
 
-#include "CLASSHeaders.hxx"
-
 //________________________________________________________________________
 //
 //		EQM_MLP_MOX
@@ -100,8 +98,7 @@ TTree* EQM_MLP_MOX::CreateTMVAInputTree(IsotopicVector Fissil,IsotopicVector Fer
 //cout<<"BU "<<BU<<" U5_enrichment "<<U5_enrichment<<endl;
 	if(Pu8 + Pu9 + Pu10 + Pu11 + Pu12 + Am1 > 1.00001 )//?????1.00001??? I don't know it! goes in condition if =1 !! may be float/double issue ...
 	{
-		cout<<"!!!!!!!!!!!ERRORR!!!!!!!!!!!!"<<endl;
-		cout<<Pu8<<" "<<Pu9<<" "<<Pu10<<" "<<Pu11<<" "<<Pu12<<" "<<Am1<<endl;
+		ERROR << Pu8 << " " << Pu9 << " " << Pu10 << " " << Pu11 << " " << Pu12 << " " << Am1 << endl;
 		exit(0);
 	}
 	// All value are molar (!weight)
diff --git a/source/branches/CLASSV3/src/EQM_QUAD_PWR_MOX.cxx b/source/branches/CLASSV3/src/EQM_QUAD_PWR_MOX.cxx
index aba54ecba9607ee6b90cc9ed7de1fd6476606ded..70bb8fd435dcf5b04d46e9c7d63dba8bec55075c 100644
--- a/source/branches/CLASSV3/src/EQM_QUAD_PWR_MOX.cxx
+++ b/source/branches/CLASSV3/src/EQM_QUAD_PWR_MOX.cxx
@@ -3,7 +3,7 @@
 #include <vector>
 
 #include "StringLine.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 
 
 
@@ -14,7 +14,7 @@ EQM_QUAD_PWR_MOX::EQM_QUAD_PWR_MOX(string WeightPath):EquivalenceModel()
 
 	ifstream DataDB(fWeightPath.c_str());							// Open the File
 	if(!DataDB)
-		cout << "!!Warning!! !!!EQM QUAD PWR MOX!!! \n Can't open \"" << fWeightPath << "\"\n" << endl;
+		WARNING << " Can't open \"" << fWeightPath << "\"" << endl;
 
 	string line;
 	int start = 0;	// First Get Fuel Parameter
@@ -22,13 +22,13 @@ EQM_QUAD_PWR_MOX::EQM_QUAD_PWR_MOX(string WeightPath):EquivalenceModel()
 
 	if( StringLine::NextWord(line, start, ' ') != "PARAM")
 	{
-		cout << "!!Bad Trouble!! !!!EQM QUAD PWR MOX!!! Bad Database file : " <<  fWeightPath << " Can't find the Parameter of the DataBase"<< endl;
+		ERROR << "Bad Database file : " <<  fWeightPath << " Can't find the Parameter of the DataBase " << endl;
 		exit (1);
 	}
 	while(start < (int)line.size())
 		fFuelParameter.push_back(atof(StringLine::NextWord(line, start, ' ').c_str()));
 
-	cout << "!!INFO!! !!!EQM QUAD PWR MOX!!! " <<  fFuelParameter.size() << " have been read"<< endl;
+	INFO << fFuelParameter.size() << " have been read " << endl;
 
 
 	ZAI U8(92,238,0);
diff --git a/source/branches/CLASSV3/src/EquivalenceModel.cxx b/source/branches/CLASSV3/src/EquivalenceModel.cxx
index 6fb06a7329564defa2a54719d55dcf57d2ba9471..4da148d5fb0587c91ffae80426c93aebf9220af1 100644
--- a/source/branches/CLASSV3/src/EquivalenceModel.cxx
+++ b/source/branches/CLASSV3/src/EquivalenceModel.cxx
@@ -10,7 +10,7 @@ EquivalenceModel::EquivalenceModel():CLASSObject()
 
 }
 
-EquivalenceModel::EquivalenceModel(LogFile* log):CLASSObject(log)
+EquivalenceModel::EquivalenceModel(CLASSLogger* log):CLASSObject(log)
 {
 
 }
@@ -89,6 +89,14 @@ vector<double> EquivalenceModel::BuildFuel(double BurnUp, double HMMass,vector<I
 			}
 			AvailableFertilMass=Fertile.GetTotalMass() * 1e6; //in grams
 
+			if( j+1 == int( FertilArray.size() ) && FertilMassNeeded  > AvailableFertilMass ) //if this is the last stock and it's not enought
+			{
+				WARNING <<"You requiere more depleted uranium "<<"("<<DeltaM/1e6<<" t needed) ! Reactor not fill"<<endl;
+				for(int i=0 ; i<int(lambda.size()) ; i++)
+					lambda[i]=0;
+				break;
+			}
+
 		}
 	//cout<<"********FERTILE OK**********"<<endl;
 		/*Calcul the quantity of this composition needed to reach the burnup*/
@@ -113,7 +121,7 @@ void EquivalenceModel::SetLambda(vector<double>& lambda ,int FirstStockID, int L
 {
 		if(LAMBDA_TOT > LastStockID - FirstStockID + 1 )
 		{
-			cout<<"EquivalenceModel::SetLambda FATAL ERROR"<<endl;
+			ERROR << " FATAL ERROR " <<endl;
 			exit(0);
 		}
 
@@ -246,7 +254,7 @@ void EquivalenceModel::FindLambdaMax(int FirstStockID, int LastStockID, vector<I
 				ID_max++ ;
 				if( ID_max >=(int) Stocks.size())
 				{
-					cout<<"EquivalenceModel::FindLambdaMax FATAL ERROR BLG codes like shit"<<endl;
+					ERROR << " FATAL ERROR BLG codes like shit " << endl;
 					exit(0);
 				}
 			}	
diff --git a/source/branches/CLASSV3/src/EvolutionData.cxx b/source/branches/CLASSV3/src/EvolutionData.cxx
index c6cbbd0ca25835a12a3a9764cfa928b81b0dd156..e63fda7ea0cbc8a9e480cabdec9ed35b253b67f1 100755
--- a/source/branches/CLASSV3/src/EvolutionData.cxx
+++ b/source/branches/CLASSV3/src/EvolutionData.cxx
@@ -1,6 +1,6 @@
 #include "EvolutionData.hxx"
 
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 #include "CLASSConstante.hxx"
 #include "StringLine.hxx"
 
@@ -353,7 +353,7 @@ EvolutionData::EvolutionData():CLASSObject()
 }
 
 	//________________________________________________________________________
-EvolutionData::EvolutionData(LogFile* Log)
+EvolutionData::EvolutionData(CLASSLogger* Log)
 {
 	
 	SetLog(Log);
@@ -367,7 +367,7 @@ EvolutionData::EvolutionData(LogFile* Log)
 }
 
 	//________________________________________________________________________
-EvolutionData::EvolutionData(LogFile* Log, string DB_file, bool oldread, ZAI zai)
+EvolutionData::EvolutionData(CLASSLogger* Log, string DB_file, bool oldread, ZAI zai)
 {
 	
 	SetLog(Log);
@@ -533,8 +533,7 @@ double	EvolutionData::GetXSForAt(double t, ZAI zai, int ReactionId)
 			break;
 		case 3: XSEvol = Getn2nXS();
 			break;
-		default:cout << "!!Error!! !!!EvolutionData!!! \n Wrong ReactionId !!" << endl;
-			GetLog()->fLog << "!!Error!! !!!EvolutionData!!! \n Wrong ReactionId !!" << endl;
+		default:ERROR << "!!Error!! !!!EvolutionData!!! \n Wrong ReactionId !!" << endl;
 			exit(1);
 	}
 	
@@ -580,8 +579,7 @@ void EvolutionData::ReadDB(string DBfile, bool oldread)
 	ifstream DecayDB(DBfile.c_str());	// Open the File
 	if(!DecayDB)				//check if file is correctly open
 	{
-		cout << "!!Warning!! !!!EvolutionData!!! \n Can't open \"" << DBfile << "\"\n" << endl;
-		GetLog()->fLog << "!!Warning!! !!!EvolutionData!!! \n Can't open \"" << DBfile << "\"\n" << endl;
+		INFO << "!!Warning!! !!!EvolutionData!!! \n Can't open \"" << DBfile << "\"\n" << endl;
 	}
 	vector<double> vTime;
 	
@@ -591,10 +589,8 @@ void EvolutionData::ReadDB(string DBfile, bool oldread)
 	getline(DecayDB, line);
 	if( tlc(StringLine::NextWord(line, start, ' ')) != "time")
 	{
-		cout << "!!Bad Trouble!! !!!EvolutionData!!! Bad Database file : " <<  DBfile << endl;
-		cout << "!!Bad Trouble!! !!!EvolutionData!!! The first Line MUST be the time line !!!" << endl;
-		GetLog()->fLog << "!!Bad Trouble!! !!!EvolutionData!!! Bad Database file : " <<  DBfile << endl;
-		GetLog()->fLog << "!!Bad Trouble!! !!!EvolutionData!!! The first Line MUST be the time line !!!" << endl;
+		ERROR << "!!Bad Trouble!! !!!EvolutionData!!! Bad Database file : " <<  DBfile << endl;
+		ERROR << "!!Bad Trouble!! !!!EvolutionData!!! The first Line MUST be the time line !!!" << endl;
 		exit (1);
 	}
 	
@@ -688,8 +684,7 @@ void EvolutionData::ReadKeff(string line, double* time, int NTimeStep)
 	int start = 0;
 	if( tlc(StringLine::NextWord(line, start, ' ')) != "keff" )	// Check the keyword
 	{
-		cout << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"keff\" not found !" << endl;
-		GetLog()->fLog << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"keff\" not found !" << endl;
+		ERROR << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"keff\" not found !" << endl;
 		exit(1);
 	}
 	
@@ -721,8 +716,7 @@ void EvolutionData::ReadFlux(string line, double* time, int NTimeStep)
 	
 	if( tlc(StringLine::NextWord(line, start, ' ')) != "flux" )	// Check the keyword
 	{
-		cout << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"flux\" not found !" << endl;
-		GetLog()->fLog << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"flux\" not found !" << endl;
+		ERROR << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"flux\" not found !" << endl;
 		exit(1);
 	}
 	
@@ -750,8 +744,7 @@ void	EvolutionData::ReadInv(string line, double* time, int NTimeStep)
 	int start = 0;
 	if( tlc(StringLine::NextWord(line, start, ' ')) != "inv" )	// Check the keyword
 	{
-		cout << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"inv\" not found !" << endl;
-		GetLog()->fLog << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"inv\" not found !" << endl;
+		ERROR << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"inv\" not found !" << endl;
 		exit(1);
 	}
 		// Read the Z A I
@@ -784,8 +777,7 @@ void	EvolutionData::ReadXSFis(string line, double* time, int NTimeStep)
 	int start = 0;
 	if( tlc(StringLine::NextWord(line, start, ' ')) != "xsfis" )	// Check the keyword
 	{
-		cout << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"xsfis\" not found !" << endl;
-		GetLog()->fLog << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"xsfis\" not found !" << endl;
+		ERROR << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"xsfis\" not found !" << endl;
 		exit(1);
 	}
 		// Read the Z A I
@@ -818,8 +810,7 @@ void	EvolutionData::ReadXSCap(string line, double* time, int NTimeStep)
 	int start = 0;
 	if( tlc(StringLine::NextWord(line, start, ' ')) != "xscap" )	// Check the keyword
 	{
-		cout << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"xscap\" not found !" << endl;
-		GetLog()->fLog << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"xscap\" not found !" << endl;
+		ERROR << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"xscap\" not found !" << endl;
 		exit(1);
 	}
 		// Read the Z A I
@@ -852,8 +843,7 @@ void	EvolutionData::ReadXSn2n(string line, double* time, int NTimeStep)
 	int start = 0;
 	if( tlc(StringLine::NextWord(line, start, ' ')) != "xsn2n" )	// Check the keyword
 	{
-		cout << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"xsn2n\" not found !" << endl;
-		GetLog()->fLog << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"xsn2n\" not found !" << endl;
+		ERROR << "!!ERROR!! !!!EvolutionData!!! \n Bad keyword : \"xsn2n\" not found !" << endl;
 		exit(1);
 	}
 		// Read the Z A I
@@ -897,8 +887,7 @@ void EvolutionData::ReadInfo()
 	ifstream InfoDB(InfoDBFile.c_str());				// Open the File
 	if(!InfoDB)
 	{
-		cout << "!!ERROR!! !!!EvolutionData!!! \n Can't open \"" << InfoDBFile << "\"\n" << endl;
-		GetLog()->fLog << "!!ERROR!! !!!EvolutionData!!! \n Can't open \"" << InfoDBFile << "\"\n" << endl;
+		ERROR << "!!ERROR!! !!!EvolutionData!!! \n Can't open \"" << InfoDBFile << "\"\n" << endl;
 		exit(1);
 	}
 
@@ -931,8 +920,7 @@ void EvolutionData::OldReadDB(string DBfile)
 	ifstream DecayDB(DBfile.c_str());							// Open the File
 	if(!DecayDB)
 	{
-		cout << "!!Warning!! !!!EvolutionData!!! \n Can't open \"" << DBfile << "\"\n" << endl;
-		GetLog()->fLog << "!!Warning!! !!!EvolutionData!!! \n Can't open \"" << DBfile << "\"\n" << endl;
+		WARNING << "!!Warning!! !!!EvolutionData!!! \n Can't open \"" << DBfile << "\"\n" << endl;
 	}
 	vector<double> vTime;
 	vector<double> vTimeErr;
@@ -943,8 +931,7 @@ void EvolutionData::OldReadDB(string DBfile)
 	getline(DecayDB, line);
 	if( StringLine::NextWord(line, start, ' ') != "time")
 	{
-		cout << "!!Bad Trouble!! !!!EvolutionData!!! Bad Database file : " <<  DBfile << endl;
-		GetLog()->fLog << "!!Bad Trouble!! !!!EvolutionData!!! Bad Database file : " <<  DBfile << endl;
+		ERROR << "!!Bad Trouble!! !!!EvolutionData!!! Bad Database file : " <<  DBfile << endl;
 		exit (1);
 	}
 
@@ -1145,7 +1132,7 @@ void EvolutionData::OldReadDB(string DBfile)
 	ifstream InfoDB(InfoDBFile.c_str());							// Open the File
 	if(!InfoDB)
 	{
-		GetLog()->fLog << "!!Warning!! !!!EvolutionData!!! \n Can't open \"" << InfoDBFile << "\"\n" << endl;
+		WARNING << "!!Warning!! !!!EvolutionData!!! \n Can't open \"" << InfoDBFile << "\"\n" << endl;
 		return;
 	}
 
diff --git a/source/branches/CLASSV3/src/FabricationPlant.cxx b/source/branches/CLASSV3/src/FabricationPlant.cxx
index 380b37f152db7b90bc433280a6d92c27c90fff3f..2ed21584203c8a9740cb3278e8bae9d3bb1865ba 100644
--- a/source/branches/CLASSV3/src/FabricationPlant.cxx
+++ b/source/branches/CLASSV3/src/FabricationPlant.cxx
@@ -7,7 +7,7 @@
 #include "PhysicModels.hxx"
 #include "IsotopicVector.hxx"
 #include "Scenario.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 #include "CLASSConstante.hxx"
 
 
@@ -44,7 +44,7 @@ FabricationPlant::FabricationPlant():CLASSFacility(16)
 }
 
 
-FabricationPlant::FabricationPlant(LogFile* log, double fabricationtime):CLASSFacility(log, fabricationtime, 16)
+FabricationPlant::FabricationPlant(CLASSLogger* log, double fabricationtime):CLASSFacility(log, fabricationtime, 16)
 {
 	SetName("F_FabricationPLant.");
 
@@ -52,13 +52,9 @@ FabricationPlant::FabricationPlant(LogFile* log, double fabricationtime):CLASSFa
 	fSubstitutionFuel = false;
 
 
-	cout	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
-	cout	<< "\t Chronological Stock Priority has been set! "<< endl;
-	cout	<< "\t Fabrication time set to \t " << (double)(GetCycleTime()/3600/24/365.25) << " year" << endl << endl;
-	
-	GetLog()->fLog	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
-	GetLog()->fLog	<< "\t Chronological Stock Priority has been set! "<< endl;
-	GetLog()->fLog	<< "\t Fabrication time set to \t " << (double)(GetCycleTime()/3600/24/365.25) << " year" << endl << endl;
+	INFO	<< " A FabricationPlant has been define :" << endl;
+	INFO	<< "\t Chronological Stock Priority has been set! "<< endl;
+	INFO	<< "\t Fabrication time set to \t " << (double)(GetCycleTime()/3600/24/365.25) << " year" << endl << endl;
 	
 	
 
@@ -111,7 +107,7 @@ void FabricationPlant::Evolution(cSecond t)
 	//________________________________________________________________________
 void FabricationPlant::FabricationPlantEvolution(cSecond t)
 {
-	
+DBGL
 	IsotopicVector fInsideIV;
 
 
@@ -139,19 +135,19 @@ void FabricationPlant::FabricationPlantEvolution(cSecond t)
 	}
 	
 	
-	
+DBGL
 }
 
 
 	//________________________________________________________________________
 void FabricationPlant::BuildFuelForReactor(int ReactorId)
 {
-
+DBGL
 	if(fFissileStorage.size() == 0)
 	{
-		cout << "!!Error!! !!!FabricationPlant!!! One need at least one Fissile storage to build fuel " << endl;
-		cout << "!!Error!! !!!FabricationPlant!!! use AddFissileStorage to add a stock to provide fissil material... " << endl;
-		GetLog()->fLog << "!!Error!! !!!FabricationPlant!!! One need at least one Fissile storage to build fuel " << endl;
+		ERROR << " One need at least one Fissile storage to build fuel " << endl;
+		ERROR << " Use AddFissileStorage to add a stock to provide fissil material... " << endl;
+		ERROR << " One need at least one Fissile storage to build fuel " << endl;
 		exit(1);
 	}
 
@@ -251,7 +247,7 @@ void FabricationPlant::BuildFuelForReactor(int ReactorId)
 		}
 		return;
 	}
-
+DBGL
 }
 
 
@@ -259,8 +255,6 @@ void FabricationPlant::BuildFuelForReactor(int ReactorId)
 void FabricationPlant::BuildFissileArray()
 {
 
-
-
 	for(int i = 0; i < (int)fFissileStorage.size(); i++)
 	{
 		vector<IsotopicVector> IVArray = fFissileStorage[i]->GetIVArray();
@@ -451,6 +445,7 @@ EvolutionData FabricationPlant::GetReactorEvolutionDB(int ReactorId)
 	//________________________________________________________________________
 IsotopicVector FabricationPlant::BuildFuelFromEqModel(vector<double> LambdaArray)
 {
+DBGL
 	IsotopicVector BuildedFuel;
 	IsotopicVector Lost;
 
@@ -489,16 +484,15 @@ IsotopicVector FabricationPlant::BuildFuelFromEqModel(vector<double> LambdaArray
 
 	DumpStock(LambdaArray);
 
-
+DBGL
 	return BuildedFuel;
-
 }
 
 
 	//________________________________________________________________________
 void FabricationPlant::DumpStock(vector<double> LambdaArray)
 {
-
+DBGL
 
 	for(int i = 0; i < (int)fFissileArray.size(); i++)
 	{
@@ -538,7 +532,7 @@ void FabricationPlant::DumpStock(vector<double> LambdaArray)
 
 	fFertileList = fFissileList = IsotopicVector();
 
-
+DBGL
 }
 
 	//________________________________________________________________________
diff --git a/source/branches/CLASSV3/src/IM_Matrix.cxx b/source/branches/CLASSV3/src/IM_Matrix.cxx
index 80c7c0f0675f3c8cae81b2b5d28695e4e94b70b7..4e6c13fd9ef2800f951c364834c5fb60c8a89ebe 100644
--- a/source/branches/CLASSV3/src/IM_Matrix.cxx
+++ b/source/branches/CLASSV3/src/IM_Matrix.cxx
@@ -9,7 +9,7 @@
 #include "IM_Matrix.hxx"
 
 #include "IsotopicVector.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 #include "StringLine.hxx"
 
 #include <TGraph.h>
@@ -35,7 +35,7 @@ IM_Matrix::IM_Matrix():DynamicalSystem()
 }
 
 
-IM_Matrix::IM_Matrix(LogFile* log):IrradiationModel(log), DynamicalSystem()
+IM_Matrix::IM_Matrix(CLASSLogger* log):IrradiationModel(log), DynamicalSystem()
 {
 	fShorstestHalflife = 3600.*24*160.; //cut by default all nuclei with a shorter liftime than the Cm242 -> remain 33 actinides
 }
@@ -48,7 +48,7 @@ IM_Matrix::IM_Matrix(LogFile* log):IrradiationModel(log), DynamicalSystem()
 //________________________________________________________________________
 EvolutionData IM_Matrix::GenerateEvolutionData(IsotopicVector isotopicvector, EvolutionData XSSet, double Power, double cycletime)
 {
-
+DBGL
 	if(fFastDecay.size() == 0)
 	{
 		BuildDecayMatrix();
@@ -150,7 +150,7 @@ EvolutionData IM_Matrix::GenerateEvolutionData(IsotopicVector isotopicvector, Ev
 	vector< TMatrixT<double> > FissionXSMatrix;	// Store The Fisison XS Matrix
 	vector< TMatrixT<double> > CaptureXSMatrix;	// Store The Capture XS Matrix
 	vector< TMatrixT<double> > n2nXSMatrix;		// Store The n2N XS Matrix
-
+DBGL
 	for(int i = 0; i < NStep-1; i++)
 	{
 		double TStepMax = ( (DBTimeStep[i+1]-DBTimeStep[i] ) ) * Power_ref/M_ref / Power*M ;	// Get the next Time step
@@ -241,6 +241,7 @@ EvolutionData IM_Matrix::GenerateEvolutionData(IsotopicVector isotopicvector, Ev
 
 
 	}
+DBGL
 	FissionXSMatrix.push_back(GetFissionXsMatrix(XSSet, DBTimeStep[NStep-1])); //Feel the reaction Matrix
 	CaptureXSMatrix.push_back(GetCaptureXsMatrix(XSSet, DBTimeStep[NStep-1])); //Feel the reaction Matrix
 	n2nXSMatrix.push_back(Getn2nXsMatrix(XSSet, DBTimeStep[NStep-1])); //Feel the reaction Matrix
@@ -279,7 +280,6 @@ EvolutionData IM_Matrix::GenerateEvolutionData(IsotopicVector isotopicvector, Ev
 	}
 
 	GeneratedDB.SetPower(Power );
-	//	GeneratedDB.SetFuelType(fFuelType );
 	GeneratedDB.SetReactorType(ReactorType );
 	GeneratedDB.SetCycleTime(cycletime);
 
@@ -292,7 +292,7 @@ EvolutionData IM_Matrix::GenerateEvolutionData(IsotopicVector isotopicvector, Ev
 	FissionXSMatrix.clear();
 	CaptureXSMatrix.clear();
 	n2nXSMatrix.clear();
-	
+DBGL
 	return GeneratedDB;
 	
 }
diff --git a/source/branches/CLASSV3/src/IM_RK4.cxx b/source/branches/CLASSV3/src/IM_RK4.cxx
index 394b44ad599e89642394f49f0a1fa3aa425545d1..79fe063ff4290ac738f220192acc5f55e0ccea49 100644
--- a/source/branches/CLASSV3/src/IM_RK4.cxx
+++ b/source/branches/CLASSV3/src/IM_RK4.cxx
@@ -10,7 +10,7 @@
 
 #include "IsotopicVector.hxx"
 #include "CLASSConstante.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 
 #include "StringLine.hxx"
 
@@ -41,7 +41,7 @@ IM_RK4::IM_RK4():IrradiationModel(), DynamicalSystem()
 }
 
 
-IM_RK4::IM_RK4(LogFile* log):IrradiationModel(log), DynamicalSystem()
+IM_RK4::IM_RK4(CLASSLogger* log):IrradiationModel(log), DynamicalSystem()
 {
 	fTheNucleiVector = 0;
 	fTheMatrix = 0;
@@ -63,7 +63,7 @@ IM_RK4::IM_RK4(LogFile* log):IrradiationModel(log), DynamicalSystem()
 //________________________________________________________________________
 EvolutionData IM_RK4::GenerateEvolutionData(IsotopicVector isotopicvector, EvolutionData XSSet, double Power, double cycletime)
 {
-
+DBGL
 	if(fFastDecay.size() == 0)
 	{
 		BuildDecayMatrix();
@@ -168,7 +168,7 @@ EvolutionData IM_RK4::GenerateEvolutionData(IsotopicVector isotopicvector, Evolu
 	vector< TMatrixT<double> > FissionXSMatrix;	// Store The Fisison XS Matrix
 	vector< TMatrixT<double> > CaptureXSMatrix;	// Store The Capture XS Matrix
 	vector< TMatrixT<double> > n2nXSMatrix;		// Store The n2N XS Matrix
-
+DBGL
 	for(int i = 0; i < NStep-1; i++)
 	{
 		double TStepMax = ( (DBTimeStep[i+1]-DBTimeStep[i] ) ) * Power_ref/M_ref / Power*M ;	// Get the next Time step
@@ -265,9 +265,8 @@ EvolutionData IM_RK4::GenerateEvolutionData(IsotopicVector isotopicvector, Evolu
 		GeneratedDB.CaptureXSInsert(pair<ZAI, TGraph*> (findex.find(i)->second, new TGraph(NStep, timevector, CaptureXS)));
 		GeneratedDB.n2nXSInsert(pair<ZAI, TGraph*> (findex.find(i)->second, new TGraph(NStep, timevector, n2nXS)));
 	}
-
+DBGL
 	GeneratedDB.SetPower(Power );
-//	GeneratedDB.SetFuelType(fFuelType );
 	GeneratedDB.SetReactorType(ReactorType );
 	GeneratedDB.SetCycleTime(cycletime);
 
@@ -283,7 +282,7 @@ EvolutionData IM_RK4::GenerateEvolutionData(IsotopicVector isotopicvector, Evolu
 	FissionXSMatrix.clear();
 	CaptureXSMatrix.clear();
 	n2nXSMatrix.clear();
-
+DBGL
 	return GeneratedDB;
 
 }
diff --git a/source/branches/CLASSV3/src/IrradiationModel.cxx b/source/branches/CLASSV3/src/IrradiationModel.cxx
index 51599b896c9e0917ce0993523db6ad14d1854b41..a727720c13080c5c598a4a753520aaa99dc693e1 100644
--- a/source/branches/CLASSV3/src/IrradiationModel.cxx
+++ b/source/branches/CLASSV3/src/IrradiationModel.cxx
@@ -9,7 +9,7 @@
 #include "IrradiationModel.hxx"
 
 #include "IsotopicVector.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 #include "StringLine.hxx"
 
 #include <TGraph.h>
@@ -24,13 +24,6 @@
 #include <cmath>
 
 
-
-
-
-
-
-
-
 using namespace std;
 
 IrradiationModel::IrradiationModel():CLASSObject()
@@ -44,7 +37,7 @@ IrradiationModel::IrradiationModel():CLASSObject()
 	fDataFileName = "chart.JEF3T";
 }
 
-IrradiationModel::IrradiationModel(LogFile* log):CLASSObject(log)
+IrradiationModel::IrradiationModel(CLASSLogger* log):CLASSObject(log)
 {
 	fShorstestHalflife = 3600.*24*2.;
 	fZAIThreshold = 90;
@@ -95,6 +88,7 @@ string IrradiationModel::GetDecay(string DecayModes, double &BR,int &Iso, int &S
 //________________________________________________________________________
 void IrradiationModel::BuildDecayMatrix()
 {
+DBGL
 	fDecayMatrix.Clear();
 
 	// List of Decay Time and Properties
@@ -116,13 +110,7 @@ void IrradiationModel::BuildDecayMatrix()
 	ifstream infile(DataFullPathName.c_str());
 
 	if(!infile)
-	{
-		cout << "!!Warning!! !!!IrradiationModel!!! \n Can't open \"" << DataFullPathName << "\"\n" << endl;
-		GetLog()->fLog << "!!Warning!! !!!IrradiationModel!!! \n Can't open \"" << DataFullPathName<< "\"\n" << endl;
-	}
-
-
-
+		WARNING << " Can't open \"" << DataFullPathName<< "\"" << endl;
 
 
 	do
@@ -278,7 +266,7 @@ void IrradiationModel::BuildDecayMatrix()
 			i++;
 		}
 	}
-
+DBGL
 	// Fill the Decay Part of the Bateman Matrix Always the same !
 	bool FastDecayValidation  = false;
 	while (!FastDecayValidation)
@@ -353,7 +341,7 @@ void IrradiationModel::BuildDecayMatrix()
 			}
 		}
 	}
-
+DBGL
 
 	fDecayMatrix.ResizeTo(findex.size(),findex.size());
 	for(int i = 0; i < (int)findex.size(); i++)
@@ -415,7 +403,7 @@ void IrradiationModel::BuildDecayMatrix()
 
 		}
 	}
-
+DBGL
 }
 
 //________________________________________________________________________
@@ -435,10 +423,7 @@ void IrradiationModel::SetFissionEnergy(string FissionEnergyFile)
 {
 	ifstream FissionFile(FissionEnergyFile.c_str());	// Open the File
 	if(!FissionFile)				//check if file is correctly open
-	{
-		cout << "!!Warning!! !!!IrradiationModel!!! \n Can't open \"" << FissionFile << "\"\n" << endl;
-		GetLog()->fLog << "!!Warning!! !!!IrradiationModel!!! \n Can't open \"" << FissionFile << "\"\n" << endl;
-	}
+		WARNING << " Can't open \"" << FissionEnergyFile << "\"\n" << endl;
 
 	do {
 		int Z = 0;
@@ -458,10 +443,7 @@ map< ZAI,IsotopicVector > IrradiationModel::ReadFPYield(string Yield)
 
 	ifstream infile(Yield.c_str());
 	if(!infile)
-	{
-		cout << "!!Warning!! !!!IrradiationModel!!! \n Can't open \"" << Yield << "\"\n" << endl;
-		GetLog()->fLog << "!!Warning!! !!!IrradiationModel!!! \n Can't open \"" << Yield<< "\"\n" << endl;
-	}
+		WARNING << " Can't open \"" << Yield<< "\"\n" << endl;
 
 
 	string line;
@@ -481,8 +463,7 @@ map< ZAI,IsotopicVector > IrradiationModel::ReadFPYield(string Yield)
 			IResult = Yield_map.insert(pair<ZAI,IsotopicVector>(ZAI(Z,A,I),EmptyIV) );
 			if(!IResult.second)
 			{
-				cout << "!!Error!! !!!IrradiationModel!!! Many accurance of ZAI " << Z << " " << A;
-				cout << " in " << Yield << " file!! Please Check it !!!" << endl;
+				ERROR << " Many accurance of ZAI " << Z << " " << A << " in " << Yield << " file!! " << endl;
 				exit(1);
 
 			}
@@ -502,9 +483,8 @@ map< ZAI,IsotopicVector > IrradiationModel::ReadFPYield(string Yield)
 		{
 			if (it == Yield_map.end())
 			{
-				cout << "!!Error!! !!!IrradiationModel!!! Many accurance of the PF " << Z << " " << A;
-				cout << " in " << Yield << " file!! Please Check it";
-				cout << "(Number of yield does not match the number of ZAI that fission !!!" << endl;
+				ERROR << " Many accurance of the PF " << Z << " " << A << " in " << Yield << " file!! ";
+				ERROR << "(Number of yield does not match the number of ZAI that fission !!!" << endl;
 				exit(1);
 
 			}
@@ -540,7 +520,7 @@ void IrradiationModel::LoadFPYield(string SponfaneusYield, string ReactionYield)
 //________________________________________________________________________
 TMatrixT<double> IrradiationModel::GetFissionXsMatrix(EvolutionData EvolutionDataStep,double TStep)
 {
-
+DBGL
 	map<ZAI ,TGraph* >::iterator it;
 	TMatrixT<double> BatemanMatrix = TMatrixT<double>(findex.size(),findex.size());
 	for(int i = 0; i < (int)findex.size(); i++)
@@ -613,15 +593,14 @@ TMatrixT<double> IrradiationModel::GetFissionXsMatrix(EvolutionData EvolutionDat
 
 	}
 
+DBGL
 	return BatemanMatrix;
-
 }
 
 //________________________________________________________________________
 TMatrixT<double> IrradiationModel::GetCaptureXsMatrix(EvolutionData EvolutionDataStep,double TStep)
 {
-
-
+DBGL
 	map<ZAI ,TGraph* >::iterator it;
 	TMatrixT<double> BatemanMatrix = TMatrixT<double>(findex.size(),findex.size());
 	for(int i = 0; i < (int)findex.size(); i++)
@@ -636,11 +615,7 @@ TMatrixT<double> IrradiationModel::GetCaptureXsMatrix(EvolutionData EvolutionDat
 		toAdd.insert(pair<ZAI, double> ( ZAI(95,242,1) , 0.1267) );
 		Capture.insert( pair< ZAI, map<ZAI, double> > ( ZAI(95,241,0), toAdd ) );
 	}
-	{	// 242Am*
-		map<ZAI, double> toAdd ;
-		toAdd.insert(pair<ZAI, double> ( ZAI(95,243,0) , 1) );
-		Capture.insert( pair< ZAI, map<ZAI, double> > ( ZAI(95,242,1), toAdd ) );
-	}
+
 
 
 	// ----------------  A(n,.)A+1
@@ -659,7 +634,7 @@ TMatrixT<double> IrradiationModel::GetCaptureXsMatrix(EvolutionData EvolutionDat
 
 			if( it3 == Capture.end() )
 			{
-				map<ZAI, int >::iterator it6 = findex_inver.find( ZAI( (*it).first.Z(), (*it).first.A()+1, (*it).first.I()) );
+				map<ZAI, int >::iterator it6 = findex_inver.find( ZAI( (*it).first.Z(), (*it).first.A()+1, 0) );
 
 				if( it6 != findex_inver.end() )
 				{
@@ -667,7 +642,7 @@ TMatrixT<double> IrradiationModel::GetCaptureXsMatrix(EvolutionData EvolutionDat
 				}
 				else
 				{
-					map<ZAI, map<ZAI, double> >::iterator it4 = fFastDecay.find(  ZAI( (*it).first.Z(), (*it).first.A()+1, (*it).first.I()) );
+					map<ZAI, map<ZAI, double> >::iterator it4 = fFastDecay.find(  ZAI( (*it).first.Z(), (*it).first.A()+1, 0) );
 
 					if( it4 == fFastDecay.end() )
 					{
@@ -705,7 +680,7 @@ TMatrixT<double> IrradiationModel::GetCaptureXsMatrix(EvolutionData EvolutionDat
 
 						if( it7 == fFastDecay.end() )
 						{
-							cout << "CaptureList Problem in FastDecay for nuclei " << (*it7).first.Z() << " " << (*it7).first.A() << " " << (*it7).first.I() << endl;
+							ERROR << " CaptureList Problem in FastDecay for nuclei " << (*it7).first.Z() << " " << (*it7).first.A() << " " << (*it7).first.I() << endl;
 							exit(1);
 						}
 
@@ -717,7 +692,7 @@ TMatrixT<double> IrradiationModel::GetCaptureXsMatrix(EvolutionData EvolutionDat
 							it6 = findex_inver.find( (*it5).first );
 							if( it6 == findex_inver.end() )
 							{
-								cout << "CaptureList Problem in FastDecay for nuclei " << (*it7).first.Z() << " " << (*it7).first.A() << " " << (*it7).first.I() << endl;
+								ERROR << " CaptureList Problem in FastDecay for nuclei " << (*it7).first.Z() << " " << (*it7).first.A() << " " << (*it7).first.I() << endl;
 								exit(1);
 							}
 
@@ -731,15 +706,15 @@ TMatrixT<double> IrradiationModel::GetCaptureXsMatrix(EvolutionData EvolutionDat
 
 		}
 	}
+DBGL
 	return BatemanMatrix;
-
 }
 
 
 //________________________________________________________________________
 TMatrixT<double> IrradiationModel::Getn2nXsMatrix(EvolutionData EvolutionDataStep,double TStep)
 {
-
+DBGL
 
 	map<ZAI ,TGraph* >::iterator it;
 	TMatrixT<double> BatemanMatrix = TMatrixT<double>(findex.size(),findex.size());
@@ -754,11 +729,6 @@ TMatrixT<double> IrradiationModel::Getn2nXsMatrix(EvolutionData EvolutionDataSte
 		toAdd.insert(pair<ZAI, double> ( ZAI(93,236,1) , 0.8) );
 		n2n.insert( pair< ZAI, map<ZAI, double> > ( ZAI(93,237,0), toAdd ) );
 	}
-	{	// 242Am*
-		map<ZAI, double> toAdd ;
-		toAdd.insert(pair<ZAI, double> ( ZAI(95,241,0) , 1) );
-		n2n.insert( pair< ZAI, map<ZAI, double> > ( ZAI(95,242,1), toAdd ) );
-	}
 
 	// ----------------  A(n,2n)A-1
 	map<ZAI ,TGraph* > n2nXS = EvolutionDataStep.Getn2nXS();
@@ -776,7 +746,7 @@ TMatrixT<double> IrradiationModel::Getn2nXsMatrix(EvolutionData EvolutionDataSte
 
 			if( it3 == n2n.end() )
 			{
-				map<ZAI, int >::iterator it6 = findex_inver.find( ZAI( (*it).first.Z(), (*it).first.A()-1, (*it).first.I()) );
+				map<ZAI, int >::iterator it6 = findex_inver.find( ZAI( (*it).first.Z(), (*it).first.A()-1, 0) );
 
 				if( it6 != findex_inver.end() )
 				{
@@ -784,7 +754,7 @@ TMatrixT<double> IrradiationModel::Getn2nXsMatrix(EvolutionData EvolutionDataSte
 				}
 				else
 				{
-					map<ZAI, map<ZAI, double> >::iterator it4 = fFastDecay.find(  ZAI( (*it).first.Z(), (*it).first.A()-1, (*it).first.I()) );
+					map<ZAI, map<ZAI, double> >::iterator it4 = fFastDecay.find(  ZAI( (*it).first.Z(), (*it).first.A()-1, 0) );
 
 					if( it4 == fFastDecay.end() )
 					{
@@ -822,7 +792,7 @@ TMatrixT<double> IrradiationModel::Getn2nXsMatrix(EvolutionData EvolutionDataSte
 
 						if( it7 == fFastDecay.end() )
 						{
-							cout << "n2nList Problem in FastDecay for nuclei " << (*it7).first.Z() << " " << (*it7).first.A() << " " << (*it7).first.I() << endl;
+							ERROR << " n2nList Problem in FastDecay for nuclei " << (*it7).first.Z() << " " << (*it7).first.A() << " " << (*it7).first.I() << endl;
 							exit(1);
 						}
 
@@ -834,7 +804,7 @@ TMatrixT<double> IrradiationModel::Getn2nXsMatrix(EvolutionData EvolutionDataSte
 							it6 = findex_inver.find( (*it5).first );
 							if( it6 == findex_inver.end() )
 							{
-								cout << "n2nList Problem in FastDecay for nuclei " << (*it7).first.Z() << " " << (*it7).first.A() << " " << (*it7).first.I() << endl;
+								ERROR << " n2nList Problem in FastDecay for nuclei " << (*it7).first.Z() << " " << (*it7).first.A() << " " << (*it7).first.I() << endl;
 								exit(1);
 							}
 
@@ -848,6 +818,7 @@ TMatrixT<double> IrradiationModel::Getn2nXsMatrix(EvolutionData EvolutionDataSte
 
 		}
 	}
+DBGL
 	return BatemanMatrix;
 }
 
diff --git a/source/branches/CLASSV3/src/IsotopicVector.cxx b/source/branches/CLASSV3/src/IsotopicVector.cxx
index 6c8ad57b1e1bf849a87dc873d63a58062b11cf60..1a4198ed8a9936b09fe1a525ef35a6814df66364 100755
--- a/source/branches/CLASSV3/src/IsotopicVector.cxx
+++ b/source/branches/CLASSV3/src/IsotopicVector.cxx
@@ -1,6 +1,6 @@
 #include "IsotopicVector.hxx"
 
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 #include "CLASSConstante.hxx"
 
 
@@ -90,8 +90,7 @@ double Distance(IsotopicVector IV1, IsotopicVector IV2 ,int DistanceType, Isotop
 	}
 	else
 	{
-		cout << "!!ERROR!! !!!Distance!!!"
-		<< " DistanceType defined by the user isn't recognized by the code"<<endl;
+		cout << " DistanceType defined by the user isn't recognized by the code" << endl;
 
 		exit(1);
 	}
diff --git a/source/branches/CLASSV3/src/Makefile b/source/branches/CLASSV3/src/Makefile
index 3755d7b451ebbc726dec5ecd0f5d0bc070fda752..ee1a7a9a5b74f07bf2b0816b29f0673dd4435cf1 100755
--- a/source/branches/CLASSV3/src/Makefile
+++ b/source/branches/CLASSV3/src/Makefile
@@ -13,17 +13,17 @@ ROOTGLIBS	= `root-config --glibs`
 ######### nothing to change from here #########
 INCLUDES	= $(LOCALINC)/*.hxx
 LIBNAME 	= CLASSpkg
-OBJS		= 	Scenario.o \
+OBJS		= 	CLASSLogger.o \
+			ZAI.o ZAIDict.o \
 			IsotopicVector.o IsotopicVectorDict.o \
 			ZAIMass.o \
-			ZAI.o ZAIDict.o \
 			CLASSObject.o CLASSObjectDict.o\
 			CLASSFacility.o CLASSFacilityDict.o\
+			FabricationPlant.o FabricationPlantDict.o \
+			Reactor.o ReactorDict.o \
 			CLASSBackEnd.o CLASSBackEndDict.o\
 			Storage.o StorageDict.o\
-			FabricationPlant.o FabricationPlantDict.o \
 			Pool.o PoolDict.o\
-			Reactor.o ReactorDict.o \
 			DecayDataBank.o \
 			DynamicalSystem.o\
 			EvolutionData.o EvolutionDataDict.o \
@@ -31,23 +31,23 @@ OBJS		= 	Scenario.o \
 			EquivalenceModel.o EQM_MLP_PWR_MOX.o EQM_QUAD_PWR_MOX.o EQM_LIN_PWR_MOX.o \
 			XSModel.o XSM_MLP_PWR_MOX.o XSM_CLOSEST.o \
 			PhysicModels.o \
-			LogFile.o
+			Scenario.o
 
-ROOTOBJS	= 	CLASSObject.o CLASSObjectDict.o\
+ROOTOBJS	= 	CLASSLogger.o \
+			ZAI.o ZAIDict.o \
+			IsotopicVector.o IsotopicVectorDict.o \
+			ZAIMass.o \
+			CLASSObject.o CLASSObjectDict.o\
 			CLASSFacility.o CLASSFacilityDict.o\
+			Reactor.o ReactorDict.o \
+			FabricationPlant.o FabricationPlantDict.o \
 			CLASSBackEnd.o CLASSBackEndDict.o\
 			Storage.o StorageDict.o\
 			Pool.o PoolDict.o\
-			Reactor.o ReactorDict.o \
-			FabricationPlant.o FabricationPlantDict.o \
-			IsotopicVector.o IsotopicVectorDict.o \
-			ZAIMass.o \
-			ZAI.o ZAIDict.o \
 			DecayDataBank.o \
 			DynamicalSystem.o\
 			EvolutionData.o EvolutionDataDict.o \
-			PhysicModels.o \
-			LogFile.o
+			PhysicModels.o
 
 
 CXX           = g++
diff --git a/source/branches/CLASSV3/src/Makefile_good b/source/branches/CLASSV3/src/Makefile_good
index 50d8b6411b582df8f94fb5ced8bebaa400ac2ee8..c49e9c6dfbda7b8f8bdf24b0e623191a7d3d47e2 100644
--- a/source/branches/CLASSV3/src/Makefile_good
+++ b/source/branches/CLASSV3/src/Makefile_good
@@ -36,7 +36,7 @@ OBJS		= 	Scenario.o \
 			EquivalenceModel.o \
 			XSModel.o \
 			PhysicModels.o \
-			LogFile.o
+			CLASSLogger.o
 
 OBJMODEL	=	$(EQM)/EQM_MLP_PWR_MOX.o $(EQM)/EQM_QUAD_PWR_MOX.o $(EQM)/EQM_LIN_PWR_MOX.o \
 			$(XSM)/XSM_MLP_PWR_MOX.o $(XSM)/XSM_CLOSEST.o \
@@ -57,7 +57,7 @@ ROOTOBJS	= 	CLASSObject.o CLASSObjectDict.o\
 			DynamicalSystem.o\
 			EvolutionData.o EvolutionDataDict.o \
 			PhysicModels.o \
-			LogFile.o
+			CLASSLogger.o
 
 
 CXX           = g++
diff --git a/source/branches/CLASSV3/src/PWR_THPU_FabricationPlant.cxx b/source/branches/CLASSV3/src/PWR_THPU_FabricationPlant.cxx
index 1ce7c45aa44b1b4185b3fe364973f959dd3f29c7..dcb14a30b5a0d3a3e7f71aafd00ae71800476b12 100644
--- a/source/branches/CLASSV3/src/PWR_THPU_FabricationPlant.cxx
+++ b/source/branches/CLASSV3/src/PWR_THPU_FabricationPlant.cxx
@@ -8,7 +8,7 @@
 #include "DecayDataBank.hxx"
 #include "IsotopicVector.hxx"
 #include "Scenario.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 
 #include "TMatrixT.h"
 
@@ -43,7 +43,7 @@ PWR_THPU_FabricationPlant::PWR_THPU_FabricationPlant():FabricationPlant()
 {
 }
 
-PWR_THPU_FabricationPlant::PWR_THPU_FabricationPlant(LogFile* log)
+PWR_THPU_FabricationPlant::PWR_THPU_FabricationPlant(CLASSLogger* log)
 {
 	SetFacilityType(16);
 
@@ -58,15 +58,15 @@ PWR_THPU_FabricationPlant::PWR_THPU_FabricationPlant(LogFile* log)
 	cout	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
 	cout	<< "\t Chronological Stock Priority set! "<< endl << endl;
 	cout	<< "!!WARNING!! !!!FabricationPlant!!! You need to set the different stock manually as well as the Fabrication Time Manualy !! " << endl;
-	GetLog()->fLog	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
-	GetLog()->fLog	<< "\t Chronological Stock Priority set! "<< endl << endl;
-	GetLog()->fLog	<< "!!WARNING!! !!!FabricationPlant!!! You need to set the different stock manually as well as the Fabrication Time Manualy !! " << endl;
+	fLog	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
+	fLog	<< "\t Chronological Stock Priority set! "<< endl << endl;
+	fLog	<< "!!WARNING!! !!!FabricationPlant!!! You need to set the different stock manually as well as the Fabrication Time Manualy !! " << endl;
 	
 	
 
 }
 
-PWR_THPU_FabricationPlant::PWR_THPU_FabricationPlant(LogFile* log, Storage* storage, Storage* reusable, double fabircationtime)
+PWR_THPU_FabricationPlant::PWR_THPU_FabricationPlant(CLASSLogger* log, Storage* storage, Storage* reusable, double fabircationtime)
 {
 	SetFacilityType(16);
 
@@ -82,13 +82,9 @@ PWR_THPU_FabricationPlant::PWR_THPU_FabricationPlant(LogFile* log, Storage* stor
 	fReUsable = reusable;
 	
 	
-	cout	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
-	cout	<< "\t Chronological Stock Priority has been set! "<< endl;
-	cout	<< "\t Fabrication time set to \t " << (double)(GetCycleTime()/3600/24/365.25) << " year" << endl << endl;
-	
-	GetLog()->fLog	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
-	GetLog()->fLog	<< "\t Chronological Stock Priority has been set! "<< endl;
-	GetLog()->fLog	<< "\t Fabrication time set to \t " << (double)(GetCycleTime()/3600/24/365.25) << " year" << endl << endl;
+	INFO	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
+	INFO	<< "\t Chronological Stock Priority has been set! "<< endl;
+	INFO	<< "\t Fabrication time set to \t " << (double)(GetCycleTime()/3600/24/365.25) << " year" << endl << endl;
 	
 	
 
@@ -115,8 +111,7 @@ void PWR_THPU_FabricationPlant::BuildFuelForReactor(int ReactorId)
 	string ReactorType ="PWR";	
 	if(FuelType->GetFuelType() != "THPU" || ReactorType !="PWR")//Check if the reactor is the right type and use the right type of fuel
 	{
-		cout << "!!Bad Trouble!! !!!FabricationPlant!!! Try to do MOX with a not MOXed DB "<< endl;
-		GetLog()->fLog << "!!Bad Trouble!! !!!FabricationPlant!!! Try to do MOX with a not MOXed DB" << endl;
+		ERROR << "!!Bad Trouble!! !!!FabricationPlant!!! Try to do MOX with a not MOXed DB" << endl;
 		exit (1);
 	}	
 
@@ -236,8 +231,7 @@ void PWR_THPU_FabricationPlant::BuildFuelForReactor(int ReactorId)
 			{
 				stock.GetActinidesComposition().Print();
 
-				cout << "!!Bad Trouble!! !!!FabricationPlant!!! Oups Bug in calculating stock fraction to use "<< endl;
-				GetLog()->fLog << "!!Bad Trouble!! !!!FabricationPlant!!! Oups Bug in calculating stock fraction to use" << endl;
+				ERROR << "!!Bad Trouble!! !!!FabricationPlant!!! Oups Bug in calculating stock fraction to use" << endl;
 				RecycleStock(0.);
 				FuelBuild = false;
 				
diff --git a/source/branches/CLASSV3/src/PWR_THU_FabricationPlant.cxx b/source/branches/CLASSV3/src/PWR_THU_FabricationPlant.cxx
index 351d854f428ee88c234e4ec8dd3ec952fd1bbdb1..6d3ae534f9e6da329f9c4d70cebf54c0a9d59fe3 100644
--- a/source/branches/CLASSV3/src/PWR_THU_FabricationPlant.cxx
+++ b/source/branches/CLASSV3/src/PWR_THU_FabricationPlant.cxx
@@ -7,7 +7,7 @@
 #include "DecayDataBank.hxx"
 #include "IsotopicVector.hxx"
 #include "Scenario.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 
 
 
@@ -43,7 +43,7 @@ PWR_THU_FabricationPlant::PWR_THU_FabricationPlant():FabricationPlant()
 
 }
 
-PWR_THU_FabricationPlant::PWR_THU_FabricationPlant(LogFile* log)
+PWR_THU_FabricationPlant::PWR_THU_FabricationPlant(CLASSLogger* log)
 {
 	SetFacilityType(16);
 
@@ -55,18 +55,15 @@ PWR_THU_FabricationPlant::PWR_THU_FabricationPlant(LogFile* log)
 	fStorage = 0;
 	fReUsable = 0;
 
-	cout	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
-	cout	<< "\t Chronological Stock Priority set! "<< endl << endl;
-	cout	<< "!!WARNING!! !!!FabricationPlant!!! You need to set the different stock manually as well as the Fabrication Time Manualy !! " << endl;
-	GetLog()->fLog	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
-	GetLog()->fLog	<< "\t Chronological Stock Priority set! "<< endl << endl;
-	GetLog()->fLog	<< "!!WARNING!! !!!FabricationPlant!!! You need to set the different stock manually as well as the Fabrication Time Manualy !! " << endl;
+	INFO	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
+	INFO	<< "\t Chronological Stock Priority set! "<< endl << endl;
+	INFO	<< "!!WARNING!! !!!FabricationPlant!!! You need to set the different stock manually as well as the Fabrication Time Manualy !! " << endl;
 	
 	
 
 }
 
-PWR_THU_FabricationPlant::PWR_THU_FabricationPlant(LogFile* log, Storage* storage, Storage* reusable, double fabircationtime)
+PWR_THU_FabricationPlant::PWR_THU_FabricationPlant(CLASSLogger* log, Storage* storage, Storage* reusable, double fabircationtime)
 {
 	SetFacilityType(16);
 
@@ -82,13 +79,9 @@ PWR_THU_FabricationPlant::PWR_THU_FabricationPlant(LogFile* log, Storage* storag
 	fReUsable = reusable;
 	
 	
-	cout	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
-	cout	<< "\t Chronological Stock Priority has been set! "<< endl;
-	cout	<< "\t Fabrication time set to \t " << (double)(GetCycleTime()/3600/24/365.25) << " year" << endl << endl;
-	
-	GetLog()->fLog	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
-	GetLog()->fLog	<< "\t Chronological Stock Priority has been set! "<< endl;
-	GetLog()->fLog	<< "\t Fabrication time set to \t " << (double)(GetCycleTime()/3600/24/365.25) << " year" << endl << endl;
+	INFO	<< "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
+	INFO	<< "\t Chronological Stock Priority has been set! "<< endl;
+	INFO	<< "\t Fabrication time set to \t " << (double)(GetCycleTime()/3600/24/365.25) << " year" << endl << endl;
 	
 	
 
@@ -115,8 +108,7 @@ void PWR_THU_FabricationPlant::BuildFuelForReactor(int ReactorId)
 	string ReactorType ="PWR";	
 	if(FuelType->GetFuelType() != "THU" || ReactorType !="PWR")//Check if the reactor is the right type and use the right type of fuel
 	{
-		cout << "!!Bad Trouble!! !!!FabricationPlant!!! Try to do MOX with a not MOXed DB "<< endl;
-		GetLog()->fLog << "!!Bad Trouble!! !!!FabricationPlant!!! Try to do MOX with a not MOXed DB" << endl;
+		ERROR << "!!Bad Trouble!! !!!FabricationPlant!!! Try to do MOX with a not MOXed DB" << endl;
 		exit (1);
 	}	
 
@@ -234,8 +226,7 @@ void PWR_THU_FabricationPlant::BuildFuelForReactor(int ReactorId)
 			{
 				stock.GetActinidesComposition().Print();
 
-				cout << "!!Bad Trouble!! !!!FabricationPlant!!! Oups Bug in calculating stock fraction to use "<< endl;
-				GetLog()->fLog << "!!Bad Trouble!! !!!FabricationPlant!!! Oups Bug in calculating stock fraction to use" << endl;
+				ERROR << "!!Bad Trouble!! !!!FabricationPlant!!! Oups Bug in calculating stock fraction to use" << endl;
 				RecycleStock(0.);
 				FuelBuild = false;
 				
diff --git a/source/branches/CLASSV3/src/PhysicModels.cxx b/source/branches/CLASSV3/src/PhysicModels.cxx
index e9b2bb46b7a34d8509aeb08ed47aff23db42255a..2823ca5ea407c9616a044075c92d5bb5c19f9457 100644
--- a/source/branches/CLASSV3/src/PhysicModels.cxx
+++ b/source/branches/CLASSV3/src/PhysicModels.cxx
@@ -21,9 +21,6 @@ PhysicModels::PhysicModels(XSModel* XS, EquivalenceModel* EM, IrradiationModel*
 EvolutionData PhysicModels::GenerateEvolutionData(IsotopicVector IV, double cycletime, double Power)
 {
 
-
 	return fIrradiationModel->GenerateEvolutionData(IV, fXSModel->GetCrossSections(IV), Power, cycletime);
-
-
 }
 //________________________________________________________________________
diff --git a/source/branches/CLASSV3/src/Pool.cxx b/source/branches/CLASSV3/src/Pool.cxx
index 6470040b2ea175044ef0bc1efe6f43da54096210..1299771e18f038800be21826446ba0f414f444a4 100755
--- a/source/branches/CLASSV3/src/Pool.cxx
+++ b/source/branches/CLASSV3/src/Pool.cxx
@@ -3,7 +3,7 @@
 #include "IsotopicVector.hxx"
 #include "Storage.hxx"
 #include "Scenario.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 
 #include <sstream>
 #include <string>
@@ -29,7 +29,7 @@ Pool::Pool():CLASSBackEnd(8)
 }
 
 	//________________________________________________________________________
-Pool::Pool(LogFile* log, cSecond coolingtime):CLASSBackEnd(log, coolingtime, 8)
+Pool::Pool(CLASSLogger* log, cSecond coolingtime):CLASSBackEnd(log, coolingtime, 8)
 {
 
 
@@ -42,21 +42,16 @@ Pool::Pool(LogFile* log, cSecond coolingtime):CLASSBackEnd(log, coolingtime, 8)
 	SetName("P_Pool.");
 
 	
-	cout	<< "!!INFO!! !!!Pool!!! A new Pool has been define :" << endl;
-	cout	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	cout	<< "\t The Cooling Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
-	cout	<< "!!WARNING!! !!!Pool!!! All Cooled Fuel goes directly to WASTE after cooling !! " << endl;
-	
-	GetLog()->fLog	<< "!!INFO!! !!!Pool!!! A new Pool has been define :" << endl;
-	GetLog()->fLog	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "\t The Cooling Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "!!WARNING!! !!!Pool!!! All Cooled Fuel goes directly to WASTE after cooling !! " << endl;
+	INFO	<< " A new Pool has been define :" << endl;
+	INFO	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
+	INFO	<< "\t The Cooling Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
+	WARNING	<< " All Cooled Fuel goes directly to WASTE after cooling !! " << endl;
 
 
 }
 
 //________________________________________________________________________
-Pool::Pool(LogFile* log, CLASSBackEnd* storage, cSecond coolingtime):CLASSBackEnd(log, coolingtime, 8)
+Pool::Pool(CLASSLogger* log, CLASSBackEnd* storage, cSecond coolingtime):CLASSBackEnd(log, coolingtime, 8)
 {
 
 	fOutBackEndFacility = storage;
@@ -68,15 +63,10 @@ Pool::Pool(LogFile* log, CLASSBackEnd* storage, cSecond coolingtime):CLASSBackEn
 	SetName("P_Pool.");
 
 	
-	cout	<< "!!INFO!! !!!Pool!!! A new Pool has been define :" << endl;
-	cout	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-
 
-	cout	<< "\t The Cooling Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
-	
-	GetLog()->fLog	<< "!!INFO!! !!!Pool!!! A new Pool has been define :" << endl;
-	GetLog()->fLog	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "\t The Cooling Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
+	INFO	<< " A new Pool has been define :" << endl;
+	INFO	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
+	INFO	<< "\t The Cooling Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
 
 
 }
@@ -92,8 +82,8 @@ Pool::~Pool()
 //________________________________________________________________________
 void Pool::SetIVArray(vector<IsotopicVector> ivarray)
 {
-	cout << "this method as no effect !!!" << endl;
-	cout << "Use SetIVArray(vector<IsotopicVector> ivarray, vector<cSecond>n timearray) unstead!!!!"<<endl;
+	INFO << "This method as no effect !!!" << endl;
+	INFO << "Use SetIVArray(vector<IsotopicVector> ivarray, vector<cSecond>n timearray) unstead!!!!"<<endl;
 }
 
 
@@ -150,6 +140,7 @@ void Pool::RemoveIVCooling(int i)		//!< Remove a Cooling IsotopicVector
 //________________________________________________________________________
 void Pool::CoolingEvolution(cSecond t)
 {
+DBGL
 
 	if(t == fInternalTime && t!=0) return;
 	int RemainingCoolingTime;
@@ -164,11 +155,7 @@ void Pool::CoolingEvolution(cSecond t)
 		{
 			if (t -  fIVArrayArrivalTime[i] > fCycleTime) // Warning & Quit
 			{
-				cout		<< "!!Warning!! !!!TreamtmentFactory!!! Cooling Step : " << t/3600./24/365.25<< " :"
-						<< " An evolution Step is probably missing ! " << " " << endl;
-				cout << t << " " <<  fIVArrayArrivalTime[i] << " " << fCycleTime << endl;
-				GetLog()->fLog 	<< "!!Warning!! !!!TreamtmentFactory!!! Cooling Step : "<< t << " :"
-						<< " An evolution Step is probably missing ! " << endl;
+				ERROR << " Cooling Step : " << t/3600./24/365.25<< " :" << " an evolution Step is probably missing ! " << " " << endl;
 				exit (1);
 			}
    
@@ -190,6 +177,7 @@ void Pool::CoolingEvolution(cSecond t)
 #pragma omp critical(DeleteCoolingIVPB)
 	{sort (fCoolingEndOfCycle.begin(), fCoolingEndOfCycle.end());}
 
+DBGL
 }
 
 
@@ -221,6 +209,7 @@ void Pool::Evolution(cSecond t)
 //________________________________________________________________________
 void Pool::Dump()
 {
+DBGL
 //------ Cooling ------//
 	for(int i = (int)fCoolingEndOfCycle.size()-1; i >=0 ; i--)	// IV End Of Cooling
 	{
@@ -238,10 +227,10 @@ void Pool::Dump()
 	
 	if((int)fCoolingEndOfCycle.size() != 0 )// Control
 	{
-		cout		<< "Problem while Dumping Cooling"<< endl;
-		GetLog()->fLog 	<< "Problem while Dumping Cooling"<< endl;
+		ERROR << "Problem while Dumping Cooling"<< endl;
 		exit (1);
 	}
+DBGL
 }
 
 
diff --git a/source/branches/CLASSV3/src/Reactor.cxx b/source/branches/CLASSV3/src/Reactor.cxx
index a8fc20dcb0b6c7f9e472c3497fb4e607fa044aba..647234ce72e2ab2d8c30d4f83848cea397f095cd 100755
--- a/source/branches/CLASSV3/src/Reactor.cxx
+++ b/source/branches/CLASSV3/src/Reactor.cxx
@@ -8,7 +8,7 @@
 #include "Scenario.hxx"
 #include "CLASSConstante.hxx"
 
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 
 #include <iostream>
 #include <cmath>
@@ -43,26 +43,25 @@ Reactor::Reactor():CLASSFacility()
 	fNextPlan = fLoadingPlan.begin();
 }
 
-Reactor::Reactor(LogFile* log):CLASSFacility(log)
+Reactor::Reactor(CLASSLogger* log):CLASSFacility(log, 4)
 {
 
 	fOutBackEndFacility = 0;
 	fStorage = 0;
 	fFuelTypeDB = 0;
 	fFabricationPlant = 0;
-	SetFacilityType(4);
-	SetName("R_Reactor.");
+	(*this).SetName("R_Reactor.");
 	fNextPlan = fLoadingPlan.begin();
 
 }
 
-Reactor::Reactor(LogFile* log, PhysicModels* fueltypeDB,
+Reactor::Reactor(CLASSLogger* log, PhysicModels* fueltypeDB,
 		 FabricationPlant* fabricationplant,
  		 CLASSBackEnd* Pool,
  		 cSecond creationtime, cSecond lifetime):CLASSFacility(log, creationtime, lifetime, 4)
 {
 
-	SetName("R_Reactor.");
+	(*this).SetName("R_Reactor.");
 
 
 	fIsStarted = false;
@@ -83,26 +82,21 @@ Reactor::Reactor(LogFile* log, PhysicModels* fueltypeDB,
 
 	fNextPlan = fLoadingPlan.begin();
 
-	cout	<< "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
-	cout	<< "\t Fuel Composition is not fixed ! "<< endl;
-	cout	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	cout	<< "\t Life time (Operating's Duration) set at \t " << (double)(GetLifeTime()/3600/24/365.25) << " year" << endl << endl;
-	cout	<< "!!WARNING!! !!!Reactor!!! You need to set Burn-up/Power/CycleTime (2 of 3) & Heavy Metal Mass Manualy !! " << endl;
 
+	INFO << " A Reactor has been define :" << endl;
+	INFO << "\t Fuel Composition is not fixed ! "<< endl;
+	INFO << "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
+	INFO << "\t Life time (Operating's Duration) set at \t " << (double)(GetLifeTime()/3600/24/365.25) << " year" << endl;
 
-	GetLog()->fLog	<< "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
-	GetLog()->fLog	<< "\t Fuel Composition is not fixed ! "<< endl;
-	GetLog()->fLog	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "\t Life time (Operating's Duration) set at \t " << (double)(GetLifeTime()/3600/24/365.25) << " year" << endl << endl;
-	GetLog()->fLog	<< "!!WARNING!! !!!Reactor!!! You need to set Burn-up/Power/CycleTime (2 of 3) & Heavy Metal Mass Manualy !! " << endl;
+	WARNING << " You need to set Burn-up/Power/CycleTime (2 of 3) & Heavy Metal Mass Manualy !! " << endl;
 
 }
 
-Reactor::Reactor(LogFile* log, PhysicModels* fueltypeDB, FabricationPlant* fabricationplant, CLASSBackEnd* Pool,
+Reactor::Reactor(CLASSLogger* log, PhysicModels* fueltypeDB, FabricationPlant* fabricationplant, CLASSBackEnd* Pool,
  		 cSecond creationtime, cSecond lifetime,
  		 double Power, double HMMass, double BurnUp, double ChargeFactor):CLASSFacility(log, creationtime, lifetime, 4)
 {
-	SetName("R_Reactor.");
+	(*this).SetName("R_Reactor.");
 
 
 	fStorage = 0;
@@ -126,35 +120,26 @@ Reactor::Reactor(LogFile* log, PhysicModels* fueltypeDB, FabricationPlant* fabri
 	fNextPlan = fLoadingPlan.begin();
 
 
-	cout	<< "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
-	cout	<< "\t Fuel Composition is not fixed ! "<< endl;
-	cout	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	cout	<< "\t Life time (Operating's Duration) set at \t " << (double)(GetLifeTime()/3600/24/365.25) << " year" << endl;
-	cout	<< "\t The Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW (with Full Power " << Power << " and " << ChargeFactor << " Charge Factor)"<< endl;
-	cout	<< "\t Burn-Up at end of Cycle set at \t " << (double)(fBurnUp) << " GWj/t" << endl;
-	cout	<< "\t The corresponding Cycle Time is\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
-	cout	<< "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
-
-	GetLog()->fLog 	<< "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
-	GetLog()->fLog 	<< "\t Fuel Composition is not fixed ! "<< endl;
-	GetLog()->fLog 	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog 	<< "\t Life time (Operating's Duration) set at \t " << (double)(GetLifeTime()/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog 	<< "\t The Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW (with Full Power " << Power << " and " << ChargeFactor << " Charge Factor)"<< endl;
-	GetLog()->fLog 	<< "\t Burn-Up at end of Cycle set at \t " << (double)(fBurnUp) << " GWj/t" << endl;
-	GetLog()->fLog 	<< "\t The corresponding Cycle Time is\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog 	<< "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
+	INFO << " A Reactor has been define :" << endl;
+	INFO << "\t Fuel Composition is not fixed ! "<< endl;
+	INFO << "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
+	INFO << "\t Life time (Operating's Duration) set at \t " << (double)(GetLifeTime()/3600/24/365.25) << " year" << endl;
+	INFO << "\t The Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW (with Full Power " << Power << " and " << ChargeFactor << " Charge Factor)"<< endl;
+	INFO << "\t Burn-Up at end of Cycle set at \t " << (double)(fBurnUp) << " GWj/t" << endl;
+	INFO << "\t The corresponding Cycle Time is\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
+	INFO << "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
 
 
 
 }
 
-Reactor::Reactor(LogFile* log, PhysicModels* 	fueltypeDB,
+Reactor::Reactor(CLASSLogger* log, PhysicModels* 	fueltypeDB,
 		 FabricationPlant* fabricationplant,
  		 CLASSBackEnd* Pool,
  		 cSecond creationtime, cSecond lifetime, cSecond cycletime,
  		 double HMMass, double BurnUp):CLASSFacility(log, creationtime, lifetime, cycletime, 4)
 {
-	SetName("R_Reactor.");
+	(*this).SetName("R_Reactor.");
 
 
 	fIsStarted = false;
@@ -176,36 +161,27 @@ Reactor::Reactor(LogFile* log, PhysicModels* 	fueltypeDB,
 
 	fNextPlan = fLoadingPlan.begin();
 
-	cout	<< "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
-	cout	<< "\t Fuel Composition is not fixed ! "<< endl;
-	cout	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	cout	<< "\t Life time (Operating's Duration) set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	cout	<< "\t The Cycle Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
-	cout	<< "\t Burn-Up at end of Cycle set at \t " << (double)(fBurnUp) << " GWj/t" << endl;
-	cout	<< "\t The corresponding Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW" << endl;
-	cout	<< "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
-
-	GetLog()->fLog 	<< "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
-	GetLog()->fLog	<< "\t Fuel Composition is not fixed ! "<< endl;
-	GetLog()->fLog	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "\t Life time (Operating's Duration) set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "\t The Cycle Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "\t Burn-Up at end of Cycle set at \t " << (double)(fBurnUp) << " GWj/t" << endl;
-	GetLog()->fLog	<< "\t The corresponding Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW" << endl;
-	GetLog()->fLog	<< "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
+	INFO << " A Reactor has been define :" << endl;
+	INFO << "\t Fuel Composition is not fixed ! "<< endl;
+	INFO << "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
+	INFO << "\t Life time (Operating's Duration) set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
+	INFO << "\t The Cycle Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
+	INFO << "\t Burn-Up at end of Cycle set at \t " << (double)(fBurnUp) << " GWj/t" << endl;
+	INFO << "\t The corresponding Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW" << endl;
+	INFO << "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
 
 
 
 }
 
 
-Reactor::Reactor(LogFile* log, EvolutionData evolutivedb,
+Reactor::Reactor(CLASSLogger* log, EvolutionData evolutivedb,
  		 CLASSBackEnd* Pool,
  		 cSecond creationtime,
  		 cSecond lifetime,
  		 double power, double HMMass, double BurnUp, double ChargeFactor ):CLASSFacility(log, creationtime, lifetime, 4)
 {
-	SetName("R_Reactor.");
+	(*this).SetName("R_Reactor.");
 
 
 	fIsStarted = false;
@@ -244,21 +220,13 @@ Reactor::Reactor(LogFile* log, EvolutionData evolutivedb,
 
 	fNextPlan = fLoadingPlan.begin();
 
-	cout	<< "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
-	cout	<< "\t Fuel Composition is fixed ! "<< endl;
-	cout	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	cout	<< "\t Life time (Operating's Duration) set at \t " << (double)(GetLifeTime()/3600/24/365.25) << " year" << endl;
-	cout	<< "\t The Cycle Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
-	cout	<< "\t The Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW (with Full Power " << power << " and " << ChargeFactor << " Charge Factor)"<< endl;
-	cout	<< "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
-
-	GetLog()->fLog	<< "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
-	GetLog()->fLog	<< "\t Fuel Composition is fixed ! "<< endl;
-	GetLog()->fLog	<< "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "\t Life time (Operating's Duration) set at \t " << (double)(GetLifeTime()/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "\t The Cycle Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "\t The Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW (with Full Power " << power << " and " << ChargeFactor << " Charge Factor)"<< endl;
-	GetLog()->fLog	<< "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
+	INFO << " A Reactor has been define :" << endl;
+	INFO << "\t Fuel Composition is fixed ! "<< endl;
+	INFO << "\t Creation time set at \t " << (double)(GetCreationTime()/3600/24/365.25) << " year" << endl;
+	INFO << "\t Life time (Operating's Duration) set at \t " << (double)(GetLifeTime()/3600/24/365.25) << " year" << endl;
+	INFO << "\t The Cycle Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
+	INFO << "\t The Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW (with Full Power " << power << " and " << ChargeFactor << " Charge Factor)"<< endl;
+	INFO << "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
 
 
 }
@@ -344,6 +312,7 @@ void Reactor::SetNewFuel(EvolutionData ivdb)
 //________________________________________________________________________
 void Reactor::Evolution(cSecond t)
 {
+DBGL
 
 
 	if( fIsShutDown  || t < GetCreationTime() ) return; // Reactor stop or not started...
@@ -355,8 +324,7 @@ void Reactor::Evolution(cSecond t)
 	}
 	else if(fIsStarted==true)
 	{
-		GetLog()->fLog << "!!Warning!! !!!Reactor!!!"
-		<< " Reactor should be working but there is no Heavy Nucleus Inside. It's not working so have a zero power..."
+		WARNING << " Reactor should be working but have no Heavy Nucleus Inside. It's not working so have a zero power..."
 		<< " Time : "<< t/365.25/3600/24 << " years" << endl;
 	}
 
@@ -405,23 +373,17 @@ void Reactor::Evolution(cSecond t)
 	else
 	{
 		// This is so bad!! You will probably unsynchronize all the reactor....
-		cout << "!!Warning!! !!!Reactor!!!"
-		<< " Evolution is too long! This is a Bad way to deal the evolution of the reactor..."
-		<< t/365.25/3600/24 << " :" << endl;
-
-
-		GetLog()->fLog << "!!Warning!! !!!Reactor!!!"
-		<< " Evolution is too long! This is a Bad way to deal the evolution of the reactor..."
-		<< t/365.25/3600/24 << " :" << endl;
+		ERROR << " Evolution is too long! There is a problem in Reactor evolution at " << t/365.25/3600/24 << endl;
 		exit(1);
 	}
 
-
+DBGL
 }
 
 //________________________________________________________________________
 void Reactor::Dump()
 {
+DBGL
 
 
 	if(fInternalTime < GetCreationTime()) return;
@@ -496,8 +458,7 @@ void Reactor::Dump()
 	{
 		if(!GetParc()->GetStockManagement())
 		{
-			cout << "!!Warning!! !!!Reactor!!! Can't have unfixedFuel without stock management'" << endl;
-			GetLog()->fLog << "!!Warning!! !!!Reactor!!! Can't have unfixedFuel without stock management" << endl;
+			ERROR << " Can't have unfixedFuel without stock management" << endl;
 			exit(1);
 		}
 
@@ -544,7 +505,7 @@ void Reactor::Dump()
 		
 	}
 	
-	
+DBGL
 }
 
 
diff --git a/source/branches/CLASSV3/src/Scenario.cxx b/source/branches/CLASSV3/src/Scenario.cxx
index c657ffff92bbca9e17f0d09855361d20e2a825f3..54140778817918a41e5dc02ed345caa8b5cdc135 100755
--- a/source/branches/CLASSV3/src/Scenario.cxx
+++ b/source/branches/CLASSV3/src/Scenario.cxx
@@ -15,7 +15,7 @@
 #include "CLASSBackEnd.hxx"
 #include "Pool.hxx"
 #include "FabricationPlant.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 
 
 //________________________________________________________________________
@@ -43,56 +43,15 @@ string dtoa(double num)
 	return os.str();
 }
 
-
-
 //________________________________________________________________________
-Scenario::Scenario()
+Scenario::Scenario(CLASSLogger* log, cSecond abstime):CLASSObject(log)
 {
 
 
 	fNewTtree = true;
 	fPrintStep = (cSecond)(3600*24*365.25);  // One Step per Year
-	fAbsoluteTime = 0;
-	fStartingTime = 0;
-
-	fStockManagement = true;
-
-	fOutputFileName = "CLASS_Default.root";
-	fOutputTreeName = "Data";
-	fOutFile = 0;
-	fOutT = 0;
-
-	SetLog(new LogFile("CLASS.log"));
-	fParcPower = 0;
-
-
-	// Warning
-
-	cout	<< "!!INFO!! !!!Scenario!!! A Parc has been define :" << endl;
-	cout	<< "\t Print step at : " << (double)(fPrintStep/3600/24/365.25) << " year" << endl;
-	cout	<< "\t Absolute Time set at " << (double)(fAbsoluteTime/3600/24/365.25) << " year" << endl;
-	cout	<< "\t StockManagement set at : true" << endl;
-	cout	<< "\t OutPut will be in \"" << fOutputFileName << "\" File and \"" << fOutputTreeName << "\" TTree" << endl;
-	cout	<< "\t Log will be in " << GetLog()->GetLogFileName() << endl << endl;
-
-	GetLog()->fLog 	<< "!!INFO!! !!!Scenario!!! Parc has been define :" << endl;
-	GetLog()->fLog	<< "\t Print  set at : " << (double)(fPrintStep/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "\t StockManagement set at : true" << endl;
-	GetLog()->fLog	<< "\t OutPut will be in \"" << fOutputFileName << "\" File and \"" << fOutputTreeName << "\" TTree" << endl;
-	GetLog()->fLog	<< "\t Log will be in " << GetLog()->GetLogFileName() << endl << endl;
-
-
-
-}
-//________________________________________________________________________
-Scenario::Scenario(LogFile* Log):CLASSObject(Log)
-{
-
-
-	fNewTtree = true;
-	fPrintStep = (cSecond)(3600*24*365.25);  // One Step per Year
-	fAbsoluteTime = 0;
-	fStartingTime = 0;
+	fAbsoluteTime = abstime;
+	fStartingTime = fAbsoluteTime;
 
 	fStockManagement = true;
 
@@ -106,29 +65,23 @@ Scenario::Scenario(LogFile* Log):CLASSObject(Log)
 
 	// Warning
 
-	cout	<< "!!INFO!! !!!Scenario!!! A Parc has been define :" << endl;
-	cout	<< "\t Print set at : " << (double)(fPrintStep/3600/24/365.25) << " year" << endl;
-	cout	<< "\t Absolute Time set at " << (double)(fAbsoluteTime/3600/24/365.25) << " year" << endl;
-	cout	<< "\t StockManagement set at : true" << endl;
-	cout	<< "\t OutPut will be in \"" << fOutputFileName << "\" File and \"" << fOutputTreeName << "\" TTree" << endl;
-	cout	<< "\t Log will be in " << GetLog()->GetLogFileName() << endl << endl;
 
-	GetLog()->fLog 	<< "!!INFO!! !!!Scenario!!! Parc has been define :" << endl;
-	GetLog()->fLog	<< "\t Print  set at : " << (double)(fPrintStep/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "\t StockManagement set at : true" << endl;
-	GetLog()->fLog	<< "\t OutPut will be in \"" << fOutputFileName << "\" File and \"" << fOutputTreeName << "\" TTree" << endl;
-	GetLog()->fLog	<< "\t Log will be in " << GetLog()->GetLogFileName() << endl << endl;
+	INFO 	<< " Parc has been define :" << endl;
+	INFO	<< " Print  set at : " << (double)(fPrintStep/3600/24/365.25) << " year" << endl;
+	INFO	<< " StockManagement set at : true" << endl;
+	INFO	<< " OutPut will be in \"" << fOutputFileName << "\" File and \"" << fOutputTreeName << "\" TTree" << endl;
+	INFO	<< " Log will be in " << GetLog()->GetCLASSLoggerName() << endl;
 
 
 
 }
 //________________________________________________________________________
-Scenario::Scenario(double abstime)
+Scenario::Scenario(cSecond abstime, CLASSLogger* log):CLASSObject(log)
 {
 
 	fNewTtree = true;
 	fPrintStep = (cSecond)(3600*24*365.25);  // One Step per Year
-	fAbsoluteTime = (cSecond)abstime;
+	fAbsoluteTime = abstime;
 	fStartingTime = fAbsoluteTime;
 
 	fStockManagement = true;
@@ -137,26 +90,15 @@ Scenario::Scenario(double abstime)
 	fOutputTreeName = "Data";
 	fOutFile = 0;
 	fOutT = 0;
-
-	SetLog(new LogFile("CLASS.log"));
 	fParcPower = 0;
 
-
-
-
 	// Warning
 
-	cout	<< "!!INFO!! !!!Scenario!!! A Parc has been define :" << endl;
-	cout	<< "\t Print set at : " << (double)(fPrintStep/3600/24/365.25) << " year" << endl;
-	cout	<< "\t StockManagement set at : true" << endl;
-	cout	<< "\t OutPut will be in \"" << fOutputFileName << "\" File and \"" << fOutputTreeName << "\" TTree" << endl;
-	cout	<< "\t Log will be in " << GetLog()->GetLogFileName() << endl;
-
-	GetLog()->fLog 	<< "!!INFO!! !!!Scenario!!! Parc has been define :" << endl;
-	GetLog()->fLog	<< "\t Print  set at : " << (double)(fPrintStep/3600/24/365.25) << " year" << endl;
-	GetLog()->fLog	<< "\t StockManagement set at : true" << endl;
-	GetLog()->fLog	<< "\t OutPut will be in \"" << fOutputFileName << "\" File and \"" << fOutputTreeName << "\" TTree" << endl;
-	GetLog()->fLog	<< "\t Log will be in " << GetLog()->GetLogFileName() << endl << endl;
+	INFO 	<< "!!INFO!! !!!Scenario!!! Parc has been define :" << endl;
+	INFO	<< "\t Print  set at : " << (double)(fPrintStep/3600/24/365.25) << " year" << endl;
+	INFO	<< "\t StockManagement set at : true" << endl;
+	INFO	<< "\t OutPut will be in \"" << fOutputFileName << "\" File and \"" << fOutputTreeName << "\" TTree" << endl;
+	INFO	<< "\t Log will be in " << GetLog()->GetCLASSLoggerName() << endl;
 
 
 
@@ -341,6 +283,7 @@ map<cSecond,int> Scenario::GetTheBackEndTimePath(Reactor* reactor)
 //________________________________________________________________________
 void Scenario::BuildTimeVector(cSecond t)
 {
+DBGL
 	fTimeStep.clear();
 	fTimeStep.insert( pair<cSecond ,int>(t,1) );
 	//********* Printing Step *********//
@@ -430,8 +373,7 @@ void Scenario::BuildTimeVector(cSecond t)
 			}
 			else if( step - FabricationCycleTime < fStartingTime )
 			{
-				cout	   << "!!Warning!! !!!CLASS!!! Can't Build Fuel before Scenario's start\"\n" << endl;
-				GetLog()->fLog   << "!!Warning!! !!!CLASS!!! Can't Build Fuel before Scenario's start\"\n" << endl;
+				ERROR   << " Can't Build Fuel before Scenario's start\"\n" << endl;
 				exit(1);
 			}
 		}
@@ -497,8 +439,7 @@ void Scenario::BuildTimeVector(cSecond t)
 		}
 		else
 		{
-			cout	       << "!!Warning!! !!!Reactor!!! Be carefull a reactor cycletime is set to 0 second....\"\n" << endl;
-			GetLog()->fLog << "!!Warning!! !!!Reactor!!! Be carefull a reactor cycletime is set to 0 second....\"\n" << endl;
+			WARNING << " Be carefull a reactor cycletime is set to 0 second....\"\n" << endl;
 		}
 
 	}
@@ -510,14 +451,13 @@ void Scenario::BuildTimeVector(cSecond t)
 	ofstream TimeStepfile("CLASS_TimeStep", ios_base::app);		// Open the File
 
 	if(!TimeStepfile)
-	{
-		cout		<< "!!Warning!! !!!CLASS!!! Can't open \" CLASS_TimeStep \"\n" << endl;
-		GetLog()->fLog 	<< "!!Warning!! !!!CLASS!!! Can't open \" CLASS_TimeStep \"\n" << endl;
-	}
+		WARNING	<< " Can't open \" CLASS_TimeStep \"\n" << endl;
+
 	map<cSecond ,int >::iterator it;
 	for( it = fTimeStep.begin(); it != fTimeStep.end(); it++)
 		TimeStepfile << (*it).first << " " << (*it).second << endl;
 
+DBGL
 }
 //________________________________________________________________________
 void Scenario::OldBuildTimeVector(cSecond t)
@@ -592,8 +532,7 @@ void Scenario::OldBuildTimeVector(cSecond t)
 			}
 			else if(step - fabricationstep < fStartingTime)
 			{
-				cout		<< "!!Warning!! !!!CLASS!!! Can't Build Fuel before Scenario's start\"\n" << endl;
-				GetLog()->fLog 	<< "!!Warning!! !!!CLASS!!! Can't Build Fuel before Scenario's start\"\n" << endl;
+				ERROR << " Can't Build Fuel before Scenario's start\"\n" << endl;
 				exit(1);
 			}
 		}
@@ -658,13 +597,14 @@ void Scenario::OldBuildTimeVector(cSecond t)
 
 	if(!TimeStepfile)
 	{
-		cout		<< "!!Warning!! !!!CLASS!!! Can't open \" CLASS_TimeStep \"\n" << endl;
-		GetLog()->fLog 	<< "!!Warning!! !!!CLASS!!! Can't open \" CLASS_TimeStep \"\n" << endl;
+		WARNING << " Can't open \" CLASS_TimeStep \"\n" << endl;
+	}
+	else
+	{
+		map<cSecond ,int >::iterator it;
+		for( it = fTimeStep.begin(); it != fTimeStep.end(); it++)
+			TimeStepfile << (*it).first << " " << (*it).second << endl;
 	}
-	map<cSecond ,int >::iterator it;
-	for( it = fTimeStep.begin(); it != fTimeStep.end(); it++)
-		TimeStepfile << (*it).first << " " << (*it).second << endl;
-
 }
 
 
@@ -675,40 +615,40 @@ void Scenario::OldBuildTimeVector(cSecond t)
 
 void Scenario::PoolEvolution()
 {
-
+DBGL
 #pragma omp parallel for
 	for(int i = 0; i < (int) fPool.size();i++)
 		fPool[i]->Evolution(fAbsoluteTime);
 
 	for(int i = 0; i < (int) fPool.size();i++)
 		fPool[i]->Dump();
-
+DBGL
 }
 
 void Scenario::StorageEvolution()
 {
-
+DBGL
 #pragma omp parallel for
 	for(int i = 0; i < (int) fStorage.size();i++)
 		fStorage[i]->Evolution(fAbsoluteTime);
 
-
+DBGL
 }
 
 void Scenario::FabricationPlantEvolution()
 {
-
+DBGL
 	//#pragma omp parallel for
 	for(int i = 0; i < (int) fFabricationPlant.size();i++)
 		fFabricationPlant[i]->Evolution(fAbsoluteTime);
 
-
+DBGL
 }
 
 //________________________________________________________________________
 void Scenario::ReactorEvolution()
 {
-
+DBGL
 	fParcPower = 0;
 #pragma omp parallel for
 	for(int i = 0; i < (int)fReactor.size(); i++)
@@ -718,13 +658,13 @@ void Scenario::ReactorEvolution()
 	for(int i = 0; i < (int)fReactor.size(); i++)
 		fReactor[i]->Dump();
 
-
+DBGL
 }
 
 //________________________________________________________________________
 void Scenario::Evolution(double t)
 {
-
+DBGL
 
 	BuildTimeVector( (cSecond)t );
 
@@ -768,7 +708,7 @@ void Scenario::Evolution(double t)
 	}
 	cout << endl;
 
-
+DBGL
 }
 
 void Scenario::ProgressPrintout(cSecond t)
@@ -777,7 +717,11 @@ void Scenario::ProgressPrintout(cSecond t)
 	double Time = (fAbsoluteTime-fStartingTime)/3600/24/365.25 ;
 	double Total = (t-fStartingTime)/3600/24/365.25;
 
-	cout << "                                                                                                       " << flush ;
+	// Reset the line
+	for(int i = 0; i < 100; i++)
+		cout << "  ";
+	cout << flush ;
+
 	cout << "\r[";
 	for(int i = 0; i < (int)(Time/Total*100.0); i++)
 		cout << "|";
@@ -788,13 +732,12 @@ void Scenario::ProgressPrintout(cSecond t)
 	cout << " Processed ";
 	if (Time < 10) cout << " ";
 	if (Time < 100) cout << " ";
-	cout << (int)Time << " / " << (int)Total << " Years \r" << flush;
+	cout << (int)Time << " / " << (int)Total << " Years \r";
+	if(fLog->GetVerboseLVL() < 2) cout << flush;
+	else cout << endl;
 
 
-	GetLog()->fLog 	<< "Proccessed";
-	if (Time < 10) GetLog()->fLog << " ";
-	if (Time < 100) GetLog()->fLog << " ";
-	GetLog()->fLog << (int)Time << " / " << (int)Total << " Years \r" << endl;
+	INFO << " Proccessed" << (int)Time << " / " << (int)Total << " Years \r" << endl;
 
 }
 
@@ -844,31 +787,26 @@ void Scenario::OpenOutputTree()
 {
 
 
-	cout << "Opening OutPut File ...\t";
-	GetLog()->fLog << "Opening : " << fOutputFileName << " ...\t";
+	INFO << "Opening : " << fOutputFileName << " ...\t";
 	fOutFile = new TFile(fOutputFileName.c_str(),"UPDATE");
 
 	if(!fOutFile)
 	{
-		cout << "\nCould not open " << fOutputFileName <<endl;
-		GetLog()->fLog << "\nCould not open " << fOutputFileName <<endl;
+		ERROR << "\nCould not open " << fOutputFileName <<endl;
 		exit(-1);
 	}
 	cout << "\t ...OK!" << endl;
 
 
 	fOutT = new TTree(fOutputTreeName.c_str(), "Data Tree");
-	cout << "Creating Data Tree ...\t";
-	GetLog()->fLog << "Creating Data Tree ...\t";
+	INFO << "Creating Data Tree ...\t";
 	if(!fOutT)
 	{
-		cout << "\nCould not create Data Tree in " << fOutputFileName << endl;
-		GetLog()->fLog << "\nCould not create Data Tree in " << fOutputFileName << endl;
+		ERROR << "\nCould not create Data Tree in " << fOutputFileName << endl;
 		exit(-1);
 	}
 	fNewTtree = false;
-	cout << "\t ...OK!" << endl;
-	GetLog()->fLog <<  "\t ...OK!" << endl;
+	INFO <<  "\t ...OK!" << endl;
 
 }
 void Scenario::CloseOutputTree()
@@ -876,21 +814,17 @@ void Scenario::CloseOutputTree()
 
 
 	fOutFile->ls();
-	cout << "Writing outTree " << fOutputFileName << endl;
-	GetLog()->fLog << "Writing outTree " << fOutputFileName << endl;
+	INFO << "Writing outTree " << fOutputFileName << endl;
 	fOutFile->Write();
 
 	if(fOutFile->IsOpen()) {
-		cout << "Deleting outTree : " << endl;
-		GetLog()->fLog << "Deleting outTree : " << endl;
+		INFO << "Deleting outTree : " << endl;
 		delete fOutT;
-		cout << "Closing file : " << fOutputFileName <<endl;
-		GetLog()->fLog << "Closing file : " << fOutputFileName <<endl;
+		INFO << "Closing file : " << fOutputFileName <<endl;
 		fOutFile-> Close();
 		delete fOutFile;
 	} else {
-		cout << "File was not opened " << fOutputFileName << endl;
-		GetLog()->fLog << "File was not opened " << fOutputFileName << endl;
+		ERROR << "File was not opened " << fOutputFileName << endl;
 		exit(-1);
 	}
 }
@@ -953,15 +887,15 @@ void Scenario::Print()
 
 	for(int i = 0; i < (int) fPool.size();i++)
 	{
-		cout << "!!!!!!!!!STEP : " << fAbsoluteTime/(int)(3600*24*365.25) << endl;
-		cout << "Pool : " << endl;
-		cout << "Cooling ";
-		cout << fPool[i]->GetIVArray().size()<< endl;
+		INFO << "!!!!!!!!!STEP : " << fAbsoluteTime/(int)(3600*24*365.25) << endl;
+		INFO << "Pool : " << endl;
+		INFO << "Cooling ";
+		INFO << fPool[i]->GetIVArray().size()<< endl;
 	}
 
 	for(int i = 0; i < (int)fReactor.size(); i++)
 	{
-		cout << "Reactor" << endl;
+		INFO << "Reactor" << endl;
 		fReactor[i]->GetIVReactor().Print();
 	}
 
diff --git a/source/branches/CLASSV3/src/Storage.cxx b/source/branches/CLASSV3/src/Storage.cxx
index 98fd52947bd5c245966fa01cbfe523cd7cd70606..2ce36f408323724f81fcda361b9c0719cc97de2d 100644
--- a/source/branches/CLASSV3/src/Storage.cxx
+++ b/source/branches/CLASSV3/src/Storage.cxx
@@ -1,7 +1,7 @@
 #include "Storage.hxx"
 
 #include "Scenario.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 
 
 #include <sstream>
@@ -27,19 +27,17 @@ Storage::Storage():CLASSBackEnd(-1)
 
 }
 
-Storage::Storage(LogFile* log):CLASSBackEnd(log, -1)
+Storage::Storage(CLASSLogger* log):CLASSBackEnd(log, -1)
 {
 	SetIsStorageType();
 
 	SetName("S_Storage.");
 
-	cout	<< "!!INFO!! !!!Storage!!! A new Storage has been define." << endl;
-	
-	GetLog()->fLog	<< "!!INFO!! !!!Storage!!! A new Storage has been define." << endl;
+	INFO << " A new Storage has been define." << endl;
 	
 }
 //________________________________________________________________________
-Storage::Storage(LogFile* log, DecayDataBank* evolutivedb):CLASSBackEnd(log, -1)
+Storage::Storage(CLASSLogger* log, DecayDataBank* evolutivedb):CLASSBackEnd(log, -1)
 {
 	SetIsStorageType();
 
@@ -47,9 +45,7 @@ Storage::Storage(LogFile* log, DecayDataBank* evolutivedb):CLASSBackEnd(log, -1)
 	
 	SetName("S_Storage.");
 
-	cout	<< "!!INFO!! !!!Storage!!! A new Storage has been define." << endl;
-	
-	GetLog()->fLog	<< "!!INFO!! !!!Storage!!! A new Storage has been define." << endl;
+	INFO << " A new Storage has been define." << endl;
 
 
 }
@@ -84,8 +80,7 @@ void Storage::TakeFractionFromStock(int IVId,double fraction)
 	{
 		if(fraction > 1 || fraction < 0)
 		{
-			cout << "!!Warning!! !!!Storage!!! You try to remove fraction superior than 1 or a negative one..." << endl;
-			GetLog()->fLog << "!!Warning!! !!!Storage!!! You try to remove fraction superior than 1 or a negative one..." << endl;
+			WARNING << " You try to remove fraction superior than 1 or a negative one..." << endl;
 		}
 		else 
 		{
@@ -98,8 +93,7 @@ void Storage::TakeFractionFromStock(int IVId,double fraction)
 	}
 	else
 	{
-		cout << "!!Warning!! !!!Storage!!! TakeFractionFromStock can't be DEFINE without REAL stock management" << endl;
-		GetLog()->fLog << "!!Warning!! !!!Storage!!! TakeFractionFromStock can't be DEFINE without REAL stock management" << endl;
+		ERROR << " TakeFractionFromStock can't be DEFINE without REAL stock management" << endl;
 		exit(1);
 
 	}
@@ -119,8 +113,7 @@ void Storage::TakeFromStock(IsotopicVector isotopicvector)
 	}
 	else
 	{
-		cout << "!!Warning!! !!!Storage!!! TakeFromStock can't be DEFINE WITH REAL stock management" << endl;
-		GetLog()->fLog << "!!Warning!! !!!Storage!!! TakeFromStock can't be DEFINE WITH REAL stock management" << endl;
+		ERROR << " TakeFromStock can't be DEFINE WITH REAL stock management" << endl;
 		exit(1);
 	}
 
@@ -129,7 +122,7 @@ void Storage::TakeFromStock(IsotopicVector isotopicvector)
 //________________________________________________________________________
 void Storage::StorageEvolution(cSecond t)
 {
-
+DBGL
 
 	if(t == fInternalTime && t !=0 ) return;
 
@@ -151,10 +144,7 @@ void Storage::StorageEvolution(cSecond t)
 	{
 		fIVArray[i] = GetDecay(fIVArray[i] , EvolutionTime);
 	}
-	
-
-	
-
+DBGL
 }
 
 //________________________________________________________________________
diff --git a/source/branches/CLASSV3/src/XSM_CLOSEST.cxx b/source/branches/CLASSV3/src/XSM_CLOSEST.cxx
index dd5a79b8095599dd16833730cbcf55749e8b61ce..8d48af58c58a1cfda7758d191b1e1d66ab6bd0c0 100644
--- a/source/branches/CLASSV3/src/XSM_CLOSEST.cxx
+++ b/source/branches/CLASSV3/src/XSM_CLOSEST.cxx
@@ -1,6 +1,6 @@
 #include "XSModel.hxx"
 #include "XSM_CLOSEST.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 #include "StringLine.hxx"
 
 
@@ -27,7 +27,7 @@
 //
 //
 //________________________________________________________________________
-XSM_CLOSEST::XSM_CLOSEST(LogFile* Log,string DB_index_file, bool oldreadmethod ): XSModel(Log)
+XSM_CLOSEST::XSM_CLOSEST(CLASSLogger* Log,string DB_index_file, bool oldreadmethod ): XSModel(Log)
 {
 	fOldReadMethod = oldreadmethod;
 	fDataBaseIndex = DB_index_file;
@@ -39,13 +39,9 @@ XSM_CLOSEST::XSM_CLOSEST(LogFile* Log,string DB_index_file, bool oldreadmethod )
 	if(IsLog())
 	{
 		// Warning
-		cout	<< "!!INFO!! !!!XSM_CLOSEST!!! A EvolutionData has been define :" << endl;
-		cout	<< "\t His index is : \"" << DB_index_file << "\"" << endl;
-		cout	<< "\t " << fFuelDataBank.size() << " EvolutionData have been read."<< endl << endl;
-		
-		GetLog()->fLog 	<< "!!INFO!! !!!XSM_CLOSEST!!! A EvolutionData has been define :" << endl;
-		GetLog()->fLog	<< "\t His index is : \"" << DB_index_file << "\"" << endl;
-		GetLog()->fLog	<< "\t " << fFuelDataBank.size() << " EvolutionData have been read."<< endl << endl;
+		INFO 	<< " A EvolutionData has been define :" << endl;
+		INFO	<< "\t His index is : \"" << DB_index_file << "\" " << endl;
+		INFO	<< "\t " << fFuelDataBank.size() << " EvolutionData have been read."<< endl << endl;
 	}
 
 }
@@ -72,10 +68,8 @@ void XSM_CLOSEST::ReadDataBase()
 
 	ifstream DataDB(fDataBaseIndex.c_str());							// Open the File
 	if(!DataDB)
-	{
-		cout << "!!Warning!! !!!FuelDataBank!!! \n Can't open \"" << fDataBaseIndex << "\"\n" << endl;
-		GetLog()->fLog << "!!Warning!! !!!FuelDataBank!!! \n Can't open \"" << fDataBaseIndex << "\"\n" << endl;
-	}
+		WARNING << " Can't open \"" << fDataBaseIndex << "\"\n" << endl;
+
 	vector<double> vTime;
 	vector<double> vTimeErr;
 	
@@ -87,8 +81,7 @@ void XSM_CLOSEST::ReadDataBase()
 	getline(DataDB, line);
 	if( StringLine::NextWord(line, start, ' ') != "TYPE")
 	{
-		cout << "!!Bad Trouble!! !!!FuelDataBank!!! Bad Database file : " <<  fDataBaseIndex << " Can't find the type of the DataBase"<< endl;
-		GetLog()->fLog << "!!Bad Trouble!! !!!FuelDataBank!!! Bad Database file : " <<  fDataBaseIndex << " Can't find the type of the DataBase"<< endl;
+		ERROR << " Bad Database file : " <<  fDataBaseIndex << " Can't find the type of the DataBase"<< endl;
 		exit (1);
 	}
 	fFuelType = StringLine::NextWord(line, start, ' ');
@@ -142,14 +135,14 @@ map<double, int> XSM_CLOSEST::GetDistancesTo(IsotopicVector isotopicvector, doub
 //________________________________________________________________________
 EvolutionData XSM_CLOSEST::GetCrossSections(IsotopicVector isotopicvector, double t) 
 {
-	
+DBGL
 	double distance = 0;
 	int N_BestEvolutionData = 0;
 
 	
 	if(fWeightedDistance)
 	{
-
+DBGL
 		IsotopicVector ActinidesCompositionAtT = fFuelDataBank[0].GetIsotopicVectorAt(t).GetActinidesComposition();
 		IsotopicVector IV_ActinidesComposition = isotopicvector.GetActinidesComposition();
 
@@ -176,12 +169,12 @@ EvolutionData XSM_CLOSEST::GetCrossSections(IsotopicVector isotopicvector, doubl
 				N_BestEvolutionData = i;
 			}
 		}
-		
+DBGL
 		return fFuelDataBank[N_BestEvolutionData];
 	}
 	else if (fEvolutionDataInterpolation)
 	{
-		
+DBGL
 		map<double, int> distance_map = GetDistancesTo(isotopicvector, t);
 		map<double, int>::iterator it_distance;
 		int NClose = 64;
@@ -227,11 +220,13 @@ EvolutionData XSM_CLOSEST::GetCrossSections(IsotopicVector isotopicvector, doubl
 		EvolInterpolate = Multiply(1/SumOfDistance, Evoltmp);
 		
 		Evoltmp.DeleteEvolutionData();
+DBGL
 		return EvolInterpolate;
 		
 	}
 	else
 	{
+DBGL
 		IsotopicVector ActinidesCompositionAtT = fFuelDataBank[0].GetIsotopicVectorAt(t).GetActinidesComposition();
 		IsotopicVector IV_ActinidesComposition = isotopicvector.GetActinidesComposition();
 
@@ -261,21 +256,17 @@ EvolutionData XSM_CLOSEST::GetCrossSections(IsotopicVector isotopicvector, doubl
 			}
 		}
 
+DBGL
 		return fFuelDataBank[N_BestEvolutionData];
-
 	}
-		
+
 }
 //________________________________________________________________________
 void XSM_CLOSEST::CalculateDistanceParameter()
 {
-	
+DBGL
 	if(fDistanceType!=1){
-		cout << "!!Warning!! !!!CalculateDistanceParameter!!!"
-		<< " Distance Parameter will be calculate even if the distance type is not the good one. Any Distance Parameters given by the user will be overwriten"<<endl;
-		
-		GetLog()->fLog << "!!Warning!! !!!CalculateDistanceParameter!!!"
-		<< " Distance Parameter will be calculate even if the distance type is not the good one. Any Distance Parameters given by the user will be overwriten"<<endl;
+		WARNING << " Distance Parameter will be calculate even if the distance type is not the good one. Any Distance Parameters given by the user will be overwriten" << endl;
 	}
 	
 	fDistanceParameter.Clear();
@@ -304,20 +295,20 @@ void XSM_CLOSEST::CalculateDistanceParameter()
 	
 	if(GetLog())
 	{
-		GetLog()->fLog <<"!!INFO!! Distance Parameters "<<endl;
+		INFO <<"!!INFO!! Distance Parameters "<<endl;
 		map<ZAI ,double >::iterator it2;
 		for(it2 = fDistanceParameter.GetIsotopicQuantity().begin();it2 != fDistanceParameter.GetIsotopicQuantity().end(); it2++)
 		{
-			GetLog()->fLog << (*it2).first.Z() << " ";
-			GetLog()->fLog << (*it2).first.A() << " ";
-			GetLog()->fLog << (*it2).first.I() << " ";
-			GetLog()->fLog << ": " << (*it2).second;
-			GetLog()->fLog << endl;
+			INFO << (*it2).first.Z() << " ";
+			INFO << (*it2).first.A() << " ";
+			INFO << (*it2).first.I() << " ";
+			INFO << ": " << (*it2).second;
+			INFO << endl;
 		}
-		GetLog()->fLog << endl;
+		INFO << endl;
 	}
 	
-	
+DBGL
 }
 //________________________________________________________________________
 void XSM_CLOSEST::SetDistanceParameter(IsotopicVector DistanceParameter)
@@ -325,17 +316,17 @@ void XSM_CLOSEST::SetDistanceParameter(IsotopicVector DistanceParameter)
 	
 	fDistanceParameter = DistanceParameter;
 	
-	GetLog()->fLog <<"!!INFO!! Distance Parameters "<<endl;
+	INFO <<"!!INFO!! Distance Parameters "<<endl;
 	map<ZAI ,double >::iterator it2;
 	for(it2 = fDistanceParameter.GetIsotopicQuantity().begin();it2 != fDistanceParameter.GetIsotopicQuantity().end(); it2++)
 	{
-		GetLog()->fLog << (*it2).first.Z() << " ";
-		GetLog()->fLog << (*it2).first.A() << " ";
-		GetLog()->fLog << (*it2).first.I() << " ";
-		GetLog()->fLog << ": " << (*it2).second;
-		GetLog()->fLog << endl;
+		INFO << (*it2).first.Z() << " ";
+		INFO << (*it2).first.A() << " ";
+		INFO << (*it2).first.I() << " ";
+		INFO << ": " << (*it2).second;
+		INFO << endl;
 	}
-	GetLog()->fLog << endl;
+	INFO << endl;
 	
 }
 
@@ -349,19 +340,11 @@ void XSM_CLOSEST::SetDistanceType(int DistanceType)
 	}
 	else if(fDistanceType == 2 && Norme(fDistanceParameter)==0){
 		// This is so bad!! You will probably unsynchronize all the reactor....
-		cout << "!!Warning!! !!!DistanceType!!!"
-		<< " Distance use weight defined by user for each isotope, but no weight have been given" << endl<<"Use SetDistanceParameter()"<<endl;
-		
-		GetLog()->fLog << "!!Warning!! !!!DistanceType!!!"
-		<< " Distance use weight defined by user for each isotope, but no weight have been given" << endl<<"Use SetDistanceParameter()"<<endl;
+		WARNING << " Distance use weight defined by user for each isotope, but no weight have been given" << endl<<"Use SetDistanceParameter()"<<endl;
 		exit(1);
 	}
 	else if (fDistanceType != 0 && fDistanceType != 1 && fDistanceType != 2 ){
-		cout << "!!ERROR!! !!!DistanceType!!!"
-		<< " Distancetype defined by the user isn't recognized by the code"<<endl;
-		
-		GetLog()->fLog << "!!ERROR!! !!!DistanceType!!!"
-		<< " Distancetype defined by the user isn't recognized by the code"<<endl;
+		ERROR << " Distancetype defined by the user isn't recognized by the code"<<endl;
 		exit(1);
 	}
 	
diff --git a/source/branches/CLASSV3/src/XSM_MLP_PWR_MOX.cxx b/source/branches/CLASSV3/src/XSM_MLP_PWR_MOX.cxx
index 6bd02e972973b1b27affc0c9a5a7fbc09b6fd176..8942bfe93cb2d55382c6cad398a2be73cf95f8ae 100644
--- a/source/branches/CLASSV3/src/XSM_MLP_PWR_MOX.cxx
+++ b/source/branches/CLASSV3/src/XSM_MLP_PWR_MOX.cxx
@@ -1,7 +1,7 @@
 
 #include "XSModel.hxx"
 #include "XSM_MLP_PWR_MOX.hxx"
-#include "LogFile.hxx"
+#include "CLASSLogger.hxx"
 #include "StringLine.hxx"
 
 #include "TMVA/Reader.h"
@@ -32,8 +32,8 @@
 //
 //
 //________________________________________________________________________
-XSM_MLP_PWR_MOX::XSM_MLP_PWR_MOX(LogFile* Log,string TMVA_Weight_Directory,string InformationFile, bool IsTimeStep)
-{	
+XSM_MLP_PWR_MOX::XSM_MLP_PWR_MOX(CLASSLogger* Log,string TMVA_Weight_Directory,string InformationFile, bool IsTimeStep)
+{
 
 	SetLog(Log);
 
@@ -50,12 +50,8 @@ XSM_MLP_PWR_MOX::XSM_MLP_PWR_MOX(LogFile* Log,string TMVA_Weight_Directory,strin
 	if(IsLog())
 	{
 		// Warning
-		cout	<< "!!INFO!! !!!XSM_MLP_PWR_MOX!!! A EvolutionData has been define :" << endl;
-		cout	<< "\t His TMVA folder is : \"" << fTMVAWeightFolder << "\"" << endl;
-
-		
-		GetLog()->fLog 	<< "!!INFO!! !!!XSM_MLP_PWR_MOX!!! A EvolutionData has been define :" << endl;
-		GetLog()->fLog	<<"\t His TMVA folder is : \"" << fTMVAWeightFolder << "\"" << endl;
+		INFO << " A EvolutionData has been define : " << endl;
+		INFO << " \t His TMVA folder is : \" " << fTMVAWeightFolder << "\"" << endl;
 	}
 
 }
@@ -128,7 +124,7 @@ void XSM_MLP_PWR_MOX::GetDataBaseInformation()
 	}
 	else
 	{
-		cout<<"Can't find/open file "<<fMLPInformationFile<<endl;
+		ERROR << "Can't find/open file " << fMLPInformationFile << endl;
 		exit(0);
 	}
 
@@ -215,7 +211,7 @@ void XSM_MLP_PWR_MOX::ReadWeightFile(string Filename, int &Z, int &A, int &I, in
 
 	if(Z<=0 || A<=0 || I<0 || Reaction==-1)
 	{
-		cout<<"ERROR in XSM_MLP_PWR_MOX::ReadWeightFile : wrong TMVA weight format"<<endl;
+		ERROR << " wrong TMVA weight format " << endl;
 		exit(0);
 	}
 }
@@ -416,7 +412,7 @@ void XSM_MLP_PWR_MOX::ReadWeightFileStep(string Filename, int &Z, int &A, int &I
 
     if(Z==-1 || A==-1 || I==-1 || Reaction==-1 || TimeStep==-1)
 	{
-		cout<<"ERROR in XSM_MLP_PWR_MOX::ReadWeightFile : wrong TMVA weight format"<<endl;
+		ERROR << " wrong TMVA weight format " << endl;
 		exit(0);
 	}
 }
@@ -484,7 +480,7 @@ EvolutionData XSM_MLP_PWR_MOX::GetCrossSectionsStep(IsotopicVector IV)
 EvolutionData XSM_MLP_PWR_MOX::GetCrossSections(IsotopicVector IV ,double t)
 {	
 	if(t!=0)
-		{cout<<"WARNING::XSM_MLP_PWR_MOX::GetCrossSections argument t has non effect here "<<endl; }
+		WARNING << " argument t has non effect here " << endl;
 
 	EvolutionData EV;
 	if(fIsStepTime)
diff --git a/source/branches/CLASSV3/src/XSModel.cxx b/source/branches/CLASSV3/src/XSModel.cxx
index 700c79b5229168649ef94f8cc9b7b871d0d7a8bb..19b7c12ce271f49a9c763e54cc523002e4a30bff 100644
--- a/source/branches/CLASSV3/src/XSModel.cxx
+++ b/source/branches/CLASSV3/src/XSModel.cxx
@@ -17,7 +17,7 @@ XSModel::XSModel(): CLASSObject()
 
 
 
-XSModel::XSModel(LogFile* log): CLASSObject(log)
+XSModel::XSModel(CLASSLogger* log): CLASSObject(log)
 {
 
 }
\ No newline at end of file
diff --git a/source/branches/CLASSV3/src/ZAIMass.cxx b/source/branches/CLASSV3/src/ZAIMass.cxx
index 621a7104cfad0268450f5de8d9807a30b0c931f7..8c355e96955e110e78380979cac9d7927a554181 100644
--- a/source/branches/CLASSV3/src/ZAIMass.cxx
+++ b/source/branches/CLASSV3/src/ZAIMass.cxx
@@ -28,7 +28,7 @@ ZAIMass::ZAIMass()
 
 	if(!infile.good())
 	{	
-		cout<<"ZAIMass Error.\n can't find/open file "<<MassDataFile<<endl;
+		cout << " ZAIMass Error.\n can't find/open file " << MassDataFile << endl;
 		exit(1);
 	}