From aba84def9c8d112580af86ac57fc6f96892f3d01 Mon Sep 17 00:00:00 2001
From: RoccoA97 <roccoardino@gmail.com>
Date: Tue, 26 Mar 2024 12:54:57 +0100
Subject: [PATCH] Write EoLS and EoR files only from main pipeline

---
 src/OutputByOrbit.cc     | 2 +-
 src/OutputFileHandler.cc | 4 ++--
 src/OutputFileHandler.h  | 4 ++++
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/OutputByOrbit.cc b/src/OutputByOrbit.cc
index 3230fe9b..d154146e 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 4b0173d3..c925c612 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 7bea98d2..42fc8aeb 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_;
-- 
GitLab