diff --git a/src/OutputByOrbit.cc b/src/OutputByOrbit.cc
index 3230fe9b35b3d5aa12bec96ca124a8bbc7d29006..d154146e0e6f27bb07b9a2d638218171e6228901 100644
--- a/src/OutputByOrbit.cc
+++ b/src/OutputByOrbit.cc
@@ -21,7 +21,7 @@ void OutputByOrbitStream::MonitorEndOfRun() {
       // An unhandled run just stopped; wait N seconds in case the pipeline is still processing
       std::this_thread::sleep_for(std::chrono::seconds(EOR_DELAY_SECS));
       // Write EoR file for the most recent run
-      output_file_handler_.write_EoR_file();
+      if (output_file_handler_.isMainPipeline()) output_file_handler_.write_EoR_file();
       // Update local EoR tag
       latest_EoR = current_run_number;
     }
diff --git a/src/OutputFileHandler.cc b/src/OutputFileHandler.cc
index 4b0173d3cef47c2d6cc2dee92edec9215e20474f..c925c612c72065e706352214b09d635471f9bf28 100644
--- a/src/OutputFileHandler.cc
+++ b/src/OutputFileHandler.cc
@@ -184,7 +184,7 @@ void OutputFileHandler::close_and_rename::operator()() const {
     }
 
     if (outputFile.Index() == outputfilehandler_->max_index_per_ls_ &&
-        outputfilehandler_->getCMSSWHeaders()) {  // end of lumisection
+        outputfilehandler_->getCMSSWHeaders() && mainPipeline_) {  // end of lumisection
       outputfilehandler_->write_EoLS_file(outputFile.Lumisection());
     }
   }
@@ -222,7 +222,7 @@ void OutputFileHandler::write_EoLS_file(uint32_t ls) {
 void OutputFileHandler::write_EoR_file() {
   assert(current_index_ > 0 && nOrbitsPerFile_ > 0);
   int ls = int(1) + (current_index_ * nOrbitsPerFile_) / constants::N_orbits_per_lumisection;
-  write_EoLS_file(ls);
+  if (mainPipeline_) write_EoLS_file(ls);
   std::stringstream EoR_filename;
   EoR_filename << run_dir_ << "/"
                << "run" << std::setfill('0') << std::setw(6) << current_run_number_
diff --git a/src/OutputFileHandler.h b/src/OutputFileHandler.h
index 7bea98d22f8ecd09de7caedb1a4e0fccd0f4e004..42fc8aebb2069a1b8f6ec152e28fe53a00e77005 100644
--- a/src/OutputFileHandler.h
+++ b/src/OutputFileHandler.h
@@ -28,6 +28,7 @@ class OutputFileHandler {
         close_and_rename_(base_path_, num_orbits_per_file),
         nOrbitsPerFile_(num_orbits_per_file),
         cmsswHeaders_(has_cmssw_headers),
+        mainPipeline_(filename_suffix_==".raw" ? true : false),
         sourceID_(source_id),
         t{},
         max_index_per_ls_(
@@ -70,6 +71,8 @@ class OutputFileHandler {
   void write_EoR_file();
   int NOrbitsPerFile() const { return nOrbitsPerFile_; }
 
+  bool isMainPipeline() const { return mainPipeline_; }
+
   class close_and_rename {
     OutputFileHandler *outputfilehandler_{};
 
@@ -123,6 +126,7 @@ class OutputFileHandler {
   close_and_rename close_and_rename_;
   int nOrbitsPerFile_;
   const bool cmsswHeaders_;
+  const bool mainPipeline_;
   int sourceID_;
   std::thread t;
   const uint32_t max_index_per_ls_;