From f6877285941a3d59ca4915be7dd232d0135643e8 Mon Sep 17 00:00:00 2001
From: Chad <clantz2@illinois.edu>
Date: Tue, 10 May 2022 19:31:07 -0500
Subject: [PATCH] Cleared output vectores at the end of events to avoid
 re-writing data and exponentially growing output files

---
 include/RunAction.hh | 1 +
 src/EventAction.cc   | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/include/RunAction.hh b/include/RunAction.hh
index ef1c1e3..e48e114 100644
--- a/include/RunAction.hh
+++ b/include/RunAction.hh
@@ -55,6 +55,7 @@ class RunAction : public G4UserRunAction
     virtual void EndOfRunAction(const G4Run* aRun);
 
     std::vector< std::vector<double>* > GetVectors(){ return fPtrVec; }
+    inline  void ClearVectors(){ for(auto vec : fPtrVec) vec->clear(); }
 
   private:
     G4Timer* fTimer;
diff --git a/src/EventAction.cc b/src/EventAction.cc
index 2db980b..45c22c1 100644
--- a/src/EventAction.cc
+++ b/src/EventAction.cc
@@ -30,12 +30,14 @@
 #include "G4ParticleDefinition.hh"
 #include "G4ParticleTypes.hh"
 #include "G4SDManager.hh"
+#include "G4RunManager.hh"
 #include "G4Event.hh"
 #include "G4Track.hh"
 #include "G4ios.hh"
 
 #include "PMTHit.hh"
 #include "lgAnalysis.hh"
+#include "RunAction.hh"
 
 /*
  *
@@ -69,4 +71,6 @@ void EventAction::EndOfEventAction(const G4Event* event){
   G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
   analysisManager->FillNtupleIColumn( 0, event->GetEventID());
   analysisManager->AddNtupleRow();
+
+  ((RunAction*)G4RunManager::GetRunManager()->GetUserRunAction())->ClearVectors();
 }
-- 
GitLab