diff --git a/include/OpNoviceDetectorConstruction.hh b/include/OpNoviceDetectorConstruction.hh
index 032db47cea5e8407e9ba06047102282abcb5df73..c25d4cad5c60bb2c7e585b2361459891736d0761 100644
--- a/include/OpNoviceDetectorConstruction.hh
+++ b/include/OpNoviceDetectorConstruction.hh
@@ -28,9 +28,7 @@
 //
 //
 //
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-
+//
 #ifndef OpNoviceDetectorConstruction_h
 #define OpNoviceDetectorConstruction_h 1
 
@@ -41,7 +39,6 @@
 #include "G4VUserDetectorConstruction.hh"
 #include "Materials.hh"
 
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 
 class OpNoviceDetectorConstruction : public G4VUserDetectorConstruction
 {
@@ -60,6 +57,4 @@ class OpNoviceDetectorConstruction : public G4VUserDetectorConstruction
     Materials* materials;
 };
 
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-
 #endif /*OpNoviceDetectorConstruction_h*/
diff --git a/include/lgAnalysis.hh b/include/lgAnalysis.hh
new file mode 100644
index 0000000000000000000000000000000000000000..7644179b797b6b350616241557ac124498dbed5f
--- /dev/null
+++ b/include/lgAnalysis.hh
@@ -0,0 +1,36 @@
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+//
+/// \file lgAnalysis.hh
+/// \brief Selection of the analysis technology
+
+#ifndef lgAnalysis_h
+#define lgAnalysis_h 1
+
+#include "g4root.hh"
+//#include "g4cvs.hh"
+//#include "g4xml.hh"
+
+#endif
diff --git a/src/OpNoviceRunAction.cc b/src/OpNoviceRunAction.cc
index 1b9ccc2ec84ce031e9b798a675a85daa3a5dd91d..c49498623bc64e90cc1881cf8371a5d9c1864670 100644
--- a/src/OpNoviceRunAction.cc
+++ b/src/OpNoviceRunAction.cc
@@ -26,10 +26,8 @@
 /// \file OpNovice/src/OpNoviceRunAction.cc
 /// \brief Implementation of the OpNoviceRunAction class
 //
-//
-// 
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// @Author Chad Lantz
+
 
 // Make this appear first!
 #include "G4Timer.hh"
@@ -38,8 +36,10 @@
 
 #include "G4Run.hh"
 
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 
+/*
+ *
+ */
 OpNoviceRunAction::OpNoviceRunAction()
  : G4UserRunAction(),
    fTimer(0)
@@ -47,23 +47,26 @@ OpNoviceRunAction::OpNoviceRunAction()
   fTimer = new G4Timer;
 }
 
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-
+/*
+ *
+ */
 OpNoviceRunAction::~OpNoviceRunAction()
 {
   delete fTimer;
 }
 
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-
+/*
+ *
+ */
 void OpNoviceRunAction::BeginOfRunAction(const G4Run* aRun)
 {
   G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl;
   fTimer->Start();
 }
 
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-
+/*
+ *
+ */
 void OpNoviceRunAction::EndOfRunAction(const G4Run* aRun)
 {
   fTimer->Stop();
@@ -71,4 +74,125 @@ void OpNoviceRunAction::EndOfRunAction(const G4Run* aRun)
          << " " << *fTimer << G4endl;
 }
 
+
+/// \file B4RunAction.cc
+/// \brief Implementation of the B4RunAction class
+
+#include "B4RunAction.hh"
+#include "B4Analysis.hh"
+
+#include "G4Run.hh"
+#include "G4RunManager.hh"
+#include "G4UnitsTable.hh"
+#include "G4SystemOfUnits.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+
+/////////////// How to implement root file output //////////////
+
+/*
+B4RunAction::B4RunAction()
+ : G4UserRunAction()
+{
+  // set printing event number per each event
+  G4RunManager::GetRunManager()->SetPrintProgress(1);
+
+  // Create analysis manager
+  // The choice of analysis technology is done via selectin of a namespace
+  // in B4Analysis.hh
+  auto analysisManager = G4AnalysisManager::Instance();
+  G4cout << "Using " << analysisManager->GetType() << G4endl;
+
+  // Create directories
+  //analysisManager->SetHistoDirectoryName("histograms");
+  //analysisManager->SetNtupleDirectoryName("ntuple");
+  analysisManager->SetVerboseLevel(1);
+  analysisManager->SetNtupleMerging(true);
+    // Note: merging ntuples is available only with Root output
+
+  // Book histograms, ntuple
+  //
+
+  // Creating histograms
+  analysisManager->CreateH1("Eabs","Edep in absorber", 100, 0., 800*MeV);
+  analysisManager->CreateH1("Egap","Edep in gap", 100, 0., 100*MeV);
+  analysisManager->CreateH1("Labs","trackL in absorber", 100, 0., 1*m);
+  analysisManager->CreateH1("Lgap","trackL in gap", 100, 0., 50*cm);
+
+  // Creating ntuple
+  //
+  analysisManager->CreateNtuple("B4", "Edep and TrackL");
+  analysisManager->CreateNtupleDColumn("Eabs");
+  analysisManager->CreateNtupleDColumn("Egap");
+  analysisManager->CreateNtupleDColumn("Labs");
+  analysisManager->CreateNtupleDColumn("Lgap");
+  analysisManager->FinishNtuple();
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+B4RunAction::~B4RunAction()
+{
+  delete G4AnalysisManager::Instance();
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void B4RunAction::BeginOfRunAction(const G4Run* /*run*/)
+{
+  //inform the runManager to save random number seed
+  //G4RunManager::GetRunManager()->SetRandomNumberStore(true);
+
+  // Get analysis manager
+  auto analysisManager = G4AnalysisManager::Instance();
+
+  // Open an output file
+  //
+  G4String fileName = "B4";
+  analysisManager->OpenFile(fileName);
+}
+
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void B4RunAction::EndOfRunAction(const G4Run* /*run*/)
+{
+  // print histogram statistics
+  //
+  auto analysisManager = G4AnalysisManager::Instance();
+  if ( analysisManager->GetH1(1) ) {
+    G4cout << G4endl << " ----> print histograms statistic ";
+    if(isMaster) {
+      G4cout << "for the entire run " << G4endl << G4endl;
+    }
+    else {
+      G4cout << "for the local thread " << G4endl << G4endl;
+    }
+
+    G4cout << " EAbs : mean = "
+       << G4BestUnit(analysisManager->GetH1(0)->mean(), "Energy")
+       << " rms = "
+       << G4BestUnit(analysisManager->GetH1(0)->rms(),  "Energy") << G4endl;
+
+    G4cout << " EGap : mean = "
+       << G4BestUnit(analysisManager->GetH1(1)->mean(), "Energy")
+       << " rms = "
+       << G4BestUnit(analysisManager->GetH1(1)->rms(),  "Energy") << G4endl;
+
+    G4cout << " LAbs : mean = "
+      << G4BestUnit(analysisManager->GetH1(2)->mean(), "Length")
+      << " rms = "
+      << G4BestUnit(analysisManager->GetH1(2)->rms(),  "Length") << G4endl;
+
+    G4cout << " LGap : mean = "
+      << G4BestUnit(analysisManager->GetH1(3)->mean(), "Length")
+      << " rms = "
+      << G4BestUnit(analysisManager->GetH1(3)->rms(),  "Length") << G4endl;
+  }
+
+  // save histograms & ntuple
+  //
+  analysisManager->Write();
+  analysisManager->CloseFile();
+}
+*/