diff --git a/NPAnalysis/pMakePhysicalTree/DataProcessor.cxx b/NPAnalysis/pMakePhysicalTree/DataProcessor.cxx
index 89b2c24f840c86113fa4163c92a6ed2241335ced..75a044a123906f2500bf2fa55bb6fe04007d9e2b 100644
--- a/NPAnalysis/pMakePhysicalTree/DataProcessor.cxx
+++ b/NPAnalysis/pMakePhysicalTree/DataProcessor.cxx
@@ -1,4 +1,5 @@
 #include "DataProcessor.h"
+#include <cstdlib>
 ClassImp(DataProcessor);
 
 //_____________________________________________________________________________
@@ -52,7 +53,7 @@ void DataProcessor::SlaveBegin(TTree*){
     m_ProofFile = new TProofOutputFile("Local.root",TProofOutputFile::kDataset, opt );
     m_OutputFile = m_ProofFile->OpenFile("RECREATE");
   
-  GetOutputList()->Add(m_ProofFile);
+  
   m_OutputTree->SetDirectory(m_OutputFile);
   m_OutputTree->AutoSave();
   m_OutputFile->Flush();
@@ -69,22 +70,18 @@ Bool_t DataProcessor::Process(Long64_t entry){
 
 //_____________________________________________________________________________
 void DataProcessor::Terminate(){
+  sleep(1000);
   cout << 1 << endl ;
-  string OutputfileName = NPOptionManager::getInstance(GetOption())->GetOutputFile();
-  cout << 2 << endl ;
-  RootOutput::getInstance(OutputfileName, "S1107Physics");
-  cout << 3 << endl ;
-  TFile* OutputFile = RootOutput::getInstance()->InitFile(  NPOptionManager::getInstance(GetOption())->GetOutputFile());
-  cout << 4 << endl ;
+  string OutputfileName = NPOptionManager::getInstance(GetOption())->GetOutputFile();cout << 2 << endl ;
+  RootOutput::getInstance(OutputfileName, "S1107Physics");cout << 3 << endl ;
+  TFile* OutputFile = RootOutput::getInstance()->InitFile(  NPOptionManager::getInstance(GetOption())->GetOutputFile());cout << 4 << endl ;
+  
   GetOutputList()->Print();
-  m_ProofFile = dynamic_cast<TProofOutputFile*>(GetOutputList()->FindObject("Local.root"));
-  cout << 5 << endl ;
-  TString outputFile(m_ProofFile->GetOutputFileName());
-  cout << 6 << endl ;
-  m_OutputFile = TFile::Open(outputFile);
-  cout << 7 << endl ;
-  m_OutputTree = (TTree*) m_OutputFile->Get("S1107Physics");
-  cout << 8 << endl ;
+  m_ProofFile = dynamic_cast<TProofOutputFile*>(GetOutputList()->FindObject("Local.root"));cout << 5 << endl ;
+
+  TString outputFile(m_ProofFile->GetOutputFileName());cout << 6 << endl ;
+  m_OutputFile = TFile::Open(outputFile);cout << 7 << endl ;
+  m_OutputTree = (TTree*) m_OutputFile->Get("S1107Physics");cout << 8 << endl ;
   m_OutputTree->SetDirectory(OutputFile);cout << 9 << endl ;
   m_OutputTree->Write();cout << 10 << endl ;
   OutputFile->Flush();cout << 11 << endl ;
@@ -105,6 +102,8 @@ void DataProcessor::Terminate(){
 void DataProcessor::SlaveTerminate(){
   m_OutputFile->cd();
   m_OutputTree->Write();
+  m_OutputFile->Flush();
+    GetOutputList()->Add(m_ProofFile);
   m_OutputFile->Close();
   RootOutput::getInstance()->Destroy();
   RootInput::getInstance()->Destroy();
diff --git a/NPSimulation/include/EventGeneratorBeam.hh b/NPSimulation/include/EventGeneratorBeam.hh
index 099f4ce4962e06fc4bbb716d9df9e2d33fa7f9f8..c8b0d0f4d68d8192e4c7e10450daea65239446b8 100644
--- a/NPSimulation/include/EventGeneratorBeam.hh
+++ b/NPSimulation/include/EventGeneratorBeam.hh
@@ -36,7 +36,6 @@
 
 // NPL Header
 #include "NPBeam.h"
-#include "TInitialConditions.h"
 
 using namespace std  ;
 
@@ -51,9 +50,6 @@ public:     // Inherit from VEventGenerator Class
   void InitializeRootOutput();
   void SetTarget(Target* Target) ;
   
-private: // TTree to store initial value of beam and reaction
-  TInitialConditions*   m_InitConditions;
-  
 private: // Source parameter
   G4ParticleDefinition*   m_particle;  // Kind of particle to shoot
   NPL::Beam* m_Beam;
diff --git a/NPSimulation/src/EventGeneratorBeam.cc b/NPSimulation/src/EventGeneratorBeam.cc
index 80788ae7ec80db141c6f85526d61750e31b4651a..79dd44710bb2709ec6ceb2b32f5814a227b5b281 100644
--- a/NPSimulation/src/EventGeneratorBeam.cc
+++ b/NPSimulation/src/EventGeneratorBeam.cc
@@ -43,7 +43,6 @@ using namespace CLHEP;
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 EventGeneratorBeam::EventGeneratorBeam(){
   m_ParticleStack  = ParticleStack::getInstance();
-  m_InitConditions = new TInitialConditions();
   m_Target         = NULL    ;
   m_particle       = NULL    ;
   m_Beam           = new NPL::Beam();
@@ -51,7 +50,6 @@ EventGeneratorBeam::EventGeneratorBeam(){
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 EventGeneratorBeam::~EventGeneratorBeam(){
-  delete m_InitConditions;
   delete m_Beam;
 }
 
@@ -83,8 +81,6 @@ void EventGeneratorBeam::GenerateEvent(G4Event* anEvent){
     }
   }
   
-  m_InitConditions->Clear();
-  
   ///////////////////////////////////////////////////////////////////////
   ///// Calculate the incident beam direction as well as the vertex /////
   ///// of interaction in target and Energy Loss of the beam within /////
@@ -118,8 +114,5 @@ void EventGeneratorBeam::GenerateEvent(G4Event* anEvent){
   }
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 void EventGeneratorBeam::InitializeRootOutput(){
-  RootOutput *pAnalysis = RootOutput::getInstance();
-  TTree *pTree = pAnalysis->GetTree();
-  pTree->Branch("InitialConditions", "TInitialConditions", &m_InitConditions);
 }
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......